Вернемся обратно к самым популярным и легким паттернам.
Назначение
Определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми. Стратегия позволяет изменять алгоритмы независимо от клиентов, которые ими пользуются.
Мотивация
Частый на практике пример — форматирование строки. Мало сказать, что мы усложним код, оставив там преобразования строк. Так еще создадим дублирование, если код скопирован 1 в 1 из другого места. А если придется еще расширять, то проблем не избежать.
Тут мы можем инкапсулировать логику в отдельный паттерн.
Применимость
- Когда нужно сконфигурировать поведение классов
- Нужно иметь несколько разных вариантов конфигурации
- Нужно скрыть детали и данные от клиентов
- Разветвления в поведении
Прейдем к практике
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
Паттерн Coordinator
Один из важных паттернов для навигации. В нашей команде авито мы даже заюзали его для создание флоу одного из типов аккаунтов.🤍
Суть координатора — в инкапсуляции логики навигации. В отличие от Router'а, который сильнее пригвозден к модулю или экрану, координатор может жить более независимой жизнью. С ним легко манипулировать общим флоу и последовательностью текущих и следующих модулей.
Мотивация
Решение проблем с координатором — множественное.
- У нас есть диплинки и нам нужно выстроить глубокую последовательность из разных экранов.
- Кнопка назад требует отмены сразу нескольких модулей
- Результат текущего выбора данных может повлиять на предыдущие или следующие экраны
Применимость:
- Когда хотим лучше контролировать флоу из последовательностей экранов
- Хотим сделать модули более реюзабельными
- Нужен общий результат от последовательностей контролеров
- Лучше контролируем логику навигации
Интресные ссылки:
- Кнопка назад и координаторы
- Как юзать паттерн координатор в iOS
- Что такое паттерн коордианатор
- Router vs Coordinator
Один из важных паттернов для навигации. В нашей команде авито мы даже заюзали его для создание флоу одного из типов аккаунтов.
Суть координатора — в инкапсуляции логики навигации. В отличие от Router'а, который сильнее пригвозден к модулю или экрану, координатор может жить более независимой жизнью. С ним легко манипулировать общим флоу и последовательностью текущих и следующих модулей.
Мотивация
Решение проблем с координатором — множественное.
- У нас есть диплинки и нам нужно выстроить глубокую последовательность из разных экранов.
- Кнопка назад требует отмены сразу нескольких модулей
- Результат текущего выбора данных может повлиять на предыдущие или следующие экраны
Применимость:
- Когда хотим лучше контролировать флоу из последовательностей экранов
- Хотим сделать модули более реюзабельными
- Нужен общий результат от последовательностей контролеров
- Лучше контролируем логику навигации
Интресные ссылки:
- Кнопка назад и координаторы
- Как юзать паттерн координатор в iOS
- Что такое паттерн коордианатор
- Router vs Coordinator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17⚡1
365 дней богу Алгоритмов: Отчет за четвертую неделю
Месяц решаю ежедневно задачи. Полет отличный.
30 день и четвертый недельный отчет. На этой недели авито оплатило литкод премиум и теперь я полноценный человек.😬
Впервые встретил орду читеров: индусов, славян, американцев и азиатов. Сначала ты даже не веришь, что такие индивиды есть, но потом находишь общий паттерн. Некоторых даже видел в чатах, некоторые даже писали мне.
Не понимаю, на что надеются эти люди и кому хотят что-то доказать? Накручивая готовыми решениями репутацию и рейтинги. Приглашают в свой гитхаб с закрашенными плитками, которые красятся раз в день скриптом изменяя только файл Readme. Может кого-то вызову даже на литкод батл онли офлайн лицом к лицу без вариантов списать.
Но о моей горящей жопе и как ловить самоубийственных самозванцев будет отдельный пост. Перейдем к скучному.
24. Поиск среднего узла в списке. Признаюсь, сначала я перемудрил, а потом подумал о тупом решении запихнуть все в массив и просто его поделить🤡
25. Поиск цикла в связанном списке. Тут я пошел по решению из учебников — создать флаг isVisited через хэшмапу
26. Палиндром ли связанный список. Опять все через массив. Складываем значения и реверсим
27. Анаграмы ли две строки. Тут супер изи. Я сделал через 2 хэшмапы с подсчетом кол-ва символов (можно лучше да)
28. Поиск цикла в списке 2. Тут сделал почти такое же решение, как и в задаче изи
29. Перемешать значения. Изи задача которую даже чатбот в нашем чате решил за 3 секунды таким же образом
30. Палиндром ли строка со спец. символами. Тут я решил с функциями языка по реплейсу символов и просто зареверсал
Говорят, 30 дней ежедневных действий уже формируют привычку. Хорошо, что моя привычка — не читерство.
#365_дней_богу_алгоритмов
Месяц решаю ежедневно задачи. Полет отличный.
30 день и четвертый недельный отчет. На этой недели авито оплатило литкод премиум и теперь я полноценный человек.
Впервые встретил орду читеров: индусов, славян, американцев и азиатов. Сначала ты даже не веришь, что такие индивиды есть, но потом находишь общий паттерн. Некоторых даже видел в чатах, некоторые даже писали мне.
Не понимаю, на что надеются эти люди и кому хотят что-то доказать? Накручивая готовыми решениями репутацию и рейтинги. Приглашают в свой гитхаб с закрашенными плитками, которые красятся раз в день скриптом изменяя только файл Readme. Может кого-то вызову даже на литкод батл онли офлайн лицом к лицу без вариантов списать.
Но о моей горящей жопе и как ловить самоубийственных самозванцев будет отдельный пост. Перейдем к скучному.
24. Поиск среднего узла в списке. Признаюсь, сначала я перемудрил, а потом подумал о тупом решении запихнуть все в массив и просто его поделить
25. Поиск цикла в связанном списке. Тут я пошел по решению из учебников — создать флаг isVisited через хэшмапу
26. Палиндром ли связанный список. Опять все через массив. Складываем значения и реверсим
27. Анаграмы ли две строки. Тут супер изи. Я сделал через 2 хэшмапы с подсчетом кол-ва символов (можно лучше да)
28. Поиск цикла в списке 2. Тут сделал почти такое же решение, как и в задаче изи
29. Перемешать значения. Изи задача которую даже чатбот в нашем чате решил за 3 секунды таким же образом
30. Палиндром ли строка со спец. символами. Тут я решил с функциями языка по реплейсу символов и просто зареверсал
Говорят, 30 дней ежедневных действий уже формируют привычку. Хорошо, что моя привычка — не читерство.
#365_дней_богу_алгоритмов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🏆2⚡1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
💎 Новая сборка симулятора
Версия: 1 (11)
Вышел новый функционал — собеседования. Но пока в альфе. В нем можно потыкать примерный концепт чего ожидать в будущем. Можно заранее уже предложить интересные фичи и доработки
А также:
- исправили стрики. Добавили отсчет с 1 и исправили баг с переходом с месяца
- Добавили новые ачивки
- Обновили немного дизайн
💎 Что ожидать дальше
- На прошлой недели мы играли с chatGPT. скорее всего он появится и в симуляторе
Версия: 1 (11)
Вышел новый функционал — собеседования. Но пока в альфе. В нем можно потыкать примерный концепт чего ожидать в будущем. Можно заранее уже предложить интересные фичи и доработки
А также:
- исправили стрики. Добавили отсчет с 1 и исправили баг с переходом с месяца
- Добавили новые ачивки
- Обновили немного дизайн
- На прошлой недели мы играли с chatGPT. скорее всего он появится и в симуляторе
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍1
Как чуваки ускорили запуск апки на 60%
Кстати, помните ObjectIdentifier из поста с литкода? В статье он зарешал. На него перешли с String(describing:) и это тоже помогло
Держу в курсе
Кстати, помните ObjectIdentifier из поста с литкода? В статье он зарешал. На него перешли с String(describing:) и это тоже помогло
Держу в курсе
👍13🔥1
Cracking the Mobile System Design Interview (iOS & Android)
Большинство разработчиков часто спрашивают зачем нужен навык проектирования. Ограничивая себя знанием узкой специфики, в уже узком iOS, мы сами себе строим хрупкий фундамент. Знание деталей платформы лишь инструмент, куда важнее уметь из этих инструментов строить хорошую систему.
Если вы чувствуете, что выучили всю документацию, прочитали все статьи и книги по iOS и некуда больше развиваться, то пора браться за проектирование. Это огромный мир, который охватывает тысячи книг в высоту и миллионы идей в глубину.
Проектирование — самая сложная часть в разработке. Оно требует как хорошее знание деталями платформ, владение алгоритмами, так и необходимыми софт-скиллами для сбора требований.
В статье собраны стандартные советы:
-🔍 Сбор требований
-🕷 Поиск проблем
-🔘 Поиск решений
-✅ Анализ характеристик хорошей системы
Большинство разработчиков часто спрашивают зачем нужен навык проектирования. Ограничивая себя знанием узкой специфики, в уже узком iOS, мы сами себе строим хрупкий фундамент. Знание деталей платформы лишь инструмент, куда важнее уметь из этих инструментов строить хорошую систему.
Если вы чувствуете, что выучили всю документацию, прочитали все статьи и книги по iOS и некуда больше развиваться, то пора браться за проектирование. Это огромный мир, который охватывает тысячи книг в высоту и миллионы идей в глубину.
Проектирование — самая сложная часть в разработке. Оно требует как хорошее знание деталями платформ, владение алгоритмами, так и необходимыми софт-скиллами для сбора требований.
В статье собраны стандартные советы:
-
-
-
-
Please open Telegram to view this post
VIEW IN TELEGRAM
THE MOBILE INTERVIEW
Cracking the Mobile System Design Interview (iOS & Android)
A complete step-by-step strategy to preparing and passing the iOS and Android system design interviews at small start-ups and Big Tech companies (FAANG).
👍5💅3⚡1🔥1😁1🌭1🏆1
Для тех, кому не хватило аргументов и мотивации решать литкод, то вот статья той самой героини с твиттер треда. Можно сказать ее тред также был одним из вдохновителей моего челленджа 365 градусов по Фаренгейту даров богу Алгоритмов.
Я все же надеюсь, что мы все начнём популяризировать это вместе. Повышать техническую культуру и образованность.
А главное честно. Если нечестно, то это легко спалить, плюс позор на всю жизнь и бан от скилловых программистов. Наказание от бога Алгоритмов, так скажем
Я все же надеюсь, что мы все начнём популяризировать это вместе. Повышать техническую культуру и образованность.
А главное честно. Если нечестно, то это легко спалить, плюс позор на всю жизнь и бан от скилловых программистов. Наказание от бога Алгоритмов, так скажем
Skillbox
Как правильно решать задачи на LeetCode: подробный гайд по тренажёру для программистов
Нина Торгунакова из «Злых марсиан» за год нащёлкала 400 алгоритмических задач и рассказала, как извлечь из этого занятия максимальную пользу.
🏆6💅3⚡1👍1🔥1😁1
Синдром самозванца — болезнь любого разработчика. Она блочит веру в себя, взять больше ответственности, позволить попросить повышение или решиться на смелые шаги. О нем много сказано, но пост о другом. Пост об еще одном запоздавшем эффекте, которым переболел запад, но симптомы проявляются у нас.
Один из приемов перебороть синдром — вера в себя. Она бывает адекватной и нет. Одна черпается из лужи лжи, другая строится из фактов. Прием "Fake it till you make it" имеет 2 стороны медали и при неправильном использовании приведет к более плачевным последствиям. Большая маленькая ложь.
есть условия, когда принцип будет работать:
1️⃣. Прогнозы о будущем должны быть на фактах
Притворяться нужно тогда, когда факты в прошлом могут дать гарантию будущему. Например, подняв в зале регулярно 60 кг завтра я могу с уверенностью сказать, что подниму 70. Правдивый человек в прошлом гораздо точнее видит в роли будущего себя и с большей вероятностью им станет.
2️⃣. Притворяться о прошлом — мошеничество.
Если человек врал о прошлом, то его прогнозы о будущем будут ошибочны. Легко запутаться кто ты настоящий и полезть ловить крокодила проданной тебе удочкой, где владелец уверял в абсолютной победе. Только корни предсказания были в ложной вере и выдуманном опыте "великого" рыбака. В реальности же и карася не словив на неё. Прецедент будет разрушителен для торговца, а твоя история будет фатальной.
Я против лжи. Её переизбыток — опасен. Это плохой инструмент, который погрузит в иллюзии и даст фальшивую метрику.
Please open Telegram to view this post
VIEW IN TELEGRAM
Herbert Lui
Fake It Till You Make It: When It Works, When It Doesn’t, and Why - Herbert Lui
You've heard the phrase, "Fake it till you make it." This article will explore when it works, and how to balance it with being honest.
👍7⚡1🐳1🫡1