Продолжаю серию публикаций Fil по CppCon 2017. В докладе представлены ранние наработки по добавлению рефлексии и кодогенерации в C++, а также по метаклассам, которые позволят генерировать части классов C++. В стандарт эти новшества попадут не ранее, чем в C++23.
Рубрика «reflection» - 3
Микросервисы — MIF на C++
2017-09-11 в 15:20, admin, рубрики: c++, c++11, Microservices, reflection, RPC, web-backend, web-services, ПрограммированиеОколо трех лет назад у меня была идея создания небольшого каркаса для разработки небольших сервисов, которые могли бы как-то взаимодействовать между собой, предоставлять API во вне, работать с базами данных и кое-что по мелочи еще. Во время решения некоторых рабочих задач, окончательно сформировалась идея своего проекта, близкого к решению рабочих задач. Примерно год назад все это сформировалось в проект MIF (MetaInfo Framework). Предполагалось, что с его помощью можно будет решать такие задачи, как:
- Разработка легковесных HTTP сервисов
- Коммуникация микросервисов через передаваемые между процессами интерфейсы
- Сериализация и десериализация на базе рефлексии структур данных в разные форматы
- Работа с базами данных
- Некоторые вспомогательные компоненты для создания каркасов сервисов
Все это ориентировано на разработку backend сервисов для веба, но может использоваться и в других системах.
Читать полностью »
Привет, Habr! Сегодня хочу рассказать про свой костыль, который помог мне не погружаться в дебри PHP Reflection. Ведь все пишут костыли, просто кто-то пишет большие, а кто-то поменьше.
Вызов методов через reflection
2016-12-26 в 10:41, admin, рубрики: bytecode, java, reflection, вызов методов, ПрограммированиеВсе программисты на Java явно или неявно пользуются reflection для вызова методов. Даже если вы не делали этого сами, это за вас наверняка делают библиотеки или фреймворки, которые вы используете. Давайте посмотрим, как этот вызов устроен внутри и насколько это быстро. Будем глядеть в OpenJDK 8 с последними обновлениями.
Проект CallSharp: I-O Call Instrumentation на платформе .NET
2016-12-17 в 11:35, admin, рубрики: .net, C#, reflection, АлгоритмыЧтo мнe нpaвитcя вo вcякиx paзpaбoтчecкиx тулax, тaк этo тo, чтo oни нe тoлькo пoмoгaют peшaть кaкиe-тo зaдaчи, нo пopoй eщe и учaт пpoгpaммиpoвaнию. Tулa, пpo кoтopую я xoчу paccкaзaть – oнa имeннo тaкaя. СаllShаrр – тaк нaзывaeтcя мoй пpoeкт – пытaeтcя aлгopитмичecки вывecти цeпoчку вызoвoв нa ocнoвe нaбopa вxoдныx и oжидaeмыx выxoдныx дaнныx.
LINQ: Динамическое построение фильтров запросов
2016-10-11 в 6:55, admin, рубрики: .net, C#, expressions, linq, reflectionНаверняка, рано или поздно каждому разработчику приходилось создавать таблицы данных с возможностью сортировки по столбцам и пр. Я не исключение. В нашем проекте подобные таблицы есть чуть ли не на каждой странице, можно сказать что 90% контента выводится через них. Поиск и сортировка по таблицам, естественно, работает без перезагрузки страницы.
Само собой, расширять семантики методов API контроллеров до бесконечной простыни было бы абсолютно глупо непрактично, поэтому нам требовалось универсальное решение для всех наших таблиц. Найти его помогли рефлексия и деревья выражений.

Преобразование Method Reference в Method в языке Java
2016-10-05 в 11:54, admin, рубрики: java, lambda, proxy, reflection, ненормальное программированиеПредставьте, что есть у нас объект Function<A, B> foo = SomeClass::someMethod;
Это лямбда, которая гарантированно является ссылкой на не статический метод. Как можно из объекта foo
достать экземпляр класса Method
, соответствующий написанному методу?
Если в кратце, то никак, информация о конкретном методе хранится исключительно в байткоде (всякие там инструментации я не учитываю). Но это не мешает нам в определённых случаях получить желаемое в обход.
Особенности программного ProxyChanging’а в Android. Часть 1: от Jelly Bean до Lollipop
2016-09-30 в 4:42, admin, рубрики: android, change proxy settings, java, library, proxy, reflection, wifi, Разработка под androidКак-то раз, для собственного удобства, мне захотелось написать приложение, которое меняет настройки прокси в конфигурации сетей Wifi для Android. Задача, как мне тогда показалось, была на раз плюнуть, однако, на деле, как всегда, возникли непредвиденные сложности.
Если вы считаете полезным в будущем знать решение, хотите почерпнуть что-то для себя или в вас просто проснулось любопытство — добро пожаловать под кат. Там вас ждет внутреннее устройство классов отвечающих за конфигурацию Wifi в различных версиях Android, небольшая чашечка кода на Java и щепотка Reflection.
Читать полностью »
Немного рефлексии для С++. Часть третья: документационная
2016-04-19 в 23:09, admin, рубрики: c++, reflection
Данная статья является третьей и заключительной в цикле о разработке библиотеки cpp runtime, которая добавляет возможность добавлять немного метаинформации о классах С++ и дальше использовать эту информацию во время исполнения программы.
Данная статья рассказывает о том, как пользователь может взаимодействовать с библиотекой и демонстрирует чистовой результат работы, описанной в первых двух статьях цикла.