Ответы пользователя по тегу ООП
  • Годится ли такая книга для изучения PHP/ООП?

    @ddd329
    3. Сильно ли сломает сознание, если уже есть какой-то закреплённый материал по докам (нужно ли будет переучиваться)?
    Ну и собственно это основное, что интересует.

    Ну судя по названию, то эта книга больше о шаблонах проектирования с примерами на php. Если вы пишите на php, то думаю однозначно нужно почитать её. Прежде чем покупать, можно с интернета скачать и посмотреть, стоит или нет тратить на нее время и деньги, но лично я бы купил и прочитал ее в любом случае.

    Что касается "ломки" сознания, то многие, в том числе и я, попадали в такую ловушку - при написании проекта вы всегда будете стремится применить какой-нибудь паттерн.
    Ответ написан
    Комментировать
  • Книги и ресурсы по ООП?

    @ddd329
    Если можно, то отвечу чего точно не стоит смотреть/читать, так это то, когда начинают говорить что-то наподобие такого:
    Ну вот представьте что у вас есть кошечка и собачка. Кошечка мяукает, а собачка лает, т.е. они все умеют говорить, но каждый по-своему. Кошечка и собачка это животное, значит выделим базовый класс Animal...

    Да и вообще, когда говорят, что ООП моделирует реальный мир... Бегите сразу от таких преподователей...
    Ответ написан
    3 комментария
  • Нужно ли создавать интерфейсы для одного класса?

    @ddd329
    Смотря какой класс.
    Если это сущность предметной области, то нет, не стоит.
    Если это сервисы, то да, стоит.
    Ответ написан
    Комментировать
  • Как залезть на несколько уровней абстракции ниже, не плодя кривой код?

    @ddd329
    Вот самый подходящий паттерн Цепочка обязанностей
    Ответ написан
    Комментировать
  • Проектирование структуры приложений для начинающего?

    @ddd329
    Могу дать такие советы, как вижу это я.

    Разделить приложение на три уровня:
    1) Presentation - уровень представления, при помощи которого пользователь взаимодействует с приложением;
    2) Business Logic - слой бизнес-логики;
    3) Persistence - слой где хранятся данные, но обычно это реляционная БД.

    Если это настольное приложение, то слой Presentation разбей на три компонента согласно паттерну MVP (Model-View-Presenter), если это классическое веб-приложение, то паттерну MVC (Model-View-Controller).

    Слой бизнес-логики реализуй согласно паттерну Transaction Script, ну либо паттерну Модель предметной области, где для начала будет анемичная модель (anemic model), которая полностью совпадает со схемой БД, а логику храни в сервисах. Далее когда наберешься скиллов, то можешь пробовать из анемичной модели предметной области сделать богатую (rich model), для этого можешь обратить внимание на методологию DDD (Domain-Driven-Design).

    Ну и слой хранения, тут пока тупо через средства ORM...

    Ну примерно так, ничего нового и волшебного тут нету.
    Ответ написан
    Комментировать
  • Как собрать мысли в кучу при большом рефакторинге?

    @ddd329
    Тут могу посоветовать пока только Фаулера и его книгу про рефакторинг ссылка.
    Есть еще одна книга по работе с унаследованным кодом ссылка, но перевод ее настолько ужасен, что как бы и не советую, но те кто читал ее в оригинале, говорят что очень хороша!
    Я считаю, что никакими советами и статьями здесь не обойдешься, надо читать.
    Читай, иначе обречен на неудачу!
    Ответ написан
    Комментировать