Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Регистрация Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.03.2017, 14:39
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 11  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
Цитата:
Сообщение от callme Посмотреть сообщение
Меня интересует почему авторы стандарта рекомендуют написание констант заглавными, а суффиксы нет.
Спросите это у разработчиков ecmascript.

А вообще, это всё похоже на троллинг.

Старый 02.03.2017, 15:02
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 12  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Цитата:
Сообщение от illuzor Посмотреть сообщение
А вообще, это всё похоже на троллинг.
Понимаю, что вопрос кажется копеечным, но у него есть предыстория. Мы с другим программистом дискутировали на совсем другую, важную для нас тему, и дискуссия свелась к аргументу с его стороны: типа по моей логике тогда уж и именование констант не должно отличаться от именования обычных переменных.

И тогда я подумал: "ну да, а почему бы и нет"?

То есть какие-то неясности в архитектуре в мелочах потом начинают обрастать как снежный ком.

Старый 02.03.2017, 15:18
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 13  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,269
так naming conventions - это же рекомендации.Никто не заставляет им следовать.Причем тут архитектура?
А то можно дойти и до
Код AS3:
var instanceMySuperPuperClass;
В жаве, например,почему-то все поля класса пишутся с префиксом m:
Код AS1/AS2:
private AppLovinIncentivizedInterstitial mIncent;
Что это значит нигде не пишут.

Старый 02.03.2017, 15:19
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 14  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
А если это не строка, а экземпляр класса Address?
В этом случае(если вдруг забыл, что такое address) можно воспользоваться помощью FlashDevelop


Цитата:
А если это не array а пул? Писать pullOfOranges?
А они чем-то отличаются в функциональном плане? И тем не менее, мне кажется красивым такой вариант: orangesPool.

Добавлено через 1 минуту
undefined, m значит member
__________________
There is no thing in this world that is not simple.

Старый 02.03.2017, 15:29
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 15  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,269
Цитата:
undefined, m значит member
Благодарю.

Старый 02.03.2017, 15:43
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 16  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Цитата:
Сообщение от undefined Посмотреть сообщение
так naming conventions - это же рекомендации.Никто не заставляет им следовать.
Я это понимаю.

Цитата:
Сообщение от ZackMercury Посмотреть сообщение
В этом случае(если вдруг забыл, что такое address) можно воспользоваться помощью FlashDevelop
С константами тоже самое, необязательно их заглавными буквами писать. IDE их может цветом пометить например.

Цитата:
Сообщение от ZackMercury Посмотреть сообщение
А они чем-то отличаются в функциональном плане?
Это экземпляры разных классов. С экземпляром одного класса нельзя делать то, что можно делать с экземпляром другого. Если один класс наследует другой, то можно, но все равно только часть.

Старый 02.03.2017, 17:34
Wolsh на форуме Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 17  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,439
Вы понимаете, что константа и переменная это не Классы? Что это сущности гораздо более высокого уровня? Что пул и массив это сущности другого уровня, они просто Классы и на уровне языка они не различаются, то есть и то, и другое — класс?
Цитата:
Меня интересует почему авторы стандарта рекомендуют написание констант заглавными, а суффиксы нет.
Вам уже ответили выше — в типизированном языке суффиксы не имеют смысла. И еще раз, ваши суффиксы говорили бы только о том, какой это Класс. Константы и переменные — это не классы. Вы сравниваете теплое с зеленым.
__________________
Reality.getBounds(this);

Старый 02.03.2017, 17:52
callme вне форума Посмотреть профиль Отправить личное сообщение для callme Найти все сообщения от callme
  № 18  
Ответить с цитированием
callme
 
Аватар для callme

Регистрация: Dec 2014
Сообщений: 312
Wolsh

Мы даем константам имена в верхнем регистре, чтобы в коде отличать их от обычных переменных.

Вопрос: зачем нам знать, что сущность перед нами является константой?
Ответ: чтобы не совершать над константой недопустимые действия, а именно — не пытаться присвоить ей новое значение.

По той же логике давайте добавлять суффиксы переменным.
Вопрос: зачем?
Ответ: чтобы не совершать над объектом недопустимые действия, а именно — пытаться вызвать несуществующие методы.

Но! Компилятор и так отловит попытку вызова несуществующих методов. Так что суффиксы в в типизированном языке не нужны.

Но! Возвращаемся к константам. Присвоить новое значение константе не даст компилятор. Получается и именование констант в верхнем регистре не нужно.

Старый 02.03.2017, 19:21
amesqit вне форума Посмотреть профиль Отправить личное сообщение для amesqit Найти все сообщения от amesqit
  № 19  
Ответить с цитированием
amesqit
 
Аватар для amesqit

Регистрация: Oct 2007
Сообщений: 255
Записей в блоге: 1
Не знаю как вы, а я часто использую в коде префиксы. Да для типизированных языков они не имеют смысла, но они увеличивают наглядность кода. В основном я их использую для приватных/локальных переменных "элементарных" типов: строки (strSome), числа (numSome), массивы/векторы (arrSome/vecSome), булевы флаги (isSome). Заглавные константы - это тоже удобство, конечно компилятор будет ругаться на попытку изменения, но зачем пытаться, если сразу видно, что это делать нельзя? По той же причине и имена классов начинаются с заглавной буквы, чтобы их было легко отличить от переменной, не прибегая к помощи подсказок IDE и поиску определения переменной в тексте класса.
__________________
ответ прост: be || !be == true

Старый 02.03.2017, 19:35
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 20  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Новосибирск :D
Сообщений: 6,590
Записей в блоге: 17
Суффиксы сосут.

Примите за правду, что бОльшую часть времени Вы код читаете, а не пишете.
Константа = что-то, что можно инлайнить "головой" при чтении кода и это немного, но помогает.
Причём, пожалуйста, не путайте константу с КОНСТАНТОЙ. Первое – это то что не меняется в скоупе. В AS3 это недоступно, но ближайший приятель где это есть – это ES6.
Код:
const hello = 'world';
Оно может быть и будет разным. Второй же варианты КОНСТАНТЫ – это явный индикатор что он никогда не изменится. Скорее всего, он итак нечто очень явное, например, количество струн в укулеле, но 4 это куда менее читабельно, чем UKULELE_STRINGS_COUNT. Ещё это может быть нечто менее явное – например, количество блоков в странице памяти – всех их объеденяет одно – скорее всего это был magic number, который стал чем-то читабельным.

Но почему суффиксы сосут? Спасибо что спросили!
Если зайти со стороны строго-типизированных компилируемых языков, то они просто не нужны. IDE сама подскажет какой тип, компилятор сам выведет тип и подскажет, если где-то есть нестыковка.
Если зайти со стороны интерпретируемых языков (мы не знаем какой тип у переменной до рантайма!) – то... то это взять что-то, что не подразумевает жесткой типизации и пытаться наложить на него типизацию через именование переменных. Если кто-так делает, то кому-то нужно взять другой язык/инструмент – текущий просто не удовлетворяет чьим-то критериям.

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:09.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.