@NewTypes
На себя

Где грани между быдлокодом, промежуточной стадией и профессиональным программированием?

В поддерживаемости? В производительности? В гибкости и независимости благодаря предусмотренной модульности? В "просто сделал и работает до скончания века" без багов?

Как вы видите профессионала и говнокодера? Хотелось бы развернутых ответов, особенно с псевдокодом или реальными примерами. Сайт govnokod.ru видел
  • Вопрос задан
  • 2534 просмотра
Пригласить эксперта
Ответы на вопрос 2
donkaban
@donkaban
Умею рисовать тени
Я вам щас дам четкое определение говнокода. Если хотите.
Говнокод - это изобретение плохой реализации там, где есть хорошие всем известные образцы. Использование собственного кода вместо стандартной библиотеки. Изобретение заново сортировки пузырьком. Собственной интепретации "что такое MVC". NIH синдром и отсутствие базовых знаний.
Ответ написан
Комментировать
Понимаете, говокод это нечто собирательное. Как и красивый код.
Тем не менее, пишем проеты мы в первую очередь для того что бы зарабатывать деньги. С течением времени стоимость поддержки кода увеличивается. И задача хорошего программиста стоимость этой поддержки снизить как можно сильнее. То есть по сути сэкономить бабла заказчику, и за это заработать больше самому.
И вот есть куча книжек про то, как писать красивый код и не писать говнокод. Такие как чистый код, совершенный код, банда четырёх, и.т.д. Так вот - это всё книжки в первую очередь про то, как экономить бабло (и время, что в общем-то равно).

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

По этому я стараюсь избегать слов "говнокод" и "красивый код". Есть код который имеет хорошие или плохие характеристики, в контексте выполняемой задачи. Характеристик много, от функциональных:
Выполнение поставленной задачи.
Отсутствие багов.
Скорость работы.
До качественных:
Цикломатическая сложность, Связность, Сфокусированность, Тестабельность, Читабельность, Понимабельность, и.т.д.

Рецепт хорошего кода прост. Думайте какие характеристики для вас важны, и отвечает ли ваш код этим характеристикам. Если не отвечает - то возможно это и есть то, что обычно называют говнокодом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы