Триады программирования
Это своего рода передача субъективного восприятия объекта вычислительному устройству, по определению лишенного понятия о субъективизме. Я бы назвал это термином «творческая формализованность» (или может быть «формализованное творчество»?).
Мне нравится идея о дуализме. Нравится раскладывать то, что я делаю, на диалектические триады. Нравится связка «Cloud + Big Data + HPC», кофе с молоком и мультипарадигмальность в современных ЯП.
Позволю себе немного такой тонкой, но имеющей достойное место в программировании, материи как философия.
В любой деятельности важно определить для себя те высокоуровневые принципы, соблюдение/стремление/достижение которых и является показателем качества результата (да, я думаю, что результат обладает аспектом «качество»). Очень важное качество таких принципов:
- принципы не являются взаимоисключающими;
- принципы закладываются в начале, «пронизывают» деятельность, с ними связанную;
- из n-принципов в результате могут быть соблюдены на только (n - 1) принципов.
Типичный пример в программировании: CAP-теорема, утверждающая, что в мире распределенных вычислений возможно обеспечить выполнение только 2-ух из трех перечисленных свойств: согласованность данных (consistency), доступность (availability), устойчивость к разделению (partition tolerance).
Ниже я представлю свое понимание того, как относиться к задаче программирование, чтобы пореже задаваться извечным вопросом программиста, вне зависимости от религиозной принадлежности (ООП, АОП, SOA, DDD... язычник) и биологического ритма (Scrum, XP, TDD, «я давно сорвал дедлайны»).