SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
Prepered by Artem Levcheko
Любой дурак может написать код, понятный компьютеру.
Хороший программист пишет код, понятный человеку.
(с) Мартин Фаулер
Шаблон
проектирования или паттерн (анг. design
pattern) — повторимая архитектурная
конструкция, представляющая собой
решение проблемы проектирования в
рамках некоторого часто возникающего
контекста.
Бальзам на душу программиста. Зачем? Почему? Какие?
4 Колеса - это шаблон
проектирования
сформированный
временем!
А ты используешь паттерн MVC ?
Порождающие (Creational)
Структурирующие(Structural)
Поведенческие (Behavioral)
Классические паттерны ООП в метафорах. Виды. Примеры.
Вкусно, мощно, эстетически красивее, понятнее, правильнее
Пораждающие паттерны.
шаблоны, по которым можно создать новый
автомобиль и как это лучше сделать.
Singleton
cистема независима от способа создания, композиции и
представления объектов
абстрагируют процесс инстанцирования.
У класса есть только один экземпляр, и предоставляется к
нему глобальная точка доступа.
+ контролируемый доступ к единственному экземпляру.
- Вредность глобальных переменных. Немасшатибруемый
проект.
Поведенческие паттерны.
Strategy
определяют алгоритмы и способы реализации взаимодействия различных объектов и классов.
Используется для выбора различных путей получения
результата.
Отделение процедуры выбора алгоритма от его
реализации.
+ интерфейс кастомизации не совпадает с
публичным интерфейсом и может быть куда
более удобным
- требуется проектировать класс с
возможностью регистрации стратегий.
Струтурирующие паттерны.
Facade
помогают внести порядок и научить разные объекты более правильно взаимодействовать друг с другом.
делать сложные вещи простыми.
унифицированный интерфейс с набором разрозненных
реализаций или интерфейсов.
А всего-то надо повернуть ключ зажигания!
Автомобиль
подать питание с
аккумулятора подать питание на инжектор
включить генератор
Антипаттерны. Фантазии изобретательных
программистов.
шаблоны ошибок, которые
совершаются при решении различных
задач.
Copy and Paste Programming
Spaghetti code
Golden hammer
Magic numbers Hard codeSoft code
Accidental complexity
Boat anchor
Reinventing the wheel
Reinventing the square wheel
Lava flow
Programming by permutation
Blind faith
God Object
Причины использовать паттерны
• Описывает решение целого класса абстрактных проблем.
• Полиморфизм (использовать архитекртурное решение повторно).
• Помогает решать новую задачу не с нуля.
• Улучшить качество документации и сопровождения
существующих систем.
• Антипаттернотерапия
Интересно?Что почитать?
3) http://habrahabr.ru/post/175465/
1) Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес Приемы
объектно-ориентированного проектирования. Паттерны
проектирования
2) Цикл полезных статей на habre:
http://habrahabr.ru/post/84706/

Contenu connexe

Similaire à Design Patterns for Force.com

терминология vol.2
терминология vol.2терминология vol.2
терминология vol.2SBTech
 
C++ осень 2013 лекция 8
C++ осень 2013 лекция 8C++ осень 2013 лекция 8
C++ осень 2013 лекция 8Technopark
 
Шаблоны разработки ПО. Часть 1. Введние
Шаблоны разработки ПО. Часть 1. ВведниеШаблоны разработки ПО. Часть 1. Введние
Шаблоны разработки ПО. Часть 1. ВведниеSergey Nemchinsky
 
чмв лекция №5
чмв   лекция №5чмв   лекция №5
чмв лекция №5student_kai
 
C++ осень 2012 лекция 7
C++ осень 2012 лекция 7C++ осень 2012 лекция 7
C++ осень 2012 лекция 7Technopark
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoFUnguryan Vitaliy
 
Mortal Sins and Guilty Pleasures of Automation Engineers
Mortal Sins and Guilty Pleasures of Automation EngineersMortal Sins and Guilty Pleasures of Automation Engineers
Mortal Sins and Guilty Pleasures of Automation EngineersÞorgeir Ingvarsson
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПОAnton Konushin
 
Автоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharpАвтоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharpgeekfamilyrussia
 
Проектирование админок для #uidesignersmeetup
Проектирование админок для  #uidesignersmeetupПроектирование админок для  #uidesignersmeetup
Проектирование админок для #uidesignersmeetupUIDesign Group
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]Alex V. Petrov
 
Модульные сетки в реальном мире - IQLab Frontend Fusion 2012
Модульные сетки в реальном мире - IQLab Frontend Fusion 2012Модульные сетки в реальном мире - IQLab Frontend Fusion 2012
Модульные сетки в реальном мире - IQLab Frontend Fusion 2012Ecommerce Solution Provider SysIQ
 
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)Ontico
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Sergey Nemchinsky
 
Pedalim vacancy IT HR
Pedalim vacancy IT HRPedalim vacancy IT HR
Pedalim vacancy IT HRIT-HR Club
 
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...Наталия Егорова
 
ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...
ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...
ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...ITMO University
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLNikolai Kireev
 
Software craftsmanship meetup #4
Software craftsmanship meetup #4Software craftsmanship meetup #4
Software craftsmanship meetup #4Pavel Veinik
 

