PDA

Просмотр полной версии : Кто как разрабатывает Flex приложения.


vapes
19.09.2007, 19:17
Вот интересно мне опрос провести (среди тех кто уже имел опыт работы с flex) что представляют ваши проекты:
1-весь код в одном mxml
2-множество mxml c логикой, а также свои сообственные mxml компоненты
3-весь графический интерфейс в mxml, а логика в отдельных AS классах
4-полностью AS3 проект с использованием flexовского фреймворка
5-через ( )о( )

Nirth
19.09.2007, 19:56
Ну...так как я тут самый крутой флекс разработчик на форуме.
Я и отвечу.

Флекс проект это вообще огромная бандура, это тысячи классов (Flex Framework + еще пара фреймворкров/библиотек + свои адапотры и компоненты) И поэтому получается все пять пунтков

И компоненты в одном мхмле, и мхмле только GUI а логика разделена между AS и MXML (некоторую логику легче записать через bindings но злоупотреблять ими не стоит) и конечноже через жопу случается. Так же постояно идет наем аутсорсеров из индии которые наворотят кода, и туда заглядывать страшно (работает да и ладно).

Я не считаю, что так его разрабатывать нужно, но мы живем не в идеальном мире =)

DarkLight
19.09.2007, 20:10
MXML компоненты с логикой+AS-расширения стандартных компонентов, обычно с целью нормализации поведения последних+набор своих классов...вобщем как сложится:)

baron27
19.09.2007, 20:10
согласен с Ниртом.
один чувак как-то сказал - думать надо не паттернами, а задачами.

vapes
19.09.2007, 20:21
Ну я хоть и сам начинающий флексер, но 3 последних способа уже попробовал, и вижу что никто не скажет как правильно разрабатывать Flex приложения

__i
19.09.2007, 20:55
Лучше стараться разделять интерфейс и сложную логику по полочкам )

Mxml заставляем отвечать за дизайн, сложную логику разсовываем по AS-классам.

Простецкие задачи возлагаем на мхмл.

Иногда проще наколбасить mxml компонентик сам в себе. Например айтем рендер.

Nirth
19.09.2007, 20:58
А еще бывает весело когда инвестор приезжает завтра, а нифига нету и надо за ночь сделать прототип=)

А потом влом писать по человечески, на этом прототипе и делают.

А потом ко мне обращаются и говорят - Давид, все нахрен летит, спасай, вот на таких дядек и надо работать =)

librio
20.09.2007, 19:18
Мелкие проектики можно делать любым способом.
Но для разработки серьезных вещей, как минимум, надо:
- продумывать структуру компонентов
- реализовывать все необходимые интерфейсы
- реализовывать все необходимые абстрактные классы
- реализовывать все необходимые классы
- часто собирать и ОБЯЗАТЕЛЬНО пропускать через модульное тестирование критичные вещи

НО!:
без фанатизма!
если проектик мелкий и разрабатываемые компоненты больше нигде применять не надо будет - то можно и на скорую руку :)

librio
20.09.2007, 19:24
Ну...так как я тут самый крутой флекс разработчик на форуме.
Я и отвечу.
Вот это еще очень порадовало :)
Продолжаем в том же духе :):):)

