![]() |
Хорошее ООП?!
Хорошее ООП?!
Хорошее ООП в AS3 это вообще как? Вот смотрю я на код и как мне понять есть там хорошее ООП или нет. А что такое плохое ООП. Как вы сами отличаете xорошее ООП от «тухлого»? :eek: |
хм... глубинный вопрос.. но лучше б это во флейм
|
Почему во флейм? меня интересует ООП с привязкой к AS3, а не про некое абстрактное ооп.
|
Хорошее ООП - это когда внесение каких-либо изменений, дописание модулей, добавление новой функциональности в проект не влечет за собой взрыв мозга.
|
ООП, это такой идеальный код, мега портабелный и мега оптимизированный, к которому нужно стремится в идеале.
|
Вопрос из серии, а как вы отличаете хороший третий закон Ньютона от плохого третего закона Ньютона...
|
mre, это абстрактное определение, нужна конкретика.
CEBEP, Цитата:
Как понять что ты идёшь в направлении мега портабельного и мега оптимизированного кода, а не в обратном направлении? wvxvw, как ваше высказывание связано с моим вопросом? |
Цитата:
Цитата:
Мультипостинг у нас запрещен. |
iNils, я спрашивал про критерии.
Критерии идеального кода? Критерии кода с хорошим ООП? Критерии кода с плохим ООП Критерии мегапортабельного кода? другими словами горизонт мы видим, а критерии кода с хорошим ООП нет. непонятно к чему стремиться... Цитата:
|
Цитата:
|
Ну возьмём к примеру создание Меню для сайта.
Хороший ООП, я думаю это такой, в данном случае: Код можно использвать для создание разных меню без особых дороботок, все части кода по созданию менюшек и сабменюшек к друг другу не лезут, данные хранятся в xml и доступны для изменения структуры, не должна быть проблема создания меню как горизонтально и вертикально и т.д. что то вроде такого... |
to wvxvw
Из книги "ActionScript 3.0 Design Patterns" Код:
packageКод:
packageto CEBEP. Нужны критерии в терминах ООП и AS3(как то так), а своими словами вы сейчас говорите абстрактно. |
>> William Sanders и Chandima Cumaranatunge видимо не знакомы с вашей концепцией и поэтому пишут всякую "чушь" в своей книге.
Именно так. Да, и кавычки к чушь абсолютно ни к чему. |
чё-то или я тупой, или приведенный выше код отличается только именем класса и конструктора о_О
добавлено а, господи, нада кофе выпить, свойства сделал приватными. Но это не лучший пример инкапсуляции. Это как раз тот случай, когда "инкапсуляция ради инкапсуляции" |
Не, это они пытались показать пример инкапсуляции... при этом наломав столько дров, что глядя на такой код, думается, что есть люди, которым лучше все-таки читать книги, а не писать их =)
|
Ну это ты перебарщиваешь. Где там дрова-то?
Как пример инкапсуляции - пример плохой. Нужно было что-то с геттерами и сеттерами придумать, где необходимо спрятать переменную, которую сеттер меняет, чтобы ее не трогали. А так - обычный код, где там дрова-то? То, что showDogTalk не public функция? |
Нет явного вызова super()
У метода отсутствует модификатор доступа / неймспейс. У метода отстутствует возвращаемый тип. Приватные переменные - это первый шаг на пути усложнения реюз / полиморфизма, в этом примере они должны были быть protected. (т.е. показав пример одного из принципов ООП тут же забили на остальные - офигительный мануал...) Помоему, этого достаточно, чтобы закрыть эту книжку, и почитать чего-нибудь другое =) ЗЫ. И вообще, классный мануал, если ты его просто копипастишь, компилируешь, и компилятор тебе ворнинг выдает? :D И это в двух с половиной строчках, чего ж там дальше-то будет? =) |
Цитата:
Где в приведённом мною примере дрова наломаны? И как вы это определили? Цитата:
|
Существует плохо написаный код - вы только что запостили 2 примера. А ООП это понятие, которое нельзя характеризовать с позиций дуализма - оно не на столько комплексное.
|
Цитата:
Цитата:
Все остальное - да. Но вообще я, походу,сам плохой ООП-программер, потому что частенько эти вещи опускаю из-за лени. Следствие небольших проектов, которые пишу обычно исключительно один. |
Вложений: 1
>> ну это тоже не аргумент.
Ого, ничего себе не аргумент? Это именно то место, где компайлер ругаться будет =)))) Модификатор доступа должен быть всегда, без исключений. >> Может он в этом случае именно хотел запретить детям видеть свойство. Запрещать детям видеть свойства родителей - это исключение из правила, и уж ни в коем случае не "типичная" ситуация, которую предположительно должен рассматривать мануал. Просто у чела привычка осталась с АС2 - вот и все объяснение, никакой другой логики в написаном нет. В аттаче - то что думает по поводу вашего кода компилятор :) |
Почему компайлер ругаться будет? У меня стоит strict mode и никто не ругается. По умолчанию используется internal, это всем известно, зачем мне это слово каждый раз писать.
|
Смотри аттач в предыдущем посте. И включи show warnings. Иногда очень помогает, особенно, если пользуешься ФДшным код-генератором или еклипс-мaнки ;)
|
эм. и warnings mode стоит включеный.
Ругается только на вещи типа Цитата:
|
Компилирую mxmlc.exe ну, как бы не принципиально откуда... это в настройках компайлера. В ФД это можно задать в настройках проекта, в ФБ, почти наверняка тоже, ну, максимум, если нет - то подправить билд файл вручную, но, не думаю, что все на столько запущено =) В ФДТ тоже 100% должно быть =)
Это, первый ворнинг - 1085 второй - 1009 Смотреть весь список тут: http://livedocs.adobe.com/flash/9.0/...lerErrors.html Зря чтоли люди мучались-писали? =) |
мое карате лучше твоего))
Даешь хорошее ооп в каждый дом) автору темы. Научись писать сначало хоть как нить с использованием ооп модели а потом поймешь что такое хорошо а что такое плохо) изучай стандарты кодирования и прочее прочее прочее, но это на случай если у тебя есть цель быть лучшим ну ил на край быть лучше. а если так, для интересу праздного, то забей) хорошее ооп это искусство а у искусства критериев нет. |
я компилирую из flash ручками. Родной компилятор так не ругается.
|
Вложений: 1
А как это mxmlc стал неродным компилятором? :D Он даж более родной для АС3 =) Собственно, с ним по большей части все и работают... Это такой же продукт Adobe / MacroMedia как и Flash =) За что ж его так-то?
ЗЫ. Я могу попробовать компилировать ногами... например, но для этого мне прийдется залезть на стол и нажимать кнопки на клаве пальцами ног... ну, не знаю, ради эксперемента можно попробывать... но делать так постоянно я бы не стал =) Во, у него даже иконка адобовская, заскринил для большей убедительности =) |
Цитата:
Можно еще писать код дома, а компилить бегать к соседу этажом ниже или еще лучше в другой подъезд. У нас сейчас минимум три редактора для кода: FlexBuilder, FDT и FD, который позволяют компилить прямо на месте, вообще не создавать fla или используя swc файлы. |
дык я кодю в FD.
А компилирую alt-tab + ctrl-enter. Потому что компилировать не создавая фла мне показалось неудобным. Так же как делать интерфейсы mxml. Помоему ручками в ide намного проще разместить. |
Chas, ну разместить один раз, а потом чего туда лазить
|
alt-tab + ctrl-enter == F6
|
По поводу MXML - я пока еще много чего о нем не знаю, но учусь =) И чем дальше, тем он мне больше нравится =) Пока, самая его прелесть в том, что лей-ауту можно довольно просто задавать шаблоны, т.е. можно, пользуясь, например, XML_MXML либой для PHP довольно быстро сделать лей-аут для уже готовых темплейтов, типа ВордПресса / Джумлы. Т.е. верстка во Флеше от верстки во Флексе отличается примерно на столько же, на сколько отличается верстка статической ХТМЛ странички, от настройки шаблона, чтобы он отображал разный контент в зависимости от настроек.
Т.е. представь, вот нужно сделать страничку, которая бы отображалась немного по-разному в зависимости от того, какие привилегии есть у юзера, который на нее смотрит - во флеше ты бы либо делал 2 разные флешки, либо одну, которая бы загружала в себя разный контент (но эту логику загрузки не всегда хочется держать на клиенте)... вобщем гемор, да и не по-научному =) А так - отправляется запрос к ПХП типа моястраничка.пхп?админ=тру и в ответ тебе отправляется флешка с админскими возможностями, а нет - так отправляется флешка, в которой этих возможностей нет. При этом ты верстал не флешку, а шаблон, в котором может быть сотня этих разных настроек... Вобщем, да чего я рассказываю =) это нужно пробовать самому, тогда становится понятнее =) |
Похоже автора (крутого флешера) развернули на собеседовании (страшным словом "плохое ООП") вот теперь он переполнен негативом и ищет правду -)
Теория ООП не привязана к какому-то языку, тк это абстракция более высокого уровня. Рекомендую почитать Гамму "Design Patterns" |
Хорошее ооп приходит с опытом :). Вот я кодю особо об этом не задумывась, главное чтобы удобно было - а через некоторое время понимаю, что где-то можно было сделать лучше, правильнее. Но основных методик стоит придерживаться всегда.
|
Цитата:
Хорошо это когда выгодно/умело используешь имеющиеся возможности/инструменты, в ООП это инкапсуляция, наследование и еще чего-то. А плохо, это когда мобильным телефоном забиваешь гвозди! Критерии могут быть разные в зависимости от конкретного кода/подхода ;) |
Вообщем кроме wvxvw никто больше по делу не написал, отсюда сделаю вывод что остальные, написавшие, знают ООП так же как я, т.е. мало знакомы с ним или думают что знают. Спасибо.
|
Nemo_c, ммм .. тоесть не берётся в расчёт, интерес к теме? интерес беседы с автором? тупость вопроса? лень? нежелание флэймить? и ещё куча причин?
|
Цитата:
|
BlooDHounD, повторю свою фразу которая видимо вас задела(хотя по идее не должна была).
Цитата:
Про тупость вопроса... очевидно я вопрос таким образом сформулировал не просто так :-) Цитата:
реализаторов этих проектов... кучу бабла бы с экономил... :D: |
| Часовой пояс GMT +4, время: 07:25. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.