...Ведь при попытке связать это всё в одну понятную, масштабируемую и качественную систему, всё начинает быстро приходить к костылям, каким-то явно неэффективным реализациям и просто запутыванию.
В такие моменты начинает казаться, что "идеальный код" и "чистая архитектура" - это красивые абстракции, о которых все говорят и к которым все стремятся, но которые никто никогда не видел :)
Спасибо вам за курс и за возможность спроектировать и реализовать с нуля игру (для меня подобный опыт был первым, и мне казалось, что это будет не так сложно реализовать, пока не приступил к реализации).
Как это сразу делать правильно, в мире знает только Алан Кэй и ещё может быть десяток гуру :)
По большому счёту вся вторая часть Лаборатории посвящена именно этому -- software design. Серебряной пули нету, но скилл проектирования вы точно повысите в несколько десятков раз. В первом приближении нужны подходы вроде TDD и BDD, когда вы сперва формализуете ТЗ, чтобы избежать всех мало понятных и противоречивых моментов, и пишите тесты ( от модульных до интеграционных даже), которые охватывают всю требуемую функциональность, и которые по сути есть формальная спецификация. Но внутренняя архитектура из неё никак не следует, мы только избегаем явных подводных камней.
Ладно, вот вам самый нулевой шаг: начьните с проектирования базы данных, с реляционной модели вашего домена. Поизучайте HtDP, и скоро дам базу донам-неначинающим "Как проектировать ко-рекурсивные программы" (так-то ментатам она доступна за золото рейтинга на сервере).
"Если вы покажете мне код и скроете структуры данных, я ничего не пойму в вашей программе. Однако, если вы покажете мне структуры данных, код скорее всего не понадобится. Он будет очевиден."
Брукс "Мифический человекомесяц" 1975
Post #1929
1.24K

- ❤ 55
- ❤🔥 6
- 🏆 6
- 🥰 1