singlepost

курение, ООП и мелочи бытия << На главную или назад  

в общем, покурив и подумав о мелочах бытия, я ВДРУГ(читай ВНЕЗАПНО) осознал, что я придурок, потому что до сих пор не могу нормально строить архитектуру проекта.
где можно почитать что-то ценное и хорошее про то, как более правильно организовать классы и их иерархию.

приведу пример.
рогалик.
надо генерировать мир, надо его прорисовывать, надо думать о нем, надо функции, которые, впринципе, для монстров и героя одинаковые…
у меня образовалось штук 10 вариантов и я даже не могу предположить, какие они должны быть.
начал в итоге с того, что просто набросал все функции, о которых думал. предположил, что потом "рассую" по классам и в момент, когда начну строить костяк\рефакторить, мне будет намного легче.
правильно?

23 ответов в теме “курение, ООП и мелочи бытия”

  1. 22
    Евгений кросовкин ответил:

    макконекл тру

  2. 21
    Александр Лищенер ответил:

    Николай, хз, как-то смутно пишет… хотя, может, я тупой :)

  3. 20
    Евгений Баталов ответил:

    Ыыыыы… А я вот сейчас пытаюсь написать системку olap анализа для своего сайта и плин все хорошо, да в одном месте требуется функциональность особая, а для этого надо интерфейсы усложнять, а я этого не хочу. И альтернативы видимо нет этому… :(

  4. 19
    Николай Митропольский ответил:

    > и рефакторинг мне не понравился.(
    Почему? :(

  5. 18
    Александр Лищенер ответил:

    за последнюю ссыль спасибо.

    и рефакторинг мне не понравился.(
    я что, плохой, все эту книжку любят :( ?

  6. 17
    Александр Лищенер ответил:

    Алексей, спасибо, посмотрю.
    пока что да, язык плюсы.

    насчет мелкомягкого – не знаю, может, маркетологи они и хорошие, но читать что-то от них принципиально не хочетсо =)

  7. 16
    Артём Шалхаков ответил:

    //htdp.org/

    После разберитесь с тем, *зачем* придумали те или иные фичи языка.

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

    ИМХО, конечно же.

  8. 15
    Святослав Панкратов ответил:

    [ Алексѣй Annaero-Kun Крикуновъ ]
    ЗЫ посоветуйте, что-нибудь по рефакторингу, пожалуйста.

    Имеется ввиду с теоретической точки зрения?

    Если кратко, то можно почитать на википедии. Там без лишнего. Но и на полноту не претендует.

  9. 14
    Николай Митропольский ответил:

    > ЗЫ посоветуйте, что-нибудь по рефакторингу, пожалуйста.

    ВНЕЗАПНО
    Мартин Фаулер. Рефакторинг. Улучшение существующего кода =)

  10. 13
    Алексей Крикунов ответил:

    Николай Митропольскiй
    Просто книг с похожим названием, чуть больше чем дофига, выбрать-то тяжело)
    Спасибо.

  11. 12
    Николай Митропольский ответил:

    Ну Фаулер это как бы классика :)

    а что есть с похожим названием? О_о

  12. 11
    Алексей Крикунов ответил:

    Судя по озону – таки да.

  13. 10
    Святослав Панкратов ответил:

    Есть такая книга, от которой я пришел в восторг (все просто, доступно, понятно и не заумно). Я ее еще не дочитал, но уже сейчас я могу сказать, что принципы мне очень понравились, которые там описываются, про совершенность методов и идей я говорить не буду, ибо архитектура, это действительно искусство, которому надо учиться годами. Дак вот, эта книга называется "Руководство Microsoft по проектированию архитектуры приложений 2-е издание". Есть ли она в печатном варианте я не знаю, я ее скачал на сайте MSDN.

  14. 9
    Алексей Крикунов ответил:

    Макконел, Джоэл. Многое о проектировании подчерпнул из книжки Солтера и Клепера "с++ для профессионалов". Конечно, упор делается на проектировании с++ проектов, но, на мой взгля, подойдет для любых проектов.
    ЗЫ посоветуйте, что-нибудь по рефакторингу, пожалуйста.

  15. 8
    Александр Лищенер ответил:

    я хотел достичь концепции "плановой экономики" и доказать, что Сталин был прав, когда ввел госплан… здесь тоже есть разногласия?

    просто меня сильно напрягает то, что заказчик-то я сам себе и, в общем-то, четко могу сказать себе, что именно я хочу…

  16. 7
    Александр Лищенер ответил:

    Совершенный код мне не понравился. это как Солженицын – мощно, но гадко. может быть, я дурак. куплю, перечитаю.

  17. 6
    Денис Федоренко ответил:

    Солженицын в отличие от Макконнелла – мудак и смутьян, у второго же есть реальный (удачный и не очень) опыт, который он и описал в этой книге.
    Книгу сейчас ты нигде не купишь – только с рук.
    Либо в электронном виде.

  18. 5
    Денис Федоренко ответил:

    > где можно почитать что-то ценное и хорошее про то, как более правильно организовать классы и их иерархию

    Почитай Макконнелла, книга "Совершенный код". Там очень много ценных советов, методик и т.п. Книга хороша тем, что она сразу заставляет перестраивать мышление и менять взгляд на программирование.
    Но она как бэ универсальная, каких-то специфических и узкопрофильных методик там не найдешь – только общие и важные принципы проектирования и создания ПО.

    > Вообще есть такая штука, называется "системный анализ", вроде как по нему даже есть учебники

    Я думаю, чтобы читать такие учебники (толковые), надо как минимум проучиться 2 года на математическом факультете. Да и толку от таких учебников мало, там же теория в основном, практика она гораздо более приземленная, как правило.

  19. 4
    Николай Митропольский ответил:

    > потому что до сих пор не могу нормально строить архитектуру проекта.
    если это тебя утешит, то я тоже :) Ещё это осложняется тем, что довольно редко знаешь, что ты хочешь в итоге получить и что на самом деле в итоге будет делать твоя система :)

    > где можно почитать что-то ценное и хорошее про то, как более правильно организовать классы и их иерархию.
    Вообще есть такая штука, называется "системный анализ", вроде как по нему даже есть учебники, но по сути это скорее искусство чем навык, которому можно обучить. Вообще можно для затравки полчитать банду четырёх про паттерны, но в целом оно не даст ответы на твои вопросы. На них даст ответы только опыт :)

    > начал в итоге с того, что просто набросал все функции, о которых думал. предположил, что потом "рассую" по классам и в момент, когда начну строить костяк\рефакторить, мне будет намного легче.
    правильно?

    Ну вобщем-то так и надо, это называется Agile, и на мой вкус, является единственно верной на сегодняшний день методологией проектирования.

  20. 3
    Александр Лищенер ответил:

    есть ли смысл в глобальных переменных?
    просто мне, скажем, в игре, бывает лень создавать дофига методов для изменения какого-то личного поля… это нормально вообще?
    не проще объявить 5-6 глобальных переменных и структур?

    и еще. если класс объявлен в классе, то каким он считается?

  21. 2
    Константин Смотритель ответил:

    1.В каком-то смысле да – читай про синглтон.
    2. Нет, при развитии попадёшь на вилы
    3. Никаким не считается, речь только о его области видимости.

  22. 1
    Александр Лищенер ответил:

    синглтон – не то, наверное.
    какие вилы?
    смотри, у меня есть экземлпляр Hero, которого все активно юзают: изменяют параметры, смотрят, где он находится…
    это все надо бы в отдельные функции интерфейса прописать?
    я один не вижу в этом смысла? это улучшает читабельность кода?

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.