Познакомьтесь с «кланяющимся Кэдди» в разработке программного обеспечения
9 мая 2022 г.В настоящее время у нас слишком много «инструментов тестирования» для каждой ситуации разработки. Бесплатные или платные инструменты низкого качества подобны высокомерным кэдди на сложном поле для гольфа. Я покажу вам, как выбирать хорошие и игнорировать плохие, используя аналогию с гольфом. Итак, давайте играть сейчас.
Вступление
С этого месяца вас назначили младшим инженером в разработке.
Особых проблем с вашими отношениями нет, но последние несколько дней вы чувствуете, будто все время листаете свой редактор на экране. Вероятно, вы вообще не чувствуете, что движетесь вперед. Вы чувствуете, что вам нужно развивать способность брать часть картины и видеть ее целиком.
Ваш босс приглашает вас поиграть в гольф. Он говорит, что теперь это будет иметь для вас значение.
На поле для гольфа
Это поле для гольфа находится недалеко от центра города и принадлежит бывшему президенту США. Играя в гольф, вы постоянно думаете о своей работе.
К вам подходит молодой кедди на поле и говорит:
«Где-то на этом поле мы потеряли важный памятный мяч. Это зеленый шар, поэтому его трудно найти, но он не может быть слишком далеко. Если мы не найдем его, нам придется убрать всю траву».
Что ж, кто-нибудь найдет его в конце концов, пока мы играем.
На самом деле вас попросили прийти на поле для гольфа только для того, чтобы помочь в поисках мяча для гольфа, а не для игры в гольф.
Подготовка: отладка для гольфа
Отладка — это задача, выполняемая одним человеком. У отладчика всегда есть белые пятна в процессе разработки.
Гольф подобен операции по отладке, щедро использующей обширный сайт. Любители всегда смотрят на деревья и не видят леса, и им нужно использовать дрон, чтобы увидеть с неба. Дрон в этой аналогии представляет инструменты тестирования.
Вы когда-нибудь видели программное обеспечение, которое отлично работает с первой попытки без отладки?
Большие проекты чаще всего представляют собой комбинацию различных слоев и объектов. Что отличается от аналогии с гольфом, так это то, что, хотя все игроки в гольф одинаково проходят все поля, в процессе разработки есть персонал, который занимается только конкретными полями.
Проблемы в командах разработчиков — это не что иное, как признание несоответствия технических навыков внутри команды и процесс согласования восприятий. Это облегчает каждому из нас решение проблем, объединяя наши различные точки зрения.
Не заблуждайтесь, люди с более высокими навыками и опытом не должны высмеивать тех, у кого более низкие навыки и опыт. Гольф — это не битва с другими, а борьба с самим собой. Противники близки, но на разных уровнях. Есть стратегии, которыми можно поделиться с другими, и есть стратегии, которыми нельзя.
Выберите инструменты
При составлении плана проекта решите, какие инструменты у вас есть, включая среду разработки и отладчик. Также решите в своем плане, когда сдаться, для себя и для других.
Давайте попросим вашего начальника протестировать инструментальное программное обеспечение. Есть много бесплатных. Независимо от того, что вы используете, вы должны быть уверены, что это правильный инструмент для работы.
Вы должны убедиться, что другие игроки знают, что они приносят, прежде чем они уйдут. Представьте, что вы привезли с собой детскую клюшку для гольфа или привели водителя на лужайку для гольфа. Будет ли это работать? Это все равно, что пытаться заниматься веб-разработкой с помощью AppleⅡ.
Зачем здесь тележка?
Не забывайте, кто управляет инструментом. Если управление инструментами становится обузой для команды, это пустая трата времени и денег.
Человек, который управляет инструментами тестирования, называется кэдди. Он немного отличается от тренера. Его работа заключается в решении проблем, с которыми сталкивается игрок.
Крошечные знания о свинге
Знайте «SOLID» как универсальное правило архитектуры. Шаблоны проектирования появляются позже.
Подумайте о свинге в гольфе. Чем проще метод, тем лучше, так как все приемы одни и те же. Читать разные книги — это хорошо, но самое главное — почувствовать, что это такое в сфере разработки.
Можем ли мы улучшить нашу игру в гольф, только наблюдая прямую трансляцию Masters? Есть много влиятельных книг на эту тему, но они будут полезны только после того, как вы освоите основы.
Какой бы чудовищной ни была сила, есть предел расстоянию, которое человек может преодолеть одним ударом. Я имею в виду, вам нужно измерить то, что называется максимальным объемом работы. Вы можете заметить дискомфорт от захода слишком далеко в противоположном направлении.
В гольфе мяч не может отлететь назад. Действительно? В разработке может. Иногда мяч даже уходит в другое русло. Разработка через тестирование предотвращает эти проблемы.
Тренировка на полуночном поле для гольфа
Поле для гольфа в полночь — довольно страшное место. Края области невидимы. Тренировочное поле превращается в лужайку Огасты.
Направив на голову прожектор, вы обнаруживаете какие-то проблемы в своем проекте и сообщаете о них, чтобы зафиксировать ситуацию до того, как среда изменится. Итак, мы обнаружили следы, оставленные внутри собственности, которые не принадлежали человеку, пришедшему играть в гольф.
Нюхать неприятные запахи
Проверьте следы и обнаружите аномалию. Во-первых, узнайте, является ли неудача перед вами необратимой или нет. Не думайте об обнаружении кабеля в серверной в полночь. Еще не поздно заняться разработкой программного обеспечения.
Вы, вероятно, можете сделать это, даже не будучи Мартином Фаулером. Имейте в виду, что никто не знает всего программного обеспечения.
Обрезка веток
Вы нашли дерево, нависшее над полем. Это значит быть классом со слишком большим содержанием. Пришло время сделать рефакторинг.
Подумайте о процедуре обрезки. Красный, зеленый и рефакторинг. Три процесса не всегда имеют одинаковый объем работы.
Следы, о которых я упоминал ранее, также были здесь. Итак, мы попытались убрать эти следы. Мы построили деревянный забор на краю поля. Это означает, что вам не нужно смотреть дальше этой точки.
Изолируйте свою проблему
Если вы неправильно поместите проблему, эта проблема будет распространяться по всему курсу.
Перед вами появилась сова.
Вы использовали свое программное обеспечение для отслеживания, чтобы отслеживать, какой ремонт вы сделали, и оказалось, что это вызвано веткой, которую вы только что отрезали.
Подумайте, в какой ситуации вы бы столкнулись с животными, если бы это был проект по разработке программного обеспечения. Ваш клиент звонит вам, чтобы изменить его спецификации. Вы не сможете потушить их, если на вашем пути появится орда жирафов. Но нужно максимально удовлетворить потребности клиента.
Вы можете скомпилировать его, но он не работает так, как вы хотите. Вы исправили это, но проблема возникает в другом месте. Да, это самый настоящий баг. Ваш счет упал ниже 100. Вот где начинается гольф.
Наконец наступило утро и...
Итак, дело дошло до последней задачи. Помните, что игра не окончена до тех пор, пока не будет забит патт. Из норы вылез милый хомяк. Вы все ловите этого парня граблями.
Кедди достает ваш мяч из лунки, и он зеленый. Пришло время тест-драйва. Вы покидаете поле для гольфа в хорошем настроении.
Ваш кэдди поставил шест обратно и установил его. И он снял свою зеленую кепку и низко поклонился ходу.
Оригинал