iOS Makes Me Hate
3.94K subscribers
1.17K photos
167 videos
15 files
1.34K links
Авторский канал про iOS разработку. Путь продуктовых самураев в MAANG.

Самое больше iOS сообщество практиков: https://boosty.to/lionbond/

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
В интернете все больше набираются теории про массовые увольнения в фаанг компаниях. Какие работники первые кандидаты на увольнения? Как не быть ими? Как стать ценным сотрудником?

Даже у Роберта Мартина в "Идеальной работе" много актуальных и похожих советов. Я посмотрел много видосов, почитал множество мнений. все ссылаются почти к одним требованиям:

- Брать на себя больше ответственности
- Изучать математику
- Выходить за обязанности покрасок кнопок
- Не доверять словам тех, кто обучает после малого кол-ва опыта. Этой проблеме даже Мартин посвятил пару глав и я писал оттуда отрывок.
- Не быть волком

Сейчас не только важно найти работу, но скорее остаться на старой, постоянно принося пользу бизнесу и продукту.

https://www.youtube.com/watch?v=AjkghMCKN_0
😢1
Open-Closed Principle в Swift

Идем дальше по самым популярным принципам.

Этот принцип в иос часто путают с extension (расширениями), но это далеко ошибочное от источника представление.

Принцип открытости/закрытости гласит:

Программные сущности должны быть открыты для расширения и закрыты для изменения.
Принцип открытости/закрытости — одна из движущих сил в архитектуре систем.

Его цель — сделать систему легко расширяемой и обезопасить ее от влияния изменений. Эта цель достигается делением системы на компоненты и упорядочением их зависимостей в иерархию, защищающую компоненты уровнем выше от изменений в компонентах уровнем ниже .

Проще говоря, мы должны расширять программы без их изменения.

🟢lvl: jun

Let's go to practice
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
💋 KISS

Отвлечемся от SOLID к менее популярным, но иногда даже более важным принципам.

KISS (keep it simple, stupid)
Как-то в разговоре с коллегой он сказал, что я выдумал этот принцип. Ведь такое название и его расшифровку мог придумать только какой-то гопарь и ни один адекватный человек не будет воспринимать нэйминг всерьез.

Кажется, это глубочайшая ошибка. Ведь принцип довольно мощный. А переоценить его пользу сложно.

По названию нетрудно понять, что он требует. У него много трактовок, но попробуем пройтись по основным:

🔴Не стоит делать дополнительный функционал, который не требуется бизнесу или его использование маловероятно.
🔴Не стоит перезагружать интерфейс лишними опциями.
🔴Бессмысленно делать реализацию сложной бизнес-логики, которая учитывает абсолютно все возможные варианты поведения
🔴Не стоит подключать огромную библиотеку, если вам от неё нужна лишь пара функций
🔴Простой и понятный код — превыше всего. Его легче читать. Его легче поддерживать.

Иначе говоря, правило предельно простое — не усложни. В теории звучит легко, но на практике требует опыта и многолетней практики. Усложняет это индуские подходы, где в некоторых компаниях оценивают работу по строкам кода в реквестах. А начинающие разработчики хотят показать свою компетенцию, показав ее в ненужных испытаниях.

🟢 lvl: jun
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍1
🎚 Антипаттерны в продуктовой разработке

Прошел тут обучение по антипаттернам в продуктовой разработке и хочу с вами поделиться основными идеями.

Одна из турбулентностей для пришедших галлерных разработчиков в продуктовку — это простои. Я сам страдал после аутсорса. Человеку с ресурсным мышлением очень сложно работать в больших и крупных компаниях. Всегда будут большие процессы доставки нашего кода и придется развиваться в других плоскостях. Уметь коммуницировать, понимать процессы, менторить, вести задачи. Иными словами тут приходит уже не модный t—shaping.

Для тех, кто 8 часов привык не останавливаясь кодить — это очень больно. Но крупному бизнесу чаще нужно больше.

Какие же антипаттерны в продуктовой разработке?

🔴 не думать о бизнесе. Почему это плохо, ведь есть же бизнес-аналитики и продакт менеджеры? На самом деле очень большое кол-во слоев аналитиков и продакт менеджеров — это одна из самых проигрышных стратегий. А знание бизнеса для инженера — уменьшает неопределенность на проектирование и понимание задачи.

🔴Нежелание понять пользователя очень похожая причина. Процессы нам мешают быть гибче, решить проблему здесь и сейчас. Но когда-нибудь через пол года решим проблему. Чаще для продуктовой разработки это смертельная ошибка

🔴Любой каприз — это недостаточная проработка задач для ценности юзера. Когда все хотелки сбрасываются в бэклог, то это не создает фокуса. Нельзя мыслить заказной разработкой, что любая хотелка за деньги бизнеса

🔴 Непринятие творческих подходов — это снова из заказной. Где эксперименты не приветствуются, ведь все завязано на сроках и контрактах. Здесь умирает способность к инновациям.

Это одни из многих антипаттернов. Еще добавлю, что сильно влияют финансовые модели команд внутри одной компании. И здесь важно уметь переключаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10💯3🔥1😁1
че думаете господа
Forwarded from Код Дурова
🍏 Ну вот и всё //

