|
|
|||||
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Цитата:
А вообще, это всё похоже на троллинг. |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Понимаю, что вопрос кажется копеечным, но у него есть предыстория. Мы с другим программистом дискутировали на совсем другую, важную для нас тему, и дискуссия свелась к аргументу с его стороны: типа по моей логике тогда уж и именование констант не должно отличаться от именования обычных переменных.
И тогда я подумал: "ну да, а почему бы и нет"? То есть какие-то неясности в архитектуре в мелочах потом начинают обрастать как снежный ком. |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
так naming conventions - это же рекомендации.Никто не заставляет им следовать.Причем тут архитектура?
А то можно дойти и до В жаве, например,почему-то все поля класса пишутся с префиксом m: Что это значит нигде не пишут. |
|
|||||
Цитата:
Цитата:
Добавлено через 1 минуту undefined, m значит member
__________________
There is no thing in this world that is not simple. |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
|
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Цитата:
Цитата:
Это экземпляры разных классов. С экземпляром одного класса нельзя делать то, что можно делать с экземпляром другого. Если один класс наследует другой, то можно, но все равно только часть. |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вы понимаете, что константа и переменная это не Классы? Что это сущности гораздо более высокого уровня? Что пул и массив это сущности другого уровня, они просто Классы и на уровне языка они не различаются, то есть и то, и другое — класс?
Цитата:
__________________
Reality.getBounds(this); |
|
|||||
Регистрация: Dec 2014
Сообщений: 312
|
Wolsh
Мы даем константам имена в верхнем регистре, чтобы в коде отличать их от обычных переменных. Вопрос: зачем нам знать, что сущность перед нами является константой? Ответ: чтобы не совершать над константой недопустимые действия, а именно — не пытаться присвоить ей новое значение. По той же логике давайте добавлять суффиксы переменным. Вопрос: зачем? Ответ: чтобы не совершать над объектом недопустимые действия, а именно — пытаться вызвать несуществующие методы. Но! Компилятор и так отловит попытку вызова несуществующих методов. Так что суффиксы в в типизированном языке не нужны. Но! Возвращаемся к константам. Присвоить новое значение константе не даст компилятор. Получается и именование констант в верхнем регистре не нужно. |
|
|||||
Не знаю как вы, а я часто использую в коде префиксы. Да для типизированных языков они не имеют смысла, но они увеличивают наглядность кода. В основном я их использую для приватных/локальных переменных "элементарных" типов: строки (strSome), числа (numSome), массивы/векторы (arrSome/vecSome), булевы флаги (isSome). Заглавные константы - это тоже удобство, конечно компилятор будет ругаться на попытку изменения, но зачем пытаться, если сразу видно, что это делать нельзя? По той же причине и имена классов начинаются с заглавной буквы, чтобы их было легко отличить от переменной, не прибегая к помощи подсказок IDE и поиску определения переменной в тексте класса.
__________________
ответ прост: be || !be == true |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Суффиксы сосут.
Примите за правду, что бОльшую часть времени Вы код читаете, а не пишете. Константа = что-то, что можно инлайнить "головой" при чтении кода и это немного, но помогает. Причём, пожалуйста, не путайте константу с КОНСТАНТОЙ. Первое – это то что не меняется в скоупе. В AS3 это недоступно, но ближайший приятель где это есть – это ES6. Оно может быть и будет разным. Второй же варианты КОНСТАНТЫ – это явный индикатор что он никогда не изменится. Скорее всего, он итак нечто очень явное, например, количество струн в укулеле, но 4 это куда менее читабельно, чем UKULELE_STRINGS_COUNT. Ещё это может быть нечто менее явное – например, количество блоков в странице памяти – всех их объеденяет одно – скорее всего это был magic number, который стал чем-то читабельным. Но почему суффиксы сосут? Спасибо что спросили! Если зайти со стороны строго-типизированных компилируемых языков, то они просто не нужны. IDE сама подскажет какой тип, компилятор сам выведет тип и подскажет, если где-то есть нестыковка. Если зайти со стороны интерпретируемых языков (мы не знаем какой тип у переменной до рантайма!) – то... то это взять что-то, что не подразумевает жесткой типизации и пытаться наложить на него типизацию через именование переменных. Если кто-так делает, то кому-то нужно взять другой язык/инструмент – текущий просто не удовлетворяет чьим-то критериям.
__________________
Тут мужик танцует и поёт про флэш |
Часовой пояс GMT +4, время: 23:47. |
|
« Предыдущая тема | Следующая тема » |
|
|