Subiektywne spojrzenie na narzędzia i metodologię
2007-01-16 22:49
 Oceń wpis
   

Szkielet aplikacji (ang. framework) - słowo klucz które nie jednego "kupującego" dedykowane oprogramowanie wprawiło w osłupienie. Z szkieletem aplikacji jest jak z szkieletem człowieka. Bez niego nie bylibyśmy w stanie się poruszać tak jak to czynimy. Podobnie jest przy oprogramowaniu.

Właściwie większość oprogramowania z którego korzystamy pośrednio korzysta z "jakiegoś" szkieletu. Przykładowo, coraz popularniejsze telefony komórkowe obsługujące tzw. gry Java. Zdecydowana większość z nich jest stworzona przy wykorzystaniu jednej z dostępnych implementacji specyfikacji J2ME stworzonej przez firmę Sun Microsystems. Idąc dalej tym tropem. Jak myślicie Państwo czy przeglądarka internetowa dzięki której czytacie ten wpis również jest szkieletem? Otóż jak najbardziej. Przecież spełnia podstawowe kryteria szkieletu: umożliwia i wspiera tworzenie produktu, w naszym przypadku oprogramowania do obsługi pamiętników internetowych czyli blogów.

Przy tworzeniu oprogramowania szkielety możemy (mocno uogólniając) podzielić na dwa podstawowe typy. Te z których już dzisiaj świadomie korzysta użytkownik, przykładowo przeglądarka internetowa i te z których korzysta lub będzie korzystał nie do końca świadom tego, że to robi np. wspomniane aplikacje mobilne. Pierwszy typ jest dosyć oczywisty. Można go oczywiście rozwinąć o więcej przykładów, np. nasz system operacyjny również jest swego rodzaju szkieletem dla oprogramowania na nim zainstalowanego. Dostarcza mu przecież interfejs programistyczny pozwalający na implementację założeń biznesowych. Drugi typ jest dużo bardziej złożony. I nawet gdybym chciał, niestety nie miałbym tyle czasu aby omówić go tak dokładnie jak może to zrobić wyszukiwarka Google pod frazą np. framework ahh.. odkrywcze :). Postaram się jednak skupić w najbliższych postach na tym drugim typie, patrząc przez pryzmat wytwarzania oprogramowania webowego przy wykorzystaniu otwartych technologii, głównie aplikacji webowych.

Zaczniemy od określenia wymagań względem naszego produktu końcowego. A konkretniej, uwaga, wymagań funkcjonalnych. To właśnie wymagania funkcjonalne pozwolą określić nam te miejsca w oprogramowaniu które winien wspierać szkielet, a co więcej czasem wykonywać je w całości. Jak to zrobić? Nic prostszego. Przykładowo, powiedzmy, że realizujemy oprogramowanie pozwalające, szybko i bezpiecznie uzyskać pomoc prawną.

Zmiana i rozbudowa interfejsu aplikacji.
W obu przypadkach jeżeli szkielet będzie spełniał założenia wzorca projektowego Model View Controller (o którym szerzej w kolejnych wpisach) będzie można oddzielić warstwę logiki biznesowej (np. obsługi formularzy) od wyglądu (np. kolorystyka, układ formularzy). Umożliwi nam to odpowiedni szkielet aplikacji. Idąc dalej, odpowiedni szkielet aplikacji będzie wspierał budowę jednolitego wyglądu i działania list danych, formularzy czy komunikatów błędu.

Zmiana źródła danych.
Chyba najlepszy przykład do czego zdolny jest odpowiedni szkielet aplikacji. Wyobraźmy sobie, że wdrożyliśmy nasze oprogramowanie. Z każdym dniem ilość przetwarzanych danych rośnie. Nasza dotychczasowa baza danych przestaje nam wystarczać. Co więcej chcielibyśmy wdrożyć dodatkowe rozwiązanie pozwalające na zwiększenie funkcjonalności zarządczych. Odpowiedni szkielet aplikacji pozwala przy nie porównywalnie mniejszym nakładzie kosztów, niż tradycyjne rozwiązania, zmienić źródło danych w "prawie" dowolnym czasie.

Swoistych zalet użycia szkieletów aplikacji jest wiele. Z pewnością, można by dyskutować czy wymieniłem te najważniejsze. Co więcej, z wieloma argumentami w takiej dyskusji pewnikiem bym się zgodził. Nie zmienia to jednak faktu, że użycie szkieletu aplikacji znacząco wpływa na:

  • obniżenie kosztów wytwarzania oprogramowania i jego późniejszej rozbudowy,
  • standaryzuje rozbudowę oprogramowania,
  • zwiększenie bezpieczeństwa i wydajności aplikacji poprzez ramowe podejście do tych kwestii.

W najbliższym czasie poruszę kwestię szkieletów oprogramowania zrealizowanych w popularnym (choć niedocenianym) języku oprogramowania PHP.

 
2007-01-16 21:50
 Oceń wpis
   
    Jak każdy specjalista w swojej dziedzinie, tak i programista czy kierownik zespołu programistów w swojej pracy potrzebują narzędzi. Podobnie jak i w innych przypadkach tak i przy wytwarzaniu oprogramowania cele użycia narzędzi są podobne tj. ułatwienie pracy, tworzenie produktów lepszej jakości czy też opanowanie procesu wytwórczego.
    Aby dobrze zrozumieć istotę narzędzi stosowanych przy wytwarzaniu oprogramowania warto zadać sobie pytanie czym właściwie jest wytwarzanie oprogramowania? Jest to implementacja założeń biznesowych w języku programowania, których finalnym efektem jest produkt (oprogramowanie) pozwalający końcowemu odbiorcy osiągnąć wyraźne korzyści dzięki jego użyciu. Powyższe zdanie, w moim odczuciu, dobrze oddaje istotę wytwarzania oprogramowania. Mamy tutaj założenia biznesowe często precyzowane w formie np. wymagań funkcjonalnych. Jest finalny efekt czyli samo oprogramowanie. Jest i końcowy odbiorca, który bardzo często w sposób "brutalny" decyduje o tym czy oprogramowanie spełnia jego wymagania czy też nie poprzez opcję np. odinstaluj czy usuń zakładkę ;).
    Oczywiście powyższe kilka zdań nie uwzględnia w żaden sposób złożoności samego procesu wytwarzania oprogramowania czy też komunikacji z odbiorcą. Tych i wiele innych tematów, mniej lub bardziej związanych z tworzeniem oprogramowania będę starał się podejmować na tym blogu. Oczywiście, jak sam podtytuł wskazuje będą to moje subiektywne spojrzenia, wiele spraw pominę, wiele spraw przemilczę. Jeżeli jednak dojdziesz do wniosku, że warto napisać na jakiś temat -> pisz do mnie.
 


Najnowsze komentarze
 
2011-05-22 06:09
egzekutor do wpisu:
Szkielety aplikacji cz.1
I chyba się nie doczekamy. Pewnie biznes jakiś Pan rozkręcił i nie ma czasu.
 
2011-05-21 14:21
kredytsamochodowy.pc.pl do wpisu:
Słowem wstępu
Nie ma co kadzić, ale bez informatyki, ani be ani me.
 
2011-05-19 21:22
parabankier do wpisu:
Słowem wstępu
I w przyszłościowym biznesie.
 



 
 



Kategorie Bloga




Archiwum
 
Rok 2007