Apple разрешит альтернативные магазины приложений, чтобы соблюсти строгие требования ЕС, которые вступают в силу в 2024 году.

@d_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12😐2
🟡 UDF Архитектуры

Свою серьезную коммерческую карьеру я начал с веба и фреймворка React. От прошлого не отмоешься. Тогда, в 2016, был сайт "этажей" и мы юзали библиотеку FLUX, потом меня заставили переписывать на REDUX от того же автора. Так началась наша любовь не с первого взгляда. Сначала мы не понравились друг другу, а потом не можем забыть.

Концепция однонаправленности, изменения состояния за счет прослушки событий из года в год становится более привлекательной для управления бизнес-логикой и её ограничения.

Придя в iOS в 2018 я так и не делал анализ существующих трендов. UDF много ругали за несовместимость с UIKit и не хотелось рисковать с экспериментами. Почему ругали? Я не тратил время на разбор. Пришлось сидеть с вашими вайперами, спорами про MVC. В следующих постах будем делать сравнения UDF архитектур и почему же флаксообразные архитектуры пришли с большим запозданием в мир иоса.

Поищем ответы на главные вопросы? Как далеко ушел от TCA? Почему в андроиде MVI популярнее, чем в яблоке? Зачем это все вообще нужно?
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍1
Flux: границы использования

Friends don’t let friends pick a design pattern blindly. (с) Dan Abramov

Я не знаю родоначальник ли Flux UDF архитектур, но у многих она с ним ассоциируется.

Пусть в офицальной странице с докой висит рекомендация, что лучше юзать другие архитектуры (REDUX, MobX, etc), но я все же бегло пройдусь по основным концептам.
Рекомендую почитать статью Дэна Абрамова о безумстве людей. Многие могут оставить худшее, отбросив лучшее.

Для чего же полезен FLUX:

1️⃣ Приложение имеет высокую частоту изменения данных и нужно быстро все отрисовать на экране

2️⃣ Кэшированные данные могут измениться пока закэшированы.

3️⃣ Реляционные связи в моделях. Кнопки и счетчики имеют связь многие ко многие

4️⃣ Много переиспользуемых компонентов

Кэширование, аннулирование, обновления, агрегирование, разбиение на модули и многие другие вещи становятся намного проще, когда модели являются простыми объектами и не пытаются управлять сложными обновлениями друг друга.

Store — это единственное место во всем приложении, которое имеет право изменять данные. Он не имеет сеттеров и реагирует только на действия, инициированные компонентами.

- Либа для иосreactorkit
👍6
🗂 Подборка докладов с разными непопулярными мнениями про архитектуры.
Непопулярный не значит неправильный.

Давайте думать над архитектурами. Доклад старый, но не менее актуальный. В иос разрабов мало, многие не смотрят за границы платформы. Другие многие смотрят, но приносят свои пересказы. Помешательство на шаблонных и бездумных решениях — боль. Особенно болезнь прогрессирует в вакууме и изоляции. При проектировании надо думать, а множество антипаттернов у нас (тот же MVC), при правильном понимании и готовки не такой уж и антипаттерн.

SOLID вам не нужен. Очень многие любят поспорить о нарушении принципов, но также многие используют их не в том контексте. Это создает путаницы и мифы. Массовые помешательства и культы карго. Чаще нужно смотреть глубже и изучать что и в каком контексте было сказано.

VIPER – шаблон дизайна или архитектура? кому-то поломает представление о вайпере. Прикольный видос как его организация может полностью нарушать принципы чистой архитектуры
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6
Как устроены архитектурные ревью в Skyscanner

У Подлодки есть замечательный выпуск с Филиппом Дельгядо про то, почему code review часто добавляет больше проблем, чем пользы, и про другие виды peer review, которыми его можно заменить. Если вы уже посмотрели выпуск или доклад Фила на ту же тему, и хотите узнать, а как оно работает на практике, то вот вам кейс от Skyscanner.

- Автор планируемого изменения готовит документ, в котором описывает решаемую проблему и детали своего решения.
- Этот пропозал читают и комментируют все связанные с изменением команды. Весь ревью организован асинхронно, встреча собирается только в том случае, если есть какие-то крупные вопросы и комментарии, которые автору удобнее разобрать голосом.
- Документ продолжает жить и дальше, постепенно превращаясь в документацию разработанного сервиса или принятого решения.
👍3🤔2
Включайте VPN. Крутой твиттер тред от девушки программистки. За год нарешала 400 задач. Да и между подходами литкода еще и на шесте крутиться науспела. Руки на стол.

Вкратце:
- Не решать ради подготовки к собесам
- Литкод научил не только алгоритмам
- На задачу уходило не больше 40 минут
🔥17👍1😐1
🍏 Сбор заявок для закрытой беты

В общем, желающих стало больше, чем ожидалось. Писать каждому в лс и ждать ответа будет долго и дорого. Поэтому вот форма

От вас нужно только:
1. email с привязанным к нему icloud
2. имя + фамилия
3. ник в телеграме для связи и уточнений

НЕ ПИШЕМ ЭТО В КОММЕНТАРИИ. СЮДА
Please open Telegram to view this post
VIEW IN TELEGRAM
🐳12