В предыдущей статье я рассказывал о том, как мы выделили модуль чата в нашем приложении. Всё прошло успешно, и мы собирались распространить этот опыт — начать тотальную модуляризацию в iOS-разработке Badoo. Даже презентовали подход продуктовым командам, командам, занимающимся тестированием и непрерывной интеграцией, и постепенно стали внедрять модуляризацию в наши процессы.
Рубрика «modules»
Модуляризация iOS-приложения Badoo: борьба с последствиями
2021-01-21 в 17:01, admin, рубрики: apple, badoo, cocoapods, iOS, modularity, modules, objective-c, swift, Блог компании Badoo, опыт, разработка мобильных приложений, разработка под iOSC++20 утверждён! Чего ждать и к чему готовиться разработчикам в C++23
2020-02-19 в 6:56, admin, рубрики: abi, abi c++, c++, c++ библиотеки, C++20, c++23, concepts, contracts, coroutine, coroutines, IT-стандарты, malloc, modules, ranges, Блог компании Яндекс, Компиляторы, Программирование, стандарт, стандартизацияНа днях в Праге прошла встреча международного комитета по стандартизации C++. И-и-и-и…
C++20 готов! Осталось поставить штампик от ISO, но это чисто формальный шаг, с которым не должно быть проблем.
Поздравляю всех с этим замечательным событием! Concepts, Coroutines, Modules, Ranges, std::format, constexpr new и constexpr алгоритмы+vector+string, datetime, jthread, span, bit_cast и многие другие мелкие и большие нововведения.
Что успели добавить и поправить в последний момент, что предложили разломать и что все хотят видеть в C++23 — обо всём этом под катом.
Читать полностью »
Dependency Injection, JavaScript и ES6-модули
2019-08-21 в 19:14, admin, рубрики: dependency injection, ES6, import, javascript, modules, Программирование, Разработка веб-сайтовЕщё одна имплементация Dependency Injection в JavaScript — с ES6-модулями, с возможностью использовать один и тот же код в браузере, и в nodejs и не использовать транспиляторы.
Под катом — мой взгляд на DI, его место в современных web-приложениях, принципиальная реализация DI-контейнера, способного создавать объекты и на фронте, и на бэке, а также объяснение, при чём тут Майкл Джексон.
ServiceLoader: встроенный DI-фреймворк, о котором вы, возможно, никогда не слышали
2019-06-24 в 13:58, admin, рубрики: dependency injection, java, modules, services, spring, Блог компании OTUS. Онлайн-образование, ПрограммированиеСалют, друзья. Уже в эту пятницу пройдет первое занятие в новой группе курса «Разработчик Java». Именно этому курсу и будет посвящена текущая публикация.
Многие из java-разработчиков для внедрения зависимостей используют Spring. Некоторые, возможно, пробовали Google Guice или даже OSGi Services. Но многие не знают, что в Java уже есть встроенный DI. Думаете это появилось в Java 11 или 12? Нет, он доступен с Java 6.Читать полностью »
Kaspersky Mobile Talks #1. Многомодульность
2019-04-04 в 7:00, admin, рубрики: android, android development, architecture design, java, kotlin, mobile development, modules, multimodality, Блог компании «Лаборатория Касперского», встреча разработчиков, разработка мобильных приложений, Разработка под androidВ конце февраля мы запустили новый формат встреч Android-разработчиков Kaspersky Mobile Talks. Основное отличие от обычных митапов — здесь вместо сотни слушателей и красивых презентаций на несколько различных тем собрались «бывалые» разработчики, чтобы обсудить всего лишь одну тему: как они реализуют многомодульность в своих приложениях, с какими проблемами сталкиваются, и как их решают.
Feature freeze C++20. Coroutines, Modules и прочее
2019-03-06 в 7:37, admin, рубрики: c++, c++ библиотеки, C++20, c++2a, constexpr, coroutine, coroutines, IT-стандарты, modules, networking, range, ranges, Блог компании Яндекс, Компиляторы, Программирование, стандарт, стандартизацияНа днях прошла встреча международного комитета по стандартизации C++ в американском городе Кона. Это была не просто встреча, а feature freeze! Никакие серьёзные новые идеи больше не могут просачиваться в стандарт, остаётся лишь пара встреч на добавление предварительно одобренных вещей, исправление недочётов и устранение шероховатостей.
Ожидать ли Модули и Корутины в C++20, будет ли там быстрая библиотека для форматирования вывода, сможет ли она работать с календарями, добавили ли std::stacktrace, начнёт ли компилятор сам вызывать std::move в ряде случаев, приняли ли std::flat_map? Всё это и многое другое ожидает вас под катом.
С++20 и Modules, Networking, Coroutines, Ranges, Graphics. Итоги встречи в Сан-Диего
2018-11-28 в 6:22, admin, рубрики: c++, c++ библиотеки, C++20, c++2a, constexpr, coroutine, coroutines, modules, networking, range, ranges, Алгоритмы, Блог компании Яндекс, Компиляторы, Программирование, стандарт, стандартизацияДо C++20 осталась пара лет, а значит, не за горами feature freeze. В скором времени международный комитет сосредоточится на причёсывании черновика C++20, а нововведения будут добавляться уже в C++23.
Ноябрьская встреча в Сан-Диего — предпоследняя перед feature freeze. Какие новинки появятся в C++20, что из крупных вещей приняли, а что отклонили — всё это ждёт вас под катом.
Управление своими модулями для CMS c использованием composer
2018-11-08 в 8:16, admin, рубрики: cms, composer, modules, php, Системы управления версиями, управление проектами и командой, управление разработкойЗдравствуйте, друзья! Появление популярного менеджера зависимостей в PHP — является одним из важнейших событий в жизни PHP-сообщества. Composer разделил время на "до" — когда наши самописные библиотеки лежали в zip-архивах или просто разбросаны по папкам и копировались "ручками", лишь в единичных случаях, использовался git или PEAR, и "после" — когда мы начали использовать composer. Но что делать если вы работаете с определенной CMS, а она не "знает" что такое composer?
Многомодульность в Android с точки зрения архитектуры. От А до Я
2018-09-13 в 6:09, admin, рубрики: android, android development, architecture design, dagger 2, java, mobile development, modules, multimodality, Блог компании «Лаборатория Касперского», разработка мобильных приложений, Разработка под androidВсем привет!
Не так давно мы с вами осознали, что мобильное приложение — это не просто тонкий клиент, а это действительно большое количество самой разной логики, которое нуждается в упорядочивании. Именно поэтому мы прониклись идеями Clean architecture, прочувствовали, что такое DI, научились использовать Dagger 2, и теперь с закрытыми глазами способны разбить любую фичу на слои.
Но мир не стоит на месте, и с решением старых проблем приходят новые. И имя этой новой проблемы — мономодульность. Обычно об этой проблеме узнаешь, когда время сборки улетает в космос. Именно так и начинаются многие доклады про переход на многомодульность (раз, два).
Но почему-то все при этом как-то забывают, что мономодульность сильно бьет не только по времени сборки, но и по вашей архитектуре. Вот ответьте на вопросы. На сколько у вас AppComponent большой? Не встречаете ли вы периодически в коде, что фича А зачем-то дергает репозиторий фичи Б, хотя вроде такого быть не должно, ну или оно должно быть как-то более верхнеуровнево? Вообще у фичи есть какой-то контракт? А как вы организовываете общение между фичами? Есть какие-то правила?
Вы чувствуете, что мы решили проблему со слоями, то есть вертикально все вроде хорошо, но вот горизонтально что-то идет не так? И просто разбиением на пакеты и контролем на ревью не решить проблему.
В своей статье я хочу вам рассказать, как дошел до многомодульности именно с архитектурной точки зрения. Какие проблемы меня беспокоили, и как я их старался поэтапно решать.
Читать полностью »
Грядущий релиз версии 1.11 языка программирования Go принесет экспериментальную поддержку модулей — новую систему управления зависимостями для Go. (прим.перев.: релиз состоялся)
Недавно я уже писал об этом небольшой пост. С тех пор кое-что слегка поменялось, да и мы стали ближе к релизу, поэтому мне кажется, что настало время для новой статьи — добавим больше практики.
Итак, вот, что мы будем делать: создадим новый пакет и потом сделаем несколько релизов, чтобы посмотреть, как это работает.