{"action":"created","issue":{"url":"https://api.github.com/repos/mayakwd/as3-vanilla-ice/issues/2","labels_url":"https://api.github.com/repos/mayakwd/as3-vanilla-ice/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/mayakwd/as3-vanilla-ice/issues/2/comments","events_url":"https://api.github.com/repos/mayakwd/as3-vanilla-ice/issues/2/events","html_url":"https://github.com/mayakwd/as3-vanilla-ice/issues/2","id":63224297,"number":2,"title":"Улучшения работы","user":{"login":"gNikro","id":1101084,"avatar_url":"https://avatars.githubusercontent.com/u/1101084?v=3","gravatar_id":"","url":"https://api.github.com/users/gNikro","html_url":"https://github.com/gNikro","followers_url":"https://api.github.com/users/gNikro/followers","following_url":"https://api.github.com/users/gNikro/following{/other_user}","gists_url":"https://api.github.com/users/gNikro/gists{/gist_id}","starred_url":"https://api.github.com/users/gNikro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gNikro/subscriptions","organizations_url":"https://api.github.com/users/gNikro/orgs","repos_url":"https://api.github.com/users/gNikro/repos","events_url":"https://api.github.com/users/gNikro/events{/privacy}","received_events_url":"https://api.github.com/users/gNikro/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-03-20T13:07:04Z","updated_at":"2015-03-21T17:39:21Z","closed_at":"2015-03-21T16:52:21Z","body":"https://github.com/mayakwd/as3-vanilla-ice/blob/master/src/org/osflash/vanilla/reflection/util/ReflectionUtil.as#L9\r\n\r\nМозно заменить на будет гораздо быстрее работать чем getQualifiedClassName\r\n```\r\nobject.constructor.toString().substr(7, 6) == \"Vector\"\r\n```\r\n\r\nhttps://github.com/mayakwd/as3-vanilla-ice/blob/master/src/org/osflash/vanilla/reflection/util/ReflectionUtil.as#L25\r\n\r\nis Number || is String || is Int будет же работать намного быстрее \r\n\r\nhttps://github.com/mayakwd/as3-vanilla-ice/blob/master/src/org/osflash/vanilla/reflection/util/ReflectionUtil.as#L16\r\n\r\n```\r\nreturn object.constructor as Class\r\n```\r\n\r\nhttps://github.com/mayakwd/as3-vanilla-ice/blob/master/src/org/osflash/vanilla/reflection/util/ReflectionUtil.as#L38\r\n\r\nРазве не необходима проверка на принимаемые параметры классом?\r\n\r\n```\r\nvar constructorInfo:XMLList = typeDescription.constructor.parameter;\r\n```\r\n\r\nhttps://github.com/mayakwd/as3-vanilla-ice/blob/master/src/org/osflash/vanilla/reflection/map/impl/BaseInjectionMapFactory.as\r\n\r\nА тут бы дескрайб джсон делать и кешировать его чтобы дескрайб каждый раз не делать"},"comment":{"url":"https://api.github.com/repos/mayakwd/as3-vanilla-ice/issues/comments/84408276","html_url":"https://github.com/mayakwd/as3-vanilla-ice/issues/2#issuecomment-84408276","issue_url":"https://api.github.com/repos/mayakwd/as3-vanilla-ice/issues/2","id":84408276,"user":{"login":"gNikro","id":1101084,"avatar_url":"https://avatars.githubusercontent.com/u/1101084?v=3","gravatar_id":"","url":"https://api.github.com/users/gNikro","html_url":"https://github.com/gNikro","followers_url":"https://api.github.com/users/gNikro/followers","following_url":"https://api.github.com/users/gNikro/following{/other_user}","gists_url":"https://api.github.com/users/gNikro/gists{/gist_id}","starred_url":"https://api.github.com/users/gNikro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gNikro/subscriptions","organizations_url":"https://api.github.com/users/gNikro/orgs","repos_url":"https://api.github.com/users/gNikro/repos","events_url":"https://api.github.com/users/gNikro/events{/privacy}","received_events_url":"https://api.github.com/users/gNikro/received_events","type":"User","site_admin":false},"created_at":"2015-03-21T17:39:21Z","updated_at":"2015-03-21T17:39:21Z","body":">Принимает значения: строка\\объект\\класс, для всех трёх кейсов текущая реализация работает должным образом. При предложенной реализации будет работать только для инстансов, для любого из классов вектора, например Vector. возвратит [class Class], для строк [class String] соответственно.\r\n\r\nТак нужно и сделать корректную обработку и для строки и для класса и для объекта если такая необходимость есть. И обрабатывать это корректно не из как обжект а корректно\r\nextractTypeNameAsString(...)...\r\n\r\nЭто ведь в разы наглядней да и скорость обработки быстрее. Десятки тысяч объектов могут вполне парситься. Или даже сотни постоянно\r\n\r\n>Разницы в скорости не будет никакой, пока не будет парситься за один тик несколько десятков тысяч записей, да и там разница будет незначительна.\r\n\r\nРазница в скорости будет особенно с наложением на остальные узкие места\r\nДопустим возьму я эту либу и буду юзать в ммо проекте. На каждый кадр я буду высылать на 100 человек как минмиум 100 объектов содержащих поинты, намберы, инты, векторы.\r\n\r\nА запись вида >object is int || object is uint || object is String || object is Boolean || object is Number || object is Date || object is Array\r\n\r\nВыглядит лучше хотя бы тем что она соотвествует регламенту AS3\r\n\r\n>Как и в первом случае value может быть строкой\\объектом\\классом, поэтому данное решение не подходит\r\n\r\nКак и в первом случае следуюет привести программу к логичному поведению getClassFromStirng getClassFromObject и тд\r\nДа даже в этом методе если он один сделать всего лишь проверку is String is Object\r\n\r\nМеньше дискрайбтайпов, меньше гет дефенишенов в разы меньше алокейтов памяти происходит и работа происходит намного быстрее\r\n\r\n>Зачем, чтобы выкинуть исключение в случае несоответствия количества аргументов и промапаных полей? Пользователь должен самостоятельно озаботиться параметрами принимаемыми конструктором класса https://github.com/mayakwd/as3-vanilla-ice#mapping-to-constructor-arguments\r\n\r\nПочему бы это не перехватить самостоятельно и вывести корректную ошибку. В каком аргументе ошибка. В количистве ли аргументов ошибка разве это плохо? Думаю нет\r\n\r\n>Помимо этого describeType не возвращает имен аргументов, а лишь типы и их опциональность. Гадание на кофейной гуще.\r\n\r\nТак и что? Зато он возвращает индексы аругментов и типы. Индекс аругмента это гадание на кофейной гуще? Похоже мы в разных мирах живем. Может индекс массива тоже не дает понятие о каком элементе массива идет речь?\r\n\r\n>Безусловно describeTypeJSON быстрее, чем describeType, но метод является недокументированным, и нет гарантии, что он не будет убран в будущих версиях.\r\n\r\nЕсть 100%ая гарантия что его никогда никуда не уберут. Мало того что он существует уже 100 лет так и АВМ+ задокументирвоан и презентирован адобом\r\nВ пример можно привести spring as3, parley, as3commons, the miner и прочие либы которые без каких либо опасений используют авм+. Не думаю что эта либа в 20 строчек кода пострадает даже если такое и случится"}}