Рубрики
Без рубрики

Краткое руководство по чистому коду: соглашения о именовании

Привет, ребята, недавно я начал читать чистый код Роберта С. Мартином. Пока я думаю, что это отличный б … Помечено новичками, чистыми, кодовыми, Python.

Привет, ребята,

Недавно я начал читать чистый код Роберта С. Мартином. Пока что это отличная книга, и каждый программист должен прочитать его хотя бы один или по крайней мере, начиная несколько глав, как в этих главах, автор пытается выделить очень базовые и фундаментальные методы кодирования, которые не должны игнорироваться в любое время.

В этом посте я постараюсь обобщить вторую главу книги в своих словах и попытаюсь сохранить вещи максимально простыми. Итак, начнем:)

«Имян» – это очень важный шаг любого процесса. Мы полагаем много мысли в названии наших детей, потому что мы понимаем его важность. Но когда мы делаем то же самое для нашего кода, у нас нет достаточно времени для этого. Мы либо думаем, что мы уже знаем лучшие практики именования, или мы просто не думаем, что это стоит нашего времени. Плохие имена переменных могут показаться в порядке в начале, но когда кодовая база становится все больше, со многими более разработчиками, работающими над ним, просто настолько трудно управлять и координировать наши усилия. Наш код – наше создание, поэтому мы должны назвать его должным образом по крайней мере.

Намерение переменной должно быть понятно от его имени.

  • Если вам нужно написать комментарий, чтобы сделать целью переменной очистить, переосмыслить имя.
  • В старые времена у нас были меньшие (очень меньшие) бараны, и, таким образом, пришлось очень тщательно подумать, давая переменные большие имена. Но это не проблема сейчас, это? Тогда зачем давать переменные расплывные имена, такие как А , N1 и Т. Д.

Рассмотрим этот кусок кода

    getData(plist):
        ep = [] // expired person accounts
        for p in plist:
            if p.expiry_date >= datetime.now()
            ep.push(p)
        return ep

и сравнить с

    get_expired_persons_list(persons_list):
        expired_persons_list = []
        for person in persons_list:
            if person.expiry_date >= datetime.now()
            expired_persons_list.push(person)
        return expired_persons_list

Не используйте имена переменных, которые могут ошибочными разработчиками.

  • Пример будет назвать коллекцию Человек Объекты rooms_list Когда это не на самом деле Список Отказ Это имя может заставлять других разработчиков, чтобы думать, что это Список Тип объекта. Поэтому называя это люди_collection будет лучшим выбором.

Переменные имена должны быть значимыми отчетливыми

  • Мы часто склонны к имениям переменных таким образом, чтобы мы могли только избавиться от ошибок компилятора из-за того же имена переменной. Пример будет называть переменные Персоната и Persontata2. . В этом примере целью переменных не ясна.
  • Точно так же, если вы написали Человек Класс с методами, как get_person () , get_person_info () Другие разработчики нелегко вызвало правильный метод желаемой цели. Разработчик может легко запутаться в функциональности любого из этих методов.

Переменные имена должны быть произношены.

  • Наш мозг может легко запомнить имена переменных, если они будут произношены, и мы можем избежать ненужного хлопота поиска имени переменной в предыдущем коде, чтобы повторно использовать его. Пример будет использовать такие имена:
class Person(object):
    ...
    get_age_year_month_days()
    get_last_modified_year_month_days()
    ...

вместо

class Model01(object):
    ...
    get_ageiymd() // get age in year, month, days
    get_lmdiymd() // get last modified in year, month, days
    ...

Доступные переменные и константы доступны.

  • Предположим, у вас есть рабочий проект. Существует требование для каждого пользователя не менее 18 лет. Вы реализовали это следующим образом:
def create_person(data):
    if data['age']['year'] < 18:
        return None
  • Точно так же вы использовали этот номер 18 В других местах, где это было необходимо никак.

Теперь требование изменяется, и пользователь должен составлять не менее 15 лет для создания учетной записи. Что бы вы сделали сейчас? Поиск каждого вхождения номера 18 И решить, является ли это число, используемое для нашей цели, а затем изменить его везде.

Или вы могли бы просто использовали постоянную Min_age_req = 18 или Minmice_age_requirement = 18 (Что является более значимым и доступным для поиска). Тогда вам придется просто изменить значение этой постоянной, чтобы удовлетворить новое требование.

Имена классов всегда должны быть существительными.

  • Имена классов и объектов всегда должны быть существительными, как Человек , Автомобиль , Запись и так далее. Избегайте общих и языковых технических названий, таких как Информация , Управляющий делами и Контроллер Отказ

Имена методов должны иметь глагол

  • Имена методов должны иметь имена глагол или глагол фрейб (желательно в начале), как Получить С Установить и Удалить Отказ

Решите стандарт для именей, обслуживающих аналогичные цели.

  • Скажем, ваш проект имеет много занятий в этом со многими разработчиками, работающими над ними. Вы решили использовать следующую конвенцию для посетителей и получателей:
class PersonUpdateForm(object):
    ...
    get_age()
    set_age()
    ...

в то время как другой разработчик может делать такие вещи:

class UpdatePersonForm(object):
    ...
    retrive_age()
    update_age()
    ...

Это вызывает несоответствие в проекте и сложно искать желаемые объекты и методы. Решите заранее начать разработку, что с какими конвенциями вы собираетесь следовать, и каждый разработчик следит за тем.

Используйте контекст с именами переменной везде, где бы не нужен.

  • Если у вас есть переменная с именем Государство внутри класса Члена Тогда ясно, что Государство принадлежит к MemberAddress объект. Но за пределами класса, если переменная Государство Используется, то для других разработчиков может быть не ясно, что переменная Государство принадлежит к какому объекту. В этом сценарии используя имя переменной, member_address_state будет более значимым.

Мы никогда не должны игнорировать важность практики именования, так как плохие имена переменных станут большим препятствием в будущих планах развития. Изменение кодовой базы в этот момент является ненужным накладным расходом, и его можно избежать в самом начале, следуя передовой практике.

Это все с моей стороны на данный момент. Я скоро напишу о более поздних главах книги.

Счастливое кодирование!

Оригинал: “https://dev.to/danialmalik/a-beginner-s-guide-to-clean-code-part1-naming-conventions-139l”