All streams
Search
Write a publication
Pull to refresh
-2
0
Александр @yavfast

User

Send message
Есть две основные причины ANR: это инициализация либ от Гугла и Фейсбука, которые в своих контент провайдерах парсят json-ки своих настроек. И как с этим бороться?
RX-ы будет выпиливать сложнее…
Ждем «N ошибок, которые испортят любую вакансию»
Полезная информация.
Но через контент-провайдеры работать намного удобнее и проще.
Модуль предоставляет реализацию каких-то действий или реакцию на какие-то события. Таким образом, если создать абстракции Action, Request и Event, и общение между модулями будет происходить только посредством их, то статическая линковка или DI уже не нужны. Достаточно модулю зарегистрировать, что он умеет обрабатывать эти самые Action-ы, Request-ы и Event-ы.
Также можно использовать динамически подключаемые Validator-ы, которые дополнительно могут проверять возможность обработки Action-ов, Request-ов и Event-ов.
Похожим функционалом, но несколько ограниченно, обладают LocalBroadcastManager, EventBus, RxJava.
Такая концепция модулей очень сильно помогает, когда в проекте бизнес-логика очень часто меняется и необходимо постоянно эти модули включать\выключать\заменять.
Но есть и свои минусы…
Идеальный модуль должен быть легко отключаемым, например, комментированием его в build.gradle. Если это условие не выполняется, то это уже не модуль, а часть монолита.
Applicatioin.onCreate() не предназначен для того, чтобы в нём инициализировать 100500 модулей и компонентов. Модуль может и сам себя проинициализировать через собственный контент-провайдер.
Или делают паблик класс с приватным конструктором. :)
Например, в словах «грунт» и «горох», буква «г» произносится по разному, но пишется одинаково. Почему бы не добавить диакритику для ясности как произносить?
Диакритика только дополняет. Наоборот, можно будет добавить модификаторы и к другим буквам, а не ограничиваться только этими.
Я не говорю, что они не нужны…
Просто это Диакритика
Буквы й, ё, ь, ъ, ы, щ — это не совсем буквы, а диакритика. Так что количество букв в алфавите можно ещё уменьшать.
Более актуальна другая задача: часть шейпов сделать так, чтобы Tint на них не влиял.
Или сделать такой TintMode, который подменяет только один выбранный цвет, а не все.
Зачем для GradientDrawable свойство Tint? Какой может быть сценарий использования?
Если бы можно было с помощью Tint менять не все видимые пиксели, а только выбранных цветов, то это была бы совсем другая история.
Это мнение «психиатра Владимира Пикиреня».
Очень много программистов сидят на этом препарате и он есть в составе многих «стимуляторов».
В таблетках из аптеки — 100-150мг. Этого мне вполне достаточно для хорошего сна. На больших дозах может возникнуть резистентность к препарату. Да и принимаю не каждый день, а только по необходимости.
Мне хорошему сну чаще всего мешает:
— избыток эмоций, который вызывают ютубчики, новостные ленты и т.п.
— еда перед сном
— избыток навязчивых мыслей в голове, в основном по работе
Решение проблемы: обычный глицин из аптеки, работает отлично и вроде как без побочек.
Нагреватели для аквариума обычно уже идут с автоматической регуляцией температуры. Выставляется 26 градусов и забывается. Рыбкам не очень нравится изменение температуры.
А вот вебкамеру прикрутить было бы кстати. И счетчик живых рыбок. :)
З.Ы. Ил любят кушать улитки.
Нюанс у меня ещё в том, что проекты для Андроид, где нет VM оптимизаций для String.equals().
Классы для дедупликаций упираются в то же самое посимвольное сравнение.
У меня в проектах больше всего проблем создаёт String.equals(), который посимвольно проверяет равенство двух строк. Это очень сильно сказывается на поиске в разных Map-ах.
Если надо напрямую сравнить, то быстрее всего работает вариант:
    public static boolean equals(@Nullable String str1, @Nullable String str2) {
        return str1 == str2 || 
            (str1 != null && str2 != null 
                && str1.length() == str2.length() 
                && str1.compareTo(str2) == 0);
    }

Или сравнивать только по хеш-коду, если строгое равенство контента не особо критичено, особенно на длинных строках.
А при вставке в Map-ы и при поиске в них, в качестве ключа, желательно строки интернировать, чтобы избежать посимвольного сравнения. Но некоторые разработчики высказываются категорически против интернирования вообще, по причине мифической утечки памяти.

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity