14 окт. 2012 г.

Самый главный гайдлайн

Самый главный гайдлайн при написании кода — это отбивать реализации методов несколькими пустыми строчками и строкой-комментарием. Несмотря на возможности современных IDE по поиску и структуризации исходного кода, визуальное ориентирование все еще играет важную роль.

Рассмотрим пример ниже. Есть реализация класса на языке Objective-C. Методы отбиты всего-лишь одной строкой. Также отбивка одной строкой встречается не только между методами, но и между логическими блоками кода внутри методов. Длинна названия метода не может служить хорошим ориентиром начала нового метода. Например, название метод stopProgressAnimating короче любой строки предыдущего метода loadCommentsFailure. Глазу не за что зацепиться.

image

Тот же самый код, но методы отбиты пустыми строками и комментарием. Теперь место между концом одного метода и началом следующего образует однородный узор, который постоянно повторяется. Такой узор легко обнаружить даже при быстром скролировании.

image

6 комментариев:

  1. Почему бы вместо занятий форматированием не научить вашу иде элементарным вещам?

    ОтветитьУдалить
    Ответы
    1. Потому что, если код правильно отформатирован, читать его легче в _любой_ IDE.

      Удалить
    2. В петоне, кстати, по PEP8, нужно делать 2 пробела между методами, а блоки отделять максимум одним пробелом. Получается неплохо видно без строки комментариев.

      Удалить
    3. Ну ты с Vim мучаешся, это понятно..

      Удалить
  2. Разделение, конечно, очень «ok» — сам долгое время этому следовал. Но в последнее время предпочитаю банальный doxygen комментарий перед методом. Пусть он будет и примитивным, но не будет нарушать концепцию визуального ориентирования (типа что перед методом doxygen коммент всегда). И получается одним махом двух зайцев убиваешь: и комментарий перед методом стоит (который может описывать какие-то особенности метода) и визуальная навигация работает. :)

    ОтветитьУдалить
  3. Sergei Zaychenko15.10.2012, 21:53

    Последние пару лет использую другой разделитель, мне так больше нравится, еще больше подчеркивает структуру визуально:

    /*------------------------------*/

    ОтветитьУдалить

Темы

2012 (2) амазон (1) анпакинг (1) артемий лебедев (4) атн (1) аудио (1) аэропорт (1) безопасность (3) бизнес (1) билайн (1) блог (2) будущее (2) видео (11) википедия (5) вымысел (16) гагарин (1) герман (1) гитхаб (1) гугл (3) дед мороз (1) декабрь (1) демотиватор (2) дети (2) дизайн (13) диссертация (2) документация (1) друзья (5) евпатория (1) евро-2012 (1) жадность (1) заяц (1) идея (1) имейл (1) инстаграм (1) интервью (5) интересное (20) интерфейс (13) история (7) как_выжить (4) календарь (1) капитализм (1) картина (1) кмб (6) книга (6) коллекция (4) компилятор (2) конкурс (5) космос (1) лаборатория (1) либералы (1) лингво (1) лузер (6) макаренко (2) макдональдс (2) математика (1) медиапорт (1) ментор (1) металлика (1) металлист (2) метро (7) микрософт (6) миргород (1) москва (2) музыка (3) наркомания (1) новости (17) образование (3) оптимизация (5) основы (14) открытки (3) ошибка (11) памятник (1) патриотизм (3) плагиат (1) плата (1) погода (3) поиск (1) политика (2) полтава (2) праздник (1) программирование (15) прошлое (2) путешествия (8) рейтинг (1) рендер (1) рисунок (2) русские (1) русский язык (1) сайт (4) санкт-петербург (1) сапр (7) сеть (1) си++ (1) синтез (1) системси (1) скриншот (40) социализм (1) соцопрос (3) спектрум (2) спорт (2) срач (2) статистика (1) такси (1) тбб (3) твитер (9) тимошенко (1) украина (5) униан (1) фан (30) фокус (1) фото (39) фотошоп (1) фурсенко (1) футбол (2) хабр (1) харьков (21) хнурэ (19) хобби (4) цитата (2) чехия (1) школа (1) эпл (1) эхостар (1) юмор (1) яндекс (1) clang (2) doxygen (1) english (3) ios (1) llvm (1) msdn (1) outlook (1) PHP (1) stackoverflow (1)

Поиск

Читатели