DarkLight
20.09.2007, 19:57
- реализовывать все необходимые интерфейсы
- реализовывать все необходимые абстрактные классы
...но соблюдая при этом осторожность и не теряя здравого смысла...у Джоэла Спольски есть хороший термин на этот счет: Architecture Astronaut(http://www.joelonsoftware.com/articles/fog0000000018.html) - вот до этого доходить нельзя:)

†‡Paladin‡†
20.09.2007, 20:13
Имхо главное это понятные названия придумывать. Не стесняюсь составлять из 3х 4х слов.

DarkLight
20.09.2007, 20:17
Понятные названия это хорошо, но главное, чтобы не в ущерб читаемости кода...Во всех публичных свойствах и методах это обязательно, а вот для локальных переменных внутри методов длиной в десяток строчек каждый раз следить за именами - имхо перебор.

vapes
20.09.2007, 20:37
Я обычно стараюсь делать понятными переменные классов (всегда употребляю их с this...), если переменная у меня встречается в куче классов-чилдренов, то я ставлю перед ней _..., если в методе куча фармул, то я сокращаю имена переменных ,предварительно написав перед методом коммент. Это мой стиль программирования, я его никому не навязываю.

Entropy
21.09.2007, 23:00
Я обычно стараюсь делать понятными переменные классов (всегда употребляю их с this...), если переменная у меня встречается в куче классов-чилдренов, то я ставлю перед ней _..., если в методе куча фармул, то я сокращаю имена переменных ,предварительно написав перед методом коммент.
Обратили внимание, сколько "если" в вашем стиле? Употреблять this не советую - просто лишние буквы, у тому же вы заколебетесь делать рефакоринг Замена метода объектом метода (Replace Method with Method object) при таком подходе. Раз уж ставите подчеркивания в полях класса, то ставьте их везде, без исключений. И вообще в таких делах лучше не придумывать свой стиль, а ориентироваться на соглашения разработчиков крупных фреймворков типа
Java (походит для AS):
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

или .NET (для AS не подходит, но посмотреть стоит):
http://msdn.microsoft.com/library/rus/default.asp?url=/library/RUS/cpgenref/html/cpconnetframeworkdesignguidelines.asp

Coding conventions для AS 3 от Adobe я не встречал, а те что для AS 2, морально устарели.

etc
21.09.2007, 23:03
Насчет this не согласен.

Nirth
22.09.2007, 03:35
this в классах не юзаю.

Mr. Fixit
22.09.2007, 04:25
this в классах стараюсь не юзаю, но как тут this не использовать?

for (i = 0; i < comLenght; i++) {
this['new' + i] = new Object ();
hit = this['new' + i];
}

Nirth
22.09.2007, 04:35
так я тоже не делаю=)

Mr. Fixit
22.09.2007, 04:36
а как же тогда??
подскажи, если не тяжело =)

Nirth
22.09.2007, 04:39
в класс прописывать свойства так..ну я не люблю.

если надо то создается объект(обычно это даже не Object а Dictionary если говорим о АС3, они меньше жрут ресурсов, более гибки в плане ссылок)


var dict:Dictionary = new Dictionary(true);

for(var i:uint = 0; i < 10; i ++)
{
dict[i] = i*2+3/4-5;
}

Mr. Fixit
22.09.2007, 04:51
а если в АС2?

я кстати еще this юзаю в Delegate.create(this, func);

Nirth
22.09.2007, 05:15
прими мои собалезнования=)

Entropy
22.09.2007, 09:23
Естестественно, this надо использовать там, где без него не обойтись (например, если параметер метода совпадает с именм поля, или вы передаете его в качестве аргумента), но в остальных местах он просто лишний. Это у некоторых привычка от старых protоtype based версий ActionScript. Не спроста ведь в новых версиях сделали возможным его опускать? Вообще существует несколько основных разновидностей именования приватных полей класса.

Без подчеркивания: myField
Этот вариант имеет две проблемы: имя поля может быть перекрыто локальной переменной или параметром, нельзя определить геттер и сеттер с тем же именем. Последнее особенно актуально, с учетом того, что методы в ActonScript однозначно прнято именовать со строчной буквы. Можно, конечно не использовать геттеры сеттеры по мере возможности, но мы же взрослые дяди, и понимаем, что в коде на несколько десятков тысяч строк оставлять публично трочащие наружу поля чревато тяжелыми телесными повреждениями.

С подчеркиванием: _myField
Способ всем хорош за исключением эстетического плана. Лишнее подчеркивание анноит.

C++ стиль: m_myField
Анологичен предыдущему только еще непригляднее - здесь уже два лишних символа. Используется исключительно old school программистами, и теми, кто пытается им подражать, ибо никаких преимуществ по сравнению с вариантом с подчеркиванием у него нет.

Pascal стиль: fmyField
К счастью, ActionScript регистрочуствительный язык в отличие от Паскаля, поэтому здесь так извращаться не приходится.

