Kiedy to możliwe ... czy zostawiasz nawiasy wewnątrz czy na zewnątrz w Rubim?
Kiedy to możliwe ... czy zostawiasz nawiasy wewnątrz czy na zewnątrz w Rubim?
Odpowiedzi:
Ruby pozwala ogólnie pominąć nawiasy, aby oprzeć się tej pokusie.
Nawiasy ułatwiają śledzenie kodu. Ogólny styl Ruby polega na ich używaniu, z wyjątkiem następujących przypadków:
- Zawsze pomijaj puste nawiasy
- Nawiasy można pominąć w pojedynczym poleceniu otoczonym ogranicznikami ERb - znaczniki ERb zapewniają, że kod jest nadal czytelny
- Wiersz będący pojedynczym poleceniem i pojedynczym prostym argumentem można zapisać bez nawiasów. Osobiście uważam, że robię to coraz rzadziej, ale nadal jest to doskonale czytelne. Zwykle nie lubię pojedynczych wierszy w zwykłym kodzie ruby, które mają wiele argumentów i nie zawierają nawiasów.
- Wiele języków specyficznych dla domeny opartych na Ruby (takich jak Rake) nie używa nawiasów, aby zachować bardziej naturalny charakter wypowiedzi.
Używam parenów jako komentarzy, aby pomóc przyszłemu mi ... który prawdopodobnie będzie miał mniej komórek mózgowych niż obecny ja :-)
Nie ma nic gorszego niż przyjrzenie się kodowi, który napisałeś 2 lata temu i niezrozumienie go, aby coś zepsuć podczas modyfikacji.
Jeśli pareny uratują mnie w przyszłości kilka minut (lub godzin) w przyszłości, dodam tyle, ile potrzeba, aby stwierdzenie było krystalicznie jasne.
Pomijam je, gdy robię rzeczy DSL, takie jak t.column lub has_many w railsach. Przez resztę czasu generalnie sprowadza się to do jasności i prawdopodobnie jest to równy podział.
Jeśli masz na myśli wywołania funkcji, zawsze umieszczam nawiasy, ponieważ zawsze jest to łatwiejsze do odczytania. Jeśli masz na myśli warunki (if, while), umieszczam nawiasy tylko wtedy, gdy są konieczne.
Zwykle pomijam je podczas wykonywania asercji, takich jak assert_equal. Może po to, aby uczynić ją podobną do języka specyficznego dla domeny.
Jeśli programujesz od dłuższego czasu, prawdopodobnie będziesz mieć „swędzenie” na dodawanie nawiasów, aw wielu przypadkach są ku temu dobre powody.
Moim zdaniem kod jest łatwiejszy dla oczu i jeszcze nie napotkałem problemu - jeśli będziesz potrzebować nawiasów, będziesz wiedział o tym wcześniej, zanim będziesz musiał uruchomić skrypt debugowania.
if owner.is_a? thing //worked fine
if owner.is_a? thing && x > 1 //not fine
pewnego dnia , uczę się ruby dopiero od kilku tygodni i tam, gdzie pracuję, używa się najmniejszej możliwej liczby znaków, a jeśli pochodzisz z innego języka, jest nauka krzywa, aby wiedzieć, kiedy przekazujesz niejawny skrót, tablicę symboli, przechodząc do symboli do funkcji ... nie jestem fanem.
if owner.is_a? thing and x > 1
and
nie ma tego samego pierwszeństwa operatora, &&
co