Вы просили — я начал делать. Собрал сборник задач про рефакторинг и кодревью. Тут будут и вопросы как переписать код под SOLID, и про паттерны, и про нэйминги и функции. Такого точно нигде не видел.
Это один из частых запросов, который сложно найти в интернете, но любят задавать на собесах. Все задачи с кодом, без теории.
Рекомендованный алгоритм по решению:
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой/какие SOLID принцип нарушает класс?
Anonymous Poll
62%
Single responsibility
17%
Open closed
10%
Liskov substitution
47%
Interface segregation
13%
Dependency inversion
11%
Никакой
День нелюбимой работы
Сегодня день ненавистной работы. День, когда люди посылают далеко и громко ту работу, которую ненавидят.
Я не люблю отдых в компаниях. Редко вижусь с родственниками. Почти никуда не выхожу. Отдаю все свое внимание собаке и немного девушке. Но дико люблю бани. Единственный вид отдыха, который понимаю.
Для меня это целая церемония и ритуал еще с детства, когда мы с отцом могли поговорить по душам и расслабиться. Сегодня я был в ней.
Очень сильно обращаю внимание на работу банщика. Если он приходит на работу без любви, то чаще мой отдых испорчен. А есть те, кто со страстью делает работу и атмосфера в парилке накаляется особой энергией.
Считаю, если у тебя нет любви к своей работе — то ты должен ее бросать. Любовь должна быть не та, без которой ты не можешь. А та, что помогает полюбить все недостатки и профессионально относиться не смотря на проблемы и настроение.
Мой канал об этом. Да и приближаясь к солидной цифре к 300 платным подписчикам на бусти я все становлюсь уверенней, что без любви никуда.
Желаю всем любить свою работу.
Сегодня день ненавистной работы. День, когда люди посылают далеко и громко ту работу, которую ненавидят.
Я не люблю отдых в компаниях. Редко вижусь с родственниками. Почти никуда не выхожу. Отдаю все свое внимание собаке и немного девушке. Но дико люблю бани. Единственный вид отдыха, который понимаю.
Для меня это целая церемония и ритуал еще с детства, когда мы с отцом могли поговорить по душам и расслабиться. Сегодня я был в ней.
Очень сильно обращаю внимание на работу банщика. Если он приходит на работу без любви, то чаще мой отдых испорчен. А есть те, кто со страстью делает работу и атмосфера в парилке накаляется особой энергией.
Считаю, если у тебя нет любви к своей работе — то ты должен ее бросать. Любовь должна быть не та, без которой ты не можешь. А та, что помогает полюбить все недостатки и профессионально относиться не смотря на проблемы и настроение.
Мой канал об этом. Да и приближаясь к солидной цифре к 300 платным подписчикам на бусти я все становлюсь уверенней, что без любви никуда.
Желаю всем любить свою работу.
Отличная новость от Jetbrains, которую все ожидали.
Kotlin теперь депрекейтед. Гугл уже анонсировал, что swift будет новым языком для разработки под андроид
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-deprecated/
Kotlin теперь депрекейтед. Гугл уже анонсировал, что swift будет новым языком для разработки под андроид
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-deprecated/
Как использовать Runloop в iOS приложениях
Когда-то давно мы уже писали свой ранлуп. Но статей про него много не бывает.
RunLoop — это цикл, который помогает обрабатывать получение и обработку входящих событий в конкретном потоке. Для каждого потока есть свой ранлуп.
Какие проблемы решает ранлуп?
- Обработка задач и их выполнение
- Оптимизация задач
💎 Больше ресурсов про многопоточность тут
Когда-то давно мы уже писали свой ранлуп. Но статей про него много не бывает.
RunLoop — это цикл, который помогает обрабатывать получение и обработку входящих событий в конкретном потоке. Для каждого потока есть свой ранлуп.
Какие проблемы решает ранлуп?
- Обработка задач и их выполнение
- Оптимизация задач
Please open Telegram to view this post
VIEW IN TELEGRAM
Hackernoon
How to Use RunLoop in IOS Applications
Run Loop is a very important tool in iOS development. Let's explore how to use it.
В ноушене вышла большая статья про потокобезопасность.
Постарался собрать инфу по самым популярным и неочень вопросам:
А также многое другое с кодом и в конце вопросами для самопроверки.
Please open Telegram to view this post
VIEW IN TELEGRAM
Совсем недавно мы в ноушене написали про DI в SwiftUI и даже сделали свою собственную реализацию в тестовом проекте.
Вот попалась крутая серия статей про него и некоторые другие авторы активизировались подробнее его разбирать. Когда либо мы предугадываем тренду, либо их задаем.
В них расматриваются:
- Практики внедрения зависимостей
- Разбор разных библиотек
- Как сделать приложение безопасным, стабильным и тестируемым
Статьи:
Please open Telegram to view this post
VIEW IN TELEGRAM
Об инфляции сложности
Почему в ит считается, что стоять на одном месте — это означает деградировать?
Есть мнения, что сейчас джунам сложнее найти работу и требования как от сеньоров. С первым утверждением отчасти я согласен, но со вторым готов поспорить.
Я часто вижу внутренние цифры со стажировок. Да, сейчас рекорды по поданным на старте заявкам, но в итоге, до следующих этапов доходят не так и много людей, как было и раньше.
Многие хорошо зубрят доступную теорию, которой много на собесах и нет в стажировках. Но почти не могут пройти базовые задачи на программирование.
Сложность — это динамическая переменная. Она формируется от доступности. Если люди сто лет назад не умели читать, считая это очень сложной операцией, то сейчас это базовое требование от каждого. Также и от любой задачи в любой команде. Прошлый спринт эта задача была сложная, а сегодня на планировании она легкая, потому что уже знают, как ее делать
Системы усложняются и растут, а вместе с ней и базовые требования от специалистов.
Если 3 года назад одни задачи были доступны только сеньорам, то с приходом доступности информации знание той же side table стало уже стажерским, тк о ней пишут в самых доступных ресурсах.
Доступность — главный индикатор сложности. Сложность — это не показатель кол-ва операций, которые ты должен сделать, а как много людей смогло преломить себя решив эту задачу. Сложность подается инфляции.
Через 3 года то, что спрашивают на сеньоров, будут спрашивать на джунов. Поэтому нужно держать форму и окружать себя теми, кто легко справляется этой инфляции. Кто легко находит редкую инфу, а не знает популярную теорию и первые статьи из интернета.
Инфошум и инфобарыги запутали джунов. Им советовали легкие пути, но легкие пути быстро теряют вес и становятся базовым требованием. Тут главное не отпустить хватку и продолжать ежедневно двигаться, развиваться, тк можешь не успеть за скоростью инфляции. Не удержаться на седле.
Если ты не увеличиваешь стоимость своих знаний, то тебя сожрет инфляция. Вчерашние знания станут меньше стоить. Мало изучать все подряд, нужно изучать самое ценное.
Сопротивляться инфляции можно тут
Почему в ит считается, что стоять на одном месте — это означает деградировать?
Есть мнения, что сейчас джунам сложнее найти работу и требования как от сеньоров. С первым утверждением отчасти я согласен, но со вторым готов поспорить.
Я часто вижу внутренние цифры со стажировок. Да, сейчас рекорды по поданным на старте заявкам, но в итоге, до следующих этапов доходят не так и много людей, как было и раньше.
Многие хорошо зубрят доступную теорию, которой много на собесах и нет в стажировках. Но почти не могут пройти базовые задачи на программирование.
Сложность — это динамическая переменная. Она формируется от доступности. Если люди сто лет назад не умели читать, считая это очень сложной операцией, то сейчас это базовое требование от каждого. Также и от любой задачи в любой команде. Прошлый спринт эта задача была сложная, а сегодня на планировании она легкая, потому что уже знают, как ее делать
Системы усложняются и растут, а вместе с ней и базовые требования от специалистов.
Если 3 года назад одни задачи были доступны только сеньорам, то с приходом доступности информации знание той же side table стало уже стажерским, тк о ней пишут в самых доступных ресурсах.
Доступность — главный индикатор сложности. Сложность — это не показатель кол-ва операций, которые ты должен сделать, а как много людей смогло преломить себя решив эту задачу. Сложность подается инфляции.
Через 3 года то, что спрашивают на сеньоров, будут спрашивать на джунов. Поэтому нужно держать форму и окружать себя теми, кто легко справляется этой инфляции. Кто легко находит редкую инфу, а не знает популярную теорию и первые статьи из интернета.
Инфошум и инфобарыги запутали джунов. Им советовали легкие пути, но легкие пути быстро теряют вес и становятся базовым требованием. Тут главное не отпустить хватку и продолжать ежедневно двигаться, развиваться, тк можешь не успеть за скоростью инфляции. Не удержаться на седле.
Если ты не увеличиваешь стоимость своих знаний, то тебя сожрет инфляция. Вчерашние знания станут меньше стоить. Мало изучать все подряд, нужно изучать самое ценное.
Сопротивляться инфляции можно тут
Когда я решал литкод, то часто думал почему мало задач про многопоточку. С таким же запросом иногда приходят в чат.
Добавил новый раздел в котором будет:
Решения будут на языке Swift с комментариями
Please open Telegram to view this post
VIEW IN TELEGRAM
Backend Driven UI
Поговорим про еще один тренд, который был популярен в 2018-2020 годах, но снова активно начал форситься в мобильном комьюнити. BDUI любят пугать мобильщиков, что скоро их всех заменят бэкендеры. Опять нас кто-то пугает... Но давайте определим плюсы и минусы технологии.
Backend Driven UI — этот механизм позволяет легко изменять приложение не выкатываясь в сторах. Это делается с помощью json'а, который отправляет бэк. В этом джейсоне отображена верстка вашего экрана из заранее заготовленных компонентов, текстов, стилей и даже функций.
Идеальное решение, которое, казалось бы как кроссплатформа, может навсегда убить нативщиков. Но есть много но, когда хороший концепт так и не получает крутую реализацию.
BDUI правда помогает легко обходить релизы. Да, не без нюансов, мы ограничены тем кодом, который пропустил стор, но все же можем. В чем же тогда минусы?
Пообщавшись со многими разрабами и потыкая в него самому, а где-то даже и написав с нуля, я сформулировал мнение по зонам использования такого инструмента.
Он отлично подходит в сценариях, когда есть простые экраны с информацией, но плохо со сложной логикой и там, где пользовательский опыт важнее скорости выкатки.
Где полезен тогда BDUI? Там, где важен time-to-market. Почти все маркетплейсы его используют. Для них скорость выкатки фичи для быстрой услуги важнее. Но каждый сам судит удобность яндекс.маркета, озон и других
Где вреден? Там, где важен Retention. Где удержание важнее быстрой услуги. Например, почти во всех приложениях, с красивым, быстрым и удобным дизайном сложно выжать из BDUI тот же перфоманс и гибкость, которые дают нативные инструменты. Например, люди привыкли читать текст или смотреть видео, в этот момент время удержания гораздо важнее, тк нужно показать рекламу, которую досмотрят доконца. Здесь почти всегда BDUI проигрывает.
Заменит ли нас BDUI? Нет, если вы задумываетесь об удержании
Поговорим про еще один тренд, который был популярен в 2018-2020 годах, но снова активно начал форситься в мобильном комьюнити. BDUI любят пугать мобильщиков, что скоро их всех заменят бэкендеры. Опять нас кто-то пугает... Но давайте определим плюсы и минусы технологии.
Backend Driven UI — этот механизм позволяет легко изменять приложение не выкатываясь в сторах. Это делается с помощью json'а, который отправляет бэк. В этом джейсоне отображена верстка вашего экрана из заранее заготовленных компонентов, текстов, стилей и даже функций.
Идеальное решение, которое, казалось бы как кроссплатформа, может навсегда убить нативщиков. Но есть много но, когда хороший концепт так и не получает крутую реализацию.
BDUI правда помогает легко обходить релизы. Да, не без нюансов, мы ограничены тем кодом, который пропустил стор, но все же можем. В чем же тогда минусы?
Пообщавшись со многими разрабами и потыкая в него самому, а где-то даже и написав с нуля, я сформулировал мнение по зонам использования такого инструмента.
Он отлично подходит в сценариях, когда есть простые экраны с информацией, но плохо со сложной логикой и там, где пользовательский опыт важнее скорости выкатки.
Где полезен тогда BDUI? Там, где важен time-to-market. Почти все маркетплейсы его используют. Для них скорость выкатки фичи для быстрой услуги важнее. Но каждый сам судит удобность яндекс.маркета, озон и других
Где вреден? Там, где важен Retention. Где удержание важнее быстрой услуги. Например, почти во всех приложениях, с красивым, быстрым и удобным дизайном сложно выжать из BDUI тот же перфоманс и гибкость, которые дают нативные инструменты. Например, люди привыкли читать текст или смотреть видео, в этот момент время удержания гораздо важнее, тк нужно показать рекламу, которую досмотрят доконца. Здесь почти всегда BDUI проигрывает.
Заменит ли нас BDUI? Нет, если вы задумываетесь об удержании
ViewBuilder — это атрибут Swift, представленный в SwiftUI.
По сути, это механизм, основанный на замыкании, который позволяет динамически создавать вью путем объединения нескольких дочерних вьюх в одно родительское.
В ноушене написал подробнее про:
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Head of mobile
Сегодня празднуется Всемирный день крысы, так что его можно и мемом отправздновать
Основная идея заключается в том, что сначала создаем набор объектов (пул), затем получаем или освобождаем объекты из него, вместо того, чтобы постоянно их создавать и удалять.
Например, Grand Central Dispatch использует в своей реализации этот паттерн. Он дает заранее созданные очереди
Please open Telegram to view this post
VIEW IN TELEGRAM
Управление зависимостями в Авиасейлс
Еще одна статья про DI в SwiftUI.
Автор статьи поделился крутым материалом как они разбирались с DI:
- Dependency Injection,
- World pattern
- struct-based dependencies.
Если у вас есть крутые статьи — присылайте
💎 Больше инфы про DI тут
Еще одна статья про DI в SwiftUI.
Автор статьи поделился крутым материалом как они разбирались с DI:
- Dependency Injection,
- World pattern
- struct-based dependencies.
Если у вас есть крутые статьи — присылайте
Please open Telegram to view this post
VIEW IN TELEGRAM
DEV Community
Control dependencies with structs in Swift
Dependencies are essential elements of your codebase. They allow us to delegate tasks, improve...
Начал делать первую часть вопросов для мидлов. Сразу признаюсь их интересней делать, потому что грань между мидлом и сеньором очень тонкая.
Много интересных задач, на которые и сам не всегда знаешь ответы.
Собрал вопросы:
А также интересные задачи про группировки массивов, дженерики, удаление дубликатов в кастомном опционале.
Please open Telegram to view this post
VIEW IN TELEGRAM
Обновление ноушена за неделю
Традиционная пятничная сводка что изменилось в закрытом контенте.
В чате мы обсудили тему инфляции навыков и почему инвестиция в знания и скиллы — лучшее действия для безопасности своего будущего. Также, я временами поднимаю тему, что только обучение в рамках задач компании — это суицид. Эта мысль все больше завлекает мой разум и чуть позже соберу мысли в один пост с пруфами.
А я все лучше понимаю что хочу сделать и чем поделиться для читалей.
Что добавилось:
🟣 Добавлены уникальные задачи на рефакторинг
🟣 Релизнуты задачи на UIKit для мидлов
🟣 Начал работать на вопросы для собесов по Swift
🟣 Сделал отдельный раздел по многопоточности, где будут собираться задачи, статьи и паттерны
🟣 Написал про потокобезопасность в iOS с кодом и задачами
А еще мы в чате определили, что для многих будет полезный роадмап. Это такой небольшой анонс.
Полный список изменений в картинке
🌸 Вступить в сообщество и получить доступ к закрытым материалам можно тут.
Традиционная пятничная сводка что изменилось в закрытом контенте.
В чате мы обсудили тему инфляции навыков и почему инвестиция в знания и скиллы — лучшее действия для безопасности своего будущего. Также, я временами поднимаю тему, что только обучение в рамках задач компании — это суицид. Эта мысль все больше завлекает мой разум и чуть позже соберу мысли в один пост с пруфами.
А я все лучше понимаю что хочу сделать и чем поделиться для читалей.
Что добавилось:
А еще мы в чате определили, что для многих будет полезный роадмап. Это такой небольшой анонс.
Полный список изменений в картинке
Please open Telegram to view this post
VIEW IN TELEGRAM
Начать делать онлай-конфы с приглашенными экспертами, блогерами по выбранным темам?
Anonymous Poll
62%
Да
38%
Можно попробовать
Анонс роадмапа для иос-разработчика
Начал работу над роадмапом для iOS разработчика
Три года назад я уже делал roadmap и после этого посчитал, что это не сильно эффективный инструмент.
Но в чате меня переубедили, что он будет полезен. Особенно тем, кто захочет быстро освежить знания перед собесами даже среди сеньоров и лидов.
Ну, в общем, я и начал. Только хочу сделать сразу с ссылками по каждой теме.
Начал пока с джунов, потом поэтапно буду до остальных грейдов (может даже дойдем до Staff-инженера)
💎 Получить доступ смогут только подписчики бусти
Начал работу над роадмапом для iOS разработчика
Три года назад я уже делал roadmap и после этого посчитал, что это не сильно эффективный инструмент.
Но в чате меня переубедили, что он будет полезен. Особенно тем, кто захочет быстро освежить знания перед собесами даже среди сеньоров и лидов.
Ну, в общем, я и начал. Только хочу сделать сразу с ссылками по каждой теме.
Начал пока с джунов, потом поэтапно буду до остальных грейдов (может даже дойдем до Staff-инженера)
Please open Telegram to view this post
VIEW IN TELEGRAM