Hello world vol. 1625761574

So recently I’ve thought about reactivating this blog for self-development purposes. I’ve been a software tester for more than 3 years now, but I feel that I still know too little. This would be a small haven for my hacks, tils and research plans that I intend to put into action 馃檪

Anks @ Pilot Bootcamp – Day 10

Dzisiejsze zaj臋cia rozpocz臋艂y si臋 2 godziny p贸藕niej, o 11 – wykorzysta艂am to na obskoczenie paru ingressowych misji, bo do bad偶a ju偶 niedaleko.

Nowych task贸w nie by艂o, bo mieli艣my wci膮偶 do doko艅czenia sporo z poprzednich dni. By艂o ju偶 czu膰, 偶e jest luz, bo najgorsze za nami, a ludzie po wczoraj skacowani 馃槢

Pobawi艂am si臋 dalej Boostrapem, zrobi艂am konwersj臋 paru stron na hamla, doda艂am I18n i translacje. Z tymi ostatnimi mocno si臋 m臋czy艂am, bo wywali艂y mi testy, w adresach by艂o podw贸jnie “en/en”, no i przesta艂 mi dzia艂a膰 switcher j臋zyk贸w. Ale si臋 uda艂o 馃槈 Na sam koniec dosz艂a jeszcze paginacja i podpi臋cie pod New Relica. Z du偶ych rzeczy zosta艂a mi jeszcze autoryzacja Facebooka, wysy艂anie maili po rejestracji i jeszcze wrzucanie obrazk贸w na S3. Ale najpierw chc臋 doprowadzi膰 do porz膮dku testy (pozamienia膰 stringi na translacje), doko艅czy膰 t艂umaczenia i przekonwertowa膰 widoki na hamla.

Aktualnie appka prezentuje si臋 tak:聽http://bootcamp8-matisnape.herokuapp.com/

W tym miejscu (chocia偶 czyni艂am to te偶 osobi艣cie) chcia艂am podzi臋kowa膰 mentorom i organizatorom za te zajebiste 2 tygodnie roboty. By艂o ekstra i mam nadziej臋, 偶e w przysz艂o艣ci nie zapomn臋 tego, czego si臋 nauczy艂am i b臋d臋 mog艂a si臋 odwdzi臋czy膰 mentorowaniem na kolejnych edycjach. Ale zanim to nast膮pi, chc臋 jeszcze nauczy膰 si臋 paru rzeczy, poanalizowa膰 to, co kodzi艂am, na spokojnie. No i chcia艂abym jako艣 zgrabnie przej艣膰 do robienia devowych rzeczy, pokodzi膰 jakie艣 swoje rzeczki.

Og贸lnie super inicjatywa i 艣wietne jest to, 偶e by艂a to praca indywidualna, a nie w grupach.

Z ciekawostek mojego projektu:

  • zakodzi艂am 433 commit贸w
  • najwi臋cej commitowa艂am w okolicach godz. 16
  • z 93 issues, mam zamkni臋tych 75 i kolejnych kilka czeka na sprawdzenie
  • 12 mentor贸w klonowa艂o moje repo do sprawdzania
  • doda艂am sobie hooka na Slacka i teraz przychodz膮 mi notyfikacje o buildach i deployach <3

Anks @ Pilot Bootcamp – Day 9

W ko艅cu zacz臋艂am kuma膰. Po logowaniu to wszystko ju偶 proste. Napisa艂am praktycznie samodzielnie rejestracj臋 u偶ytkownika z hashowaniem has艂a – po Bootcampie dodam jeszcze edytowanie konta i usuwanie.

Doda艂am te偶 redirect po zalogowaniu do poprzedniej strony (czyli tej, z kt贸rej zosta艂o logowanie wywo艂ane).

