Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Напал тут на одну книжку. Патерны. (число прочтений - 8550 )
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Напал тут на одну книжку. Патерны.
18. Февраля 2008 :: 09:28
Печать  
Как далеки мы 1С-ники от народа и нормального научного кораблестроения.
Расслабили нас Нуралиевы ((((((
http://shelek.tmf.ru/archive/books/theory/design_patterns_rus.rar
  
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Напал тут на одну книжку. Патерны.
Ответ #1 - 18. Февраля 2008 :: 10:30
Печать  
Дык это ж как раз "банда четырех" (gang of four).
Оригинал, кстати, датирован 1995 годом, что, случается, смущает неокрепшие умы Улыбка

У нас в 2006 году переиздавалась в изд. Питер, вполне вероятно, что в бумажном виде реально найти.
В отличие от, например, книг Джосатиса по шаблонам и стандартной библиотеке.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #2 - 18. Февраля 2008 :: 10:46
Печать  
kms писал(а) 18. Февраля 2008 :: 10:30:
Дык это ж как раз "банда четырех" (gang of four)....

Как оцениваешь саму книгу?
Стоит ли на неё полагаться?
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #3 - 18. Февраля 2008 :: 11:24
Печать  
Да, хорошая книга.
Я первое издание у товарища в армии выкупил Улыбка
Еще рекомендую почитать Кериевски "Рефакторинг с помощью шаблонов проектирования" - классная книга, точное название, правда, не помню.
Но ее без "Рефакторинга" Фаулера читать не так интересно.
Т.е. тут целая цепочка взаимозависимых книг получается Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #4 - 18. Февраля 2008 :: 11:25
Печать  
У нас в Уфе второе издание уже точно пару лет валяется по разным магазинам. Видимо, народу знания не нужны Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #5 - 18. Февраля 2008 :: 13:31
Печать  
Да, букварь знатный.
Сейчас пообедаю и поеду куплю.
  
Наверх
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Напал тут на одну книжку. Патерны.
Ответ #6 - 19. Февраля 2008 :: 00:43
Печать  
trdm писал(а) 18. Февраля 2008 :: 10:46:
kms писал(а) 18. Февраля 2008 :: 10:30:
Дык это ж как раз "банда четырех" (gang of four)....

Как оцениваешь саму книгу?
Стоит ли на неё полагаться?

Из разряда must have.
Другое дело, что не сразу поймешь, как и где применить.
Про 1С вообще молчу Улыбка

Но, Дим, сам знаешь, есть такие книжки, которые надо прочитать.
Вот у меня местами все внутри восставало против того, что Фаулер в своем Рефакторинге писал.
А прочитать надо было Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #7 - 19. Февраля 2008 :: 01:18
Печать  
kms писал(а) 19. Февраля 2008 :: 00:43:
Вот у меня местами все внутри восставало против того, что Фаулер в своем Рефакторинге писал.

Хм. Ну там есть редкоприменимые вещи. Есть несколько противоположно-направленных шаблонов рефакторинга. Но восставать-то там против чего?
  
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Напал тут на одну книжку. Патерны.
Ответ #8 - 19. Февраля 2008 :: 01:33
Печать  
Ну, например, замена временных переменных вызовом функции.
Понятней - возможно, эффективнее - точно нет.

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

И т.д.

Впрочем, это опять тема из тех, которые лучше обсуждать под пиво с гренками в каком-нидь уютном кабачке.
Ибо с какой стороны посмотришь - там и правда. Улыбка
  

De quelle planète es-tu?
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #9 - 19. Февраля 2008 :: 01:49
Печать  
kms писал(а) 19. Февраля 2008 :: 01:33:
Ну, например, замена временных переменных вызовом функции.
Понятней - возможно, эффективнее - точно нет.
[...]
Впрочем, это опять тема из тех, которые лучше обсуждать под пиво с гренками в каком-нидь уютном кабачке.
Ибо с какой стороны посмотришь - там и правда. Улыбка

Про ортогональные интерфейсы не скажу, ибо не в курсе что это.

А вот про Replace Temp with Query - я тебе ща заряжу ту сторону, с которой правда Фаулера.

Зачем нужно проводить рефакторинг? Есть два варианта.
1. Устранять плохой запах
2. Готовить код к изменениям.

Если по первому варианту все интуитивно понятно (или не понятно, тут уж кому как с носом повезло), то со вторым - интереснее. Ибо в зависимости от сути планируемых изменений направление рефакторинга может меняться на прямо противоположное.
Так вот: замена временных переменных вызовом функции сама по себе не имеет смысла. Ибо действительно практически всегда снижает эффективность и иногда - читаемость. Однако если мы хотим выполнить Extract method, то без замены переменных функциями практически не обойтись.
  
Наверх
www  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Напал тут на одну книжку. Патерны.
Ответ #10 - 19. Февраля 2008 :: 08:31
Печать  
Воот. Именно так, возможно разное направление.
И чтобы нормально идеи воспринимать, нужно прочитать целиком (я об этом как раз хотел сказать изначально).

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

На практике - допустим у нас есть класс, который отрисовывает ячейку.
У него есть метод DrawLine(String СтрокаДляПростоты), который отрисовывает одну сторону рамки.
Нарисовать рамку целиком можно как

DrawLine("Верх");
DrawLine("Низ");
DrawLine("Лево");
DrawLine("Право");

С точки зрения ортогональности, добавление в класс метода DrawFrame(), который отрисовывает рамку целиком, неправомерно.
Однако именно наличие такого законченного метода позволяет проводить дальнейшую оптимизацию отрисовки, не изменяя код клиента, в то время, как первый вариант ненагляден, неэффективен и не подлежит оптимизации.

Т.е. опять мы приходим к противоположным направлениям, и где поиск золотой середины - опять неформальный вопрос, который решается человеком на основе его опыта, интуиции, и возможностей прогнозирования дальнейшего развития создаваемой архитектуры.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #11 - 20. Февраля 2008 :: 09:54
Печать  
Ага, про ортогональность понятно.
Мне кстати понравилось, как эта проблема решена в wxPython (это порт wxWindows под питон, так что думаю, что все, что я ща скау, под wxWindows тоже приложимо).
Там длинные цепочки наследования классов. На каждой следующей ступени добавляется немножко новой "ортогональности". В итоге мы можем выбрать тот уровень ортогональной абстракции, который нам нужен именно сейчас.
Сначала такой подход немного останавливает. Ибо чтобы найти доку к какому-нибудь методу - надо порой последовательно прошерстить доку к десятку классов-родителей. Но когда начинаешь немного ориентироваццо - получается весьма шоколадно.
  
Наверх
www  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #12 - 20. Февраля 2008 :: 10:34
Печать  
посмотрел на всякий определение ортогональности.
очень интересно. мож кто еще хочет понять о чем люди говорят ))
http://ru.wikibooks.org/wiki/%D0%9E%D1%80%D1%82%D0%BE%D0%B3%D0%BE%D0%BD%D0%B0%D0...
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #13 - 12. Марта 2008 :: 12:34
Печать  
Так, книгу 1 раз прочел, пошел на 2-й круг.
Хочу ЕЩЕ хороших умных книжек по данной тематике...
Подскажите?
Наверное Фаулер дальше пойдет, но хотелось бы по проектированию...
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #14 - 12. Марта 2008 :: 12:45
Печать  
kms писал(а) 19. Февраля 2008 :: 00:43:
Из разряда must have.
Другое дело, что не сразу поймешь, как и где применить.

Зато код читать после её прочтения значительно легче.
применять, да... применять опыт нужен...
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #15 - 12. Марта 2008 :: 12:53
Печать  
Выловил: М.Фаулер - Основы UML.
Рекомендуете?
  
Наверх
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #16 - 12. Марта 2008 :: 12:56
Печать  
trdm писал(а) 12. Марта 2008 :: 12:53:
Выловил: М.Фаулер - Основы UML.
Рекомендуете?


советую почитать "Горький вкус Java" - Брюс Тейт ISBN 5-88782-323-2

на слова java лучше внимание не обращать - вещь про анти-патерны Подмигивание
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #17 - 12. Марта 2008 :: 13:00
Печать  
lustin писал(а) 12. Марта 2008 :: 12:56:
советую почитать "Горький вкус Java" - Брюс Тейт ISBN 5-88782-323-2

А что там? Вкратце?
  
Наверх
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #18 - 12. Марта 2008 :: 13:15
Печать  
trdm писал(а) 12. Марта 2008 :: 13:00:
lustin писал(а) 12. Марта 2008 :: 12:56:
советую почитать "Горький вкус Java" - Брюс Тейт ISBN 5-88782-323-2

А что там? Вкратце?


Вкратце - антипатерны и ошибки применении патернов

разделы которые есть
- Кэширование
- Управление памятью
- Объектные техноллогии и антипатерны
- Подключение и привязка
- Использование web- служб
- Культура программирования
- Маштабируемость

и ещё несколько разделов касающихся построений Enterprise приложений

То есть если абстрагироваться от языка Java, это книжка об стандартных ошибках в разработке

Я когда только начинал читать - очень понравился первый рассматриваемый анти-патерн "Волшебная кнопка"  Улыбка
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #19 - 12. Марта 2008 :: 13:20
Печать  
trdm писал(а) 12. Марта 2008 :: 12:53:
Выловил: М.Фаулер - Основы UML.
Рекомендуете?


про UML я недавно осилил

APPLYING UML AND PATTERNS Craig Larman
рус - Применение UML и шаблонов проектирования  Крэг Ларман (ISBN 5-8459-0250-9)

прикол в том что книга помимо теории описывает создание модели реального приложения для POS терминалов

ЗЫ и вот что инетерсно - в конце каждой главы есть список заблуждений в понимании теории - если у тебя есть хотя бы одна мысль соответствующая этому заблуждению - значит ты не понял главу
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #20 - 12. Марта 2008 :: 13:20
Печать  
http://rsdn.ru/res/book/java/bitterjava.xml
Цитата:
Аннотация
Книга представляет собой систематизированный сборник ошибок серверного программирования на языке Java с описанием их причин и возможных решений. В ней приводятся анти-паттерны для таких фундаментальных концепций Java и J2EE, как сервлеты, JSP, компоненты EJB, модели подключений в корпоративных сетях и масштабирование. Книга написана для программистов Java среднего уровня, аналитиков или разработчиков архитектур, не желающих повторять чужие ошибки.

не, яву не хочу...
кто же на яве сервеные решения пишет %)
  
Наверх
IP записан
 
lustin
1c++ power user
Отсутствует


1C *.*, ROR, Java - на
этом остановимся

Сообщений: 907
Местоположение: Москва
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #21 - 12. Марта 2008 :: 13:26
Печать  
Цитата:
не, яву не хочу...
кто же на яве сервеные решения пишет %)


Цитата:
То есть если абстрагироваться от языка Java, это книжка об стандартных ошибках в разработке
  Подмигивание
  

бизнес-процесс как техническое задание прекрасно, только у бизнеса нет процессов; у бизнеса есть желание выжить
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #22 - 12. Марта 2008 :: 13:32
Печать  
не, нафиг, нафиг...
я и в патернах, когда примеры на смолтоке появлялись пропускал нафиг, ну не шарю я в смолтоке...
ничего мне пример этот не раскажет...
больше примеров на С++ нужно. А ты мне яву в нос суешь....
эту книгу я читать не буду! В конце концов это просто неразумно...
  
Наверх
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #23 - 14. Марта 2008 :: 00:17
Печать  
так,
М.Фаулер "Архитектура корпоративных программных приложений" - не фига не понравилась книга, так себе.
да еще и примеры на .Net и Java.....
зато
М.Фаулер - "Основы UML" - сносно толково, да еще и с краткой методикой предпроектного обследоваия.
О_о..., нЭплохо, хоть и 50 страниц тока прочел......
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #24 - 14. Марта 2008 :: 06:11
Печать  
trdm писал(а) 14. Марта 2008 :: 00:17:
да еще и примеры на .Net и Java.....

Дима, Джава - это же тот же С++, только урезанный Улыбка
Лично мне почти пофиг, на чем примеры, С++ или Джава.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Igor-bts
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 103
Зарегистрирован: 14. Июля 2006
Re: Напал тут на одну книжку. Патерны.
Ответ #25 - 14. Марта 2008 :: 07:54
Печать  
  
Наверх
ICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #26 - 16. Марта 2008 :: 09:13
Печать  
artbear писал(а) 14. Марта 2008 :: 06:11:
trdm писал(а) 14. Марта 2008 :: 00:17:
да еще и примеры на .Net и Java.....

Дима, Джава - это же тот же С++, только урезанный Улыбка
Лично мне почти пофиг, на чем примеры, С++ или Джава.

да, возможно. Но оформление книги меня убило... Ты по "Тынц?" сходил, видел букварь.. Оценил оформление?
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #27 - 16. Марта 2008 :: 09:18
Печать  
trdm писал(а) 16. Марта 2008 :: 09:13:
да, возможно. Но оформление книги меня убило... Ты по "Тынц?" сходил, видел букварь.. Оценил оформление?

Сходил, скачал, бросил взгляд, больше не смотрел, некогда Печаль
ЗЫ кстати, я твое "тынц" два дня расшифровывал Улыбка , пока мышку на слово не подвел - Опера (или сайт) подвели, и я не понял, что это ссылка Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2344
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Напал тут на одну книжку. Патерны.
Ответ #28 - 16. Марта 2008 :: 09:20
Печать  
"Тынц" - это такая мода на sql.ru Улыбка
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать