Стандарты кодирования — залог хорошей сопровождаемости проекта

Любая командная разработка может быть эффективной только в том случае, если участники команды имеют общее видение. Иначе разработка начинает напоминать басню Крылова «Лебедь, Щука и Рак».

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

Стандарт кодирования — набор правил и соглашений, которые описывают базовые принципы оформления программного кода, используемого совместно группой разработчиков. Цель использования стандарта — упрощение восприятия программного кода человеком, сокращение нагрузки на память и зрение при чтении программы. Бонусом к этому идёт возможность эффективного использования сравнений в системе контроля версий — разный стандарт оформления кода «ломает» нормальный процесс работы с diff'ами, так как подсвечиваются все изменения в оформлении, а не только в бизнес-логике.

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

Как правило, это всё автоматизируется на уровне IDE (программной платформы, которая служит для написания кода). Программист может писать код как ему удобно, а IDE может за него автоматически форматировать написанный программный код согласно заданным правилам.

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

Стремления к красоте реализации и правильности программной архитектуры тоже реализуемы на уровне соглашений — в этом очень помогает соблюдение принципов программирования, например: DRY, KISS, YAGNI, SOLID.

Использование стандартов оформления кода повышает сопровождаемость разрабатываемых проектов.

Разрабатываем сайты любой сложности, интернет-магазины и веб-приложения для автоматизации бизнеса.

Наша основная специализация — разработка нетиповых проектов с высокими требованиями к качеству ПО. Мы ориентированы на максимально эффективное решение бизнес-задач клиента. Приоритет разработки — коммерческая успешность создаваемых сайтов и веб-приложений, а инструментами для её достижения являются продуманные и красивые интерфейсы, быстрая и надёжная работа программной части, а также устойчивость к нагрузкам в сочетании с высокой производительностью.

Узнать больше →

Специализируемся на проектах со сложной программной логикой, под высокую нагрузку и с высокими требованиями к информационной безопасности.

Мы разрабатываем сложные сайты и веб-приложения на фреймворке Ruby on Rails.

Коробочные CMS не подходят для нестандартных сайтов или при наличии действительно высоких требований к быстродействию и устойчивости к нагрузкам. В этих случаях в качестве платформы для разработки выбирается фреймворк Ruby on Rails.

Если ваш проект требует реализации сложной бизнес-логики, должен работать быстро и быть рассчитан под высокие нагрузки, то Ruby on Rails в качестве платформы для разработки — это хороший выбор.

Узнать больше →

Мы специализируемся на разработке сложных проектов на Ruby on Rails и обладаем многолетним опытом в этом направлении. Разработка на Rails — отличный выбор для проектов со сложной бизнес-логикой и высокими требованиями к безопасности, надёжности и производительности.

Cтатьи по теме:

Принцип программирования YAGNI — «Вам это не понадобится»
Если упрощенно, то следование данному принципу заключается в том, что возможности, которые не описаны в требованиях к системе, просто не должны реализовываться. Это позволяет вести разработку, руководствуясь экономическими критериями — Заказчик не должен оплачивать ненужные ему функции, а разработчики не должны тратить своё оплачиваемое время на реализацию того, что не требуется.
Принцип программирования KISS — делайте вещи проще
Большая часть программных систем необосновано перегружена практически ненужными функциями, что ухудшает удобство их использование конечными пользователями, а также усложняет их поддержку и развитие разработчиками. Следование принципу «KISS» позволяет разрабатывать решения, которые просты в использовании и в сопровождении.
Принцип программирования DRY — don’t repeat yourself / не повторяйте себя
Следование принципу программирования «DRY» позволяет добиться высокой сопровождаемости проекта: простоты внесения изменений и качественного тестирования.
GIT — система управления версиями
GIT — распределённая система управления версиями, созданная Линусом Торвальдсом для управления разработкой ядра Linux и в настоящее время получившая очень широкое распространение в среде разработчиков программного обеспечения.
БЭМ и независимые блоки
Вёрстка независимыми блоками — это методология, которая была сформулирована Виталием Харисовым из компании Яндекс. Впоследствии эта методология была расширена и получила название БЭМ (Блок-Элемент-Модификатор). Собственно БЭМ нужен для упрощения командной разработки, для унификации интерфейсов и для более активного повторного использования программного кода.
REST и RESTful — передача репрезентативного состояния и ресурсный роутинг
REST — это стиль построения архитектуры распределенного клиент-серверного приложения, который упрощает роутинг и построение API.
Парадигма MVC — модель-представление-контроллер
MVC или модель-представление-контроллер — это паттерн проектирования веб-приложений, который включает в себя несколько более мелких шаблонов. При использовании MVC модель данных приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента, благодаря чему модификация одного из них оказывает минимальное воздействие на остальные или не оказывает его вовсе.

Тематические технологии:

Websockets
Язык программирования Ruby
Фреймворк Ruby on Rails
Язык программирования Python
Язык программирования Go
Язык разметки HTML
CSS — каскадные таблицы стилей
Язык программирования JavaScript