Nast臋pna rzecz to 艂adne URLe dla samochod贸w i randomowe dla place rent贸w – przy tym ostatnim wjecha艂a migracja do bazy danych – ogarn臋艂am z pomoc膮 blogask贸w i stack overflow贸w. Jak ju偶 b臋d臋 haxxorem, to te偶 b臋d臋 pisa膰 takiego blogaska, 偶eby pomaga膰 takim pocz膮tkuj膮cym userom jak ja teraz.

No a poza tym – zacz臋li艣my bawi膰 si臋 z Bootstrapem, wi臋c aktualnie appka wygl膮da ju偶 nieco 艂adniej 馃檪 Pokaza艂am j膮 ju偶 QA-om to znale藕li par臋 bug贸w, trolle jedne 馃槢 Przy okazji dowiedzia艂am si臋, 偶e na heroku nie mia艂am ustawionego rake’a na migracje, w zwi膮zku z czym logowanie i rejestracja mi nie dzia艂a艂y.

Na koniec dnia mieli艣my prezki potencjalnych pracodawc贸w (to w sumie fajne uczucie, 偶e niewiele nas dzieli od tego, 偶eby zosta膰 junior devem), podzi臋kowania dla wszystkich mentor贸w i niezast膮pionej Emilii, kt贸ra ogarn臋艂a ca艂y event i celebracja piwem.

 

Anks @ Pilot Bootcamp – day 8

Dzisiaj drugi dzie艅 niekumania zbyt wiele. Sesje i zrobienie logowania jest dla mnie wci膮偶 nie do ko艅ca oczywiste, chocia偶 rozumiem schemat dzia艂ania – ca艂y czas mam problem z okre艣laniem聽dost臋pno艣ci parametr贸w i ich przekazywaniem. P贸藕niej ju偶 by艂o nieco lepiej. No ale podobno i tak tego nikt nie robi od zera, tylko u偶ywa Devise’a ;D

A jak sobie zacz臋艂am to analizowa膰 wieczorem (pisz膮c testy, a jak), to tak dosz艂am do wniosku, 偶e przez te dwa tygodnie przerobi臋 zakres ca艂ego Hartla. Oczywi艣cie, 偶eby zakuma膰 wszy艣ciute艅ko, planuj臋 po powrocie przerobi膰 to raz jeszcze plus ewentualnie zrobi膰 Odin Project.

Tym niemniej, prawda jest taka, 偶e gdyby nie Bootcamp, nie mia艂abym szans na ogarni臋cie Rails贸w po艣wi臋caj膮c temu 1-2h dziennie. Nie mia艂oby kiedy si臋 to utrwali膰, nie wspominaj膮c o tym, 偶e bez niego nie pozna艂abym hak贸w na skuteczne debuggowanie,co mega pomaga.

A, jestem te偶 zajebi艣cie wdzi臋czna ludziom, kt贸rzy publikuj膮 swoje rozwi膮zania problem贸w online na swoich blogaskach. Nic bym nie zrobi艂a bez nich 馃榾

No wi臋c, powolutku lecimy dalej : )

Anks @Pilot Bootcamp 7

Ju偶 rozumiem coraz mniej i robi臋 sobie coraz wi臋ksze zaleg艂o艣ci 馃檨

Uda艂o mi si臋 raptem doda膰 dodatkow膮 kolumn臋 do bazy danych do trzymania ceny place renta, obliczanej na podstawie czasu place renta i cen za godzin臋/dzie艅, do tego testy i jeszcze zamykanie otwartych place rent贸w, kiedy usuwa si臋 parking.

Anks @ Pilot Bootcamp – day 6

O ile przy samochodach by艂o prosto (bo jedyne paramsy przekazywane przy tworzeniu to model i numer rejestracyjny, a dane ownera s膮 brane z aktualnego usera), to ju偶 w przypadku parking贸w czy place rent贸w zrobi艂o si臋 skomplikowanie. W place rentach jest tak, 偶e znajduj膮 si臋 one w routesach parkingowych (a wi臋c jest co艣 takiego jak: /parkings/1/place_rents/new), co robi dodatkow膮 magi臋 w formularzach i samych kontrolerach, co do tej pory jest dla mnie trudne do ogarni臋cia.