Similaire à Design Patterns for Force.com (20)

терминология vol.2
терминология vol.2терминология vol.2
терминология vol.2
 
C++ осень 2013 лекция 8
C++ осень 2013 лекция 8C++ осень 2013 лекция 8
C++ осень 2013 лекция 8
 
Шаблоны разработки ПО. Часть 1. Введние
Шаблоны разработки ПО. Часть 1. ВведниеШаблоны разработки ПО. Часть 1. Введние
Шаблоны разработки ПО. Часть 1. Введние
 
чмв лекция №5
чмв   лекция №5чмв   лекция №5
чмв лекция №5
 
C++ осень 2012 лекция 7
C++ осень 2012 лекция 7C++ осень 2012 лекция 7
C++ осень 2012 лекция 7
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoF
 
Mortal Sins and Guilty Pleasures of Automation Engineers
Mortal Sins and Guilty Pleasures of Automation EngineersMortal Sins and Guilty Pleasures of Automation Engineers
Mortal Sins and Guilty Pleasures of Automation Engineers
 
Msf Dz
Msf DzMsf Dz
Msf Dz
 
Технологии разработки ПО
Технологии разработки ПОТехнологии разработки ПО
Технологии разработки ПО
 
Автоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharpАвтоматизация design patterns и компактный код вместе с PostSharp
Автоматизация design patterns и компактный код вместе с PostSharp
 
Проектирование админок для #uidesignersmeetup
Проектирование админок для  #uidesignersmeetupПроектирование админок для  #uidesignersmeetup
Проектирование админок для #uidesignersmeetup
 
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
INFOSYSTEMS. How to Measure Software Architecture [1.01, RUS]
 
Модульные сетки в реальном мире - IQLab Frontend Fusion 2012
Модульные сетки в реальном мире - IQLab Frontend Fusion 2012Модульные сетки в реальном мире - IQLab Frontend Fusion 2012
Модульные сетки в реальном мире - IQLab Frontend Fusion 2012
 
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)
Экосистема или зоопарк / Федор Щудло (EastBanc Technologies)
 
Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"
 
Pedalim vacancy IT HR
Pedalim vacancy IT HRPedalim vacancy IT HR
Pedalim vacancy IT HR
 
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
Презентация Дроздова А. (Вице-президента Soft Machines), Владиславлева В.(Зам...
 
ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...
ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...
ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UML
 
Software craftsmanship meetup #4
Software craftsmanship meetup #4Software craftsmanship meetup #4
Software craftsmanship meetup #4
 

Design Patterns for Force.com

  • 1. Prepered by Artem Levcheko
  • 2. Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку. (с) Мартин Фаулер
  • 3. Шаблон проектирования или паттерн (анг. design pattern) — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста. Бальзам на душу программиста. Зачем? Почему? Какие?
  • 4. 4 Колеса - это шаблон проектирования сформированный временем!
  • 5. А ты используешь паттерн MVC ?
  • 6. Порождающие (Creational) Структурирующие(Structural) Поведенческие (Behavioral) Классические паттерны ООП в метафорах. Виды. Примеры. Вкусно, мощно, эстетически красивее, понятнее, правильнее
  • 7. Пораждающие паттерны. шаблоны, по которым можно создать новый автомобиль и как это лучше сделать. Singleton cистема независима от способа создания, композиции и представления объектов абстрагируют процесс инстанцирования. У класса есть только один экземпляр, и предоставляется к нему глобальная точка доступа. + контролируемый доступ к единственному экземпляру. - Вредность глобальных переменных. Немасшатибруемый проект.
  • 8. Поведенческие паттерны. Strategy определяют алгоритмы и способы реализации взаимодействия различных объектов и классов. Используется для выбора различных путей получения результата. Отделение процедуры выбора алгоритма от его реализации. + интерфейс кастомизации не совпадает с публичным интерфейсом и может быть куда более удобным - требуется проектировать класс с возможностью регистрации стратегий.
  • 9. Струтурирующие паттерны. Facade помогают внести порядок и научить разные объекты более правильно взаимодействовать друг с другом. делать сложные вещи простыми. унифицированный интерфейс с набором разрозненных реализаций или интерфейсов. А всего-то надо повернуть ключ зажигания! Автомобиль подать питание с аккумулятора подать питание на инжектор включить генератор
  • 10. Антипаттерны. Фантазии изобретательных программистов. шаблоны ошибок, которые совершаются при решении различных задач.
  • 11. Copy and Paste Programming Spaghetti code Golden hammer Magic numbers Hard codeSoft code Accidental complexity Boat anchor Reinventing the wheel Reinventing the square wheel Lava flow Programming by permutation Blind faith God Object
  • 12. Причины использовать паттерны • Описывает решение целого класса абстрактных проблем. • Полиморфизм (использовать архитекртурное решение повторно). • Помогает решать новую задачу не с нуля. • Улучшить качество документации и сопровождения существующих систем. • Антипаттернотерапия
  • 13. Интересно?Что почитать? 3) http://habrahabr.ru/post/175465/ 1) Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес Приемы объектно-ориентированного проектирования. Паттерны проектирования 2) Цикл полезных статей на habre: http://habrahabr.ru/post/84706/