Разработку любого приложения можно сравнить с постройкой здания. Построить обычный шалаш можно без всяких чертежей палками разной длины и толщины, и всё равно получить достойное одноместное жилье на окраине Market City. Но стоит тебе задуматься о постройке неплохого коттеджа или участии в команде, которая строит очередной стеклянный небоскрёб в центре, то ты тут же натыкаешься на те этапы стройки, которых у тебя раньше не было или были незначительны: риск проткнуть гвоздём проводку, которую не успели указать на чертежах; планировка этажей, которая, скорее, сходит на лабиринт Минотавра; и чертежи, где мазки делали разные люди то кистью, то карандашом, то ручкой-невидимкой.
Итак, к чему этот затянувшийся пример?
Простые проекты, суть которых примерно сводится к “Разработал - выложил - забыл” вряд ли потребует от вас выработки стиля, написания читаемого кода и документации, ведь тогда вашу усердную работу оцените только вы. Но чем крупнее проект, тем больше работа над ним смещается от разработки к сопровождению, и тогда уже невидимая надпись на чертеже может привести к тому, что большую часть времени вы потратите не на написание кода, а на вопрос: “А что тут вообще происходит?”
Поэтому я постараюсь объяснить основные возможности и проблемы, связанные с качеством кода в проекте, полагаясь, в первую очередь, на проблемы и решения, с которыми лично я работал на своих проектах, в которых команда варьировалась от 8 до 100 человек.