Започна работа по книгата “Класически шаблони за дизайн”
Следвайки утвърдената схема за писане на качествени технологични книги с отворен код от големи, но добре организирани авторски екипи (вж. проектите за безплатните книги Intro C#, Intro Java и .NET Framework), започна работата по нов проект: безплатна книга за шаблони за софтуерен дизайн (design patterns) на български език. Проектът има за цел да бъде написана оригинална българска книга за най-често използваните шаблони за софтуерен дизайн (GoF patterns), а след това да бъде продължена инициативата като се включат и архитектурни шаблони.
Екипът на проекта се ръководи от Николай Василев, Цветан Василев и Николай Томитов.
Търсят се автори и редактори!
За момента се работи върху първата част на книгата, която включва класическите GoF шаблони. Търсят се автори и редактори, които да се включат в проекта. Ако имате желание да се включите, моля присъединете се към дискусионната група на книгата и чрез нея се свържете с организационния комитет на проекта. Може да се свържете и директно с екипа на проекта: design.patterns.book.team [кльомба] gmail.com.
Съдържание на безплатната книга за шаблони за дизайн
Безплатната книга за спофтуерни шаблони за дизайн се състои от няколко части. Първите две части включват класическите GoF patterns (по Ерик Гама и бандата на четиримата) – шаблони за създаване на обекти, структурни шаблони и поведенчески шаблони. Тези шаблони са в обхвата на проекта за първия му етап. Книгата ще следва до някъде класическите концепции от GoF, но няма да е превод на тяхната книга, а ще дава съвременно виждане за шаблоните с имплементация на Java и примери от практическия опит на авторите.
За следващия етап на проекта са планирани архитектурни и други шаблони, които на практика също се ползват ежедневно при разработката на софтуер в различни библиотеки, платформи, технологии и frameworks.
Следва планираното съдържание на книгата по глави:
- Предговор
Част 1. Софтуерен дизайн – общи положения
- Глава 1. Основни етапи от разработката на софтуер
- Глава 2. Обектно-ориентиран дизайн
- Глава 3. Кратко въведение в UML
- Глава 4. Основни принципи на дизайна на софтуер
Част 2. Класически шаблони за дизайн
- Глава 5. Шаблони за дизайн – въведение
Шаблони за създаване на обекти (Creational Patterns)
- Глава 6. Абстрактна фабрика (Abstract Factory)
- Глава 7. Строител (Builder)
- Глава 8. Метод фабрика (Factory Method)
- Глава 9. Прототип (Prototype)
- Глава 10. Сингълтон (Singleton)
Структурни шаблони (Structural Patterns)
- Глава 11. Адаптер (Adapter)
- Глава 12. Мост (Bridge)
- Глава 13. Композиция (Composite)
- Глава 14. Декоратор / обвивка (Decorator / Wrapper)
- Глава 15. Фасада (Façade)
- Глава 16. Миниобект (Flyweight)
- Глава 17. Прокси (Proxy)
Поведенчески шаблони (Behavioral Patterns)
- Глава 18. Верига от отговорности (Chain of Responsibility)
- Глава 19. Команда (Command)
- Глава 20. Интерпретатор (Interpreter)
- Глава 21. Итератор (Iterator)
- Глава 22. Посредник (Mediator)
- Глава 23. Спомен/Мементо (Memento)
- Глава 24. Наблюдател (Observer)
- Глава 25. Състояние (State)
- Глава 26. Стратегия (Strategy)
- Глава 27. Шаблонен метод (Template Method)
- Глава 28. Посетител (Visitor)
Част 3. Допълнителни шаблони за дизайн*
- Глава 29. Многослойна архитектура (Multilayer Architecture)
Шаблони от слоя с бизнес логиката на модела (Domain Logic Layer Patterns)
- Глава 30. Модел на домейна (Domain Model)
- Глава 31. Слой от услуги (Service Layer)
- Глава 32. Спецификация (Specification)
Инфраструктурни шаблони (Infrastructure Layer Patterns)
- Глава 33. Късно зареждане (Lazy Load)
- Глава 34. Обект-заявка (Object Query)
- Глава 35. Хранилище (Repository)
Шаблони при разпределени системи (Distribution Patterns)
- Глава 36. Отдалечена фасада (Remote Façade)
- Глава 37. Обект за пренос на данни (Data Transfer Object)
Шаблони от презентационния слой (Presentation Layer Patterns)
- Глава 38. Модел-презентация-контролер и неговите разновидности (MVC, MVP, MVVM)
- Глава 39. Контролер за страница (Page Controller)
- Глава 40. Входен контролер (Front Controller)
- Глава 41. Презентация чрез шаблон (Template View)
- Глава 42. Презентация чрез трансформиране (Transform View)
Базови шаблони (Base Patterns)
- Глава 43. Съответствие (Mapper)
- Глава 44. Регистър (Registry)
- Глава 45. Обект-стойност (Value Object)
- Глава 46. Специален случай (Special Case)
- Глава 47. Множество от записи (Record Set)
- Глава 48. Делегиране (Delegation)
- Глава 49. Обектен пул (Object Pool)
Част 4. Приложения*
* в процес на изясняване
Сайт на проекта – безплатна книга за шаблони за софтуерен дизайн
Официалният сайт на безплатната книга за шаблони за софтуерен дизайн за момента е в Google Code: http://code.google.com/p/design-patterns-book/.
Публичната дискусионна група на проекта е: http://groups.google.com/group/design-patterns-book.
Всички активи по проекта са публично достъпни от неговото SVN хранилище: http://design-patterns-book.googlecode.com/svn/trunk/.
Проектът официално започва на 09.01.2012 г. така че не е късно да се включите.
7 Responses to “Започна работа по книгата “Класически шаблони за дизайн””
Чудесно 🙂
Чух, че са около 70 Design Pattern в момента вярно ли е?
Ами доста са, трудно е да се каже колко точно. Всеки може да измисли нови патърни и да им даде имена, но общо взето има няколко групи design patterns:
– класически design patterns (GoF patterns): http://en.wikipedia.org/wiki/Software_design_pattern
– архитектурни: http://martinfowler.com/eaaCatalog/
– SOA patterns: http://www.soapatterns.org/masterlist_c.php
– патърни за конкурентно програмиране: http://www.cs.wustl.edu/~schmidt/patterns-ace.html
– патърни от специфична платформа (примерно в .NET има IDisposable pattern)
Книжката ще започне с класическите патърни и ще продължи с най-важните архитектурни шаблони за дизайн на софтуерни системи.
Страхотна идея, а кога /приблизително/ ще е готова тази книга?
Kак върви работата по книгата?
Привет Светлин!
Прави ми впечатление следното нещо: има някой неща които са платформено независими т.е. са абстрактни и теоретични. В случая си мисля за алгоритмите, ООП и някой други по-теоретични неща. Тези неща са обясними с прости думи и евентуално псевдо код. ПСЕВДО!
Какво имам в предвид:
Преди време прочетох една книга – “Проектиране на база данни”. В тази книга автора бе обяснил нещата без изобщо да има някакъв код или дори наченка на нещо по-техническо. Други автори не следват този пример. Например в книгата “Програмиране=++Алгоритми” авторите са ползвали “С” (мисля беше) и други по технически изглеждащи и звучащи способи. В повечето книги авторите си ползват езикът с които са свикнали за да презентират знанията и способите.
Въпросът ми е – Защо го правят? Защо и ти го правиш?
Това е въпрос, не е упрек или критика!
Това ли е възможно най-добрият и подходящ начин да се предават знанията? Има ли по-достъпна възможност това да стане?
ПП
Съжалявам ако съм досаден или ако изглеждам хейтър! Все някой трябва да задава и подобни въпроси и да подлага всичко на повторен анализ. Не се сърди;)
Един въпрос който не е свързан с темата към Наков е: Въпреки това, че не се търси толкова много Ruby(Ruby On Rails) то няма да изчезне и е добро за секюрити системи, ползва се доста в някой страни. Защо 1 път в годината не се направи някакъв курс за Ruby?
Поздрави!
Аспарух Трандафоров
Ако се намери преподавател, с радост ще направим курс по Ruby и Rails. Сериозна технология е и се търси. Не колкото Java и PHP, но се търси. Рано или късно ще намерим кой да го преподава. Имайте търпение.