Кто-то задал вопрос о том, чем программирование сегодня отличается от того, что было 20–30 лет назад. Я думал об этом и нашел много отличий. Вот мои мысли по этому поводу.

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

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

Еще одна очень важная вещь — «Чистый код», который делает код понятным, что имеет решающее значение для продолжения разработки, а также для уменьшения количества ошибок.

Кроме того, существуют паттерны, представляющие собой некие стандартизированные решения обычных типов задач.

Поддержка инструментов также намного лучше. IDE могут решить обычные проблемы и выполнить рефакторинг за вас. Это отчасти стало возможным благодаря достижениям в языках программирования: они обладают большей выразительной силой и приближаются к строго типизированным, объектно-ориентированным и функциональным.

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

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

Источник: Magosányi, Árpád (основатель Kodekonveyor)