Подкасты Петербургской Группы Alt.Net

Автор подкаста — Петербургская Группа Alt.Net    Профиль подкаста    Фидбэк   
Мы переехали на SPBALTNET.PODFM.RU
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345
Сезон 1 · 20 · 19 · 18 · 17 · 16 · 15 · 14 · 13 · 12 · 11 · 10 · 9 · 8 · 7 · 6 · 5 · 4 · 3 · 2 · 1 · 0

19й Подкаст Петербургской Группы Alt.Net скачать в плейлист

Паттерны проектирования, часть 1

Участники

Что обсуждали

Наш подкаст на RPOD (RSS) и POD.FM (RSS)

spbalt.net.19 @ spbalt.net   62.2 Мб
Код для ЖЖ и блогов

Комментарии

  • Konfuji  23 августа 2010 16:29  #
    А что это такое интересное звучить у вас на фоне?
  • Антон Архипов  24 августа 2010 0:37  #
    singleton - зло! как правильно подметил Антон - присутствение оного затрудняет написание тестов (если вообще не делает это невозможным). С появлением Spring, да и вообще других DI фреймворков, надобность в реализации singleton-a полностью отпала, и иже с ним! :)

    вообще, не даром существуют такие инструменты для поиска singleton-a в коде - Google Singleton Detector (http://code.google.com/p/googl…)

    а вот протаскивать контекст/ссылку на контейнер/etc через весь код, это ещё более большое зло. в проекте нормальной сложности это испортит код так сильно что уж лучше пускай singleton будет.




    хороший подкаст получился.
    • Антон Оникийчук  24 августа 2010 10:30  #
      Я вообще-то не очень правильно там выразился - при нормальном дизайне протаскивать ничего не надо. Просто у каждого объекта класса есть свой набор сервисов с котором он работает. В терминах ООП это набор объектов которым он посылает сообщения. Если этих объектов очень много то проблема в консерватории ИМХО.
    • Петербургская Группа Alt.Net  24 августа 2010 17:43  #
      Антон, спасибо!
      А вообще - любой инструмент зло, когда его неправильно применяют.

      p.s. Слушай, может посоветуешь кого-нибудь из своих коллег в качестве гостя пригласить? Мы бы с удовольствием приняли. — ВБ
  • VictorNS  26 августа 2010 9:02  #
    Singleton - зло, Context - зло вдвойне!
    Никогда не делаем таких вещей в обход IoC - тестировать потом невозможно. Т. е. для контекста всегда получается две имплементации: для работы приложения и для тестирования.
  • luke  27 августа 2010 0:03  #
    Singlton абсолютно нормальный паттерн, просто нужно понимать где он нужен, а где нет. Например, если есть сервис, выполняющий некоторую работу и ремоутинг по которому стучаться клиенты к этому сервису, то связать эти два потока исполнения нельзя никак кроме как через статическую переменную. Тут синглтон очень даже в тему, ад начинается когда синглтонов несколько и они начинают зависить друг от друга...
  • Дмитрий Кудрявцев  27 августа 2010 23:47  #
    вам не нравится singleton? просто вы не умеете его готовить :)
    Вполне возможно писать нормальные тесты. Если синглтон имплементит какой-то интерфейс, то классу клиенту этого синглтона достаточно впихнуть в конструктор референс на этот интерфейс. В этом случае во-первых клиент не знает что ему подсунули именно синглтон, во-вторых интерфейс можно спокойно замокать в тестах. Имхо, нет проблемы. если я правильно понял озвученную проблему "синглтон и юнит тесты"...
    А вообще спасибо за подкаст. Вас всегда интересно слушать.
  • Виктор Черенков  28 августа 2010 1:26  #
    Должен заметить, что действительно, так как синглтон-класс не обязательно статический, (а статические классы - это зло :) ) он вполне может реализовывать интерфейс, и в этом случае замОчить его просто, если в коде клиента не использовать имя класса для получения ссылки на интерфейс синглтона.
    Чтобы это обеспечить, я прибегаю к одному из двух вариантов: использование IoC контейнера или использование well-known объекта, с набором методов, возвращающих интерфейсы на инстансы синглтонов.
    А какой стратегии придерживаетесь Вы?
    P.S.: Спасибо за ваши подкасты, с удовольствием их слушаю!
    • Петербургская Группа Alt.Net  28 августа 2010 22:36  #
      Я использую IoC-контейнер и соответствующий Lifetime Manager. В одном проекте у меня был паттерн Monostate (!!!). --DN
  • pilot34  31 августа 2010 0:39  #
    Очень интересная тема! С нетерпением жду продолжения.
Пожалуйста, зарегистрируйтесь (это быстро!) или войдите, чтобы оставлять комментарии.