Можно ли новичку сразу миновать стадию быдлокодинга?
Многие пишут - ставьте себе задачу и выполняйте её. При этом многие (да все почти) пишут про засилье говнокодеров (что, как я понимаю, правда). Сразу как-то не хочется писать кривой код, костыли и так далее, но сама формулировка "ставьте себе задачу и выполняйте её" как бы намекает. Ведь раз я сам ищу решение, для того, чтобы попрактиковаться, а не скопипастить чужой код, то, как новичок, вполне вероятно, я сделаю что-то работающее, но фиговое. Это всегда так и пытаться этого избежать бессмысленно, мол со временем нормальное написание кода придёт, или всё же лучше сразу пытаться писать грамотный и чистый код? Но как тогда, если говорят, что "10% теории и 90% практики". И даже зная, что такое DRY и прочее, всё равно ж можно ерунды понаписать начинающему. Как лучше быть тогда?
vladimirir дорогой пользователь, настоятельно рекомендуем еще раз обратить самое пристальное внимание на п. 3.1 регламента работы сервиса (и, в особенности, на его последний абзац).
В противном случае ваши вопросы будут удаляться по причине тег-спама, а систематические нарушения приведут к блокировке учетной записи.
Чистый код - это форматирование
Хороший код - это архитектура.
Форматирование - зависит от привычек, от знакомства с текущими рекомендациями и принятыми в конкретном проекте правилами.
Архитектура - от опыта, причем богатого и разностороннего.
Поэтому можно сходу писать чуть лучше, чем макака, но если вы не будете видеть быдлокод в своих прошлогодних проектах - значит либо вы остановились в развитии, либо достигли уровня просветленного бодисатвы.
Человеческая логика перпендикулярна машинной. Без опыта проб и ошибок, просто почитав правила типа DRY и KISS, человек не может отказаться от того, что представляется ему более логичным, чем написанное в учебнике. Нужно пожить в этом нечеловеческом мире, чтобы приобрести правильные привычки. Нужно попасть на рефакторинг говнокода, чтобы прочувствовать, как это важно - писать поддерживаемый код. Нужно иметь опыт вылизанного оптимального проекта, который пришлось мучительно переделывать, чтобы не заниматься преждевременной оптимизацией. И так далее.
Единственный способ ускорить процесс - это больше писать и переписывать.