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.

Komentarze w wyrażeniach regularnych

13 grudnia 2009 | Klucze: it, Ogólne, programowanie, ruby, Techblog
7 komentarzy. trackback

Ostatnio pisałem o swoim punkcie widzenia na standard kodowania w Ruby. Jakoś dziwnie się to zbiegło z czasem, gdy jeden z project managerów w firmie mocno wziął sobie do serca pisanie dokumentacji. Zaowocowało to serią commitów z opisami typu: Comments, Comments fix. Jeden z impliksowych perlistów podesłał mi przykład jak to oni dokumentują swój kod. W przykładzie znalazłem coś co mi się strasznie spodobało: dokumentacje w wyrażeniu regularnym!

Ruby zapewnia wbudowaną obsługę dopasowania wyrażeń regularnych. W Ruby wyrażenia regularne są instancjami klasy Regexp. To co mnie szczególnie ostatnio zainteresowało to tryb Regexp::EXTEND, w którym to ignorowane są białe znaki i dopuszczone są komentarze. By Regexp pracował w tym trybie: regexp = Regexp.new('dopasowanie', Regexp::EXTENDED) regexp = /dopasowanie/x

Poniżej przykład zastosowania, prosty bo prosty ale ideę chyba prezentuje. Wyrażenie regularne sprawdzające poprawność adresu email (niezastanawiaj się drogi czytelniku nad skutecznością, ale nad formą wyrażenia). Kiedyś, ktoś napisał fajny "sprawdzacz" do wyrażeń regularnych w Ruby: rubular.com, ale dość słabo radzi on sobie z rozszerzonymi wyrażeniami. Na koniec polecam jeszcze zapoznać się z dokumentacją klasy MatchData

A teraz mała odskocznia, ale tylko mała. Ostantio kiedy szukaliśmy do Implix programisty Ruby napisałem o tym na blogu zamieszczając zdjęcie. Programistę znaleźliśmy, ale zdjęcie żyło własnym życiem ... Co prawda to miejsce jest już zajęte, ale tuż obok możesz siedzieć Ty. Bo właśnie szukamy programisty Ruby. Nie wymagamy doświadczenia. Chcemy tylko byś orientował się w temacie i znał trochę Ruby i Rails. Gwarantujemy, że dużo się nauczysz i napewno nie zaśniesz z nudów. Praca w Gdyni, blisko morza (300 metrów). Zapraszamy.

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
Ten tekst napisałem sugerując się moimi doświadczeniami wynikającymi z pracy z kodem pisanym przez wielu programistów. Czasem lepszych, czasem gorszych, czasem z szerszym, czasem z węższym monitorem ... Ale każdy z nich pisał kod inaczej. Jeden wstawiał tabulacje, inny spacje. Hardkorowcy mieszali metody publiczne z tymi ukrytymi. Programiści! Starajcie się pisać w jakiś spójny, uporządkowany sposób. Nie chcesz odziedziczyć niedbale napisanego kodu, prawda? W takim razie sam zacznij dbać o jego estetykę i nie traktuj każdego projektu na zasadzie "napisz, zgarnij kasę i zapomnij"!