@Metadata используется именно для котлиновского рефлекшена. Было очень много головной боли, когда ProGuard ломал мне метаданные внутренних классов и приложение начинало падать в случайных местах при десериализации через Moshi.
>Более того, Google не блокирует доступ полностью.
Да лаааадно.
Мне лично Google заблокировал доступ как разработчику в Google Play за одно единственное «нарушение» в их AdSense (ровно один раз кликнул на свою рекламу, забыв, что я не выставил тестовый режим) — при этом к AdSense у меня доступ остался.
Или оно называлось AdMob, не помню, но суть в том, что банхаммер прилетел в не совсем ожидаемое место.
А не сохранилось ли у вас названия, или же ссылки на архивированную страницу (если нельзя в комментарии постить — то в диалоге)? С удовольствием бы почитал. Заранее благодарю!
Если человек владеет инструментами, но алгоритмы сочинять не умеет, то он застрянет на вполне себе практических задачах вида «отобразить оператору клиентов, которых надо сегодня прозвонить, это клиенты, у которых есть звонки с указанной датой следующего прозвона меньше либо равной текущей дате, и нет звонков с датой следующего прозвона больше текущей даты»
Ну, слушайте, для такого не надо быть алгоритменом, достаточно просто немного иметь голову на плечах, а в ней — мозгов.
До сих помню очень странный, но веселый билд моего дяди — некромант с молотом. Дальше обычного уровня сложности, конечно, уже тяжко, но на обычной сложности игру проходить проблем не было.
Столкнулся с таким в первый (и, надеюсь, последний) раз в iOS — был очень удивлен, почему DispatchQueue.main.sync {… } намертво блокирует основной поток. Через минуту судорожного вращения глазами, конечно, понял, но удивление до сих пор помню :)
>будущее должно быть в руках локальных компаний
Ага, очень люблю местные бизнесы, у которых из преимуществ только эфемерное то, что они местные, а в остальном — цены выше, обслуживание хуже, затраты по времени при использовании их выше…
До сих пор не могу забыть, как один такой местный бизнес мне в Израиле телевизор привозил.
«Ну мы придем к вам завтра в 14:30. Да, позвоним за полчаса до прихода. Ой, ну мы пришли в 13:00, стоим у двери. А вы на работе? Подождать вас, вы скоро приедете? Хорошо!» А потом прихожу к двери в 13:20, а никого нет и просто телевизор брошен в коридоре.
Как бы я ни любил трюки, которые позволяет делать Swift, но считаю, что в коде, который пишется в достаточно большой команде им либо не место, либо их создание должно быть централизованным решением всей команды с последующей миграцией на них всей кодовой базы. Желательно еще добавить что-то вроде Lint, проверяющий, что оператор действительно используется. Иначе получится, что часть команды знает о самописном операторе, часть нет, часть знает, но не использует, и в итоге каждое столкновение с ним в коде будет головной болью для всех, кто не использует его.
Отличный пример компромисса для UX, когда программные средства по другому не позволяют.
Также очень приятно видеть использование RxJava и Maybe там, где он подходит :)
Правда, можно было полегче сделать — вместо flatMapMaybe лучше в данном случае все же filter { it.isNotEmpty() } — он как раз Single в Maybe превращает.
К слову, в Rx проблема совсем другого характера — сам фреймворк весьма стабилен (за все несколько лет, что я с ним работал, столкнулся с проблемой только в Rx 1 — refCount в нескольких тредах могли устроить deadlock), и единственным камнем преткновения может стать его сложность для новых разработчиков. Ну и дикая кривая сложности написания своих операторов, которые работают с Backpressure (но это весьма специфичный случай).
Да лаааадно.
Мне лично Google заблокировал доступ как разработчику в Google Play за одно единственное «нарушение» в их AdSense (ровно один раз кликнул на свою рекламу, забыв, что я не выставил тестовый режим) — при этом к AdSense у меня доступ остался.
Или оно называлось AdMob, не помню, но суть в том, что банхаммер прилетел в не совсем ожидаемое место.
А вот тут разработчику Террарии просто заблокировали вообще все. Что заблокирует тебе Google после того, как его волшебные боты определят нарушение, неведомо никому.
Ну, слушайте, для такого не надо быть алгоритменом, достаточно просто немного иметь голову на плечах, а в ней — мозгов.
Ага, очень люблю местные бизнесы, у которых из преимуществ только эфемерное то, что они местные, а в остальном — цены выше, обслуживание хуже, затраты по времени при использовании их выше…
До сих пор не могу забыть, как один такой местный бизнес мне в Израиле телевизор привозил.
«Ну мы придем к вам завтра в 14:30. Да, позвоним за полчаса до прихода. Ой, ну мы пришли в 13:00, стоим у двери. А вы на работе? Подождать вас, вы скоро приедете? Хорошо!» А потом прихожу к двери в 13:20, а никого нет и просто телевизор брошен в коридоре.
(Шучу, я понимаю, что продукт ни разу не массовый)
Также очень приятно видеть использование RxJava и Maybe там, где он подходит :)
Правда, можно было полегче сделать — вместо flatMapMaybe лучше в данном случае все же filter { it.isNotEmpty() } — он как раз Single в Maybe превращает.