Почему нельзя превращать прототип в итоговую программу

в 15:54, , рубрики: говнокод, Программирование, прототипирование, Совершенный код, метки: ,

Всем привет! Сколько уже статей было про говнокод, но я считаю, их поток нельзя сокращать, потому как поток говнокода только увеличивается.
Внимание: статья полна субъективизма и сюрреализма. Автор не претендует на истину в последней инстанции
Очень часто, создавая новое приложение, программу, веб-сайт, мы сначала экспериментируем, а затем создаем из наших экспериментов конечный продукт.
Но дайте ответ на следующие вопросы не задумываясь:

  1. сколько раз, получая исходники от других разработчиков, вы находили их крайне непривлекательными?
  2. сколько раз, передавая исходники другим разработчикам вам было стыдно за свой код?

Мои ответы: постоянно, довольно часто.
Почему так происходит?

Почему нельзя превращать прототип в итоговую программу

Основная причина этого в том, что программист не может отказаться от прототипа программы, и продолжает накручивать функционал на него. Вы написали какой-то кусок кода, проверили его — он делает точно то, что вам нужно. Далее, реализуем другую фичу, прикручиваем её туда же, и понеслась…

В итоге, мы получаем пластилиновый ком, на который со всех сторон налеплены куски, и он готов вот-вот развалиться. Вы тешите себя мыслью, что вот-вот всё отрефакторите и приведёте к феншуйному виду. Поддерживать всё это дело можете только вы (ведь документацию-то к черту, лишняя трата времени). Но вот, от ваших услуг отказываются, или вы увольняетесь из компании, и надо все передать. Передать проще чем получить. Только не удивляйтесь потом, почему у вас уши всё время горят.

Главная проблема в лепке пластилиновых комьев в том, что руки у вас потом всё время жирные. Когда вы лепите пластилиновую программу, вам всё больше становится противно её лепить. Чем дальше уходит разработка, тем больше проект вам осточертел.

Прототипирование — отличный приём программирования, и он очень успешно может быть применен для разработки альфа-версий, когда требуется только видимость приложения. Вы просто собираете в кучу всё, что придумали или нашли. Но нельзя бездумно лепить к прототипу весь остальной функционал.

Хорошей практикой будет являться нечто такое: пусть ваш прототип остается пластилиновым комом, лепите на него новешие куски программы. Однако, параллельно создайте чистый проект, и включайте туда свои доработки, думая головой. Используйте только удачные конструкции, чтобы ваш пластилиновый ком в чистом проекте превращался в стальной каркас.

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

Больше думайте, а не делайте, не повторяйтесь в коде (DRY), не усложняйте (KISS), но и не упрощайте чрезмерно. Может быть тогда ваша совесть будет чиста и спокойна при передаче проектов, а доработка и поддержка ваших приложений станет чуточку приятнее.

Автор: Dreddik

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js