Lekcje z pierwszej strony w Ruby on Rails
Apr 20, 2013 · 641 words · 4 minutes read
Czego się nauczyłem, co doświadczyłem i jakie wrażenia z pierwszej strony (działającej!) w RoR,
co powinienem był robić od początku, rezultat (domena przestała być aktywna).
1. Pisać testy.
To był okropny błąd, że nie zacząłem tego robić. Na początku nie mogłem tego ugryźć - Rspec/Capybara&Cucumber. Pomimo, że realizując kurs Saas 169.1x w pracach domowych używało się tych narzędzi, zagadnienia TDD i BDD w bardzo ogólnym znaczeniu były omówione, nie mogłem tego przełożyć, szczególnie rspec. Tak naprawdę, PMON - powiadom.mnie.o.nowych, nie ma napisanych dalej testów, a za co zabieram jak najszybciej. Na początku tego błędu nie odczuwałem, szybko szło sprawdzenie nowo dopisanego kodu, a jeśli coś było nie tak, zawsze można było dopisać ‘debugger’ i zidentyfikować błąd iterując linijka po linijce. Jednak im więcej kodu było tym więcej czasu marnowałem na to, co mogło mi wyskoczyć kilka sekund po zapisaniu pliku dzięki ‘autotest’. No more of this!
2. Używać systemu kontroli wersji.
Tutaj (na szczęście!) błędu nie popełniłem, gdy tylko przeczytałem pierwszy raz o git od razu mi to się spodobało, kilka lat temu zanim jeszcze w ogóle miałem tak naprawdę zastosowanie na to. Jednak teraz chyba przy każdym folderze i kodzie staram się użyć, nawet jeśli jest to tylko jeden plik w którym rozwiązuje zadanie na uczelnie. Wszystko zsynchronizowane dodatkowo na dropbox więc żadnych obaw nie ma, że coś pójdzie na straty przez błąd. Muszę poprawić mimo to częstość commitów, a ich opis. Mam tu na myśli, że zbyt mało informacji umieszczałem w notce do commit i pewnie kiedyś nie do końca będę wiedział co tak naprawdę dany commit poprawił/naprawił/dodał.
3. Jeśli cel jest ważny to czas się nie liczy.
Mam tu na myśli to, że pisząc PMON, czas poświęcony miał małe znaczenie i naprawdę bardzo przyjemnie z celem przed sobą rozwiązywałem większość trudności. Chciałem jak najszybciej móc korzystać z tego, nawet samemu ponieważ to rozwiązywało dość błahy problem. Fakt, że w tej wersji jakiej jest teraz, niczego nowego to do świata nie wnosi, Allegro już udostępnia taką opcję, ale witki mi nie opadły, że powieliłem to samo. Istotne jest to, że napisałem to samo własnoręcznie wykorzystując API Allegro, a co będę mógł dalej rozbudowywać i uczyć się dalej. W końcu w tym wszystkim o naukę chodzi, póki co.
4. Większość odpowiedzi jest na stackoverflow i w dokumentacji.
Tak naprawdę podczas pisania tej strony zadałem tylko jedno pytanie na stackoverflow, na które w dodatku sam sobie w końcu odpowiedziałem, bo błąd był dość prymitywny, a raczej jego nie było. Po prostu (tak mi się wydaje) było tyle danych, że wypisywanie w konsoli danych zwracało pustą linię, a ja sądziłem, że allegro mi nie wysłało danych lub gdzieś ja je źle przetwarzam, dopiero puszczenie tego do pliku ukazało, że jednak wszystko było w porządku. Na wszystkie inne pytania tak naprawdę znalazłem odpowiedź w tych dwóch źródłach.
5. Dobra książka jest bardzo pomocna!
Zanim zacząłem pisać PMON to najpierw przerobiłem Ruby on Rails Tutorial by Michael Hartl. Potem korzystałem i wyszukiwałem odpowiednie fragmenty, ogólne pojęcie na początku bardzo było przydatne, szczególnie gdy dodawałem możliwość rejestracji będąc doskonale świadomym o istnieniu Devise, które jest z pewnością niezastąpionym gemem, ale mimo wszystko na początku mogło by to stworzyć więcej problemów i niejasności niż to by było warte, a mam “czysty obraz”. W nawiasie dopisałem nie tylko ponieważ pisząc PMON, realizowałem także kurs Saas 169.1x który omawiał ogólnie Ruby->Rails, BDD i TDD. Teraz w drugiej części jest to kontynuowane, jednak skupiając się już na innych zagadnieniach wokół SaaS. Sam kurs ukończyłem i chwaląc się, certyfikat wygląda tak.
Podsumowując, pomimo, że pisałem wszystko prawie 4 tygodnie kiedy to miałem jeszcze sesję w międzyczasie i treningi to naprawdę jestem zadowolony. Tak jak już mówiłem: niczego nowego nie stworzyłem - takie coś jest dostępne bezpośrednio z allegro, ale za to mam coś co mogę spokojnie rozbudować i taki też mam plan teraz, dalej się uczyć “masterkując” przy tej stronie.