мар 152012
 

За сбирката

Книга

Книга “Класически шаблони за дизайн”

След първата организационна сбирка (която се състоя на 19.12.20011) и края на първата итерация от проекта за написването на книга за класически шаблони за (софтуерен) дизайн, екипът на книгата реши да се събере отново и втората сбирка ще се състои на 17.03.2012 (събота) от 10 ч, в учебен център “SoftAcad”, намиращ се на следния адрес:

ул. Проф. Кирил Попов 27, кв. Студентски град, гр. София [карта]

За хората, които не са в България и не могат да присъстват физически, ще могат да “присъстват” чрез WebEx конферентен разговор. За целта просто трябва да ни уведомят.

Някои от по-важните теми на сбирката ще са следните:

  1. Състояние на проекта
  2. Ретроспекция на работата до момента (какво мина добре, какво не чак толкова, какво е добре да започнем да правим и т.н.)
  3. Обсъждане на критериите за изключване на несериозни/немотивириани автори от екипа
  4. Организация и продължителност на бъдещите итерации
  5. Избиране на автори и редактори на оставащите теми от книгата

За проекта

Целта на проекта е да се създаде оригинална българска книга с отворен код, по подобие на книгите “Въведение в програмирането с Java” и “Въведение в програмирането със С#”, която предоставя изчерпателна и актуална информация за шаблоните за софтуерен дизайн (design patterns), служейки еднакво добре, както за въведение в материята, така и като справочник. Като евентуално начало на поредица от книги за шаблони за софтуерен дизайн, тази книга ще обхваща най-често използваните (“класически”) шаблони за софтуерен дизайн (GoF patterns). Ако всичко приключи добре, инициативата може да продължи с други поредица от проекти за написване на книги за архитектурни шаблони, интеграционни шаблони, шаблони за конкурентно програмиране и т.н. Друга цел на проекта е да предостави безплатен достъп до електронната версия на книгата. Цената на хартиеното копие ще бъде в размера на разходите за отпечатване и дистрибуция, като сумата събрана от продажбата ще се преизползва за следващи тиражи

Авторският колектив на този проект се ръководи от Цветан Василев, Николай Томитов и мен.

Относно присъединяването на НОВИ автори и редактори

Тъй като се опитваме да ръководим проекта, следвайки модифициран вариант на Scrum методологията, това ни дава възможност да сме гъвкави, относно присъединяването на нови автори и редактори към екипа. В този ред на мисли, ако някой има желание да се включи в проекта, ще бъде добре дошъл(а), стига да е сериозен/сериозна и да има желание да отдели част от свободното си време за създаването на тази книга 🙂 За целта, моля присъединете се към дискусионната група на книгата и чрез нея се свържете с нас. Връзката с организационния екип на проекта можете да осъществите също, като ни пишете на design.patterns.book.team [кльомба] gmail.com. Естествено, ако имате желание да се включите,  можете да дойдете директно на сбирката и да обсъдим включването Ви 🙂

Съдържание на книгата за шаблони за дизайн

Книга за софтуерни шаблони за дизайн се състои от няколко части. Първата част представлява кратко въведение в основните принципи на софтуерен дизайн. Втората излага трите групи “класически” шаблони, а именно за създаване на обекти, структурни и поведенчески. Третата част е своеобразен преход към евентуална книга за архитектурни шаблони и представя многослойната архитектура и шаблона MVC. Четвъртата част евентуално ще съдържа материал, който е важен за изложението но не се вписва в контекста на нито една от предходните три части. Книгата ще следва до някъде класическите концепции от GoF, но няма да е превод на тяхната книга, а ще дава съвременно виждане за шаблоните с имплементация на Java и примери от практическия опит на авторите. Следва планираното съдържание на книгата по глави:

Предговор

Част 1. Софтуерен дизайн – общи положения

Глава 1. Основни етапи при разработката на софтуер Глава 2. Принципи и техники на ООП Глава 3.1. Принципи на обектно-ориентиран дизайн Глава 3.2. Принципи SOLID Глава 4. Кратко въведение в UML

Част 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) Глава 30. Модел-презентация-контролер (MVC)

Част 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/. Следващата итерация (за редакция на написаното до момента) ще започне най-вероятно идната седмица, а тази, за писане на глави, най-вероятно – след две седмици, така че не е късно да се включите. 🙂 Забележка: Фонът на картинката е от творба на Ешер, взета от този сайт: http://www.wikipaintings.org/en/m-c-escher/symmetry-watercolor-55-fish

Share
авг 092011
 
Наков и колектив - Въведение в програмирането със С#

Наков и колектив – Въведение в програмирането със С#

Снощи научих, че официално е излязла и втората книга, в чието писане взех участие – “Въведение в програмирането със С#”.

Малко данни за нея:

Книгата е подробно ръководство по основи на програмирането, структури от данни и алгоритмично мислене. Информацията в нея е изцяло базирана на материала от предшестващата я “Въведение в програмирането с Java”, като на местата, където бе нужно, материалът бе преработен и разширен. Както се подразбира от заглавието на книгата, за илюстрация на концепциите и съпровождащите ги примери, са използвани платформата .NET и езикът C#. Ето и по-синтезирано описание на съдържанието от самият сайт на книгата:

В нея се разглеждат серия уроци по програмиране – от основите на програмирането, среда за разработка, променливи, оператори, масиви и цикли до по-сложни концепции като рекурсия, фундаментални структури от данни и класически алгоритми, списъчни структури, дървета и дървовидни структури, графи, хеш-таблици, оценяване сложността на алгоритми, принципи на обектно-ориентираното програмиране (ООП), LINQ заявки, конструиране на качествен програмен код и решаване на изпитни задачи.

Всяка глава от книгата, следвайки традицията на “Въведение в програмирането  с Java”, е съпътствана с много примери и задачи за упражнение в края на урока. Също така, към книгата има допълнителни материали:

Книгата с отворен код, като електронното издание е безплатно и може да бъде свалено както от официалния сайт – http://www.introprogramming.info/, така и от работния – http://code.google.com/p/introcsharpbook. Книгата може да бъде четена и онлайн на следния адрес – http://www.introprogramming.info/intro-csharp-book/read-online/. По последни данни, хартиеното издание се очаква да излезе в края на септември.

Въпреки, че “Въведение в програмирането с Java” ми е по-любима книга (защото беше първата и защото е свързана с Java), мисля, че “Въведение в програмирането със С#” в доста отношения е по-добра, тъй като наследените печатни грешки от “Въведение в програмирането с Java” са изчистени и с съдържанието е разширено. Въпреки това, намирам мнението на Светлин, че  “Въведение в програмирането с Java” “като цяло не се препоръчва” за начинаещи програмисти, за прекалено крайно. Естествено, той си има своите мотиви да препоръчва новата книга, но според мен и старата книга е изключително качествено четиво и е чудесно ръководство (самоучител) за въведение в програмирането.

Да се надяваме, че с появата на проекти, като тази книга, които събират хора със сходни идеи, интереси и желание да допринасят за обществото без да очакват нещо в замяна, ще се превърнат от единични събития в тенденция и то не само в областта на програмирането. Току виж, все повече хора спрат да се оплакват от състоянието на страната ни, събудят съзидателните сили в себе си и разберат, че единствената надежда да си стъпим на краката като общество и да тръгнем напред се крие в самите нас.

Share