Design Patterns in the 21st Century

153 views
Skip to first unread message

Николай Василев

unread,
Jan 26, 2015, 8:30:23 AM1/26/15
to design-pat...@googlegroups.com
Здравейте, 

В четвъртък ще има meetup, който изглежда интересен:

https://skillsmatter.com/meetups/6957-design-patterns-in-the-21st-century

Предполагам след срещата ще пуснат и записа и ще е интересно да се гледа.

Мислех си тези дни, че може би Java 6, не е много актуална и навярно ще е добре да имплементираме примерите на Java 8. Съответно тази презентация може да ни даде някакви отправни точки.

Ако връзката горе не се отваря, това е описанието на събитието:

------------------------------------
With the advent of lambdas in Java 8, functional programming truly has returned to the mainstream, sitting proudly alongside its object-oriented brother. We now have the tools to create applications that use the best of both paradigms, but our knowledge and understanding of the concepts under the hood needs to catch up.

For years, we've relied on design patterns to guide us to solutions that are clean, simple and practical, but many of the classic OO design patterns laid out in the Gang of Four's book are actually workarounds for the lack of functional programming constructs such as lambdas and higher-order functions. With new tools at our disposal, we can simplify the majority of design patterns, using pure functions to reduce the proliferation of classes that are used once and thrown away. By removing the boilerplate surrounding our code, we focus on the most important part: the behaviour.

In this talk, Samir Talwar will lead you through the classic design patterns, as well as some more contemporary object-oriented principles, showing you how functions can drastically simplify your design, leading to code that is cleaner and more concise.

This presentation will cover a few design patterns, but the focus is on Java 8. It's a slideshow, so it's not live coding, but practically all of the slides are entirely code, so you should be comfortable reading it.

------------------------------------


Поздрави,
Николай

Ivan St. Ivanov

unread,
Jan 26, 2015, 9:27:48 AM1/26/15
to design-pat...@googlegroups.com
Здравейте,

Оня ден слушах podcast с GoF (всъщност само с трима от тях, четвъртият е починал през 2005-та):


Та, хората си казаха, че причината да ги има всички тези pattern-и е, че в езиците за програмиране по онова време са липсвали адекватни конструкции, с които да се имплементират те. Т.е. pattern-ите са един вид workaround за липсваща функционалност в езика. Например през 1994-та е липсвало нещо като абстрактен клас и те са си го измислили.

В този ред на мисли пратената от Ники лекция е много интересна. Тя отговаря на въпроса кои от онези pattern-и са валидни все още днес. Още повече, ако питате някой functional programming guru, той ще ви наплюе и ще каже: за какво са ви тези pattern-и.

Та, въпреки че не съм написал или ревюирал и ред от книгата, бих задал въпроса: колко релевантна би била тази книга днес със съдържанието й от 1994-та. Мисля, че лекцията ще даде сравнителен отговор на този въпрос.

Поздрави,
Иван


--
Получихте това съобщение, защото сте абонирани за групата „Design Patterns Book“ в Google Групи.
За да се отпишете от тази група и да престанете да получавате имейли от нея, изпратете имейл до design-patterns-...@googlegroups.com.
За да публикувате в тази група, изпратете имейл до design-pat...@googlegroups.com.
Посетете тази група на адрес http://groups.google.com/group/design-patterns-book.
За повече опции посетете https://groups.google.com/d/optout.

Николай Василев

unread,
Jan 26, 2015, 4:49:00 PM1/26/15
to design-pat...@googlegroups.com
Здрасти Ванка,

Мерси за коментара и връзката (на мен нещо не ми се отваря, но може да е от моя доставчик) :) 

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

Според мен има смисъл от шаблоните, т.к. най-малкото те карат да мислиш на едро и да виждаш нещата глобално, не само в термините на класове, функции и т.н. Отделно създават език за комуникация, който вярно, много езици за програмиране вече са интернализирали, но въпреки това има идеи, които си струват да бъдат разказани и които все още не са част от повечето езици. 

Относно функционалното програмиране - то не е панацея за всички проблеми (онзи ден Джеймс Гослинг каза същото на лекцията за WaveGlider). То е просто парадигма/имплементация, както са ООП-то или пък логическото програмиране, която служи за по-добро изразяване на идеите. Даже ако се злоупотребява с него (както става много често със залитанията в Scala), можеш да "натвориш" една процедурно-ориентирана програма, написана на функционален език, който има и ОО-характер... В този ред на мисли, струва ми се, че ако използваме разумно конструкциите от функционалното програмиране в Java, ще успеем да направим доста добър материал, т.к. примерите ще са по-елегантни и четими/разбераеми, както и осъвременени.

Колкото до въпроса ти, книгата е нужна, т.к. ние обясняваме не концепциите зададени в книгата на GoF, а съвременното им състояние, т.е. това, до което са се развили през годините (някои шаблони са реално анти-шаблони вече ;), други комбинирани с разни подходи имат много елегантни имплементации (напр. Builder + Fluent Interface)), така че определено има смисъл от нея и ми се струва, че точно в комбинация с новите конструкции в Java, ще се получи доста интересен и полезен материал. :)

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

Поздрави,
Николай
--
Николай Василев
Reply all
Reply to author
Forward
0 new messages