this спереди: this.myField
С этим вариантом есть проблемы того плана, что если вы захотите вынести метод класса, например, в функцию или сделать метод статическим, то придется удалять все this. Если при этом внутри метода будут объявлены переменные с тем же именем, что и имя поля, то придется переименовывать поля. Кроме того, за пределами AsctionScript этот способ крайне редок.

С большой буквы: MyField
За такое надо убивать из рогатки.

Очевидно, что единствеенный кошерный варинат, который позволяеет везде и без исключений применять единоообразную технику именования полей - вариант с пдчеркиванием. В C# можно было бы избрать первый вариант, ибо в .NET принято именовать методы с прописной буквы, в Java так же, потому что там пока еще нет свойств вообще. А вот в Pascal или Basic нельзя - реистронечуствительные языки. В ActionScript первому способу мешает наличие геттеров сеттеров.

Как говориться, мементо портабилити.

etc
22.09.2007, 11:07
Да ладно, this убрать при переносе в static вообще не проблема, не надо делать из мухи слона. К тому же, в 99% случаев одной заменой this не обойдется, это будет едва ли не самая простая операция. Код и так и так править.

lowka
22.09.2007, 12:34
... this надо использовать там, где без него не обойтись (например, если параметер метода совпадает с именм поля, или вы передаете его в качестве аргумента)...

Вот поэтому и использую его при обращении ко всем полям и методам класса. Либо всегда использовать, либо никогда не использовать.

etc
22.09.2007, 12:38
this сразу дает понять и мне и компилятору, что обращение идет не к статическому полю и не к локальной переменной.

Правда, в нескольких проектах в блоге this отсутствует, каюсь

librio
22.09.2007, 14:04
AS2 и его хелп все время приучал нас писать вещи типа mcBall вместо ball, arrBalls вместо Balls и так далее, чтобы не забыть что есть что. С this таже песня, потому как иногда без этого злосчастного this проект просто не хотел компилироваться (мелкие проги не в счет).

Всем новичкам очень рекомендую писать this, чтобы понимать логику и увеличивать читабельность и понимание своего кода.

__i
22.09.2007, 15:43
конструкция this никак не увеличивает читабельность кода.

screamge
22.09.2007, 16:33
В статик методах лучше всего писать так: НазваниеКласса.имяСвойства.
Приватные свойства начинать с двойного подчёркивания: __свойство.
На тему названия методов с прописной буквы в АС, чесно говоря в первый раз слышу чтобы была такая договорёность или правило, геттеры и сеттеры — желательно но не обязаловка.

this пишу в основном в классах наследуемых от мувиклипа.

Да и объекты в цикле не создаю :). Разве что при обращении к мувиклипам или текстовым полям в цикле приходится использовать.



for (i = 0; i < xml.length; i++){
this['text' + i + '_txt'].text = xml.childNodes[i].attributes._name;
}

etc
22.09.2007, 17:28
__i и не ухудшает :)
Всего лишь дает понять, что то, к чему мы обратились, лежит где-то в классе (и к этому можно перейти по ctrl), а не объявлено внутри функции 150 строчек назад.

iNils
22.09.2007, 17:34
Всех кто использует this - казнить, а тех кто не использует - повесить.

artcraft
22.09.2007, 18:31
предложите еще $ использовать вместо всего этого :~)
сразу код дорого смотреться будет: var $myMc :~)

etc
22.09.2007, 19:20
Цену за работу будешь назначать по количеству значка доллара? :)

Nirth
22.09.2007, 19:25
я могу понять когда this используют в таком коде


private var width:int;
private var height:int;

public function setSomethingAndInit(width:int, height:int):void
{
this.width = width;
this.height = width;
redraw();
}


Но просто так пихать...для меня это сложней читать. Вобщем дело привычки, но я бы не нанял человека у которого this стоит там где не нужно=)

etc
22.09.2007, 19:29
Nirth, ты обрушил все мои надежды :))

Nirth
22.09.2007, 20:04
__etc если мне трудно читать код подчиненого, зачем мне такой подчиненый=)?

