STRIKE писал(а):Куда дальше? Чем плох код без книг и занятий?
Серьёзный проект, работа в команде программистов, конкуренты, большие деньги и большие риски.
Дорабатывать говнокод сложнее чем хорошо продуманный код.
Объясни другому программисту что именно происходит в твоём коде.
Сделай чтобы твое приложение работало быстрее чем у конкурентов, внеси новый функционал в приложение быстрее конкурентов.
Потрать меньше ресурсов на доработку. Время - ценный ресурс. Отладка говнокода займёт больше времени.
Не профукай весь свой проект.
Существуют коммерческие проекты с говнокодом. Они тратят дополнительные ресурсы из-за того что содержат в себе говнокод.
Если программирование лишь хобби - говнокодьте. Возможно дальше вам и не надо. Это ваш уровень.
Но когда просите совета по своему коду на форумах - учитывайте, что вам помогают добровольно, а разбираться в чужом говнокоде мало кто из толковых программистов захочет.
alexei писал(а):Если разработчик не освободит где-то память, сделает кучу глобальных переменных или просто сделает 2 большие функции, которые различаются 2-мя операторами, то не стоит орать про говнокод.
Когда я говорю про говнокод, имею ввиду именно говнокод, а не какие-то недочеты или "костыли".
говнокод:
Код: Выделить всё
function moya_functsia(koli4estvo) { for (var s4et=0;s4et=>10;s4et++) { koli4estvo = koli4estvo + s4et; } return koli4estvo;} a = moya_functsia(5);
Посмотрите на имена и ненужный цикл.
Или
Код: Выделить всё
var len = 10;for (var i=0; i<= len; i++) { // здесь что-то вполне логичное if (i + 1 == len) { $('#uid').html(friendsSelect); };}
В цикле
if (i + 1 == len) чтобы проверить что прошлись по всем значения - это приемлемый вариант? Зачем так делать? Немыслемо!
Если в цикле вызывают обращение к базе - это не говнокод, а недостаток понимания работы с базой.
Если весь код состоит из таких нелогичных приёмов - тогда это говнокод.
Цель продукта - чтобы он работал, а не чтобы его код был идеальным.
Массивы, рекурсия, классы - они не ради того чтобы их использовать, а для того чтобы их разумно использовать. Мера разумности - скорость работы, корректность работы, время реализации и расширяемость конечного продукта (в разных пропорциях при разных целях).
Если не знать о классах и реализовывать всё на функциях - показатель того что человек ещё до этого не дошел. Когда дойдёт - поймёт что часто ООП предпочтительнее процедурного программирования.
Чтобы узнавать о рекурсии, классах и т.п. - надо учиться этому. Можно долго ждать когда на практике с этим столкнешься, а можно прочитать об этом и сразу начать использовать там где это нужно.
Если над кодом работает не один программист, то все приемы "мне так удобней" могут потратить дополнительное время другого программиста.