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



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 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
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 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
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 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
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 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
Отсутствует



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



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

Зато код читать после её прочтения значительно легче.
применять, да... применять опыт нужен...
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать