Здравствуйте, Юрий Лазарев, Вы писали:
ЮЛ>Так как с принципиальным вопросом — возможна ли ситуация, когда природа алгоритма требует длинного кода? Или надо непременно убивать время на (далеко не всегда оправданный) поиск улучшения, свертки кода?
Хороший разработчик благодаря тому, что сразу не допускает длинного кода — не убивает время, а наоборот его экономит. Лично я конечно в лоб говнокод напишу да, быстрее. Процентов так на 10. Но на отладку говнокода я потрачу в 10 раз больше времени, чем если я потружусь, и не буду допускать спагетти. Да, я в курсе, что очень многие называющие себя программистами настолько стали круты в написании говнокода, что в состоянии терять на отладку спагетти кода не в 10 раз больше времени, а в 2 раза больше времени. Вот только нахрена этот навык развивать? Когда если выработать привычку сразу писать максимально нормально, то прирост производительности работы будет гораздо больше. Да, я в курсе, что таким навыком мало кто обладает. Да, я в курсе, что в российских институтах нормально писать не учат. Да, я в курсе, что очень тяжело попасть на проект с нормальным кодом, где можно этому учиться. Я в курсе, что даже чтение Макконела не выработает эту привычку. И я в курсе что это очень тяжело, этому можно учиться всю жизнь, и все равно не достигнешь совершенства.
Но также я в курсе, что умение сразу писать код дает больший прирост производительности труда, чем любые знания деталей реализации множественного наследования, умение разворачивать списки на бумажке, умение компилировать код в уме и заучивание деталей реализации всяких I = I++ + ++I. А раз это дает повышение производительности труда — именно это и следует в первую очередь совершенствовать, причем совершенствовать постоянно. Да, умение писать код нормально никак не поможет пройти 95 процентов собеседований, а зачастую будет наоборот зачтено в минус. Вот только это поможет потом в реальной работе, в умении всегда без проблем выдерживать сроки, или хотя бы выдавать хоть что то приемлемое в сроки.