Posty z kategorii: Daj się poznać 2017

MagazineManager – co on właściwie ma zrobić? Cz. 1

Cześć!

Witam Cię, w środowy dzień. Jest to jeden z dwóch postów, które powstaną w tym tygodniu. Czas się zabrać za naszą aplikację.

Od czego by tu zacząć? Może siądziemy od razu do kodu? Nic z tych rzeczy.

Oczywiście są różne podejścia do tworzenia aplikacji. Działka, która się tym zajmuje nazywa się Inżynierią Oprogramowania. Jest to bardzo, bardzo ciekawa nauka z dziedziny informatyki, która zajmuje się wszystkimi fazami cyklu życia oprogramowania. Samo pisanie kodu, to tylko fragment tego cyklu (tak, część z Was, która programowanie miała w szkole/na studiach etc. jako tylko przedmiot jeden z wielu, pewnie się zdziwi, a ludzie, którzy trochę bardziej zawodowo zajmują się oprogramowaniem wiedzą to doskonale i wiedzą również, jak życie weryfikuje założenia, o czym będzie kiedy indziej). Oprogramowanie jest produktem takim samym jak… nie wiem, masło, samochód czy krzesło. (Co to za herezje!) Ma spełniać określone potrzeby techniczne, społeczne i ekonomiczne, dlatego ważnym jest, by zaplanować to, jakie funkcjonalności ma dostarczać, do czego ma służyć, z jakich komponentów będzie zbudowane itd. itd. Ważne też jest, że nauka ta powstaje niejako od tyłu, tzn. nie siada sobie grupka ludzi i mówi dzisiaj sobie coś wymyślimy, tylko stanowi esencję najlepszych i najbardziej efektywnych praktyk stosowanych podczas aktualnie rozwijanych przedsięwzięć informatycznych. Podejście od teorii do praktyki w tym przypadku całkowicie spaliło na panewce.

Zatem zagłębiając się w ten temat możemy uniknąć popełniania błędów przy tworzeniu własnych rozwiązań, tak naprawdę nie tylko z branży IT, bo wiele z tych praktyk da się przetransformować na inne zawody lub dziedziny życia.

Czy skoro jest to takie idealne, to nasze oprogramowanie będzie bezbłędne? Oczywiście, że nie. Tak po prostu się nie da. Ale da się zminimalizować ich wystąpienia. Da się zoptymalizować sam proces wytwarzania oprogramowania. Czy to dużo, czy mało? Fajnie jest o tym pomyśleć.

Skoro inżynieria oprogramowania rozrosła się tak bardzo, to z jakich jej dobrodziejstw ja skorzystam podczas tworzenia MagazineManager’a? Przede wszystkim zastosuję coś, co zwie się modelem wodospadowym lub kaskadowym  wytwarzania oprogramowania. Model ten, dzieli się na fazy takie jak:

  1. Faza określenia wymagań – to jest to, co będziemy robić już następnym razem, tzn. wytworzymy sobie dokument zawierający informację na temat celi jakie chcemy poprzez ten projekt osiągnąć oraz wymagań, jakie postawię przed tworzonym oprogramowaniem.
  2. Faza projektowania – bardzo szczegółowo określimy strukturę wewnętrzną systemu.
  3. Faza implementacji – coś co tygryski lubią najbardziej, czyli w końcu posiedzimy przy kodzie!
  4. Faza testowania – co tu dużo komentować, jak się coś zrobiło no to trzeba zrobić rozruch systemu i zobaczyć czy działa.
  5. Faza konserwacji – ta faza trwa chyba najdłużej, tzn. poprawiamy to, co przestało działać kiedy produkt poszedł do klienta.

Niby takie proste, jasne i logiczne, ale ile razy każdy z nas wpadł w takie sidła, że usiadł, zrobił coś tak od strzału i nagle na koniec nie działa/działa tragicznie/nie spełnia wymagań/jest tak źle zrobione, że nie da się tego w prosty sposób poprawić czy rozwinąć (niepotrzebne skreślić).