I to jedyna rzecz, kt贸r膮 sprawia mi du偶o problem贸w. B臋d臋 musia艂a poczyta膰 wi臋cej.

Dzisiaj zacz臋艂am w ko艅cu testy integracyjne, ale 偶eby nie by艂o zbyt prosto, to nie ma Rspeca, tylko defaultowy Minitest, nie ma faktorek tylko seedy w bazie i reseedowanie bazy po ka偶dym te艣cie (czyli to, co b臋d臋 robi膰 po powrocie z urlopu :D). Napisanie tego to piku艣, najwi臋kszy problem przysporzy艂 mi niespodziewanie js i fakt, 偶e testy lec膮 w losowej kolejno艣ci. I tak, je艣li test z usuwaniem obiektu z bazy poleci pierwsze, to p贸藕niej mia艂am problem z pokazywaniem widoku konkretnego parkingu. A wszystko dlatego, 偶e przeszkadza艂o mi, 偶e w headlessowym te艣cie na usuwanie obiektu, nie pojawia si臋 popup z potwierdzeniem usuni臋cia. Z godzina na to zesz艂a, ale ju偶 jest git. Teraz ci膮g dalszy nadrabiania, 偶eby by膰 tylko jeden dzie艅 w plecy 馃檪

A, i moj膮 appk臋 mo偶na ju偶 ogl膮da膰 tutaj:聽bootcamp8-matisnape.herokuapp.com

Anks @ Pilot Bootcamp – day 5

Pi膮tek to dzie艅 walki z widokami dla poszczeg贸lnych akcji – tworzenia, edytowania i usuwania oraz wy艣wietlania wszystkich obiekt贸w klasy dla konkretnego usera i pojedynczych. Najwi臋cej zachodu by艂o z partialami dla b艂臋d贸w i komunikat贸w zwi膮zanych z udan膮 lub nieudan膮 akcj膮 oraz b艂臋dami walidacji.聽Najprostsze w sumie by艂o stworzenie seed贸w. Ale to by艂y dopiero zadania z czwartku.

Pi膮tkowy hardkor to kontrolery do poszczeg贸lnych klas. Dowiedzia艂am si臋 tutaj o zagnie偶d偶aniu params贸w oraz o zabezpieczaniu params贸w przed manipulacjami w requestach.

 

 

Anks @ Pilot Bootcamp – day 4

Wi臋kszo艣膰 dzisiejszego dnia聽zaj臋艂o mi pisanie kolejnych test贸w do walidacji modeli oraz pisanie migracji.

Migracje przysporzy艂y mi troch臋 mindfucka – a konkretnie relacja聽1 do 1 pomi臋dzy adresami a parkingami i utworzenie odpowiednich kluczy.聽Problem polega艂 na tym, 偶e si臋 zamota艂am, gdzie powinien by膰 klucz obcy i w pewnym momencie mia艂am klucze linkuj膮ce do siebie nawzajem w obu modelach b臋d膮cych ze sob膮 w relacji. Dw贸jka mentor贸w stwierdzi艂a, 偶e nie powinno to przeszkadza膰, ale przyszed艂 senior i rzek艂, 偶e jednak robi bubu. Po usuni臋ciu nadmiarowego klucza sta艂a si臋 magia : )

Dalsze testy to ju偶 piku艣 – najtrudniejszy z nich dotyczy艂 walidacji kodu pocztowego. Musia艂am do walidacji tego偶 stworzy膰 regexpa, ale to ju偶 umiem po edX i dzi臋ki聽Rubularowi : )

