0 Сообщения: 585 Зарегистрирован: 12.03.04 Откуда: Беларусь - Борисов
Добавлено: 23 Декабрь 2005, 10:46:37
Цитата:
С какого содержимое функции должно ссылаться на mc только потому , что функция выполняется по его событию?
конечно это обсолютно не читаемо и не правельно. Не понятно интуитивно. Если я напишу это внутри класа, работать это будет подругому. Логики нет, потому как исключений много.
32 Сообщения: 166 Зарегистрирован: 26.10.05 Откуда: Москва
Добавлено: 23 Декабрь 2005, 14:20:36
Король писал(а):
с флешем надо прость е-ться, е-ться и еще раз е-ться. и все станет понятно в какой то момент)
- а понятно всё станет тогда, когда надоест еться и придет понимание того, что нужно писать читабельный код.
@st@l@vist@ писал(а):
iv, вопросы скорости исполнения кода во флеше - глупость
- ровно до того момента, когда тебе не отвалится жирный заказ на игрушку с алгоритмом поиска пути или что-то в этом роде. Про this и думать забудешь: втыкаться будет на автомате. В байткоде ручками писать будешь, чтобы выгадать сотую миллисекунды на итерации.
Цитата:
нужно, ни хоть как то указывать пути, чтобы избежать непознанных ошибок, а понять причины возможных ошибки, и вообще понимать структуру своего приложения и особенности флеша!
каждый программер эволюционирует: - писать чтобы работало - писать и понимать как это работает - писать так, чтобы всем было понятно как это работает.
не думаю, что у меня есть проблемы с пониманием областей видимости, но всё же я пишу this и прочая. чего всем советую. потому как возможно впоследствии кроме меня этот код кто-то будет править.
Цитата:
И насчет рекомендации к хорошему стилю программирования во флеше, они говорят […] - про использование this в каждой строчке кода, там ничего нет …
- неправда. есть. несколькими постами выше я рекомендовал обязательно использовать указание пути к переменным. и обосновал. чем тебе мои рекомендации не угодили?
Рекомендации... все рекомендуют писать понятный, однозначный код.
Если путь к переменной явно не указан, то понимание скрипта зависит уже не от тебя, а от уровня понимания областей видимости тем человеком, который этот код будет читать.
С моей точки зрения уже это весьма веская и достаточная причина.
неправда. есть. несколькими постами выше я рекомендовал обязательно использовать указание пути к переменным. и обосновал. чем тебе мои рекомендации не угодили?
Наверное для тебя не будет откровением, что люди говорят про твой стиль писания? Когда обсуждали твой Path на флешере, даже Нокс, который просто влюблен в "this в каждой строчке кода", указал на нечитабельность …
32 Сообщения: 166 Зарегистрирован: 26.10.05 Откуда: Москва
Добавлено: 23 Декабрь 2005, 15:05:15
2@st@l@vist@:
классу Path уже не первый год стукнул. Я не стою на месте и мое понимание кодинга тоже меняется.
Да и собственно отсутствие читабельности как раз таки не вызвано отсутствием либо наличием this.
Там вроде с этим всё впорядке.
Сейчас пишется новая версия Path, впрочем, это такой проект,
в котором стиль кодинга для его понимания играет минимальную роль.
Нужно знать несколько другие вещи.
2bE(o0L:
Затем, что это решение заказчика, которое от тебя не зависит никаким образом.
Или ты хочешь сказать что описанная ситуация далека от реалий?
- в сети полно таких примеров.
Последний раз редактировалось _iv 23 Декабрь 2005, 15:12:23, всего редактировалось 1 раз.
_iv, ну я не про твой Path - сделал хорошую работу и молодец … мне на самом деле глубоко безразлично, что внутри класса написано, если у класса удобный интерфейс и он работает без ошибок, я никода не полезу смотреть что в нем такое …
А на самом деле, я про то, что прости, не входишь в список авторитетов, от которых приму рекомендации по хорошему стилю написания кода
И еще, думаешь данный топ куда-то нас приведет? - мне кажется нет, только если потрепаться для поддержания активности в разделе …
32 Сообщения: 166 Зарегистрирован: 26.10.05 Откуда: Москва
Добавлено: 23 Декабрь 2005, 15:42:13
Активность в разделе очень важна. Топик не закрываем
Это хорошо, что я не вхожу в список авторитетов.
Я сам вообще не приемлю аргументов типа: так рекомендует Сам Такой-то.
Да пофигу мне рекомендации основанные на пузомерстве.
Но.
Если кто угодно качественно аргументирует свои рекомендации, я соглашусь с ними.
Так давайте обсудим аргументы "за" и "против" обязательного использования пути к переменной.
тогда и вывод можно будет сделать правильный.
@st@l@vist@, with(this) {a,b,c} , я про такую возможность даже не слышал , спасибо попробую , а то когда в коде уже 5-уровневые пути , становится тяжко
0 Сообщения: 585 Зарегистрирован: 12.03.04 Откуда: Беларусь - Борисов
Добавлено: 24 Декабрь 2005, 15:42:44
@st@l@vist@, я не зазнаюсь
bE(o0L, качаешь флекс 2 и втыкаешь. Там всё просто, если не считать тот факт что малость придётся переучиваться Так как такой видимости там прсото больше нету %)
спасибо все за ответы и обсуждения ) было познавательно почитать некоторые посты.
если когото интресует мнение новичка
мне как то привычней чтоли писать с this., как то читабельней. чтоли.. может наверное потому что я начинал с изучения кода в котором использовался this. а не with() ? да и в книгах что есть в наличии используют this.
я думаю что правильно будет использовать все в разумных пределах и по мере надобности я уверен что есть вещи которые удобней и правильней сделать через with или для this
осталось только понимать эти вещи и правильно их реализовывать
32 Сообщения: 166 Зарегистрирован: 26.10.05 Откуда: Москва
Добавлено: 26 Декабрь 2005, 17:51:01
я попробую резюмировать мнение собравшихся:
"за" использование явного указания пути к переменным следующие аргументы:
- однозначность понимания кода, что лишает программера многих эротических
переживаний связанных с выявлением неожиданного поведения кода.
Потому, что мне так удобнее и понятнее, и так пишут на JS, везде куда я ни сунусь, будь то Директор, Иллюстратор, АЕ и т д, и мне не приходится думать о том, что стоит переключаться с флеша на что-то еще.
2) Тем кто использовал первый, из выше указанных способов, проще перейти на конструкции типа:
var myVariables:Number = 1;
function myFunction(args:Array):Number
{
}
3) Мне кажется, что this - должен быть использован там где он необходим, там где без него не обойтись, в случае с таймлайном - это масло масленное.
4) В любом случае, будь ты дизайнер или программист имеющий дело с флешом и профессионально занимающийся этим - твоя обязанность понимать, что и где происходит и почему что-то работает не так. Такова уж специфика флеш - грабли, бубны и т д
В следующем примере нас не спасет ни this, ни var (Мелькал у нас такой топ тут)
Вытаскиваем на таймлайн компонент ScrollPane, а в первый фрейм вставляем код:
0 Сообщения: 585 Зарегистрирован: 12.03.04 Откуда: Беларусь - Борисов
Добавлено: 27 Декабрь 2005, 05:26:40
@st@l@vist@, ууууу …… да тут оказывается нужно давать урок в другом направлении
У тя различия не от использовании а объявлении %) если var то, она испариться якобы, а если this - то жить ей пока не закроешь или delete не применишь.
ПыСы .. речь фактически в основном о классах была.
32 Сообщения: 166 Зарегистрирован: 26.10.05 Откуда: Москва
Добавлено: 27 Декабрь 2005, 15:50:09
если переменная объявлена как локальная, то объявление var... это и есть указание пути к переменной.
никто против и не высказывался.
раздваяюцца мнения о тех переменных, которые не объявлены,
причем неважно где используются, на таймлайне ли или в динамическом классе.
плюс к тому, даже переменным, объявленным в классе,
мне кажется, лучше указывать полный путь.
я категорически против "this - должен быть использован там где он необходим"
единообразие написания кода очень важно. "читатель" твоего кода потеряется уже в первых строках
если ты к одним переменным ("там где необходимо") обращаешься через this, а к другим без.
также трудно определить, даже скорее невозможно, критерии для того, требуется ли this или нет в каждом конкретном случае.
к примеру, ты пишешь на таймлайне:
if (some_flag) {
play()
}
а потом втыкаешь чужой прелодер, который в _global без твоего ведома пихает
_global.some_flag = true
в итоге ты долго ищешь причину, по которой твой код работает некорректно.
и это может случиться в любой момент с любой такой переменной!!!
и еще очень важный момент: производительность.
это может показаться мелочью, но такие мелочи могут отъесть существенный кусок
производительности проекта:
if (some_flag) {
play()
}
в этом случае переменная ищется среди локальных, затем в this и его классовых родителях,
затем в _global и, если нет до кучи вызывается ресольвер.
if (this.some_flag) {
this.play()
}
- поиск не производится в _global и дальше.
- мелочь?
что-то слишком много мелочей накапливается против обращения к переменным без использования пути к ним.
- а оно нам надо?
32 Сообщения: 166 Зарегистрирован: 26.10.05 Откуда: Москва
Добавлено: 27 Декабрь 2005, 16:01:27
Цитата:
var myVariables = 1; function myFunction() { }
- если ты объявил переменную, то ничего неправильного я не вижу.
речь не идет о том, использовать именно this вместо чего-то еще.
Речь идет о том, что нужно указывать путь к переменной.
Как я уже выше писал, объявление var и есть указание такого пути.
32 Сообщения: 166 Зарегистрирован: 26.10.05 Откуда: Москва
Добавлено: 27 Декабрь 2005, 16:09:10
по пункту 4
Цитата:
специфика флеш - грабли, бубны и т д
- я давно не замечал граблей и бубнов во флэш.
т.е. были. но прошли. причем, не с новой версией флэш, а так, рассосались понемногу.
причина в том, что грабли и бубны в голове.
и начинается всё это с мелочей типа: ну раз флэш прощает обращение без указания пути, то и не буду указывать.
но потом выясняется, что не прощает и вот тут начинаются грабли и бубны.
Последний раз редактировалось _iv 27 Декабрь 2005, 16:25:25, всего редактировалось 1 раз.
32 Сообщения: 166 Зарегистрирован: 26.10.05 Откуда: Москва
Добавлено: 27 Декабрь 2005, 16:13:22
Цитата:
твоя обязанность понимать, что и где происходит и почему что-то работает не так
- я об этом писал выше.
повторюсь:
есть три стадии эволюции программера:
- писать чтобы работало
- писать и понимать как это работает
- писать так, чтобы всем было понятно как это работает.
ты сам ответил себе где ты и, надеюсь, видишь куда нужно идти.
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.