Wadami tego systemu jest to, iż błędy popełnione w pierwszych fazach, silnie oddziałują na kolejne etapy rozwoju, przez co ich poprawianie może być drogie (jeżeli mówimy o komercyjnych projektach). Zaletą przede wszystkim łatwość monitorowania tego procesu. Głównie model ten wykorzystywany jest w projektach, które są bardzo ważne i rzadko zmieniają się zachcianki klienta.

Ciekawostką jest też to, że zapętlając punkty 1. do 4. otrzymujemy model spiralny, też często używany. Łatwo buduje się w ten sposób nowe wersje systemu, dodaje kolejne funkcjonalności. Klient ma większy wpływ na bieżący rozwój oprogramowania, przez co zmiana zdania czy wykrycie błędu jest zdecydowanie tańsze. Poza tym pozwala na dopracowywanie projektu. Znaczenie poszczególnych faz jest nieco inne, ale to raczej temat na inny post. Gdzie na przykład stosowany jest tego typu metoda? Hmm… A którą teraz mamy wersję Volkswagena Golfa? VII czy VIII? 🙂

Ktoś może zadać pytanie, czy to projektowanie rzeczywiście jest tak ważne? TAK! Powszechnie twierdzi się, że sama faza projektowania powinna zabierać ok. 70% a nawet 80% czasu rozwoju całego projektu. Lepiej przemyśleć coś 1001 razy niż o raz za mało.

Dobra czas kończyć chyba to pisanie. Tak będzie wyglądał początek zabawy z MagazineManager’em i w sumie z Daj się poznać 🙂 Może wydawać się to nudne, jednak mam nadzieję pokazać wam, jak bardzo takie rzeczy są potrzebne! Osoby bardziej doświadczone, mogą się podzielić własnymi doświadczeniami czy wiedzą!

Zachęcam gorąco do zagłębienia się w temat inżynierii oprogramowania, myślę, że wiele osób świetnie się tu odnajdzie i wyniesie dużo ciekawych wniosków.

MagazineManager – że co przepraszam?

Dobra przyszedł czas na krótkie omówienie tego, nad czym przez najbliższe 10 tygodni będę musiał pracować. Chociaż musiał to tak źle nacechowane słowo… Będę chciał pracować i nie mogę się już tego doczekać.

Tutaj miałem nie lada wyzwanie. Chciałem, żeby ten projekt nie był nie wiadomo jak wybujały. Jak pisałem w pierwszym poście, chciałem również coś w ramach tego bloga przekazać. Dlatego zdecydowałem się na taki stosunkowo prosty program, ale wiele można z nim zrobić. Już wyjaśniam sedno zagadnienia.

Mam takie hobby, że czytam czasopisma: Elektronika dla wszystkich, Młody technik oraz ostatnimi czasy Delta (tak, już można zacząć się śmiać). Szczególnie w tym pierwszym jest wiele projektów, do których chciałbym wrócić, jednak oczywiście nie pamiętam gdzie który się znajduje. Aplikacja będzie taką bazą, która pomoże mi zarchiwizować moje zasoby i ułatwi wyszukiwanie. No i tyle w temacie. Myślę, że nie trzeba nic tutaj już wyjaśniać, zapraszam do dyskusji w komentarzach.

Po dłuższej chwili zastanowienia możecie zauważyć, ile różnych tematów można w tym miejscu poruszyć (modelowanie, MVP, specyfikowanie etc.). Ale o tym już będzie w kolejnych postach dotyczących rozwoju projektu.

Najważniejsze:

No i dobra, to chyba wszystko na ten temat, czekam na pytania i komentarze i życzę dobrej nocy! 🙂

 

Witaj świecie! (Hello world!)

Cześć!

