![]() |
Качество кода.
Вложений: 2
Недавняя тема вдохновила меня на выкладывание своего
Если что, Уверен, сейчас посыпется волна суровых критиков и фанатов MVC, который я не использую не потому, что он для меня слишком непонятный или сложный, на самом деле я его вполне понимаю и одобряю, но не использую из принципов. Если что, App - главный класс приложения, который имеет одинаковые константы и паблик переменные во всех проектах. Поэтому критика того, что консоль обращается к App не принимается. Чтобы было понятно, с чем имеем дело, то вот скриншот консоли. P.S. Для фона TextField тоже хотел задать альфу, но не нашёл для этого метода. Если знаете, как, то прошу подсказать. |
Цитата:
2) Добавляешь под TF спрайт и рисуешь фон в нем по размерам TF с заданной альфой 3) Профит п.с. В лом качать и открывать код. Лучше сюда выкладывать в теги as3 |
Цитата:
S.as Код AS3:
Код AS3:
Код AS3:
Код AS3:
Код AS3:
|
SuriTheAngel
по первому 1) class S 2) getTextFormat(fontName:int) // сам понимаешь , что тут написано? Вернуть текстФормат, основываясь не на ТЕКСТОВОМ ПОЛЕ, а на каком то имени шрифта, вопервых, во вторых имя шрифта почему то int. Не надо так 3)getRedText и т.п. , ничего не значащие методы, которые не нужны. Вместо них делается 1 метод getColoredText(color:int) 4) appendPadding(tf:DisplayObject - паддинг есть только у TF , ты же принимаешь DisplayObject. Правда в данном случае это не паддинг нифига, тогда неверное обозначение tf, вместо диплейОбж 2 Класс более менее, только коллбек onClick нафиг не нужен. Подписаться можно извне. А если он еще что то делает в этом классе, то 2 подписки. Одна внутри, другая снаружи. Console - тут лучше всего ( понятнее ) не focus, unfocus - а setFocus , removeFocus. Метод update я бы сделал открытым, бывают часто такие ситуации, когда нужно обновить извне. Последний читать не стал, отформотируй. Так по сути, конечно это съедобно, по сравнению с предидущим оратором, но - тут простейших view классы, посему особо обсуждать нечего, только лишь читаемость, о которой я пишу. |
in4core, спасибо.
1) Это класс для инструментов работы со строками и текстом, и + цвета. Класс используется не только консолью, для удобства. Всё равно косяк? 2) Это сделано для удобного получения текстформата. Пример использования прост Код AS3:
3) + 4) + Цитата:
Цитата:
Цитата:
Да ёпта, хреновый парсер синтаксиса... |
Плох тот флешер, кто не написал собственный логгер :).
Убери из трейсов одинарные кавычки, форматирование на форуме на них спотыкается. Код как код, убористый, все линейно. Но лоска явно не хватает. Не понравилось именование. darkerColor () и иже с ними (ожидаем что-то типа clickHandler), appendPadding(), class S, set() и playPause(), _drag, type() - очень неудачные названия. Пихание наружного коллбека в буттон...эмм..не то, чтобы плохо, но вызывает диссонанс. Более ожидаемо (читай стандартно) для кнопки все-таки оповещеть родителя о клике событием. Потом, коллбэки вообще - это довольно радикальная альтернатива ивентам, не следуте торопиться на них подсаживаться. Ну, комментов подсыпать не мешало бы. Выделение секций приват/публик методов так же приветствуется. Логгер еще подразумевает и такую штуку, как лог-левел, можно подумать и над этим. Собственно, логгер - это благодатная тема для прокачки скила :). оффтоп. Много раз тут советоваали "Совершенный код" Макконнела. От себя порекомендую "Практика программирования" (Керниган, Пайк). Эта книга в три раза меньше по объему, более сконцентрирована, практична и технична. Читается очень легко, структуирована так, что вполне может использоваться как спаравка. |
Цитата:
А что такое log-level? |
Цитата:
log-level - название в принципе говорит само за себя. getStackTrace - посмотри логгер который я писал, если еще не удалили, там это все было. |
Оффтоп - посоветуйте уроки по С# и Unity, можно книжку, можно видео, хоть что-то, что поможет научиться творить шедевры и сохранять порядок в C# :)
|
in4core, хорош уже ко мне цепляться :D.
|
Цитата:
SuriTheAngel - это тебе не AS. Книжка-раскраска тут тебе не сильно поможет, а вот годы тренировок да, по Unity еще можно что то найти. А с чего такое рвение? Не уж то ли half-life 3 писать решил ? :D |
Цитата:
|
Как я не люблю эти подчёркивания... без них гораздо читабельней код.
Если их использовать, то можно вместо: Код AS3:
Код AS3:
А вот это: Код AS3:
Код AS3:
Код AS3:
Код AS3:
Код AS3:
Код AS3:
Ну вот ещё фрагмент: Код AS3:
Код AS3:
|
Цитата:
Я б записал так: Код AS3:
|
Цитата:
|
MikroAcse, справка для чего существует?
|
Цитата:
Добавлено через 51 секунду Цитата:
И эта штука по вашему читабельней? ... Добавлено через 37 минут Цитата:
Прям лишь одну букву написать. И то же самое при использовании цветов, текстформатов. |
Цитата:
Цитата:
Цитата:
|
Во флешдевелопе автоимпорт не всегда срабатывает, например, у меня не хотел нивкакую находить класс Keyboard, пока я его не указывал в импорте.
Сам проект приложения, со всеми его классами у меня хранится в формате Flash IDE, так как там моя библиотека с битмапами и кнопками, а она не хочет автоимпортить то, что мне нужно. А автокомплитить не хочет то, что не заимпорчено. Поэтому всё вручную. |
Цитата:
Так что не надо катить бочку на FD ) У меня она все на раз два импортирует и автодополняет |
За комменты добавлю, они не только выполняют роль собственно комментов. Зачастую их написание заставляет более осмысленно взглянуть на сам код, который комментируешь. Комменты дисциплинируют, я бы даже так сказал.
"Бли-иин, это же будут читать, а может даже гуру пробежится по коду, не облажаться бы!" :D. Иногда комменты просто доставляют и не скучно :). |
Цитата:
Но писать нужно так, чтобы все понимали что здесь происходит. А то, не посмотрев предыдущий код, я и не понял что оно делает. |
Цитата:
|
Цитата:
Тут 2 момента : комментарий, когда ты написал формулу ядерного реактора, и второе : усложненный код, который при детальном рассмотрении можно упростить до ... простого, удобного и понятного кода :) |
Вот скажите мне, неужели это нормально писать >>1 вместо /2 или *0.5?
По-моему это полезно только в каких-то занудных алгоритмах, которые были оптимизированы с ног до головы. |
Ну если привыкнуть, что >>1 делит на 2, то можно везде этим пользоваться и легко читать.
Но действительно ли оно быстрее? |
Быстрее.
Код AS3:
Повсеместно заменять деление на двойку (или степени двойки) сдвигами, тем не менее, не рекомендуется. Ложка хороша к обеду. |
alexcon314, ну коли ратуете за комментарии, то лучше писать его над условием в этом случае )
И я согласен, что нужно комментарий тут поставить. |
Спасибо, alexcon314.
|
КорДум, так компактней. Но я не настаиваю :). Потом, сама запись вида
Код AS1/AS2:
|
in4core, I4Logger? Я почитал статью, но там ничего про log level нет.
|
По-моему где-то даже здесь на форуме была тема, где обсуждалось что лучше, побитовый сдвиг или деление по модулю в этом случае. Кто-то даже проводил тесты, и оказывалось, что деление по модулю в as3 быстрее.
Не смог найти ту тему, но если кому-то не в лом (мне в лом)) неплохо было бы провести тесты, чтобы проверить, а что на самом деле быстрее в as3 |
Вложений: 1
На самом деле разницы почти нет, вот один из тестов ( хром ):
Код:
тестовый класс Код AS3:
|
Эти тесты были актуальны на начало 2007 года, оттуда и все статьи про простейшие оптимизульки математических выражений пошли. Сейчас, как я понимаю, компилятор сам оптимизирует как надо. Исходя из этого код нужно писать так, чтобы он был понятен и человеку в том числе без насилований его мозга.
|
Меж тем >> 1 ещё и округляет.
Если не нужно округление – *0.5, если нужно – то >> 1 выглядит секси. |
Вложений: 1
однако, если делимое имеет десятичную часть, то почему-то появляется разница, и она не в пользу сдвига, это у меня проявляется в хроме, только, но другие плеера дебаг-типа, поэтому не очень доверяю результату в них
Код:
|
Всем спасибо, но лучше дайте ссыль, где можно почитать про log level? Что это и зачем?
Добавлено через 24 минуты Цитата:
Цитата:
|
в тестовом классе, посмотри, результат сообщается переменной типа int, т.е. десятичная часть отсекается полюбе, просто неявно, поэтому выражение int(x/2 ) будет "дешевле" чем x>>1
|
Цитата:
Собственно, нужно все это, очевидно, для того, чтобы оперативно выявлять проблемы в работе приложения, регулируя информативность логов в нужную сторону, по обстоятельствам, а также для того, чтобы иметь возможность автоматизировать процесс обработки логов. В некоторых Есть и что-то по-легче (но не менее привлекательные по другим причинам, компактность, скажем). Так же некоторые фреймворки обладают собственными логгерами (внезапно). Разнообразие их довольно обширно. Иногда, разработчики пишут логгеры самостоятельно :). |
Спасибо за объяснение, теперь понятно.
Это цвет, плавно уходящий из синего к красному, тоесть LogLevel.FATAL будет красным рисовать, и отображать даже в режиме paused :) Но мне это не нужно, к сожалению. У меня цвета рассчитаны для отделения одной части приложения от другой. Могу сделать самый простой лог-левел, состоящий из 2-х типов, такой да, пригодится. |
| Часовой пояс GMT +4, время: 23:41. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.