Ну после такой истории лично у меня Рамблер будет в блэклисте вместе с банком Тинькофф, чисто из-за неадекватной деятельности руководства.
Зачем было так позориться — непонятно.
7) Судя по исходникам Modifier кажется довольно объемным решением, можете хоть Padding виджет не удалять, потому что как видно из слака того же — все разделились на 2 лагеря, кому-то удобно через модифаер, кому-то через виджет. Кажется, правильно оставить и поддержать оба варианта.
10) Сейчас если в поле @Model класса есть ArrayList например, то изменение этого листа не влечет за собой изменение UI, нужно присваивать новый ArrayList, что неудобно. Планируется ли как-то улучшить этот процесс, особенно в свете того, что для Compose как раз будут писать свой RecyclerView аналог?
11) А зачем, похоже, что самый удобный способ — это все тот же инстанс @Model внутри ViewModel/Presenter через который и будут производиться изменения. Да и насколько я понимаю с текущей реализацией стейта в Compose LiveData становится ненужной практически.
А сами паттерны это столько не про формализацию, сколько про типичное решение типичных проблем, что очень нужно знать джуну, но синьор и так напишет то же самое, даже не помня про конкретный паттерн.
Ну как бы смотри вот ты мобильный разработчик и закинул резюме. Тебе сразу почти стопроцентно упадут предложения от Сбербанка, Райфа, Тинькоффа, Революта, Яндекса, Авито, Мэйла, Альфы и целой кучи чуть менее известных фирм. И в этих фирмах точно есть конкурентная зп, дмс и нормальный офис. Во многих из них даже интересные проекты есть.
И вот тут врывается Agima, которой только синьоры нужны на 170к. Ну камон, нормальный синьор пойдет либо на запад сразу, либо в какую-то крупную известную фирму. На крайняк в стартап на 300к/сек. Найти на 170к сарафанным радио в ноунейм вообще нереально, тем более аж 10 синьоров.
Про 100% «в белую» и остальные плюшки можно и не говорить, этого хватит для написания отдельной рекламной статьи.
Реквестирую статью про «остальные плюшки». Да и белая зп такая редкость, тоже думаю стоит про это написать отдельно
ЗП 110-170к за мобильного синьора в Москве. Планируем набрать 5 iOS, 5 Android
Напишите потом отдельно как нашли 10 мобильщиков-синьоров за 170к в Москве. Я всякую читал фантастику, но такой сказочной еще не читал.
Надпись
Вы никогда не задумывались насколько трудно найти работу мобильному разработчику?
в видео — это вообще лютый ор. Я как-то раз имел неосторожность открыть резюме на хедхантере на пару часов и потом звонили не переставая 2 недели с предложениями разной степени адекватности. И буквально у каждого знакомого мобильщика есть такая же история.
Если не сделать зп хотя бы 250+к то наберете в лучшем случае мидлов. И в лучшем случае за пару лет (имея ввиду запрос в 10 человек). Сарафанным радио набирать имеет смысл только тогда, когда ваши зп и условия гораздо лучше чем у конкурентов.
Насколько я знаю корневые DNS сервера и так были в России, учитывая то, что интернет сам по себе является децентрализованной системой как раз на случаи локального отключения, вся эта возня выглядит как попытка запилить Чебурнет и наконец-то прикрыть Телеграм.
Если все сделают как написано и машрутизация пойдет через одну единственную точку, разве это не обозначает еще большую уязвимость?
Я несерьезно же. Вся статья это по факту копипаста JetBrain презентаций 2х-3хлетней давности. Только без конкретики, опыта, без чего-то нового. Просто вода с целью хоть кого-то сподвигнуть на соответствующие вполне конкретные курсы.
С подключением!
А если серьезно, то мне очень нравятся такие статьи в стиле ретро в 2019. Скажите планируются ли статьи по реализации MVP/MVVM и плюсах Clean Architecture?
Если в общем — в котлине можно все писать в джава стиле. Да это ущербно, да так делают только новички, но — можно. Так что ты всегда можешь обмазаться if вместо ?.let.
Теперь по пунктам:
it -> foo(it, 1); }.map { it -> bar(it, 2); }.filter { it -> it.getBaz() > 0; }
Ну да, конечно же вместо it, который ни разу не обязателен просто нельзя написать нормальное имя переменной, которое будет понятно читающему такой код, да?
fun List<String>.filterValid(): List<String>
fun List<Int>.filterValid(): List<Int>
Можно было просто написать инлайн класс и на него повесить экстеншн. И да, это и нужно в том числе для того, чтобы решить проблему с кучей экстеншнов в коде. И опять же — ну не нравится — не используй. Всегда можно написать top-level функцию и не мучаться.
Давайте ещё навалим про библиотеку. Нафига в стандартную библиотеку языка, который поддерживает дата-классы, включили пары? Это ж прямое поощрение плохого кода.
Ну да, делали по сути для двух вещей, для destructuring declarations и для того, чтоб olegchir писал плохой код. В принципе сразу убили двух зайцев одним выстрелом.
Но стоит только поменять определения функций на вот такие:
Явно указать нельзя разве? Или мешает чего?
В общем как итог — вброс конечно же удался, но в целом котлин предоставляет необходимую гибкость нормальным разработчикам и не ставит перед собой цель забить всех в рамки, где шаг влево, шаг вправо — расстрел ошибка компилятора. По аналогии можно предъявить тому же Калашникову, за то что обезьяна случайно прострелила себе колено, не разобравшись как это работает. Но этого никто не делает, потому что на обезьян не рассчитано.
Eager вполне себе нормальный синглтон) Вообще как по мне "ненастоящим" синглноном можно назвать только инстанс образованный какой-нибудь DI библиотекой в скоупе Singleton)
Зачем было так позориться — непонятно.
BTW — спасибо за ответы)
10) Сейчас если в поле @Model класса есть ArrayList например, то изменение этого листа не влечет за собой изменение UI, нужно присваивать новый ArrayList, что неудобно. Планируется ли как-то улучшить этот процесс, особенно в свете того, что для Compose как раз будут писать свой RecyclerView аналог?
11) А зачем, похоже, что самый удобный способ — это все тот же инстанс @Model внутри ViewModel/Presenter через который и будут производиться изменения. Да и насколько я понимаю с текущей реализацией стейта в Compose LiveData становится ненужной практически.
А сами паттерны это столько не про формализацию, сколько про типичное решение типичных проблем, что очень нужно знать джуну, но синьор и так напишет то же самое, даже не помня про конкретный паттерн.
И вот тут врывается Agima, которой только синьоры нужны на 170к. Ну камон, нормальный синьор пойдет либо на запад сразу, либо в какую-то крупную известную фирму. На крайняк в стартап на 300к/сек. Найти на 170к сарафанным радио в ноунейм вообще нереально, тем более аж 10 синьоров.
Ну камон там ща написано ДО 150кобознался, все норм, но все равно для синьора 150к даже в минимум вилки никогда не войдет
Реквестирую статью про «остальные плюшки». Да и белая зп такая редкость, тоже думаю стоит про это написать отдельно
Напишите потом отдельно как нашли 10 мобильщиков-синьоров за 170к в Москве. Я всякую читал фантастику, но такой сказочной еще не читал.
Надпись в видео — это вообще лютый ор. Я как-то раз имел неосторожность открыть резюме на хедхантере на пару часов и потом звонили не переставая 2 недели с предложениями разной степени адекватности. И буквально у каждого знакомого мобильщика есть такая же история.
Если не сделать зп хотя бы 250+к то наберете в лучшем случае мидлов. И в лучшем случае за пару лет (имея ввиду запрос в 10 человек). Сарафанным радио набирать имеет смысл только тогда, когда ваши зп и условия гораздо лучше чем у конкурентов.
Если все сделают как написано и машрутизация пойдет через одну единственную точку, разве это не обозначает еще большую уязвимость?
А если серьезно, то мне очень нравятся такие статьи в стиле ретро в 2019. Скажите планируются ли статьи по реализации MVP/MVVM и плюсах Clean Architecture?
И такое:
О, да ты еще и про котлиновские контракты не слышал! Грустно жить, когда все достижения человечества проходят мимо?
Теперь по пунктам:
Ну да, конечно же вместо it, который ни разу не обязателен просто нельзя написать нормальное имя переменной, которое будет понятно читающему такой код, да?
Можно было просто написать инлайн класс и на него повесить экстеншн. И да, это и нужно в том числе для того, чтобы решить проблему с кучей экстеншнов в коде. И опять же — ну не нравится — не используй. Всегда можно написать top-level функцию и не мучаться.
Ну да, делали по сути для двух вещей, для destructuring declarations и для того, чтоб olegchir писал плохой код. В принципе сразу убили двух зайцев одним выстрелом.
Явно указать нельзя разве? Или мешает чего?
В общем как итог — вброс конечно же удался, но в целом котлин предоставляет необходимую гибкость нормальным разработчикам и не ставит перед собой цель забить всех в рамки, где шаг влево, шаг вправо —
расстрелошибка компилятора. По аналогии можно предъявить тому же Калашникову, за то что обезьяна случайно прострелила себе колено, не разобравшись как это работает. Но этого никто не делает, потому что на обезьян не рассчитано.Eager вполне себе нормальный синглтон) Вообще как по мне "ненастоящим" синглноном можно назвать только инстанс образованный какой-нибудь DI библиотекой в скоупе Singleton)