W ko艅cu, ko艂o 15 zabra艂am si臋 za kolejne zadania – wchodzimy ju偶 w kontrolery i widoki, co艣, co dla mnie zawsze by艂o czarn膮 magi膮. Ale z pomoc膮 guides贸w i materia艂贸w z internalowych warsztat贸w w netguru – uda艂o si臋 stworzy膰 stron臋 startow膮 z wszystkimi parkingami (tutaj zapozna艂am si臋 z zagadnieniem n+1 zapyta艅), potem stron臋 konkretnego parkingu. 呕eby 艂atwiej mi si臋 tam wszystko ogl膮da艂o, stworzy艂am sobie nawet seedy : )

Zabawa zacz臋艂a si臋 przy formularzu do tworzenia nowych parking贸w. Troch臋 wyskoczy艂am naprz贸d (bo nie doczyta艂am zadania do ko艅ca :trollface: ) i stworzy艂am formularz z wszystkimi polami – bo przy tworzeniu parkingu trzeba by tworzy膰 tak偶e obiekt klasy adresu i jeszcze ownera, a tu z kolei pojawia si臋 problem nested attributes i strong parameters. To wi臋c zostawi艂am sobie ju偶 na p贸藕niej, natomiast chcia艂am chocia偶 ogarn膮膰 do ko艅ca to jedno zadanie i napisa膰 wy艣wietlanie b艂臋d贸w walidacji przy pr贸bie wys艂ania formularza.

Po kilku godzinach (dopiero ko艂o 22 si臋 podda艂am) poleg艂am i zadowoli艂am si臋 wy艣wietlaniem listy wszystkich b艂臋d贸w bez 偶adnego formatowania na samej g贸rze formularza (zdefiniowane w kontrolerze ;/). Wed艂ug guides贸w za艣 powinnam m贸c stworzy膰 sobie tak膮 list臋 z 艂adnym formatowaniem przez zdefiniowanie w widoku + jeszcze wy艣wietla膰 b艂臋dy przy odpowiednich polach, ale za choler臋 nie chcia艂o si臋, no ;/ Pr贸bowa艂am nawet jakiego艣 gema helpera ze starszych guides贸w, ale te偶 dupa. Nawet patrzy艂am w inne projekty, ale tam w艂a艣ciwie w og贸le nie widzia艂am 偶adnych definicji b艂臋d贸w 馃榾

Dosz艂am wi臋c do wniosku, 偶e dzisiaj ju偶 nic nie wymy艣l臋 (chocia偶 spa膰 mi si臋 nie chce, bo nie daje mi to spokoju : |) i zajm臋 si臋 tym jutro.

Trzeba przyzna膰, 偶e dzisiaj poziom ekscytacji znacznie mi skoczy艂 – ciesz臋 si臋 jak dziecko, jak w ko艅cu co艣 mi si臋 poka偶e i nie wywali mi b艂臋du – magia : D

Anks @ Pilot Bootcamp – day 3

Dzisiaj wiele do dodania nie b臋d臋 mia艂a, gdy偶 wi臋kszo艣膰 dnia rozkminia艂am pozosta艂e zadania z dnia poprzedniego, czyli testy :B Strasznie pr贸bowa艂am ogarn膮膰, dlaczego co艣 dzia艂a tak, a nie inaczej. Uda艂o mi si臋 za to chyba mniej wi臋cej debugowa膰 lepiej w konsoli, 偶e czasami trzeba zrobi膰 dodatkowe warunki typu require. Oraz najwa偶niejsze, po kt贸rym mi si臋 nieco 藕le zrobi艂o – mianowicie nie mia艂am na jednym parametrze settera, w zwi膮zku z czym nie mog艂am nadpisywa膰 tego parametru w te艣cie – w celu obej艣cia tego pozna艂am hacka, metod臋 instance_variable_set. A dlaczego 藕le? Bo zamiast doda膰 settera w klasie (kt贸rego nie mog艂abym, bo inaczej nie pasowa艂oby do klucza test贸w :P), musia艂am tak napisa膰 test, 偶eby si臋 zgadza艂o 馃槢

Pod koniec dnia dopiero zaj臋艂am si臋 tematem dzisiejszym, czy generowaniem nowej appki railsowej, modeli i migracji. Zrozumia艂am migracje i ciesz臋 si臋, 偶e mo偶na je generowa膰, a nie pisa膰 totalnie od zera.

