Зараз в мережі можна зустріти досить багато інструкцій по стилізації коду під ту чи іншу мову програмування. Це важливо для полегшення розуміння коду у майбутньому, та зменшує муки того, хто буде використовувати цей код після вас :))
Ніхто вас не змушує слідкувати цим правилам, але стандартизація коду має позитивні моменти для всіх.
Форматування
1.Використовуйте ASCII (або UTF-8, якщо це необхідно)
2.Використовуйте для відступів два пробіли, замість табуляції.
3.Вставляйте пробіли навколо операторів, після коми, після символів двокрапки і крапки з комою, навколо { і перед }
4.Не вставляйте пробілів після дужок ( та [ і перед дужками ) і ]
5.Вставляйте два пробіли перед модифікаторами if/unless/while/until/rescue які використовуються в кінці рядка.
6.Виділяйте when таким же відступом, як і case.
7.Вставляйте пустий рядок перед повертанням значення (якщо метод складається не з одного рядка) і перед def.
8.Використовуйте Rdoc та її конвенції для документування API. Не вставляйте пустого рядка між блоком коментаря та def.
9.Використовуйте пустий рядок, щоб розбити довгий метод на параграфи.
10.Використовуйте рядки коротші за 80 символів.
11.Уникайте пробілів в кінці рядка.
Синтаксис
1.Використовуйте def з дужками, якщо метод приймає аргументи.
2.Уникайте по можливості for, якщо тільки ви не впевнені стовідсотково навіщо вам використовувати саме for.
3.Використовуйте When x;… для однорядкових case.
4.Використовуйте &&|| для логічних виразів and/or для контролю ходу виконання.
5.Опускайте дужки при виклиці методів, але використовуйте їх, якщо ви викликаєте функції.
6.Вибирайте {} замість do...end.
7.Опускайте return там, де він не потрібен.
8.Опускайте продовження рядка \ там, де він не потрібен.
9.Використання значення, яке повертає метод = допускається: of v = array.grep(/foo/)…
10.Використовуйте ||=
11.Використовуйте не-ОО регулярні вирази: =~, $0-$9, $~, $`.
Іменування
1.Використовуйте snake_case (слова з маленької літери, розділені підкреслюванням) для найменування методів.
2.Використовуйте CamelCase (слова з великої літери, записані разом) для найменування класів та модулів.
3.Використовуйте SCREAMING_SNAME_CASE (слова, написані великими літерами, розділені підкреслюванням) для констант.
4.Довжина імені має якби вказувати на область дії об'єкту. Використовуйте однобуквенні імена для параметрів коротких блоків/методів згідно цієї схеми:
abc: любий об'єкт
d: назва директорії
e: елемент Enumerable типу
ex: оброблюване виключення (Exception)
f: файли та імена файлів
i,j: індекси
k: ключв хеші
m: метод
o: любий об'єект
r: повертаєме значення короткого методу
s: strings
v: любе значення
x,y,z: числа.
5.Використовуйте map замість collect, find замість detect, find_all замість select.
Коментарі
1.Коментарі, які довші одного слова повинні починатися з великої літери та мати пунктуацію. Вставляйте два пробіли після кожної коми.
2.Старайтеся не використовувати занадто багато коментарів.
> 6.Вибирайте {} замість do...end.
Я використовую {} коли одна стрічка і do...end коли декілька(не пам’ятаю де це я вичитав, але вважаю, що так зручніше)
Не так давно thoughtbot проводили опитування серед рубістів, щодо форматування та інших аспектів написання програм, рекомендую .
Коментарі (5)
RSS згорнути / розгорнутиwhitemystyle
theasus
whitemystyle
Я використовую {} коли одна стрічка і do...end коли декілька(не пам’ятаю де це я вичитав, але вважаю, що так зручніше)
Не так давно thoughtbot проводили опитування серед рубістів, щодо форматування та інших аспектів написання програм, рекомендую .
enej
ще чомусь полюбляю конструкцію: для коротких виразів
Кодування вказую зверху файлу:
mamantoha
Тільки зареєстровані й авторизовані користувачі можуть залишати коментарі.