Spring - wzór do naśladowania
Od pewnego czasu obserwuję projekt Spring Framework. Jest to framework aplikacji j2ee, którego częścią jest framework MVC. Cały projekt jest profesjonalnie prowadzony i może być przykładem do naśladowania dla wielu twórców oprogramowania.
Najważniejszą częścią Springa jest innowacyjny kontener implementujący wzorzec dependency injection. Polega on na wkładaniu do aplikacji obiektów, od których aplikacja zależy. Nie jest to odpowiednie miejsce ani pora na zagłębianie się w szczegóły wzorca i jego implementacji. Wspomnę tylko, że pozwala on na większą elastyczność oraz na łatwiejsze testowanie aplikacji.
Spring od momentu powstania robi małą rewolucję w świecie Javy. Był odpowiedzią na toporne EJB2 i Struts. Pokazał lepszą, lżejszą drogę do sukcesu. Zbliżył Javę do świata Agille.
Szybko zyskał uznanie programistów. Przyczyniło się do tego parę czynników:
Innowacyjność i reakcja na zmiany
Pokazał nową lżejszą Javę. Sama idea dependency injection może nie była nowa, lecz Spring pozwolił na jej lepsze poznanie. Ponadto autorzy obserwują tendencje i idą dalej. Powstaje wiele projektów około springowych: Spring Moules, Spring WebFlow, Spring Security itp. Wystarczy trochę czasu, aż któryś z tych projektów wypali na większą skalę. Są też reakcje na dużą popularność Rubiego. Spring 2.0 opiera się na zasadzie “konwencji nad konfiguracją” oraz daje możliwość zagnieżdżania JRuby i innych języków skryptowych.
Kompatybilność wstecz
Podobno od wersji 1.0 spring jest cały czas kompatybilny w dół. Wystarczy wymienić jar’a z biblioteką. Co ważne, cały czas wprowadzają nowe dość rewolucyjne zmiany nie zapominając o wcześniejszych użytkownikach.
Integruj, nie walcz
Cały czas starają się integrować różne frameworki. Nie walczą aby przekonać do swoich rozwiązań. “Jak chcesz możesz używać tego co lubisz. Wystarczy że podepniesz pod nasz kontener”. Np. do obsługi baz danych moża używać: czystego JDBC, Hibernate, IBatis, JDO, JPA, Oracle TopLink. Wszystko to spięte w jednolity interface i drzewo wyjątków.
Podobną filozofię można zauważyć w Pylonsie.
Zbieraj społeczność
Spring jest wydawany na licencji Apache. Pomaga to w budowaniu społeczności wokół projektu. Ludzie piszą swoje podprojekty, udzielają się itp.
I do tego niezły biznes
Nic dodać, nic ująć. Prowadzą szkolenia na całym świecie.
Polecam zapoznanie się z tym projektem: http://www.springframework.org. Myślę, że jest to dobry wzór do naśladowania.