Возможно есть чувак которому трудно читать код без this, но если честно таких как я большинство, ибо в C#, Java this тоже не ставят пока не припечет.

Да и в Python (там вместо this – self) тоже не ставят.

Kikasso
22.09.2007, 20:11
Я ставлю, потому что FlashDevelop сразу мне предлагает выбор, что поставить, а потом стираю, потому что this меня бесит.

iNils
22.09.2007, 20:14
Я ставлю, потому что FlashDevelop сразу мне предлагает выбор, что поставить, а потом стираю, потому что this меня бесит.
А ctrl + space жать не пробывал?:)

baron27
22.09.2007, 20:17
наверное многие знают, есть книженция "Горький вкус Java" Брюса Тейта. Там описываются проблемы красоты и единообразия кода, правда на Java, но для ас тоже полезно будет.

†‡Paladin‡†
22.09.2007, 20:32
__etc если мне трудно читать код подчиненого, зачем мне такой подчиненый=)?

Что бы подчиняться =))

Nirth
22.09.2007, 21:10
Что бы подчиняться =))


Да ну, манией величия я не страдаю, подчиненые нужны, чтобы у нас литературный вкус совпадал, и я не уставал читать их код!=)

etc
22.09.2007, 23:30
Договариваться просто надо :)

†‡Paladin‡†
23.09.2007, 03:23
Да ну, манией величия я не страдаю, подчиненые нужны, чтобы у нас литературный вкус совпадал, и я не уставал читать их код!=)
пффф =))) А кто говорил что он самый крутой флексер в начале треда? =))

Nirth
23.09.2007, 09:36
я не говорил что я самый крутой флексер.
я сказал что я самый крутой флексер из форумчан, вобщем я просто контатировал факт. если бы я сказал что я не самый крутой флексер на форуме я бы нагло соврал в лицо =)

pelipas
23.09.2007, 16:33
крутизна одна кругом. ай как страшно жить.. :D

Mr. Fixit
23.09.2007, 18:35
страшно просто выходить в интернет, и заходить на форум..:eek:

vapes
24.09.2007, 13:38
Цитирую соглашение о программировании из вот этой (http://ec1.images-amazon.com/images/I/51fxLtjyL7L._AA240_.jpg) книжецы:
"Всякий раз, когда возможно используйте ключевое слово this как префикс вместо того , чтобы чтобы опускать ключевое слово, даже если ваш код работает без этого. Используйте ключевое слово this для указания принадлежности метода или св-ва определенному классу."

iNils
24.09.2007, 17:07
Цитирую соглашение о программировании из вот этой (http://ec1.images-amazon.com/images/I/51fxLtjyL7L._AA240_.jpg) книжецы:
"Всякий раз, когда возможно используйте ключевое слово this как префикс вместо того , чтобы чтобы опускать ключевое слово, даже если ваш код работает без этого. Используйте ключевое слово this для указания принадлежности метода или св-ва определенному классу."
А в инструкции к электроприборам написано, что надо сначала выключить прибор, а потом выдернуть шнур из розетки.

Kikasso
24.09.2007, 17:33
А ctrl + space жать не пробывал?:)
Едрена шишка! Работает!
:drinks:

KidsKilla
24.09.2007, 17:36
наверное многие знают, есть книженция "Горький вкус Java" Брюса Тейта. Там описываются проблемы красоты и единообразия кода, правда на Java, но для ас тоже полезно будет.
проблемы красоты и единообразия... проблемная красота это с прыщами штоль? =)))

Molecula
24.09.2007, 17:53
Хм...прыщи в Ява коде,.чёрт! Покупайте прогу Clean&Clear - эффект на мониторе через час :)

vapes
24.09.2007, 18:11
А в инструкции к электроприборам написано, что надо сначала выключить прибор, а потом выдернуть шнур из розетки.
Получаецца ты свой комп выключаешь выдергиванием шнура из розетки?

igrik
25.09.2007, 00:34
а что такое flex?:)

screamge
25.09.2007, 00:55
а что такое flex?:)

