Кейс из жизни. Вам нужно сделать класс, который будет уведомлять другим классам об изменениях. Типичный паттерн Observer.
Как бы вы его сделали на проекте? МОЖНО ВЫБРАТЬ ТОЛЬКО 1 ВАРИАНТ
Как бы вы его сделали на проекте? МОЖНО ВЫБРАТЬ ТОЛЬКО 1 ВАРИАНТ
Anonymous Poll
44%
Заюзаю Combine
4%
Заюзаю RxSwift
11%
Заюзаю Observabled
20%
Заюзаю NotificationCenter
18%
Напишу свой обсервер без этой вашей реактивщины
4%
Другое
Одна из самых частых на практике задач — это обновление экрана при изменении какой-то сущности.
Например, вы авторизовались и нужно изменить статус, отправить всем потребителям об изменении свойств:
Если ты этого не делал, то значит не прошел боевой опыт новичка. Почти все плееры или чаты основаны на этом паттерне.
Чтобы это все понять лучше нужно погрузиться глубже. Мы уже разбирали создание своего Notification Centre'а. Сейчас я поднапрягся и решил узнать как можно сделать это в 2к25. По современному.
В посте мы познакомимся самым популярным и обыденным вариантом: Combine в SwiftUI.
Это тоже обсервер, который работает скрыто в ядре движка. А в базе знаний расширенная статья.
Ну и допом я решил собрать все самые популярные и не очень решения этой задачи в одном месте с важными вопросами. Это будет новый формат с теорией, практикой и квизом:🌟 Теория и определения. С диаграмой🌟 в чем отличие Delegate vs Observer vs Мультиделегат (а также пара секретных паттернов Mediator и тп)🌟 Разберем 10 самых интересных реализаций🌟 Для чего нужны отписки и где их писать🌟 и другое
Лето заканчивается, а значит настал новый сезон контентов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 10 1
Так, ну че. Ща будет анпакинг.
Целый год засматривался на фитнес браслет whoop. Мне дико нравится тема с более детальным изучением сна и циклами восстановления. Поэтому буду тестить.
Почему не watch от Apple? Ну лично я считаю часы и наушники max оверпрайсами. Ватчи хуже откалиброваны и в целом это больше мультиорганайзер, чем фитнес браслет.
У кого есть такой делитесь впечатлениями.
Это не реклама если че
Целый год засматривался на фитнес браслет whoop. Мне дико нравится тема с более детальным изучением сна и циклами восстановления. Поэтому буду тестить.
Почему не watch от Apple? Ну лично я считаю часы и наушники max оверпрайсами. Ватчи хуже откалиброваны и в целом это больше мультиорганайзер, чем фитнес браслет.
У кого есть такой делитесь впечатлениями.
Это не реклама если че
Иногда кажется, что у нас есть особое чутьё на то, что откликнется людям. Запускаем что-то новое и вдруг видим, как это подхватывают вокруг. Для меня это знак, что мы на одной волне с аудиторией и двигаемся в верном направлении.
Например, уже полтора месяца активно разбираем Swift Councurrency, проводим опросы и анализ что интересно аудитории, как вокруг внезапно за последние недели начинают выпускать новые статьи или роадмапы. Даже льстит, что мы так влияем на индустрию
Хватит шуток, приступим к работе. Этот месяц мы активно решили разбирать практические задачи. Одна из частых в продакшене, но непопулярных у популистов задач — это батчинг.
- при проектировании аналитических модулей
- чаты
- сложные логеры
Зачем это нужно?
- меньше сетевых запросов
- улучшение перфоманса
- экономия батарейки
Это очень крутая задача для лайфкодинга или систем дизайна. Можно много где развернуться и оценить как свои знания, так и кандидата.
На скрине сделал очень простую версию для знакомства с концепцией. Более production ready будет в закрытой базе вместе с другими практическими задачами. С более детальным описанием многих корнер-кейсов.
Интересные ссылки:
- Algorithm | Concurrent Batch Processing | Swift
- Простая реализация батчей
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
По опросу в канале аудитория посчитала, что это легче, чем "красить кнопки". Я посчитал это булщитом и большим заблуждением в сети. Поэтому я искал эксперта, кто может пояснить за CI/CD.
Мы с @MeGaPk решили разобрать подробнее все мифы и заблуждения этой темы.
В этом выпуске мы поговорили про:
Please open Telegram to view this post
VIEW IN TELEGRAM
Architecture Decision Records
Мы уже выяснили, что архитектуры — это не про выбор паттерна между VIPER/TCA/MVP. Писали это посте "Вы переоцениваете UI-архитектуры" и "О, нет! Ты выбрал неправильную UI архитектуру!". И нет, выбор архитектуры это тоже не про шаблонное рисование схем "System Design Interview: как сделан ютуб".
Выбор архитектуры — это оценка ресурсов, сроков. Где выбирая архитектуру ты должен задумываться об ее росте и сопротивлению деградации. Так тебе и команде проще жить.
Теперь перейдем из абстрактных советов к практике. Один из важных инструментов, которые помогают разрабам — это ADR.
В больших и сложных проектах, где внедрение или изменение технологий может идти годами. Может произойти такой момент, где все потеряют смысл и вектор происходящего. Зачем мы это делаем? Почему такое было сделано? Куда мы идем?
В этот момент помогают такие инструменты как TDR или ADR. На моей работе даже сейчас одна из сложных задач — это понять и зафиксировать вектор, а также не размыть и потерять все контексты.
Если у вас такие же проблемы, то вот отличные подборки публичных гайдов:
🌟 adr-tools
🌟 Amazon
🌟 GitHub
🌟 RedHat
Мы уже выяснили, что архитектуры — это не про выбор паттерна между VIPER/TCA/MVP. Писали это посте "Вы переоцениваете UI-архитектуры" и "О, нет! Ты выбрал неправильную UI архитектуру!". И нет, выбор архитектуры это тоже не про шаблонное рисование схем "System Design Interview: как сделан ютуб".
Выбор архитектуры — это оценка ресурсов, сроков. Где выбирая архитектуру ты должен задумываться об ее росте и сопротивлению деградации. Так тебе и команде проще жить.
Теперь перейдем из абстрактных советов к практике. Один из важных инструментов, которые помогают разрабам — это ADR.
Когда архитектура ПО развивается в результате ряда решений, которые сами по себе рождаются из гипотез и экспериментов, проверяющих эти гипотезы, командам разработчиков нужен способ отслеживать принятые ими архитектурные решения.
В больших и сложных проектах, где внедрение или изменение технологий может идти годами. Может произойти такой момент, где все потеряют смысл и вектор происходящего. Зачем мы это делаем? Почему такое было сделано? Куда мы идем?
В этот момент помогают такие инструменты как TDR или ADR. На моей работе даже сейчас одна из сложных задач — это понять и зафиксировать вектор, а также не размыть и потерять все контексты.
Если у вас такие же проблемы, то вот отличные подборки публичных гайдов:
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - joelparkerhenderson/architecture-decision-record: Architecture decision record (ADR) examples for software planning, IT…
Architecture decision record (ADR) examples for software planning, IT leadership, and template documentation - joelparkerhenderson/architecture-decision-record
1 9