Ćwiczenie — czytanie kodu na głos

By 30 October 2014 November 5th, 2014 Kurs Javy

Dzisiejszy wpis będzie niecodzi­en­ny, bo zami­ast kole­jnej lekcji Javy (ta będzie w kole­jny czwartek) zro­bimy sobie proste ćwiczenie. 

Pamięta­cie metodę gumowej kaczusz­ki, o której Ania pisała ostat­nio? To inna wer­s­ja tego samego kon­cep­tu. Moim zdaniem ta meto­da jest lep­sza na początku nau­ki, kiedy to niek­tóre ele­men­ty samej skład­ni języ­ka nie są dla nas oczy­wiste i uczymy się także w tym kierunku.

Meto­da ta pole­ga na tłu­macze­niu sobie kodu lin­ij­ka po lin­i­jce i opisy­wa­niu, co dokład­nie się dzieje — ale nie mam tutaj na myśli dokład­nego opisu, co ta lin­ij­ka kodu robi (np. że tutaj utworzy plik albo wyśle maila) a raczej to, jak jest zbu­dowana. Zaletą tej metody jest to, że mamy właś­ci­wie nieskońc­zony zbiór mate­ri­ałów do nau­ki (np. kody źródłowe Spring’a) i nie musimy zgłębi­ać się w to, co naprawdę robi dany kod (ani czy ma funkcjon­al­ny sens), jed­nocześnie jest to naprawdę rewela­cyj­na meto­da nau­ki samego języ­ka i jego elementów!

Zaczni­jmy od przykładu żeby zobaczyć jak pros­ta i jed­nocześnie jak skutecz­na jest to metoda.

Jako przykład wyko­rzys­tam przykład­owy kon­trol­er ze strony spring.io. Gotowe?

Screenshot_1

 

  • w lin­ijkach 1–3 impor­tu­je­my klasy, których będziemy uży­wać i które są w innym pakiecie
  • w lin­i­jce 5 oznacza­my naszą klasę jako kon­trol­er (doda­je­my stereo­typ w postaci adno­tacji), dzię­ki czemu Spring ją właś­ci­wie rozpozna
  • w lin­i­jce 6 tworzymy pub­liczną klasę o nazwie HelloWorldController
  • w lin­i­jce 8 wskazu­je­my, że meto­da, która zna­j­du­je się bezpośred­nio poniżej, będzie uruchami­ana zawsze, gdy ktoś wpisze w przeglą­darce {adres naszej aplikacji}/helloWorld
  • w lin­i­jce 9 deklaru­je­my tą metodę, będzie ona się nazy­wać hel­loWorld, będzie widocz­na pub­licznie, przyj­mu­je jeden argu­ment (para­metr) — obiekt typu Mod­el, do którego będziemy się odwoły­wali po jego nazwie — mod­el; meto­da ta zwró­ci nam ciąg znaków (obiekt typu String), który w tym wypad­ku Spring ‘zrozu­mie’ jako nazwę widoku do wyświ­etle­nia (dzię­ki adno­tacji w lin­i­jce 5)
  • w lin­i­jce 10 wywołu­je­my metodę obiek­tu mod­el (obiek­tu ten jest typu Mod­el) o nazwie addAt­tribute, przekazu­jąc jej dwa argu­men­ty (para­me­try) typu String — “mes­sage” oraz “Hel­lo World!”
  • w lin­i­jce 11 zwracamy z metody ciąg znaków (obiekt typu String) o treś­ci “hel­loWorld”

Jak pewnie zauważyłaś, np w lin­i­jce 10, mimo że wiemy, co robi dana meto­da, nie wnikamy w szczegóły — chodzi nam tylko o kon­strukcję, może­my powiedzieć co ta lin­ij­ka zro­bi (jak w przy­pad­ku lin­ij­ki 5) ale nie musimy. W tym całe pię­kno tej metody — może­my się uczyć na kodzie klas, o których dzi­ała­niu nie mamy pojęcia!

Jeśli nie pamię­tasz co robi jak­iś ele­ment, pamię­taj, że zawsze możesz wró­cić do poprzed­nich lekcji i przy­pom­nieć sobie to, co potrzeba :)

Takie ćwicze­nie możesz w przyszłoś­ci rozbu­dować np. poz­na­jąc nową tech­nologię — czy­ta­jąc jej kod źródłowy i jed­nocześnie mówiąc sobie na głos, co on robi, to świet­ny sposób na sprawdze­nie, jak biegli jesteśmy w określonej tech­nologii lub czego jeszcze musimy się pouczyć.

Tak więc, Kobi­ety do kodu! Przy­jem­nej lektury ;)