Модель электрочайника :)

iNils
25.09.2007, 02:25
Получаецца ты свой комп выключаешь выдергиванием шнура из розетки?
Он круглосуточно включен :D
Я к тому, что многие не только не читаю инструкции, но и прочитавшие не выполняют, то что там написано, потому что человек поступает не так как нужно, а так как ему удобно.

vapes
25.09.2007, 11:30
Я понимаю инструкции к бытовым приборам с которыми уже все знакомы. Но соглашение о кодировании не от балды пишется. Я также еще и понимаю что дикому флешеру - фрилансеру про стандарты кодирования втюкивать бесполезно, но если раздаботка идет на командном уровне, то стоит задумацца.

Mr. Fixit
25.09.2007, 12:27
каждый программирует, если пишет сам проект, как удобно, в пределах правильного синтаксиса.

iNils
25.09.2007, 19:26
Соглашение это не стандарт. И является чисто условным.
Вот решили мы с Давидом дать ответу БГейтсу и написать Door на флеше. Но нам нужен третий и пригласили Дениса, так в нашей команде он будет подстраиваться под нас и не писать this.

Я без проблем могу писать и с this и без него, но читать мне удобнее без.

vapes
25.09.2007, 19:37
Эт я понимаю, самого сейчас перевели на проект, где никто не пишет this. Я конечно и не навязываю никому ,но был очень удивлен ,когда после моего поста я увидел противников this. Да и еще я скажу, что программить на флеш я начал с ас3, и this у меня уже в привычке.

iNils
25.09.2007, 20:23
Противники, это когда существует два и более мнения и каждое мнение пытается вытеснить другие. Не думаю, что вопрос с this, это борьба за выживание.
А вот тех кто пишет vzat_skorost вместо getSpeed надо гнать :D

etc
25.09.2007, 20:43
Я могу писать и с this и без него, в общем-то не принципиально. На работе обязательно, а свое что-то — как повезет.

Snut
19.02.2008, 03:06
CONST
_private
get/set private
myFunction
ну вот как-то так:)
this переодически просто необходим, как говорилось выше в конструкциях типо this.width = width (всмысле читать приятнее)

вообщем вот так:)

etc
19.02.2008, 10:13
this в принципе вообще везде необходим.

KidsKilla
19.02.2008, 13:57
this в принципе вообще везде необходим.
врешь ты всё.

terbooter
19.02.2008, 14:01
Без this код читается гораздо хуже.
Если не применять специальную систему разделения имен для полей класса, параметров и локальных переменных, то без this вообще не обойтись.

Для себя я считаю что использование this это один из пунктов еще несуществующего Naming Conventions for AS3

etc
19.02.2008, 14:06
врешь ты всё.
Ну кроме статических классов :)

vapes
19.02.2008, 14:53
Для себя я считаю что использование this это один из пунктов еще несуществующего Naming Conventions for AS3
Есть про AS2 и там уже написано чтобы использовали this везде где только можно.
И в стандартах любой серьезной компании это будет написано.

KidsKilla
19.02.2008, 16:01
тогда я буду асоциальной личностью, отщепенцем и возмутителем спокойствия.
НЕТ this'у там где он не нужен! долой лишнюю писанину! =)))

iNils
19.02.2008, 16:16
"Однако применение this без необходимости избыточно." © Колин Мук

etc
19.02.2008, 16:26
"Однако применение this без необходимости избыточно." © Колин Мук
Вероятно, дядя Мук не изучал тучу кода без this, если делает такие заявления.
Я уже приводил пример, когда без this код будет значительно сложнее понять.

Бармалей
19.02.2008, 17:01
Я уже приводил пример, когда без this код будет значительно сложнее понять.
Никогда не пишу this, кроме случаев, где ссылка на текущий объект при обращении к свойству действительно необходима.

Более того, если обнаружу в блоке кода обращение к свойству через this, то понимаю это как указание на то, что в этом же блоке кода присутствует еще переменная или параметр с таким же именем.