Dzie艅 zako艅czy艂am na pisaniu asocjacji mi臋dzy modelami – jutro b臋d臋 je testowa膰. Powinno p贸j艣膰 g艂adko, zwa偶ywszy, 偶e u偶ywam tego w konsoli na stagingach przy sprawdzaniu test贸w. Z drugiej strony, testy do metod te偶 mia艂y p贸j艣膰 g艂adko, a jednak zaj臋艂y mi wucht臋 czasu 馃榾

Anks @ Pilot Bootcamp – day 2

Dzisiaj ju偶 nieco lu藕niej, chocia偶 znowu perypetie z jedzonkiem – tym razem przyjecha艂o bezpo艣rednio do biura. Mo偶e tak nawet b臋dzie lepiej.

Dalszy ci膮g kodzenia boli troch臋 mniej, aczkolwiek dzisiaj rano mia艂am lekki opad entuzjazmu – podskoczy艂 ponownie, gdy dosz艂o pisanie unit test贸w ;D Na pocz膮tku jednakowo偶 znowu zaliczy艂am mindfuck w stylu “Yyyyy, od czego tu mam zacz膮膰?”, ale par臋 zapyta艅 do google i odwo艂anie do prezki uczucie to zniwelowa艂o.

Ale najpierw trzeba by艂o doko艅czy膰 聽albo fixowa膰 zadanka z dnia poprzedniego – czyli znowu sortowanie Array贸w i refaktorowanie. Fun fact: napisa艂am 藕le metod臋 i okaza艂o si臋, 偶e mimo to testy przechodz膮 – bo nie by艂o testu sprawdzaj膮cego t臋 konkretn膮 metod臋 xD

Poza tym jeszcze wysz艂o, 偶e hook do rzucania b艂臋dem, je艣li spr贸buj臋 pu艣ci膰 commita bez numeru issue, nie dzia艂a w przypadku commitowania za pomoc膮 appki Githuba. Spodziewa艂am si臋 馃槢

Przez commitowanie tym sposobem zepsu艂am sobie te偶 merge’a brancha do mastera – trzeba by艂o poprawia膰聽commit message, 偶eby 艂adnie si臋 pod issue podpi臋艂o. Dzi臋ki temu przy okazji dowiedzia艂am si臋, w jaki spos贸b wygenerowa膰 sobie tymczasowe has艂o na GH, je艣li mam aktywne 2-Factor-Authorization oraz umiem ju偶 wychodzi膰 z Vima xD

Testy w Minite艣cie opanowane wzgl臋dnie. Znalaz艂am nawet fajny artyku艂, kt贸ry pozwala na upodobnienie sk艂adni test贸w do Rspeca dzi臋ki Minitestowemu DSLowi – mo偶e si臋 pobawi臋 przy okazji, jak zostanie mi czas. Teraz jak na to patrz臋 to sobie tak my艣l臋, 偶e faktorki w projekcie nie s膮 a偶 takie niezb臋dne – mog臋 przecie偶 stworzy膰 now膮 instancj臋 klasy.
Dowiedzia艂am si臋 te偶, jak sobie dobrze debugowa膰 metody za pomoc膮 irb oraz jak u偶y膰 binding.pry, je艣li nie ma gema pry (bo nie ma gemfile’a). Z pewno艣ci膮 musz臋 si臋 natomiast przyjrze膰 metodom do klas Dir i File – ci膮gle s膮 dla mnie nieco nieoczywiste.

Z moich sukces贸w testowych: uda艂o mi si臋 napisa膰 test do metody bez u偶ycia tej metody xD Na usprawiedliwienie powiem, 偶e by艂o to ju偶 po 10h kodzenia ;]

I to tyle na dzi艣: jutro (po sko艅czeniu zada艅 dzisiejszych) – zaczynamy railsy!