Szukam jakiegoś poradnika (online) z tzw. dobrymi praktykami i złymi nawykami w Rails. Wiadomo, jest “10 przykazań” jednak jest to zbyt ogólne. Pewne rzeczy pojawiają się w książce Agile, ale brakuje mi takiego zebrania wszystkiego w jednym z przykładami kodu.
Istnieje jakiś taki poradnik online lub książka w której dużo jest na ten temat?
@newman, dobrze, że pytasz bo mało ludzi zwraca na to uwagę. Niestety nie ma takiego jednego źródła. Musisz przede wszystkim umieć dobrze sam język (“Rails way” jest nadzbiorem dla “Ruby way” :)), potem dobrze Railsy (np. nie Post.find(:all).size a Post.count, niby proste ale spotyka się takie kwiatki). Potem pozostaje podglądanie innych. Blogi, prezentacje video z konferencji (wbrew pozorom jest sporo ciekawych).
Musisz także mieć taki wewnętrzny mechanizm, który sam Ci powie “ten kod jest do d***, na pewno można napisać to prościej, ładniej”. Nawet jeśli niekoniecznie wiesz jak kod poprawić na lepszy to dobrze by było umieć takie sytuacje rozpoznawać. Składnię języka można się nauczyć na pamięć, API w dużej mierze też, ale tego niestety nie.
ALE to mit, że z czymś takim człowiek się rodzi. Nikt się nie rodzi dobrym programistą (tzw. rock-star programmer). To tylko i wyłącznie owoc ciągłego doskonalenia się, poszerzania horyzontów z jednoczesnym zagłębianiem się w coraz to nowe zagadnienia.
Oczywiście, mam nadzieję, że tego nie zasugerowałem. To kwestia treningu, patrzenia na swój kod, na kod innych, rozmów z programistami itd. Generalnie ze smutkiem stwierdzam, że mało kto zwraca na to by pisać kod wedle jakiegoś kanonu, ładu. Byle napisać, byle działało.
Faktycznie, to podejście “byle działało” jest niestety rozpowszechnione. Ma swoją genezę po części za sprawą samych programistów a po części za sprawą niezwracania na to większej uwagi przez osoby nadzorujące jakość powstających projektów (jeśli oczywiście takowe osoby są akurat na projekcie). Po części wynika to też z braku takowego kanonu, wiodącej zasady czy najlepszej praktyki w wielu popularnych językach programowania, świetnym przykładem jest tutaj język “Pretty Hard to Perfect”.
IMHO, środowisko Rails/Ruby jest świetnym miejscem do rozpoczęcia swojej przygody z dochodzeniem do perfekcji w programowaniu głównie za sprawą właśnie obecności całej serii “best practices”/ dobrych praktyk programowania. m.in:
Samo zwrócenie uwagi na DRY uczyni Cię lepszym programistą niezależnie od języka programowania - a DRY to tak naprawdę wierzchołek góry lodowej. Blogosfera, IRC, książki, szeroko otwarte oczy, uszy i synapsy oraz chęć poznania i dążenia do perfekcji przybliży do a może nawet odkryje przed Tobą Prawdę.
Dzięki za ciekawe wywody
Co do wewnętrznego mechanizmu to chyba go mam, bo dość często mówię sobie, że “ten kod jest do d***”
Tak poważnie, to mam pewną wiedzę jeśli chodzi o Rails, jednak ostatnimi czasy cofnąłem się do źródeł czyli do samego języka Ruby, gdyż czuję że braki w tej dziedzinie ograniczają mnie w RoR. Czyli książka z kilofem (wersja eng)
Pisząc cokolwiek w samych Railsach, często wiem, że ta linijka kodu jest nie taka jak powinna być, jednak nie jest proste znalezienie odpowiedzi (net, książki) jaki sposób jest właściwy i najlepszy. Wydaje mi się, że najlepszym rozwiązaniem jest nabieranie praktyki pod okiem osoby, która już takie doświadczenie ma. Tylko, że mało komu jest to dane.
Mało komu jest to dane? Panie drogi.
Ssanie w Polsce na programistów RoR jest takie, że my teraz (w Aenimie) przyjmujemy na wakacje praktykantów, którzy liznęli Rubiego i Railsy*, żeby wyszkolić ich (w założeniach w miesiąc) na “pełnowymiarowych” programistów. Znaczy, railsowców jest tak mało, że trzeba ich sobie po prostu wykształcić.
a i to liźnięcie my zorganizowaliśmy: darmowe 14-godzinne szkolenie z Ruby On Rails na Politechnice Warszawskiej od zupełnych podstaw (chociaż wymierzone w osoby, które miały do czynienia z aplikacjami webowymi i odróżniają np. http żądania GET i POST.
Jesteś może z Warszawy i zainteresowany takimi praktykami/stażem?