А вообще, использование this при любых обращениях к свойству класса считаю лишним и только запутывающим разбор кода. Очень рад, что от этого избавились при переходе с АС1 на АС2.

Кроме того FDT, Flex Builder и FlashDevelop без проблем покажут вам, чем является текущий указатель - свойством класса, локальной переменной или параметром метода.

vapes
19.02.2008, 17:15
Ну в АС1 и АС2 этим можно пренебречь. Там не так все строго. А в АС3 не писать this очень плохой пример программирования. И если человек не занимался коммандными разработками и не воротил кучу кода, то ему это не понять.
Вот по __ect сразу видно в комманде сидит.
Так что разработчики TimeZero и Spreadshirt за "this"

etc
19.02.2008, 17:21
Бармалей, мы тебя научим :)

Бармалей
19.02.2008, 17:23
А в АС3 не писать this очень плохой пример программирования. И если человек не занимался коммандными разработками и не воротил кучу кода, то ему это не понять.

Да ну нет никаких проблем. Не дублируйте просто названия свойств класса в локальных переменных или параметрах и будет вам "щастье". =)

etc
19.02.2008, 17:30
Бармалей, вот нет у тебя билдера и FDT, просматриваешь блокнотом. Смотришь ты в строчку:

applyParameters(myParam, myVariable, xCoordinate, yCoordinate);

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

Kogrom
19.02.2008, 17:56
Наконец-то я начал понимать, зачем использовать в классах this. В общем, получается, что и на c++ (и других подобных языках) при написании классов лучше использовать this.

Хотя, если в коде класса не очень много строк, то это, по моему, изврат. Всё равно, как если у вас на диске один файл, а вы создаете для него хитрую систему папок с говорящими названиями...

etc
19.02.2008, 18:09
Хотя, если в коде класса не очень много строк, то это, по моему, изврат. Всё равно, как если у вас на диске один файл, а вы создаете для него хитрую систему папок с говорящими названиями...
Либо применятся схема с this везде, при любом размере класса, либо не применяется вообще. Третьего не дано, промежуточные варианты создают помойку неопределенностью границы, при которой надо использовать this и когда не надо.

FlexOkeks
19.02.2008, 18:26
Бармалей, вот нет у тебя билдера и FDT, просматриваешь блокнотом. Прямо-таки экстремальные условия, как из фильма про разведчиков: он перехватил шифорофку на АS, но у него не было под рукой ни билдера ни FDT, а время шло, чтобы запустить реактор нужно было срочно определить где находиться this!
Интересно, как настоящий шпион выкрутился бы из ситуации, если б у него не было бы даже блокнота, а работающая на последнем заряде, изрядно попорченная хакерами-противниками консоль никак не хотела понимать кодировку, и даже латинские символы отображала б в кракозябрах? :quiet:

etc
19.02.2008, 18:30
Прямо-таки экстремальные условия, как из фильма про разведчиков: он перехватил шифорофку на АS, но у него не было под рукой ни билдера ни FDT, а время шло, чтобы запустить реактор нужно было срочно определить где находиться this!
Интересно, как настоящий шпион выкрутился бы из ситуации, если б у него не было бы даже блокнота, а работающая на последнем заряде, изрядно попорченная хакерами-противниками консоль никак не хотела понимать кодировку, и даже латинские символы отображала б в кракозябрах? :quiet:
Лично мне было бы лень создавать новый проект в FDT и билдере ради изучения пары функций чужого кода. Я думаю, не только мне, неправда ли?
Скидывать на редактор собственную лень, на мой взгляд, хреново.

Kogrom
19.02.2008, 18:38
Либо применятся схема с this везде, при любом размере класса, либо не применяется вообще. Третьего не дано, промежуточные варианты создают помойку неопределенностью границы, при которой надо использовать this и когда не надо.
Хороший довод. Кроме того, я нашел еще один довод. В некоторых IDE, после ввода this можно просмотреть все переменные и функции класса с помощью автодополнения кода.

