Posted by: Ivko | November 1, 2009

Избор на седмицата (44/09)

Честит ден на будителите. Пиша този блог в полубудно състояние, но няма значение, важното е, че преди векове други българи не са били толкова заспали като мен сега. И така, какво ново и интересно през тази седмица от Java света.

Другото мнение

В началото на седмицата ми попаднаха няколко статии и блогове, които отричат някои от последните best practices в света на обектно ориентираното програмиране: object relational mapping (ORM), dependency injection (DI) и model view controller (MVC). Всъщност последното не се отрича, а по-скоро е предложена негова еволюция. Нооо, всичко по реда си:

Разсъжденията против ORM тук и тук са, че всъщност нищо не се печели от него, а само губим гъвкавостта да си пишем сами заявките. Много лесно може да попаднем в капана Entity Manager-а да генерира тонове ненужен SQL, а от там да загубим ползите от решаването на т.нар. Impedance mismatch проблем. ORM framework-ите вече губят позиции вследствие на все по-популярните No-SQL решения (като Google BigTable и CouchDB).

Втората тема – Dependency Injection, ми е доста присърце. Не че съм пристрастен, но това мнение ми се струва доста слабо. Просто авторът обвинява DI за слабия design на някои програми. Т.е. опитва се да сложи каруцата пред коня. Щях да му отговоря в коментарите, но видях, че няколко души вече ме бяха изпреварили. И въпреки това, помествам и това мнение в тази рубрика.

И накрая, авторът на MVC pattern-а и още един много сериозен C++ guru ни престдавят в сравнително академичен стил наследника на въпросния MVC – Data, Context and Interaction (DCI). Това, което новият концепт ни дава, е преодоляването на разликата между това, което е в главата на потребителя и това, което е в главата на програмиста на системата. Технически погледнато, част от логиката се изнася от data обектите (които си остават едни най-най-обикновени bean-ове) и се пренася в специални интерфейси и класове, наречени роли. Това все още не може да се направи на Java, поради липсата на езикови конструкции като traits и mixins, даващи възможност на един клас да наследява няколко базови класа. Интересно е, но признавам, че е трудничко за четене.

The basics of color

Josh Marinacci, един от всепризнатите спецове по визуално програмиране, отскоро списва специален blog, в който разказва интересни неща за изкуството, визуалния design и usability-то. Тази седмица темата му беше сравнително нетипична за сайтове за програмиране – цветът. И по-скоро как цветът се възприема от човешкото око и как се образуват цветовете. Накрая има препратка към някои сайтове, където могат да ни препоръчат или генерират графична тема за нашия сайт, както и да кажат дали избраната от нас такава е удачна.

Java hashing

В този кратък blog post, авторът ни разказва за Hash Code-а на Java обектите и защо е важно да го дефинираме коректно. Показва ни начини да го правим, както и препоръки в случай, че при неговото изчисляване се ползват атрибути на класа, които не са immutable. Дадени са примери от знаменитата книга на Josh Bloch Effective Java.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: