Witaj na blogu prowadzonym przez Sebana. Spisuję tutaj swoje uwagi na różny temat. Przeważają tematy związane z Internetem, popieranymi przeze mnie rozwiązaniami dotyczącymi wykorzystania komputerów, oraz kilka innych.
Standard kodowania Ruby
04 grudnia 2009 | Klucze:
programowanie,
ruby,
Techblog
14 komentarzy. trackback
Chyba każdy kto pracował przy jakimś projekcie, w którym uczesniczy więcej niż jeden programista czuł potrzebę zapanowania w jakiś sposób nad pisanym kodem. Według mnie pierwszą rzeczą jaką trzeba stalić w takiej sytuacji jest standard kodowania. Taki standard to nic innego jak zasady, których należy się trzymać by kod był czytelny i zrozumiały dla wszystkich.
W firmie w której pracuję Implix są standardy kodowania zarówno dla PHP jak i dla Ruby. Standardu nie można ot tak sobie narzucić. Standard powinien zostać wypracowany przy współpracy wszystkich zainteresowanych. W naszym przypadku standard został zaproponowany przez najbardziej doświadocznego programistę, pozostali mogli się z nim zapoznać, zgłosić uwagi ..., aż w końcu powstała wersja zaakceptowana. Standard kodowania obejmował konwencje nazewnictwa, wcięcia, białe znaki, nawiasy, instrukcje i komentarze. Oczywiście na końcu dokumentu znajdował się przykład całej klasy napisanej zgodnie z standardem i w całości udokumentowanej.
Standard kodowania istnieje już ponad 2 lata. Każdy w zespole tworzy kod zgodnie ze standardem lub przynajmniej się stara. Kod źródłowy powstający w firmie wygląda zawsze podobnie, a nie każda klasa inaczej. Każdy nowozatrudniony pracownik dostaje taki standard do przeczytania. W każdej chwili można zajrzeć do standardu (jest spisany na firmowym wiki). Wszelkie niezgodności ze standardem kodowania są wytykane podczas inspekcji kodu.
Poniżej kilka punktów:
- linia nie powinna mieć więcej niż 100 znaków
- nie używam tabulacji, zamiast tego 2 znaki spacji
- 2 puste linie przed i po modifikatorach dostępu
- 2 puste linie oddzielają definicje metody
- każda metoda publiczna powinna mieć dokumentację
- jeśli metoda przyjmuje więcej niż 1 argument, powinna być wywołana z użyciem nawiasów
- dodatkowo lubię jak metody klasy są definiowane przed metodami instancji
- jeśli z nazwy klasy nie wynika wprost do czego służy powinna mieć opis w postaci komentarza
KOMENTARZE
04 grudnia 2009 | b |
Jestem w 100% za!
Czegoś takiego zdecydowanie brakuje u mnie w pracy... w ten sposób dziedziczenie projektów mogłoby nawet być miłe...
04 grudnia 2009 | Marcin Kosedowski |
nie używam tabulacji, zamiast tego 2 znaki spacji
Tu jestem absolutnie na nie. Jedna osoba lubi mieć wcięcie na jedną spację, inna na 6 (a ja na 3). Używając taba zamiast spacji każdy może w swoim edytorze ustawić takie wcięcia jakie mu się podobają. Używając na sztywno dwóch spacji zmiana nie jest już taka prosta.
04 grudnia 2009 | psp |
"nie używam tabulacji, zamiast tego 2 znaki spacji"
wtf? właśnie po to stosuje się tab zamiast 'x spacji' żeby każdemu pasowała wielkość wcięcia którą sobie ustawia - niektórym pasuje wcięcie 2, innym 4, a jeszcze inni wolą 3..
04 grudnia 2009 | sharnik |
Marcin: Tu nie chodzi tylko o to jak komu ładnie w edytorze wygląda, tylko o to, że w Rubym przyjęło się stosować dwie spacje. Wszyscy tak robią.
04 grudnia 2009 | Marcin Kosedowski |
Skoro wszyscy tak robią to zwracam honor:)
04 grudnia 2009 | Seban |
@sharnik wszyscy tak powinni robić, niestety panuje spora dowolność, a czasami dość daleko posunięta anarchia
04 grudnia 2009 | Partybets |
Wracając jednak do wersji 1.9, od tej pory wszystkie bolączki typowe dla 1.8 zniknęły. Między każdą z części może pojawić się dowolna ilość spacji, wielkość liter nie ma znaczenia.
04 grudnia 2009 | Stanisław 'dozzie' Klekot |
@psp: właśnie po to się stosuje x spacji zamiast tabulatora, żeby nie było problemu z lokalnym ustawieniem tabstopa w edytorze. Naprawdę niewielu widziałem ludzi pilnujących spacji i tabów i nie mieszających tabulatorów ze spacjami, a kod pozostałych (którzy używają tabów) wygląda jakby po nim czołgiem ktoś przejechał.
04 grudnia 2009 | Seban |
@Partybets nie rozumiem tego o 1.9 i 1.8
05 grudnia 2009 | Dodek |
linia nie powinna mieć więcej niż 100 znaków
wut, 100? jak już się wprowadza limit długości linii, to lepiej przyjąć bardziej powszechny standard, tj. 80 kolumn
09 grudnia 2009 | demikaze |
@Partybets ja też nie rozumiem tego o 1.9 i 1.8
10 grudnia 2009 | Seban |
Ludzie z Toughtbot przygotowali świeżą ankiete dotyczącą standaru kodowania i komentowania. Zachęcam do wzięcia udziału: http://robots.thoughtbot.com/post/276620679/ruby-community-survey
26 stycznia 2010 | test |
Ile płacą teraz w implixie programistom?
27 stycznia 2010 | Seban |
Ja jestem zadowolony.
