Культ карго программирования (2020)

Культкаргопрограммирования2020

… или как создавать огромные бесполезные программы. Честно говоря, это лучшее, что они могут сделать, учитывая имеющиеся у них знания. И здесь я хочу привести свой аргумент, но сначала …

Культ грузового программирования , как утверждает Википедия, «это стиль компьютерного программирования, характеризующийся ритуальным включением кода или программных структур, не служащих реальной цели ».

Давайте немного расширим это. Как может быть бесполезный код? Какая цель? Хорошие вопросы!

Цель кода – ответить на все потребности продукта. Довольно просто, правда? Верно! Все потребности в продукте довольно расплывчаты, и, честно говоря, нелегко определить ВСЕ потребности в продукте. В этом домене есть множество переменных, некоторые из которых: предпочтения пользователей, модели использования продуктов, рост пользовательской базы, изменения инфраструктуры времени выполнения продукта, скорость изменения разработчиков продукта и т. Д. И я еще ничего не упомянул о реальном коде! Это верно, потому что прежде чем иметь реальный код, нам нужно определить модель для всех упомянутых выше переменных. «Архитектура», я слышал, вы говорите? Как бы то ни было … Мне все равно, как вы это назовете, если сначала нужно хорошенько подумать, чтобы обратиться к этой модели.

Пожалуйста, о, пожалуйста, не зацикливайтесь на словах например: архитектура, модель и т. д. Именно здесь происходит программирование культа карго (отныне CCP – было бы забавно иметь там еще один C перед P).

I ‘ Я дам вам способ определить, используется ли CCP в вашем проекте / продукте:

Поговорите со старшим программистом, который работает над продуктом. Попросите их подробно объяснить небольшую часть продукта. Да! В деталях! Попросите их показать вам классы (потому что вы почти наверняка найдете ООП) и объясните, как и почему они организованы именно так. Не торопитесь, наберитесь терпения и постарайтесь следовать объяснениям. А теперь Ага! момент: если программист не красноречив, и вы не понимаете объяснение или оно не имеет смысла, скорее всего, у вас есть небольшая CCP.

Все объяснимо непрофессионалами … если вы понимаете, что объясняете, то есть. О, и остерегайтесь выражения «передовой опыт». Обычно это означает: «другие в сети делают это так, и это значит, что это делают так». Так что обычно «лучшая практика» = CCP (конечно, не должна, но это то, за чем она обычно прячется)

Другой способ обнаружить CCP – спросить программистов, какая литература у них есть идеи, и в этот момент они чаще всего цитировали веб-сайты, статьи и блоги (это верно! Вам лучше не изучать программирование из этого блога!). Что вам нужно услышать, так это книги и хороших авторов (например, Кент Бек, Роберт К. Мартин, Мартин Фаулер, Майкл Фезерс и многие другие).

Итак, CCP – ПЛОХО. Повторяйте за мной: CCP – это вещь BAAAD. Это делает программы менее удобными в обслуживании, более ошибочными и более дорогими.

Хорошо. Хватит болтовни! Я позволю тебе вернуться к твоей запойной работе в Википедии. Ваше здоровье!