Лавка Разработчика
3.36K subscribers
402 photos
43 videos
16 files
640 links
Мы тут игры пилить будем, или как?

YouTube: https://youtube.com/@gamedevlavka

Автор: @vavilichev

Все контакты: https://linktr.ee/vavilichev
Download Telegram
МЫ ИНЖЕНЕРЫ, НЕ ХУДОЖНИКИ

🔹 Разработка ПО не имеет теоретической базы, как математика например
🔹 Разработка ПО это не инженерная дисциплина, скорее творческая, как живопись
🔹 Каждый может программировать. Дети иногда даже лучше чем взрослые
🔹 Каждый кто смог вывести в консоль "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