
В мире программирования существуют различные идеологии написания кода, которые отвечают за коммуникации (Unix-way), гибкость (Agile), чистоту и читаемость кода (DRY, KISS).
Все они помогают улучшить ваш код, но их уязвимость в единоличности программиста и его продукта, именно поэтому я выработал новую, социальную идеологию написания кода.
Подход к программированию SOSAL основывается на предположении взаимодействия в процессе разработки множества самых различных людей. SOSAL позволяет адаптировать его для максимального удобства и продуктивности всей команды.
SOSAL состоит из пяти принципов, каждый из них будет подробно описан в отдельных абзацах:
Socially-Conscious Code (Социально-осознанный код)
Open by Default (Открытость по умолчанию)
Simple Scalability (Сбалансированная масштабируемость)
Agile Adaptivity (Адаптивность выше догм)
Learning-Driven Logic (Логика, основанная на обучении)
Принцип Socially-Conscious Code гласит о самом главном концепте работы в команде: кооперации. Для создания дружелюбной кодовой базы, каждому последователю идеологии SOSAL необходимо подробно изучить язык, но необычным образом. Самые главные части языка при работе в команде это стиль кода, чистота кода и идиоматические подходы: изучите стиль кода, распространённые методы решения проблем в языке. Это позволит остальным программистам команды быстрее влиться в решение рабочих задач.
Принцип Open by Default призывает к открытости кода, при отсутствии причин для обратного. Также этот принцип рекомендует комментировать код так, как будто его читают те, кто только учится программировать. Понять когда нужно комментировать или нет в этом случае очень просто (при условии что вы достаточно хороший программист): если решение проблемы не возникает машинально, или возникает через достаточно длительный срок, то рекомендуется оставить комментарий.
Принцип Simple Scalability рекомендует писать код, который легко масштабируется. Но стоит сказать, что реализация преждевременных оптимизаций – зло. Простота не есть примитивность, также как сложность не есть крутость.
«Преждевременная оптимизация — корень всех зол.»
Принцип Agile Adaptivity говорит о том, что код должен быть готов к изменениям, даже если они кажутся маловероятными. Обычно, при разработке сложных консольных утилит, я беру готовую библиотеку для обработки флагов и настроек, так как конфигурация на стадии разработки может очень сильно меняться. Стоит соблюдать границу между YAGNI (You Aren't Gonna Need It) и возможностью «эволюции» кодовой базы.
Принцип Learning-Driven Logic призывает писать свой код так, чтобы в процессе написания он учил тебя и других. Рефакторинг – не наказание, а повод применить свои навыки. Эксперименты поощряются в том случае, если вы оставляете после себя «чистый след».
Принципы подхода SOSAL позволили мне как расти личностно, так и помочь расти людям вокруг меня. Закончить статью хочу цепкой, но правдивой фразой:
«Хороший код решает задачу сегодня, отличный код — делает мир лучше завтра.»