Pull to refresh

Comments 19

UFO just landed and posted this here

Jetbrains это худо-бедно делают из коробки.

Коротко о прочитанном — называйте переменные/методы/классы осмысленно, но не сильно коротко и не сильно длинно. Зачем целая статья?

Я уж думал тут будет подсказка как найти синонимы для сущностей

Несколько раз перечитал ваш комментарий. Пытался понять, причем тут БД, пока не понял, что речь не про entity и не про synonims для них.

А в БД есть entity? Ни разу вроде в доках не встречал, по крайней мере в SQL БД

Пожалуй, худшие имена для переменных начинаются с прописной буквы O и строчной L, так как эти символы очень похожи на 0 и 1.

Не стоит забывать, что есть хорошие шрифты, решающие эту проблему.
UFO just landed and posted this here
last… least… latest..., а также opened… odds… over… (и так далее) вполне себе нормальные префиксы для переменных. Их запретить? Если кому-то не вломы постоянно гадать 0 vs o, «Я помочь не могу. Никто не может» (с)
А еще мало-мальски опытный программист знает, что переменные не могут начинаться ни с 0, ни с 1.

Про запрет на префикс m_ тоже странный совет.

void CObjectsContainer::Set( const vector<OBJECT> & objectList )
{
   m_objectList = objectList;
}


Сразу ясно что происходит, что где содержится и для чего используется.

Про m_ может актуально для некоторых языков, где есть неявные this, но это практика переносится и в другие языки, где исключительно явная. И там она лишняя

В качестве итога можно сказать следующее:
— Есть языки, где подобная практика излишняя: действительно, смотрится очень куцо:
this->m_Value = Value;

— Есть языки, где отсутствие префиксов явно вредит читаемости и пониманию кода (см. пример выше).

Но автор решил, что подобное надо искоренять. Тег php стоит, конечно, но стоило бы упомянуть явно, что речь идет о практиках программирования в php.

В большинстве известніх мне языков имя переменной или другой сущности не может начинаться с цифры, так что в них точно проблема надуманная. Это даже если не вспоминать про автодополнение IDE или мощного редактора. С другой стороны, один хорошо знакомый разработчик практически никогда не пишет переменные руками, кроме первого раза — копипастит. И на его таски почти никогда не бывает багов, кроме тех, что по факту являются уточнением требований, когда у QA другое мнение, каким должно быть неописанное или недостаточно однозначно описанное в таске поведение. Очень щепетильное отношение к работе, и такой копипаст — один из аспектов общего подхода. Иногда даже раздражает, когда в паре работаем, ну вот переменная из трёх букв, которую сам только что написал, иде автодополение абсолютно точно не предлагает, но нет, "копировать-вставить"

UFO just landed and posted this here
А теперь посмотрите на функцию getOddNumbers. Увидели, что она делает то же самое, что и getList?
Последнее время начал замечать что для разработки очень большого класса с множеством отдельных сущностей есть смысл писать NumbersGet, ListGet. На тот случай если у вас кроме Get есть еще толпа глаголов, особенно когда каждая сущность имеет свои уникальные глаголы. Лучше конечно разделить эти сущности. Но при первом наброске чисто визуально проще искать не getList, setList, putNum, delNum, а именно с начало найти Num, List и подом действие. Выглядит странно, но мне нравиться. :)

Вы изобрели венгерскую нотацию? :)

> Пожалуй, худшие имена для переменных начинаются с прописной буквы O и строчной L, так как эти символы очень похожи на 0 и 1.

А если они заканчиваются на них, то это конечно Ок. )

Или в середине содержат )

Я согласен с Gorthauer87. Наверное как и многие, я ожидал увидеть здесь больше методики чем советов.
Sign up to leave a comment.