Skip to content

Latest commit

 

History

History
59 lines (58 loc) · 3.63 KB

File metadata and controls

59 lines (58 loc) · 3.63 KB

UNDER CONSTRUCTION

Code guide

Названия идентификаторов

  • Временные и перманентные идентификаторы
    • В начале создания кода допускается использовать любые идентификаторы. Ведь надо как можно быстрее доставить результат
    • Когда с кодом нужно работать больше 1 раза (т.е. не просто запустил и заработало, а надо развивать, поддерживать), то нужно заменять их на более осмысленные
  • Ультракороткие идентификаторы
    • a, b
      • Применяются когда есть 2 объекта, которые одинаковы по типу и семантике
      • Идеально если коммутативны
      • Приемлемо если коммутативны с точностью до какого-то простого преобразования
        • Например a-b == -(b-a)
    • k, v только эти нуждаются в замене
      • Применяются для коллекций
    • idx
    • i, j, k, len
    • x, y, z
    • list, hash
    • item
    • name, title, field
  • Когда можно оставлять как есть (срабатывание любого правила - значит можно оставить как есть)
    • Количество переменных в методе <= 5
    • Тело метода меньше 3 строк
  • Список плохих идентификаторов, которые иногда нужно заменять
    • k, v, key, value
      • Ок. Это ключ. Ключ от чего?
    • name, title
      • Имя/заголовок от чего?
    • data
      • Кроме случая, если метод в котором оно написано точно указывает что это за данные
        • ws_mesage_process : (data)->
    • list, hash
      • Очень бысто непонятно что за list. Особенно если в методе больше 5 переменных
  • Идентификаторы для bool переменных
    • Желательно вместо префиксов is_ и has_ использовать в конце _flag
  • Идентификаторы для массивов
    • Желательно добавлять в конец _list
    • Примеры
      • word_list хороший идентификатор
      • words плохой идентификатор т.к. плохо отличим визуально от word
      • children тоже плохой идентификатор т.к. если везде будет _list, то этот будет отличаться.
  • Идентификаторы для хэшей
    • Желательно добавлять в конец _hash
    • Примеры
      • word_hash хороший идентификатор
      • words плохой идентификатор т.к. плохо отличим визуально от word и при чтении кажется что это массив
  • Примеры применения идентификаторов
    • Для циклов
      • for i in [0 ... 100]
      • for v in list
      • for v,k in list
      • for v,idx in list
      • for k of hash
      • for k,v of hash
      • for key,value of hash
      • for name,value of hash
    • Для сортировки
      • list.sort (a,b)->a-b