January 14th, 2014

vit_r

Про ёжика в тумане, зазнайство, языки программирования и вериги

Арчибашев / Artzybasheff cybernetics Инженер - это человек, который для нерешимой задачи пытается найти решение или переформулировать её условия так, чтобы она решалась.


Разговор с фининспектором о поэзии



Выборки из беседы с the_wax с некоторыми добавлениями. (На самом деле, писать с нуля проще, чем нарезать, просто было жалко бросать уже набитое.)

Я больше двадцати лет пишу софт и сейчас точно могу сказать, что не знаю, каких именно программистов можно считать хорошими и какой именно код - правильным.

Давным-давно от требовалось просто, чтобы программа решала задачу. Потом важным стали скорость работы и объём занимаемой памяти. Развитие электроники сделало эти параметры несущественными для большинства задач.

Сейчас критерия качества кода похожи на мантры, которые все в индустрии от вчерашних школьников до седовласых гуру неустанно повторяют, пытаясь достичь просветления.

Код должен легко поддерживаться, легко читаться, легко изменяться, быть красивым, ясным, коротким, понятным, надёжным и верным...

Список можно продолжить. Только ни один гуру не знает, как эти магические свойства измерить. А если что и измеряют, никто не может доказать, что цифра больше (или меньше) лучше. В толстых книжках тоже самое: половина - откровения свыше, половина - откровенный бред.

Плюс у меня ещё дюжина параметров, которые в определённых условиях могут оказаться критическими, а для других совершенно не важны.

Большинство программистов поддерживают миф о том, что хороший код создают эксперты, знающие тайны языка, освоившие все просторы библиотек и молящиеся на всевозможные руководства и наставления по правильнописанию.

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