Witam Cię ponownie na moim blogu. Z zamiarem stworzenia tego „pamiętniczka” nosiłem się już dłuższy czas. Niedawno trafiłem na blog Macieja Aniserowicza Devstyle.pl oraz na organizowany przez niego konkurs Daj się poznać. To było ostatecznym bodźcem do stworzenia tego cosia, którego właśnie przeglądasz. Jest to dla mnie baaaaardzo duże wyzwanie, jednak głęboko wierzę, że doświadczenia, które w tym czasie zbiorę, będą budujące, dadzą mi dużo satysfakcji i radości.

Cały czas o sobie, a co Ty będziesz z tego miał/a? Mam nadzieję, że przede wszystkim będziesz się ze mną dobrze bawił/a, a przy okazji może nauczysz się czegoś nowego, świeżego lub spojrzysz na pewne sprawy z drugiej strony. Kto mnie zna, wie, że lubię dzielić się swoją wiedzą lub razem ją zdobywać.

Jak widzisz strona, mimo że napędzana WordPressem, jest dość ascetyczna, ale to z uwagi na fakt, że dopiero uczę się indywidualizować ten system. Wszystko przyjdzie z czasem, jednak jeżeli coś nie działa, masz pomysł na usprawnienie tej strony, a może chcesz mieć swój wkład w to dzieło, to proszę odezwij się do mnie! Sposobów na skontaktowanie się ze mną jest kilka, wszystko opisane jest w zakładce Kontakt.

To pierwszy post w tym serwisie. Miałem milion pomysłów w głowie co i jak napisać, ale jak przyszło co do czego, to dużo uleciało. Zmęczenie, późna pora robią swoje. Na pewno będę edytował ten post, a większe myśli dawał w nowych. W zakładce FAQ znajdziecie odpowiedzi na pytania, które będą się wydawały najczęściej zadawane lub uznam, że coś powinno być w stałej wiadomości.

Jak wspomniałem na stronie głównej, warunkiem wzięcia udziału w konkursie, jest rozwijanie projektu programistycznego. Dokładniej opiszę go w kolejnym poście już ściśle dotyczącym tego tematu.

Powiem jeszcze może na koniec tego wpisu, jakie mam założenia co do dalszej aktywności na tym blogu. Głównym tematem będzie oczywiście projekt. Jednak nie samym kodem człowiek żyje, prawda. Pisanie co post „w pliku abc.java zmieniłem w linijkach 4. – 6. to i to, bo to i tamto”. Nudne jak flaki z olejem. Dlatego będę chciał starał się pisać ten kod tak, aby tłumaczyć pewne zagadnienia, z którymi na codzień do czynienia, tzn. powiemy sobie troszkę o modelowaniu, systemach kontroli wersji, wzorcach projektowych. Przy czym wprowadzam jedno zastrzeżenie (być może to taki firewall przed ewentualną falą hejtu: „Matko, co za głupoty tu pisze… Szkoda gadać…”): JESTEM DOPIERO NA POCZĄTKU SWOJEJ DROGI I UCZĘ SIĘ PODOBNIE JAK WY. JEŻELI UWAŻASZ, ŻE COŚ JEST BŁĘDNE OCZYWIŚCIE O TYM POWIEDZ! Chętnie z Wami o tym porozmawiam, po to żeby i siebie nauczyć, ale też żeby inni mieli kolejne n-te materiały w internecie.

Jak widzisz pod postami jest możliwość komentarzy. Oczywiście po to, żeby móc sobie porozmawiać na zadany temat. Jednak mówię od razu: nie będę tolerował zachowań nieodpowiednich, przekleństw itp. Takie posty będą z automatu wywalane. Ponadto proszę też o szanowanie polskiej mowy i używanie znaków interpunkcyjnych itd. 🙂

Podsumowując, zapraszam do korzystania! 🙂 Spędź ten czas razem ze mną! 🙂

1 2 3