У современного приложения много нефункциональных требований: размер приложения, потребляемый трафик, доступность для людей с ограничениями, стабильность, скорость запуска и работы. Наше приложение запускалось очень долго, десятки секунд. Сегодня вышло обновление, в котором iOS-приложение стало запускаться в разы быстрее. Рассказываю, как так вышло и почему только сейчас.
Рубрика «dependency injection» - 2
Бардак на старте: постмортем на скорость запуска iOS-приложения
2020-01-24 в 11:24, admin, рубрики: dependency injection, iOS, performance optimization, Блог компании Dodo Pizza Engineering, разработка мобильных приложений, разработка под iOSActivityLifecycleCallbacks — слепое пятно в публичном API
2019-12-30 в 14:43, admin, рубрики: activitylifecyclecallbacks, android, android development, dependency injection, kotlin, kotlin android, Блог компании Яндекс.Деньги, Проектирование и рефакторинг, разработка мобильных приложений, Разработка под androidС детства я люблю читать инструкции. Я вырос, но меня до сих пор удивляет то, как взрослые люди безалаберно относятся к инструкциям: многие из них считают, что все знают, и при этом пользуются одной-двумя функциями, в то время как их намного больше! Кто из вас пользовался функцией поддержания температуры в микроволновке? А она есть почти в каждой.
Однажды я решил почитать документацию к различным классам Android framework. Пробежался по основным классам: View, Activity, Fragment, Application, — и меня очень заинтересовал метод Application.registerActivityLifecycleCallbacks() и интерфейс ActivityLifecycleCallbacks. Из примеров его использования в интернете не нашлось ничего лучше, чем логирование жизненного цикла Activity. Тогда я начал сам экспериментировать с ним, и теперь мы Яндекс.Деньгах активно используем его при решении целого спектра задач, связанных с воздействием на объекты Acltivity снаружи.
Читать полностью »
Зачем учить Java и как делать это эффективно. Доклад Яндекса
2019-12-26 в 7:47, admin, рубрики: dependency injection, java, spring, Блог компании Яндекс, Промышленное программирование, Учебный процесс в ITЧем Java отличается от других популярных языков? Почему именно Java может быть первым языком для изучения? Давайте составим план, который поможет выучить Java как с нуля, так и с применением навыков программирования на других языках. Перечислим отличия между созданием продакшен-кода на Java и разработкой на других языках. Михаил Затепякин прочитал этот доклад на встрече для будущих участников стажировки Яндекса и других начинающих разработчиков — Java Junior meetup.
— Всем привет, меня зовут Миша. Я разработчик из Яндекс.Маркета, и сегодня я расскажу вам, зачем учить Java и как делать это эффективно. Вы можете задать резонный вопрос: почему это буду рассказывать я, а не какой-нибудь сильный разработчик с кучей лет стажа? Дело в том, что я сам изучал Java недавно, года полтора назад, поэтому еще помню, как это примерно было и какие есть подводные камни.Читать полностью »
5 вещей, которые я бы хотел знать, когда начинал использовать Angular
2019-12-17 в 13:01, admin, рубрики: angular, change detection, dependency injection, html, junior, template, testbed, TypeScript, Блог компании Tinkoff.ru, начинающим, Разработка веб-сайтов, тестирование, шаблонСовременный Angular — это мощный фреймворк с множеством возможностей, вместе с которыми приходят и сложные, на первый взгляд, концепции и механизмы. Особенно это заметно тем, кто только начал работу как во фронтэнде в принципе, так и с Angular в частности.
С этой же проблемой столкнулся и я, когда примерно два года назад пришел в Тинькофф на позицию Junior Frontend Developer и погрузился в мир Angular. Поэтому предлагаю вам короткий рассказ о пяти вещах, понимание которых очень облегчило бы мою работу на первых порах.
Ортодоксальный Backend
2019-11-05 в 8:01, admin, рубрики: backend, clean architecture, dependency injection, domain-specific language, mvc, ruby, Программирование, Проектирование и рефакторингСовременный backend разнообразен, но всё-таки подчиняется некоторым негласным правилам. Многие из нас, кто разрабатывает серверные приложения, сталкивается с общепринятыми подходами, такими как Clean Architecture, SOLID, Persistence Ignorance, Dependency Injection и прочими. Многие из атрибутов серверной разработки настолько заезжены, что не вызывают никаких вопросов и используются бездумно. О некоторых много говорят, но никогда не используют. Смысл остальных же либо неправильно интерпретирован, либо перевран. Статья рассказывает о том, как построить простую, совершенно типичную, архитектуру backend, которая не только может без какого-либо ущерба следовать заветам известных теоретиков программирования, но и в некоторой степени может их усовершенствовать.
Читать полностью »
Подготовка к Spring Professional Certification. Контейнер, IoC, бины
2019-10-06 в 12:10, admin, рубрики: dependency injection, ioc, java, pivotal, spring, spring framework, внедрение зависимостей, сертификацияДоброго времени суток.
Сегодня я решил представить вам перевод цикла статей для подготовки к Spring Professional Certification.
Это перевод только первой статьи, если он зайдет аудитории, я продолжу выпуск переводов.
- Часто в них информация не структурирована, не собрана, или не актуальна
- Молодые разработчики могут не знать английский. Этот цикл можно использовать не только для сертификации, но и для самообучения/повторения материалов.
- Этими материалами можно пользоваться при подготовке к собеседованию, т.к. они выстроены в виде вопросов и ответов.
- Важное, и самое главное преимущество — этот QA сделан из вопросов из официального Study Guide от Pivotal.
- Некоторые вопросы, которые казались мне лишними или которых не было в гиде я осознанно упустил.
- Внедрение зависимостей, контейнер, IoC, бины
- AOP (аспектно-ориентированное программирование)
- JDBC, транзакции, JPA, Spring Data
- Spring Boot
- Spring MVC
- Spring Security
- REST
- Тестирование
Какое главное отличие Dependency Injection от Service Locator?
2019-08-29 в 11:21, admin, рубрики: dependency injection, javascript, patterns, php, service locator, Анализ и проектирование систем, ПрограммированиеХа, какая изящная маскировка Service Locator-а под DI. Даже может показаться, что это DI! :-)
Это первый коммент к моей предыдущей публикации "Dependency Injection, JavaScript и ES6-модули". Спасибо коллеге symbix 'у за этот коммент, т.к. именно он стало причиной погружения в тонкости отличия одного от другого. Под катом мой ответ на вопрос в заголовке.
(КДПВ особого смысла не имеет и предназначена в первую очередь для визуального опознания этой публикации в ряду других)
Dependency Injection, JavaScript и ES6-модули
2019-08-21 в 19:14, admin, рубрики: dependency injection, ES6, import, javascript, modules, Программирование, Разработка веб-сайтовЕщё одна имплементация Dependency Injection в JavaScript — с ES6-модулями, с возможностью использовать один и тот же код в браузере, и в nodejs и не использовать транспиляторы.
Под катом — мой взгляд на DI, его место в современных web-приложениях, принципиальная реализация DI-контейнера, способного создавать объекты и на фронте, и на бэке, а также объяснение, при чём тут Майкл Джексон.
Управление зависимостями в Python: сравнение подходов
2019-07-26 в 15:33, admin, рубрики: dependency injection, python, uncle bob, архитектура приложений, ооп, Совершенный кодЯ пишу на питоне лет пять, из них последние три года — развиваю собственный проект. Большую часть этого пути мне помогает в этом моя команда. И с каждым релизом, с каждой новой фичей у нас все больше усилий уходит на то, чтобы проект не превращался в месиво из неподдерживаемого кода; мы боремся с циклическими импортами, взаимными зависимостями, выделяем переиспользуемые модули, перестраиваем структуру.
К сожалению, в Python-сообществе нет универсального понятия «хорошей архитектуры», есть только понятие «питоничности», поэтому архитектуру приходится придумывать самим. Под катом — лонгрид с размышлениями об архитектуре и в первую очередь — об управлении зависимостями применимо к Python.
Читать полностью »
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.Читать полностью »