poniedziałek, 8 grudnia 2008

dlaczego eclipse RCP?

Niedawno miałem okazję uczestniczyć we Wrocławskim Democampie i uzmysłowiłem sobie, że mimo iż wielu programistów java korzysta z eclipse to mało z nich wie, że z technologii eclipse można korzystać do tworzenia własnych aplikacji! Ja też kiedyś o tym nie wiedziałem...

Nieco ponad rok temu zainteresowałem się platformą eclipsa i postanowiłem poznać ją bliżej. Wiedziałem, że eclipse składa się z pluginów i często zdarzało się, że instalowałem nowe wtyczki kopiując pliki .jar do podfolderu \plugins. Nic prostszego - ale dlaczego to działa? Jak to się dzieje, że w eclipse pojawiają się nowe opcje, fukncjonalności, ikony? Wydawało mi się, że to jakaś totalna magia i że nigdy nie dowiem się jak to działa. Pierwsze próby zgłębienia wiedzy niestety nie skończyły się sukcesem. Miałem wrażenie, że jest mało materiałów, które pozwalają poznać podstawy architektury eclipse, szczególnie jeśli chodzi o materiały po polsku. Nie udało mi się też znaleźć zbyt dużo informacji o całkowitych podstawach - a wiadomo, że bez podstaw dalej ani rusz.

Teraz, gdy co nieco już wiem chciałbym się tą wiedzą podzielić i przy okazji czegoś nowego się nauczyć - może kogoś to zaciekawi :) Szerzej o eclipse RCP opowiem w osobnym poście - teraz napiszę krótko:

Eclipse oparty jest na bardo ciekawej architekturze, w której mamy do czynienia z ponownym używaniem raz stworzonych komponentów (reusability). Składa się on z kilkudziesięciu (kilkunastu?) bazowych pluginów, wzajemnie od siebie zależnych oraz z pluginów niosących różne funkcjonalności. Opierając się na bazowych pluginach, można stworzyć własną aplikację dodając (za pomocą plugina!) swoją funkcjonalność, design, zachowanie. Minimalny zestaw pluginów, który pozwala na uruchomienie aplikacji to właśnie Rich Client Platform (w skrócie RCP).

To naprawdę nie jest trudne. Jest jedna rzecz, o której trzeba pamiętać tworząc cokolwiek w RCP to zmiana podejścia do programowania. Myśląc o problemie nie można od razu mieć przed oczami zestawu dziesiątek klas i metod. Trzeba się zastanowić jak wykorzystać funkcjonalności z innych pluginów i jednocześnie napisać funkcjonalność w taki sposób, żeby dało się ją kiedyś powtórnie wykorzystać.

Brak komentarzy: