Enumy dla średnio-zaawansowanych

Warszawski JUG ma przerwę wakacyjną, ale gorące trwają. Skrzynki mailowe zapełniają się, a serwery poczty zapychają. W ostatnim czasie pojawiło się kilka (pierwsza, druga, trzecia) dyskusji, w których przewinął się temat użycia enumów w różnych kontekstach. W tym wpisie postaram się ogarnąć część tematu. Przypomnienie podstaw Zakładam, że każdy wie co to jest enum. Jak […]

Wprowadzenie do wzorca MVP z Vaadin w tle – cz. 2 praktyka

W tej części zastosujemy MVP w praktyce. Na początek dla uproszczenia przebudujemy aplet z poprzedniej części, ale nie do MVP, a do czegoś co można nazwać dobrym kodem. „Małe MVP” Nie będę tu pokazywał MVP, ale będzie to coś co też oddaje sens tego wzorca. Standardowe komponenty Swing rozszerzę o implementację prostych interfejsów służących do […]

Wprowadzenie do wzorca MVP z Vaadin w tle – cz. 1 teoria

Wzorzec projektowy Model-View-Presenter (MVP) nie jest szeroko znany w społeczności Javowej. Inaczej… nie był szerzej znany do czasu aż Google nie postanowił go promować jako jednego z elementów GWT. Nie jest to nic nadzwyczajnego ponieważ duża część biznesowych aplikacji pisanych w Javie posiada interfejs webowy. Ten rodzaj GUI znacznie lepiej jest obsługiwany za pomocą wzorca […]

Vaadin a Spring (Web) MVC

Wpis filozoficzny… Ostatnio(czytaj gdzieś w tym kwartale) zostałem zapytany czy integracja Spring MVC z Vaadin ma sens. Odpowiedź w skrócie brzmi… to zależy. Na Nie Po pierwsze jeżeli przyjrzymy się temu co kryje się za pojęciem Spring MVC to odkryjemy, że tak na prawdę jest to Spring Web MVC z bardzo silnym naciskiem na Web. […]

Spring logger service inne podejście

W poprzednim wpisie pokazałem jak napisać własny procesor adnotacji do Springa. W komentarzach Leszek Gawron stwierdził, że można by było automatycznie rozpoznawać typ loggera na podstawie typu pola. Tyle słuszne co do końca niewykonalne. Po pierwsze dlatego, że Logger nie zawsze jest klasą. W przypadku commons-logging logger jest interfejsem. Po drugie dlatego, że logger nie […]

Vaadin jako klient webservice III: wywołanie metody testowej

Część I: Przygotowanie projektu Część II: Podstawowy UI Czas na wielkie łał, czyli wywołanie usługi… w końcu. Adapter interfejsu Ideone I szerzej dowolnej usługi kompilatora. Po co? Oczywiście po to by w razie czego uniezależnić się od dostawcy. Proste. Listing 1. CompilerApi package pl.koziolekweb.vaadin.codecompiler.api; import java.text.ParseException; import pl.koziolekweb.vaadin.codecompiler.data.TestResponse; public interface CompilerApi { TestResponse testFunction() throws […]

Vaadin jako klient webservice II: Podstawowy UI

Część I: Przygotowanie projektu Witam w drugiej części przewodnika “Vaadin jako klient webservice”. Dzisiaj zajmiemy się kilkoma sprawami natury „ogólnej”. Stworzymy szablon UI naszej aplikacji. Własny komponent za pomocą layotów i własnych stylów CSS oraz prosty komponent, który będzie wykorzystywał technologię Server Push (Comet). Dla osób niecierpliwych. Ten cykl ma na celu nie tylko pokazanie […]

Wujek Bob czyści kod – Clean Code – recenzja

Tytuł:Czysty Kod. Podręcznik dobrego programistyAutor:Robert C. MartinRok:2010ISBN:978-83-246-2188-0 Dawno nie było recenzji na blogu. Oj dawno. Chyba ostatnia była o AspectJ. Czas zatem na coś nowego. Książkę Roberta Martina znają chyba wszyscy, którzy programują w czymś więcej niż html (tfu!)i robią to dłużej niż kilka dni. Znają ze słyszenia, a niektórzy nawet ją przeczytali. Jeżeli nie […]

Even i Odd, czyli DRY in Action 2

Przeglądam ostatnio jakiś stary moduł do softu, który piszę. Trafiłem na ciekawy przypadek złamania zasady DRY. W poprzednim wpisie opisałem czym jest ta zasada. Dla przypomnienia DRY, czyli skrót od angielskiego Don’t Repeat Yourself jest zasadą dobrego programowania, która mówi, żeby unikać powtórzeń kodu. Pozwala to na lepsze zarządzanie kodem (dokładnie zmianą kodu) i tym […]

Od ogółu do szczegółu i z powrotem, czyli sprytna refaktoryzacja kodu

Opiszę wam tu pewien mechanizm refaktoryzacji kodu. Nazywam to „refaktoryazcja na trzy” ponieważ w trakcie procesu wykonujemy trzy kroki z czego dwa to refaktoryzacja właściwa. Metoda jest dobra jeżeli mamy na głowie termin, dokumentację i mało czasu. Jej zaletą jest bardzo szybkie prototypowanie i możliwość oddania gotowego kodu. Wadą jest to, że podlega jej tylko […]