Search
Write a publication
Pull to refresh

О качестве кода (PHP)

Когда-то я думал, что пишу довольно хороший PHP-код. Пока не прочитал Макконнела и его «Совершенный код». Я понял, что нужно делать «ребут» и «очищаться». И практически достиг свечения ауры но… этого оказалось мало. Окружающий (PHP) мир упорно не хотел становится «чище и добрее» вместе со мной. И вот я пишу эти буквы в надежде найти ответы на вопросы.

Что есть «качество кода»?


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

Люди


Многие делают ошибку здесь, говоря что эти люди — это заказчики. Вот это — самая большая ошибка в этой теме. Заказчикам нужен продукт, код их вообще не интересует. Код нужен только программистам. Хотя для PHP есть нюанс. Если в C++ клиенту в руки попадает скомпилированный модуль, то в PHP — тот самый код. И нередко заказчик хочет, чтобы другие программисты (или даже он сам) смогли изменять этот код без труда. Но снова в этом случае мы говорим о том же — код нужен программистам. Люди — это программисты.

Свойства кода


С этим разобраться гораздо сложнее. Есть огромное количество теории на это счет но хотелось бы принять во внимание лишь самые явные аспекты. Чем же и как код может удовлетворить программиста? А вот попробуйте ответить сами на этот вопрос. Я же отвечу сам за себя:

я хочу не напрягаться для того, чтобы понять, как работает код, на который я смотрю


Что под этим подразумевается?
  • «приятно глазу» — то есть используется редактор с хорошим шрифтом, с подсветкой синтаксиса и не нужна вертикальная прокрутка;
  • форматирование кода не вызывает внутренних конфликтов (код написан в той же «религии» что и моя — фигурные скобки, отступы, if-else-ы и т.п.);
  • адекватно названы переменные и функции;
  • используются понятные мне шаблоны проектирования и алгоритмы;
  • код «отвечает» на вопрос «а что если...?» — то есть обрабатываются ошибки и исключения;

*список не полный

Что же это получается? А получается, что для качественного кода нужны:

а) порядок и дисциплина;
б) образование;

Вот пожалуй и все. Вернее пункт б стОит поставить на первое место. И если с порядком и дисциплиной еще можно что-то поделать (каждая уважающая себя команда) то вот с образованием, по-моему, все гораздо сложнее. По крайней мере в Минске. Программисты, которые считают себя «профи» зачастую не знают что такое throw и assert() а познания шаблонов проектирования ограничивается сингельтоном.

И вот тут у меня действительно возникают вопросы без ответов:

Где же адекватные программисты? Неужели все разъезжаются? А если их не было, то неужели у нас ничему не учат? А если у нас ничему не учат, то как же нам продвигаться к «светлому будущему»?
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.