Когда нужно создать некий новый элемент, самым лучшим первым шагом будет создание элемента, который ничего не умеет делать. С таким подходом вы, по крайней мере, можете быть уверены, что начинаете работу на прочной базе.

Если мне нужно написать компонент, который выполняет определенное действие, последовательность шагов для достижения этой цели у меня, скорее всего, будет такой:

  • Нулевой этап: написание отдельной программы, которая производит нужное действие. Это гарантирует, что такое действие как минимум возможно в принципе.
  • Теперь, когда у меня есть рабочий код, выполняющий необходимое действие, я прописываю компонент, который НЕ выполняет это или другие действия. Это позволяет мне удостовериться, что я по крайней мере знаю, как создать компонент.
  • Далее я закрепляю компонент за действием, но делаю так, чтобы метод Invoke только передавал отладчику сообщение «Ура!» и ничего больше. Это позволяет мне удостовериться, что я способен организовать запуск компонента в нужный момент.
  • Дальше я добавляю в метод Invoke ровно столько кода, сколько нужно, чтобы обозначить, какое требуется выполнить действие и применительно к какому объекту оно выполняется, передать эту информацию отладчику и дождаться возврата, не выполняя при этом само действие. Это позволяет мне удостовериться, что я способен определить, какое именно действие требуется произвести.
  • Наконец, я добавляю в метод Invoke всё остальное, что необходимо для осуществления действия над желаемым объектом. Это можно сделать просто скопировав и вставив уже проверенный код из программы, которая была создана на нулевом этапе.

Очень часто приходится видеть, как не слишком опытные разработчики бросаются в дело очертя голову и сразу начинают писать что-то большое и сложное. Потом, по причине величины и сложности, у них не получается даже провести компиляцию. Они приходят за помощью за словами: «У меня тут возникла проблема с одной строкой кода», но, когда начинаешь изучать, что у них написано, понимаешь, что проблема-то отнюдь не исчерпывается этой строкой кода. Программа еще даже близко не подошла к тому, чтобы в принципе осознать возможность исполнения того, что указывается в этой строке кода. И тогда я бормочу себе под нос: «Как ты вообще довел до такого?»

Начните с сущности, которая не делает ничего. Убедитесь, что ничегонеделание происходит успешно. И только после этого можно начинать вносить изменения с прицелом на то, чтобы она что-то стала делать. Действуя таким образом, вы можете быть уверены, что проблемы, которые возникают по ходу дела, связаны именно с попытками произвести конкретное действие.

Комментарии (3)


  1. starik-2005
    20.09.2023 13:13

    После прочтения этой статьи становится понятно, что 1С-неги - тоже взрослые программисты, ибо делают ровно так же.


  1. Warrangie
    20.09.2023 13:13

    Писал ИИ?


  1. danilovmy
    20.09.2023 13:13
    +1

    Мне показалось, что ход разработки очень похож на ТДД, разница только в том что с разработкой по ТДД ещё и тесты готовы.


    За шаги спасибо, предпоследний часто пропускаю, но зря. Мне понравилось, что Сначала проверяем шаблон действия и только потом имплементацию.