etc
19.02.2008, 18:43
Хороший довод. Кроме того, я нашел еще один довод. В некоторых IDE, после ввода this можно просмотреть все переменные и функции класса с помощью автодополнения кода.
Ну это уже мелочь, хотя при cmd (ctrl) + enter без this будет выведен весь список доступных свойств и переменных, а при наборе this только поля класса, что есть правильно и хорошо.

FlexOkeks
19.02.2008, 18:53
Лично мне было бы лень создавать новый проект в FDT и билдере ради изучения пары функций чужого кода. Я думаю, не только мне, неправда ли?
Скидывать на редактор собственную лень, на мой взгляд, хреново.Точно, все гениальное просто!
Mюллер спросил Штирлица - мы перехватили все ваши радиограммы, и все удалось расшифровать, все кроме одной! Вчем ее секрет?
Штирлиц ответил - мне просто было лень открыть шифроблокнот, и я написал открытым текстом, на жаргоне разведчиков! :drinks:

etc
19.02.2008, 18:58
Несмотря на то, что это раздел флейма, я вполне серьезно.

vooparker
19.02.2008, 19:41
не пишу this для того, чтобы пометить, что я обращаюсь к полю класса. И как то не испытываю от этого затруднений при чтении кода. И не добавляю к именам полей/переменных префиксов и суффиксов намекающих на тип поля/переменной, хотя для кого-то это очень удобно.

badun
19.02.2008, 20:15
не пишу this для того, чтобы пометить, что я обращаюсь к полю класса. И как то не испытываю от этого затруднений при чтении кода. И не добавляю к именам полей/переменных префиксов и суффиксов намекающих на тип поля/переменной, хотя для кого-то это очень удобно.

Был на одном мероприятии, там выступал крутой сис.программист, он похвастал, что не понимает нахрена использовать всякие ИДЕ, лично он пишет все в vi. Зал аплодировал. Я сидел в шоке, потом догнал что там сидели линуксойды фанатичные в основном, от-того и реаккция.
Для прикладного программиста, удобный инструмент кодирования - залог эффективности, системному на это видимо похер, основная задача оптимизация алгоритмов - все держит в голове.
Это я к тому, что человек котрый пишет коряво и гордится этим выглядит не убедительно, без обид )).

А вообще я за this )), но есть только пара замечаний.

1) Иногда слишком удлинняет простые выражения:
this.length = Math.sqrt(this.width*this.width + this.height*this.height)

говорить о том, что читабельность в данном случае улучшается не стОит))

2) если использовать префикс _, это уже является указателем принадлежности поля к классу, отличить от локальной переменной легко.
Использование this перед вызовом метода вообще сомнительно. Чтобы отличить от вызова глобальных функций? Так их и так все "в лицо знают" )), всегда отличить можно.

ЗЫ: использовать двойные префиксы, это уже по-моему бред, попахивает онанизмом.

vooparker
19.02.2008, 20:28
куда убедительней смотриться вывод о корявости всего моего кода на основании того что я не использую this =) ну-ну...

badun
19.02.2008, 20:46
не надо вводить в заблуждение, все записано ))
не пишу this ...
не добавляю к именам полей/переменных префиксов ...
и суффиксов намекающих на тип поля/переменной...
по поводу корявости я наверное загнул, но гордиться действительно нечем

KidsKilla
19.02.2008, 20:59
бадун, етц, не надо путать притянутое за уши юзанье this и логичность и простоту кода. про удлиннение и замусоренность кода уже было сказано, да.
если дофига приходится иметь дело с тоннами быдлокода, дело, канеш, спорное, но я в таком случае еще не придумал чью позицию занять. имхо, таки this дело не исправит...
а пока я постою в сторонке, послушаю =)

vooparker
19.02.2008, 21:15
тип (MovieClip, Sprite...) и доступ (public, private) вещи разные =)
кому-то очень нравиться писать так:
public var container_mc:MovieClip
в данном случае "_mc" суффикс, указывает на то что тип поля container_mc - MovieClip. Для меня такое наименование излишне. Однако, опять же я не вижу причин как гордиться, так и стесняться этого, и уж точно не вижу чего-то преступного и неправильного

