Forwarded from Unity Architect: архитектура unity проектов
МЫ ИНЖЕНЕРЫ, НЕ ХУДОЖНИКИ
🔹 Разработка ПО не имеет теоретической базы, как математика например
🔹 Разработка ПО это не инженерная дисциплина, скорее творческая, как живопись
🔹 Каждый может программировать. Дети иногда даже лучше чем взрослые
🔹 Каждый кто смог вывести в консоль "Hello World" может быть уверен в том, что он/она программист
Каждый кто согласен хоть с одним утверждением выше, скорее всего не имел дело с достаточно объемными программами (проектами) от 5000 до 10000 строк (LOC - Lines Of Code) в размере.
Это эквивалентно книге в которой 100 страниц это код на ЯП высокого уровня и документацией.
И это лишь минимальный порог, когда мы можем считать программу достаточно сложной.
Средняя игра на soft launch этапе, примерно с неделей геймплея имеет размер около 60-100к строк кода.
Крупные проекты, уже находящиеся на этапе поддержки больше года, от 150к строк.
И это без учета кода самого игрового движка.
Работа в таких проектах без стандартов, систем, принципов, передовых практик просто не возможна.
Потому что ведет к неуправляемому росту сложности и как следствие — к невозможности контролировать сроки. А это 40% почему проекты терпят неудачу.
Инженеры же, согласно IEEE/ACM:
🔸 Выполняют задачу, тщательно оценивая варианты, выбирая нужные подход и инструменты реализации
🔸 Делают измерения, итерируют и калибруют результаты, подтверждая правильность своих предположений
🔸 Уделяют особое внимание упорядочиванию (формализации) процесса
🔸 Создают принципы, стандарты и передовые практики и используют их
Сколько утверждений выше согласуется с тем, что вы делали будучи программистом?
Отсюда выводы:
🔹 Разработка ПО — инженерная дисциплина, а разработчики ПО инженеры, не художники😅
🔹 Заблуждение выше возникло из-за непонимания того, что делает и какие проблемы решает программист
🔹 Потенциальное решение проблем при разработке может лежать в плоскости других инженерных дисциплин
И есть раздел, рассматривающий разработку ПО как инженерную дисциплину:
Как не странно, но начать писать про архитектуру проектов, не начав с базы — нельзя.
Потому ближайшее время статьи будут на темы связанные с SE.
Ставь 👍 если тебе нравится такая движуха
@UniArchitect #software_engineering
🔹 Разработка ПО не имеет теоретической базы, как математика например
🔹 Разработка ПО это не инженерная дисциплина, скорее творческая, как живопись
🔹 Каждый может программировать. Дети иногда даже лучше чем взрослые
🔹 Каждый кто смог вывести в консоль "Hello World" может быть уверен в том, что он/она программист
Каждый кто согласен хоть с одним утверждением выше, скорее всего не имел дело с достаточно объемными программами (проектами) от 5000 до 10000 строк (LOC - Lines Of Code) в размере.
Это эквивалентно книге в которой 100 страниц это код на ЯП высокого уровня и документацией.
И это лишь минимальный порог, когда мы можем считать программу достаточно сложной.
Wang, Software Engineering Foundations, p.13
Средняя игра на soft launch этапе, примерно с неделей геймплея имеет размер около 60-100к строк кода.
Крупные проекты, уже находящиеся на этапе поддержки больше года, от 150к строк.
И это без учета кода самого игрового движка.
Работа в таких проектах без стандартов, систем, принципов, передовых практик просто не возможна.
Потому что ведет к неуправляемому росту сложности и как следствие — к невозможности контролировать сроки. А это 40% почему проекты терпят неудачу.
Инженеры же, согласно IEEE/ACM:
🔸 Выполняют задачу, тщательно оценивая варианты, выбирая нужные подход и инструменты реализации
🔸 Делают измерения, итерируют и калибруют результаты, подтверждая правильность своих предположений
🔸 Уделяют особое внимание упорядочиванию (формализации) процесса
🔸 Создают принципы, стандарты и передовые практики и используют их
Сколько утверждений выше согласуется с тем, что вы делали будучи программистом?
Отсюда выводы:
🔹 Разработка ПО — инженерная дисциплина, а разработчики ПО инженеры, не художники
🔹 Заблуждение выше возникло из-за непонимания того, что делает и какие проблемы решает программист
🔹 Потенциальное решение проблем при разработке может лежать в плоскости других инженерных дисциплин
И есть раздел, рассматривающий разработку ПО как инженерную дисциплину:
Software engineering (SE) — инженерная дисциплина, которая изучает природу ПО, подходы и методологии крупной разработки, а так же теории и законы, лежащие в основе поведения ПО и практики разработки ПО.
Wang, Software Engineering Foundations, p.23, definition 1.6
Как не странно, но начать писать про архитектуру проектов, не начав с базы — нельзя.
Потому ближайшее время статьи будут на темы связанные с SE.
Ставь 👍 если тебе нравится такая движуха
@UniArchitect #software_engineering
Please open Telegram to view this post
VIEW IN TELEGRAM
👍58👎1