в общем, покурив и подумав о мелочах бытия, я ВДРУГ(читай ВНЕЗАПНО) осознал, что я придурок, потому что до сих пор не могу нормально строить архитектуру проекта.
где можно почитать что-то ценное и хорошее про то, как более правильно организовать классы и их иерархию.
приведу пример.
рогалик.
надо генерировать мир, надо его прорисовывать, надо думать о нем, надо функции, которые, впринципе, для монстров и героя одинаковые...
у меня образовалось штук 10 вариантов и я даже не могу предположить, какие они должны быть.
начал в итоге с того, что просто набросал все функции, о которых думал. предположил, что потом "рассую" по классам и в момент, когда начну строить костяк\рефакторить, мне будет намного легче.
правильно?
14 апреля 2021 в 11:40
есть ли смысл в глобальных переменных?
просто мне, скажем, в игре, бывает лень создавать дофига методов для изменения какого-то личного поля… это нормально вообще?
не проще объявить 5-6 глобальных переменных и структур?
и еще. если класс объявлен в классе, то каким он считается?
14 апреля 2021 в 11:40
1.В каком-то смысле да – читай про синглтон.
2. Нет, при развитии попадёшь на вилы
3. Никаким не считается, речь только о его области видимости.
14 апреля 2021 в 11:40
синглтон – не то, наверное.
какие вилы?
смотри, у меня есть экземлпляр Hero, которого все активно юзают: изменяют параметры, смотрят, где он находится…
это все надо бы в отдельные функции интерфейса прописать?
я один не вижу в этом смысла? это улучшает читабельность кода?
1 апреля 2010 в 16:05
> потому что до сих пор не могу нормально строить архитектуру проекта.
Ещё это осложняется тем, что довольно редко знаешь, что ты хочешь в итоге получить и что на самом деле в итоге будет делать твоя система
если это тебя утешит, то я тоже
> где можно почитать что-то ценное и хорошее про то, как более правильно организовать классы и их иерархию.
Вообще есть такая штука, называется "системный анализ", вроде как по нему даже есть учебники, но по сути это скорее искусство чем навык, которому можно обучить. Вообще можно для затравки полчитать банду четырёх про паттерны, но в целом оно не даст ответы на твои вопросы. На них даст ответы только опыт
> начал в итоге с того, что просто набросал все функции, о которых думал. предположил, что потом "рассую" по классам и в момент, когда начну строить костяк\рефакторить, мне будет намного легче.
правильно?
Ну вобщем-то так и надо, это называется Agile, и на мой вкус, является единственно верной на сегодняшний день методологией проектирования.
1 апреля 2010 в 17:05
> где можно почитать что-то ценное и хорошее про то, как более правильно организовать классы и их иерархию
Почитай Макконнелла, книга "Совершенный код". Там очень много ценных советов, методик и т.п. Книга хороша тем, что она сразу заставляет перестраивать мышление и менять взгляд на программирование.
Но она как бэ универсальная, каких-то специфических и узкопрофильных методик там не найдешь – только общие и важные принципы проектирования и создания ПО.
> Вообще есть такая штука, называется "системный анализ", вроде как по нему даже есть учебники
Я думаю, чтобы читать такие учебники (толковые), надо как минимум проучиться 2 года на математическом факультете. Да и толку от таких учебников мало, там же теория в основном, практика она гораздо более приземленная, как правило.
1 апреля 2010 в 18:00
я хотел достичь концепции "плановой экономики" и доказать, что Сталин был прав, когда ввел госплан… здесь тоже есть разногласия?
просто меня сильно напрягает то, что заказчик-то я сам себе и, в общем-то, четко могу сказать себе, что именно я хочу…
1 апреля 2010 в 18:00
Совершенный код мне не понравился. это как Солженицын – мощно, но гадко. может быть, я дурак. куплю, перечитаю.
1 апреля 2010 в 18:00
Солженицын в отличие от Макконнелла – мудак и смутьян, у второго же есть реальный (удачный и не очень) опыт, который он и описал в этой книге.
Книгу сейчас ты нигде не купишь – только с рук.
Либо в электронном виде.
1 апреля 2010 в 18:01
Есть такая книга, от которой я пришел в восторг (все просто, доступно, понятно и не заумно). Я ее еще не дочитал, но уже сейчас я могу сказать, что принципы мне очень понравились, которые там описываются, про совершенность методов и идей я говорить не буду, ибо архитектура, это действительно искусство, которому надо учиться годами. Дак вот, эта книга называется "Руководство Microsoft по проектированию архитектуры приложений 2-е издание". Есть ли она в печатном варианте я не знаю, я ее скачал на сайте MSDN.
1 апреля 2010 в 18:01
Макконел, Джоэл. Многое о проектировании подчерпнул из книжки Солтера и Клепера "с++ для профессионалов". Конечно, упор делается на проектировании с++ проектов, но, на мой взгля, подойдет для любых проектов.
ЗЫ посоветуйте, что-нибудь по рефакторингу, пожалуйста.