Сын-выпускник школы говорит вечером своему отцу:
- Папа, у меня сегодня выпускной, будем пить, гулять, домой приду поздно, пьяный, ты не ругайся, пожалуйста.
Утром сынуля просыпается-голова болит, весь в синяках, ссадинах, папаша рядом с кроватью стоит.
Сын:
- Папа, я же просил тебя вчера, зачем ты меня избил?
Папа:
- Когда ты вчера в задницу пьяный приперся домой в три часа ночи, и проломил входную дверь-я стерпел,
когда ты сломал унитаз и облевал весь туалет - я стерпел, но когда ты посредине комнаты наложил кучу говна,
воткнул в нее спички и сказал, что этот ёжик будет с нами жить - мои нервы не выдержали......
Программисты очень не любят удалять свои говнорешения. Они придумывают всякие оправдания, ухищрения только для того, чтобы оставить какой-то кусок кода в проекте. Почему? Потому что:
И ещё много причин, чтобы оставить "ёжика" в проекте. В конечном счёте это увеличивает технический долг и вязкость кода.
НЕ НАДО ТАК!
Помните, что исправить "ёжика" в самом начале проще, чем когда проект запустится и начнёт работать.
Если программист не может нарисовать процесс, который он пытается воплотить в коде, то ... и так всё понятно. Он родит "ёжика", к которому привяжется, как к родному, и оставит жить с нами...
РЕБЯТА, рисовать блок-схемы НУЖНО! Не можете нарисовать? Значит, не понимаете решение задачи. Не можете нарисовать простую и понятную диаграму? Значит и в коде будет мешанина.
Нужно понимать, что есть разные уровни блок-схем. Вам нужен уровень проектирования, где показаны основные компоненты системы и стрелочками бизнес-процессы. Пример:
Блок-схемы уровня проектирования нужны, чтобы любой участник проекта мог легко понять, что вы делаете и зачем. Именно поэтому польза будет только от простых схем, сложные только запутывают.
Блок-схемы уровня реализации (UML-диаграммы) обычно бесполезны из-за высокой сложности, вот на них можно "забить".
Господа программисты, берите, пожалуйста, на себя ответственность за код, который вы пишете. Это значит:
Одну и ту же задачу можно решить десятком способов. Найти оптимальный способ - задача программиста. Рассматривайте разные варианты решения ДО того, как писать код, чтобы потом не говорить: "да, этот ёжик теперь будет жить с нами".
Медицинская сестра катит коляску с пациентом по больничному
коридору, больной жалобно спрашивает:
- А может, лучше в отделение реанимации?
Сестра сердито отвечает:
- Больной, не занимайтесь самолечением! Врач сказал в морг,
значит в морг!
Перед тем, как бросаться за задачу, подумайте, а насколько правильно она поставлена? Может быть её вообще НЕ НУЖНО делать. Люди, которые пишут задачи, тоже люди, а значит могут ошибаться. Ещё подумайте, какую проблему вы решите, сделав эту задачу. Может быть есть другой способ?
Господа, товарищи, комрады, не забывайте, пожалуйста, что код вы пишете для ЛЮДЕЙ! А не чтобы покрыть его тестами. Конечными потребителями вашего продукта всегда являются люди (менеджеры, покупатели, другие программисты). Ориентируйтесь на людей, думайте, как сделать удобно им, а не тестам.
Если вам говорят, что "ваша система говно", принюхайтесь, может так оно и есть.
Любите проекты, любите людей, которые ими пользуются. А код подтянется, если не бояться признавать ошибки и стараться исправлять их, делать решения проще и чище.