etc
20.02.2008, 00:02
Подчеркивание означает private/protected-переменную, но поля класса могут быть как public, так и геттеры с сеттерами.
По поводу тотального использования this (а в случае с наследованием, ещё и super, для уверенности) я не комплексую. По мне, отсутствие this равносильно отсутствию указания прав доступа к переменной, т.е. использованию значений по умолчанию.

vooparker
20.02.2008, 11:55
Подчеркивание означает private/protected-переменную...
на счет protected можно еще и поспорить, ребята из Адоби думают иначе =).

etc
20.02.2008, 13:45
А мне по-барабану, как думают ребята из Adobe.

badun
20.02.2008, 15:26
действительно, лОхи какие-то )), откуда вылезли непонятно

etc
20.02.2008, 16:12
Вы ещё скажите, что флексовый фреймворк весь из себя правильный и безглючный.

vooparker
20.02.2008, 16:16
Вы еще покажите фреймворк весь из себя правильный и безглючный =))

etc
20.02.2008, 16:23
Их можно сортировать по степени глючности.
А ребяты из Adobe ещё и override перед неймспейсом пишут, не говоря уже о бардаке в порядке следования этих самых неймспейсов, оверрайдов, переменных, геттеров/сеттеров и проч.

vooparker
20.02.2008, 16:27
Не спорю, кое-где в сорсах флекса идет полная каша в плане оформления, но вцелом соглашение которое используется вполне читается.

Скрипун
20.02.2008, 19:49
тут было много тем про flex.... и т.к. у меня один вопрос, то задам его в этой теме...

есть Flash, есть Flex. Flex отличается от того что там есть компоненты... и с ними удобно пользоваться... и все такое..
В Flash тоже есть компоненты? Чего бы просто не добавить компоненты flex во Flash и все дела... и тоже б мышкой их таскали на Stage или 1й кадр ... ну mxml прикрутить... и все! а так иы отказываемся от timeline ... но все равно грузим swf .. короче как-то не удобно.... в каком месте я ошибоюсь?

DarkLight
20.02.2008, 21:03
для работы с mxml нужен флексовый компилятор. И зачем таймлайн для приложений на компонентах? А Flex Component Kit for Flash CS3 существует, и таким образом некоторые аналоги части флексовых компонентов во Flash у нас есть. Хотя, если честно, не вижу смысла. Написал закончил проект под Flash CS3 (FlashDevelop для кодирования, флеш для работы с графикой). Если бы знал сколько проблем это доставит, начал бы сразу на Flex. Flash на данный момент, по-моему, вообще практически непригоден для проектов со значительной долей программирования.

librio
28.02.2008, 19:08
Всем быстро идти изучать Ruby! И уже через неделю будет воротить от лишних нагромождений кода (и this в том числе). Если вашу программу без this труднее читать - видимо не все так хорошо в этой самой программе :)

KidsKilla
28.02.2008, 20:14
Всем быстро идти изучать Ruby! И уже через неделю будет воротить от лишних нагромождений кода (и this в том числе). Если вашу программу без this труднее читать - видимо не все так хорошо в этой самой программе :)
аймсорре, безобид, но вот щас ты про руби херню спорол, ейбогу.
все равно что автомобилисту сказать -- иди учись на самолете летать, никаких проблем с колёсами и бездорожьем.

etc
28.02.2008, 23:23
Всем быстро идти изучать Ruby! И уже через неделю будет воротить от лишних нагромождений кода (и this в том числе). Если вашу программу без this труднее читать - видимо не все так хорошо в этой самой программе :)
Подобного рода заявления без аргументов даже не рассматриваются. Про бред уже выше написано.

librio
07.03.2008, 17:39
Ruby изменил мой образ мышления как программиста. Я это имел ввиду. Аргументов привести не могу - это надо попробовать. Но никому не навязываю :)

†‡Paladin‡†
07.03.2008, 19:17
Ruby изменил мой образ мышления как программиста. Я это имел ввиду. Аргументов привести не могу - это надо попробовать. Но никому не навязываю :)
Попробуй Хаскел.