Покинул форум
Сообщений всего: 18
Дата рег-ции: Июль 2010
Помог: 0 раз(а)
Часто вижу на форумах такое, что кто то задает вопрос и тут же ответ, да у тебя говнокод, иди читай книжки хорошие. Хотелось бы узнать критерии говнокода и как с этим бороться? Понимаю, что можно прочитать книжку, но в большинстве случаев, примеры то и пишутся с книг.
Ch_chov
Отправлено: 07 Июля, 2010 - 15:22:58
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
Г-код, — это код сделанный по принципу «лишь бы работало».
Чётких критериев нет. Если программированием занимаешься достаточно долго, открой исходники своих первых проектов.
Думаю там найдется много такого «добра».
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Uchkuma
Отправлено: 07 Июля, 2010 - 15:49:25
Участник
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
JustUserR пишет:
Если не брать во внимание код который написан в совершенно-непонятном стиле с потенциальными уязвимостями и проблемами
Новичку в этом не разобраться
Думаю, да. Если ты сам не понимаешь, что именно делает тот или иной код, то тебе не отличить говнокод от нормального кода. Порой даже опытный кодер не всегда может оптимальное решение найти, но, по крайней мере, очевидные вещи он не пропустит.
ZeiZ
Отправлено: 07 Июля, 2010 - 16:54:17
Частый гость
Покинул форум
Сообщений всего: 231
Дата рег-ции: Нояб. 2009 Откуда: Москва
if(i == 0 || i == 1 || i == 2 || i == 3 || i == 4 || i == 5 || i == 6 || i == 7 || i == 8 || i ==9)
{
...
}
Champion
Отправлено: 07 Июля, 2010 - 18:13:51
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Книжки от говнокода не спасают. От него спасает опыт и своя голова.
А признаки у него такие: невнятные названия переменных, функций и пр., причудливое расположение отступов и скобок, отстутсвие нужных комментариев и присутствие глупых и не нужных. Это что касается стиля.
Теперь логика. Такие вещи как фильтрация результатов SQL запросв на php в цикле, выполнение запросов в цикле, когда есть возможность выполнить запрос один раз, а в цикле работать с результатом. Неуместное использование каких-то ресурсоемких инструкций/библиотек. Такие вот чудеса как ZeiZ привел.... вот.
antzol
Отправлено: 07 Июля, 2010 - 21:25:30
Новичок
Покинул форум
Сообщений всего: 14
Дата рег-ции: Апр. 2008
Помог: 0 раз(а)
Блин... Как раз сегодня бурно обсуждал один экземпляр говнокода, правда, сишный. А у написателя (язык не поворачивается, назвать программистом) этого кода практики достаточно.
Поэтому всё-таки основное, что требуется от человека, - это желание сделать правильно и красиво, а не "лишь бы работало". А отсюда появятся и чтение книг и исходников, и переписывание своих программ с целью оптимизации.
Ну а признаки уже перечислили...
А признаки у него такие: невнятные названия переменных, функций и пр., причудливое расположение отступов и скобок, отстутсвие нужных комментариев и присутствие глупых и не нужных. Это что касается стиля.
От всех признаков спасает вдумчивое прочтение
"Правила программирования на Си и Си++"
Ален И. Голуб
Не смотря на специфическое название и привязку к конкретному языку, почти все советы распространяются на программирование в целом. Топикпастеру рекомендую ознакомиться.
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
Champion пишет:
Неуместное использование каких-то ресурсоемких инструкций/библиотек
Кстати на этот признак я бы хотел обратить особенное внимание - поскольку явным его частным случаем является постоянноое использование фреймворка jquery в клиентских скриптах - где можно было прекрасно обойтись чистым JS-скриптом который при желании можно сделать гораздо более оптимизированным для данного вопроса Обобщая можно сказать что признаком плохого стиля программирования является тот случай когда заместо того чтобы обстоятельно разобраться с проблемой и найти ее решение или использовать walkaround - применяется какое-то решение лишь по той причине что автору про него известно или оно вообще на слуху но к делу прямого отношения в реальности не имеет
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
jenya777777
Отправлено: 08 Июля, 2010 - 08:04:26
Новичок
Покинул форум
Сообщений всего: 18
Дата рег-ции: Июль 2010
Помог: 0 раз(а)
Ну наконец то понял принципы говнокода, спасибо большое за ответы!
Больше всего понравился этот ответ
Цитата:
Если программированием занимаешься достаточно долго, открой исходники своих первых проектов.
Вот это я сразу понял, мои первые исходники, такое убожество
JustUserR
Отправлено: 09 Июля, 2010 - 01:39:57
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
jenya777777 пишет:
Вот это я сразу понял, мои первые исходники, такое убожество
В принципе если код создавался в процессе обучения или для тестирования определенных возможностей или для других временных целей то его скорее можно отнести к отдельному классу - основным его отличием является то что он внутренний и как правило сравнительно небольшой А вот к истинно плохому коду можно отнести тот код который заранее создавался очень некачественно причем для конечного решения - а также неправильный код в котором задача изначально неправильно толкована и решается совершенно неприемлемым способом
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Champion
Отправлено: 10 Июля, 2010 - 17:34:50
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Вот, например, проверка, является ли переменная числом с пом. регулярных выражений - один из примеров. http://forum.php.su/topic.php?fo...72362#1278772362 (Добавление)
Возможно, там где автор его нашел, есть еще много примеров.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.