Решил разобрать этот паттерн, потому что был удивлен, что его мало кто знает. Хотя он встречается в 99% проектах.
Паттерн Interceptor (Перехватчик) — это паттерн, который помогает добавить доп. обработку к вызовам методов — до или после их выполнения, не меняя сам код этих методов. В Swift он особенно полезен, когда нужно добавить функции логирования или авторизации.
Добавим аналогии для понимания.
Допустим, мы идем в офис на работу. По пути нас "перехватывают" несколько служб:
Теперь вернемся в реальную практику. Когда ты делаешь сетевые запросы к API, почти всегда нужен токен авторизации. В простом случае ты добавляешь токен вручную в каждый запрос.
Но если таких запросов десятки, это становится неудобно и неудобно поддерживать. Здесь на помощь приходит Interceptor.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Киря
Вайбкодинг → Метакодинг
Термин «вайбкодинг» появился недавно, но уже успел стать ругательным. Им обозначают бездумное дилетантское программирование с нейронками. Но нейронки — оч мощный инструмент. Если пользоваться ими правильно, можно делать крутые вещи
Сегодня в одной статье я подсмотрел термин «метакодинг» и мне он очень понравился. Статья наполовину написана нейросетью (вайб-редактура, кек), и читается трудно, поэтому ссылку я давать не стану. Да и не в статье дело. Просто она подтолкнула меня поделиться тем, что я на личном опыте узнал за год метакодинга
(если вы не знаете, мы с Женей Власовым пилим, и скоро, я надеюсь, релизнем iOS-приложение «Буков»)
Метакодинг — вдумчивое и грамотное программирование с нейросетями. Код пишет нейросеть, но ты контролируешь каждый этап, вникаешь в архитектуру, внимательно читаешь сопроводительные комментарии нейронки, тестируешь код и постоянно обновляешь документацию и контекст
Вот, какие основные советы я вынес из года метакодинга:
— Проси объяснять на твоём уровне непонимания. Всегда полезно спрашивать, что значат термины, которые тебе пишет нейронка
— Читай, что тебе пишет нейросеть. Не применяй правки бездумно
— Документация — это фундамент. Именно она задаёт контекст нейронке и помогает ей не делать ошибок. У тебя будут сотни чатов. Чем полнее твоя документация, тем проще тебе будет начинать каждый новый чат
— Проси нейронку анализировать код и писать/обновлять документацию в соответствии с этим анализом
— Дели документацию на блоки по функциональным частями твоего приложения
— Записывай все высокоуровневые правила и практики, которым ты хочешь, чтобы нейронка следовала, в отдельный файлик, и добавляй его в контекст или в поле кастомного промта
— Не проси исправлять ошибки больше одного раза. Если первая просьба не сработала, лучше откатись на шаг назад и посмотри, что нужно добавить в промт, чтобы ошибок не было. Добавь это и перегенерируй ответ
— Иногда ошибки уходят, если тупо перегенерировать ответ заново или сменить модель
— Не скупись на самые новые модели. Иногда качество кода существенно повышается просто из-за подбора правильной модели
— Но! Новые модели не обязательно лучше. Мы сталкивались с ситуациями, когда Sonnet 3.5 писал код гораздо лучше Sonnet 3.7 или даже GPT 4o, хотя по синтетическим тестам они слабее
— Экономь окно контекста. Следи за тем, чтобы в контекст не попадала ненужная информация. Если даёшь нейронке логи, убирай из них лишнее. Это и деньги экономит, и качество ответов повышает
(эти советы легко могут устареть через полгода, но пока так)
Многие думают, что нейронка — это такое волшебное окно, куда ты пишешь «сделай круто» и она так и делает. А это просто новый инструмент. Если нейронка что-то написала не так — это твоя ответственность и вина. Это не машина тупая, а ты плохо поставил задачу. Она просто делает то, что ты просишь. Garbage in — garbage out
КОРОЧЕ: Метакодинг — база, и он доступен всем, кто готов проявить усидчивость и терпение
Термин «вайбкодинг» появился недавно, но уже успел стать ругательным. Им обозначают бездумное дилетантское программирование с нейронками. Но нейронки — оч мощный инструмент. Если пользоваться ими правильно, можно делать крутые вещи
Сегодня в одной статье я подсмотрел термин «метакодинг» и мне он очень понравился. Статья наполовину написана нейросетью (вайб-редактура, кек), и читается трудно, поэтому ссылку я давать не стану. Да и не в статье дело. Просто она подтолкнула меня поделиться тем, что я на личном опыте узнал за год метакодинга
(если вы не знаете, мы с Женей Власовым пилим, и скоро, я надеюсь, релизнем iOS-приложение «Буков»)
Метакодинг — вдумчивое и грамотное программирование с нейросетями. Код пишет нейросеть, но ты контролируешь каждый этап, вникаешь в архитектуру, внимательно читаешь сопроводительные комментарии нейронки, тестируешь код и постоянно обновляешь документацию и контекст
Вот, какие основные советы я вынес из года метакодинга:
— Проси объяснять на твоём уровне непонимания. Всегда полезно спрашивать, что значат термины, которые тебе пишет нейронка
— Читай, что тебе пишет нейросеть. Не применяй правки бездумно
— Документация — это фундамент. Именно она задаёт контекст нейронке и помогает ей не делать ошибок. У тебя будут сотни чатов. Чем полнее твоя документация, тем проще тебе будет начинать каждый новый чат
— Проси нейронку анализировать код и писать/обновлять документацию в соответствии с этим анализом
— Дели документацию на блоки по функциональным частями твоего приложения
— Записывай все высокоуровневые правила и практики, которым ты хочешь, чтобы нейронка следовала, в отдельный файлик, и добавляй его в контекст или в поле кастомного промта
— Не проси исправлять ошибки больше одного раза. Если первая просьба не сработала, лучше откатись на шаг назад и посмотри, что нужно добавить в промт, чтобы ошибок не было. Добавь это и перегенерируй ответ
— Иногда ошибки уходят, если тупо перегенерировать ответ заново или сменить модель
— Не скупись на самые новые модели. Иногда качество кода существенно повышается просто из-за подбора правильной модели
— Но! Новые модели не обязательно лучше. Мы сталкивались с ситуациями, когда Sonnet 3.5 писал код гораздо лучше Sonnet 3.7 или даже GPT 4o, хотя по синтетическим тестам они слабее
— Экономь окно контекста. Следи за тем, чтобы в контекст не попадала ненужная информация. Если даёшь нейронке логи, убирай из них лишнее. Это и деньги экономит, и качество ответов повышает
(эти советы легко могут устареть через полгода, но пока так)
Многие думают, что нейронка — это такое волшебное окно, куда ты пишешь «сделай круто» и она так и делает. А это просто новый инструмент. Если нейронка что-то написала не так — это твоя ответственность и вина. Это не машина тупая, а ты плохо поставил задачу. Она просто делает то, что ты просишь. Garbage in — garbage out
КОРОЧЕ: Метакодинг — база, и он доступен всем, кто готов проявить усидчивость и терпение
Awesome Tuist
Если собирать топ действительно полезных библиотек для iOS-разработки, то на первое место я бы поставил Tuist.
Почему не архитектуры и фреймворки? Потому что их польза — всегда спорна. Особенно, когда вместе с ними начинают продавать видеокурсы "как с этим работать". Неудивительно, что после такого многие разработчики, не дождавшись поддержки, просто форкают проект или отказываются от него.
Это конкретная оценка по полноте и объему информации любого архитектурного решения. Если там есть пейволл, то определенно точно на него будут акценты воронок продаж, чтобы как можно больше людей запросило поддержку. Наша задача, при выборе архитектурного решения, не очароваться математическим бэкграундом или техническим скиллом авторов. А трезво оценить их НАМЕРЕНИЯ. Степень доступности информации — это ключевая оценка любой технологии.
Это как изобрести сложный летающий автомобиль, а инструкцию как им пользоваться и выжать все соки на максимум — продавать отдельно. Правда ли он так нужен? Да, я говорю сейчас про TCA.
В некоторых случаях библиотеки словно специально делают сложнее, чем нужно. В итоге всё сводится к тому, что разработчики вынуждены платить за консультации — и не просто платить, а по несколько сотен евро. А если у них что-то не получилось — всегда можно сказать: «Они использовали старую версию и вообще всё неправильно делали. В нашем платном контенте мы расскажем как нужно». (отказаться от использование библиотек на зрелых этапах не так дешево)
Удобная позиция "Ты просто не умеешь это готовить". Только вот рецепты “как правильно” — платные. Доказательств нет, но интуиция подсказывает: усложнение может быть не случайным, особенно если платные консультации — единственный способ монетизации.
Идеальный маркетинг:
1. Убедить всех, что инструмент — бесплатный.
2. Дождаться, пока его минусы будут проявляться на больших масштабах проекта и о них мало кто расскажет.
3. Усложнить использование, а всех критиков обвинить "в недостатке скилла".
4. Понимать, что отказ и выпил технологии будет для них дорогой.
5. Загнав в угол предложить платное решение, чтобы “разобраться”.
Отличная шахматная партия. Шах и мат. Если уж и завидовать таланту авторов, то только их стратегии монетизации и отличной коммерческой игре. Но такая монетизация мне кажется зашкварной. Одно дело ты продаешь знания, а другое делаешь других зависимыми от своего продукта, создаешь искусственно проблему, а потом просишь за решение этой проблемы деньги. Капитализм? Меркантильность? Ну, извините, мы из разных обойм.
При выборе архитектурных решений всегда оценивате "интерес" авторов ;) И если их интерес построен на таком СКРЫТОМ НАМЕРЕНИИ и зависимости, как "поддержка", то это красный флаг.
Но пост не очередная критика ТСА. На мой взгляд, если и хвалить команды за крутые продукты, то только те, кто реально облегчают жизнь разрабам без платных туториалов.
Например, в отличие от ТСА, туист легко посчитать в цифры — вы экономите время ожидания билда. А это чуть ли не основная метрика приложения. Плюс в чат, если работали в проектах банка и ждали билды час. Так еще и бесплатно. Без намеренного усложнения. Без скрытых платных слоёв.
В этом гитхабе автор собрал полезные ссылки, если еще не затащили туист или не прокачали у себя.
Если собирать топ действительно полезных библиотек для iOS-разработки, то на первое место я бы поставил Tuist.
Почему не архитектуры и фреймворки? Потому что их польза — всегда спорна. Особенно, когда вместе с ними начинают продавать видеокурсы "как с этим работать". Неудивительно, что после такого многие разработчики, не дождавшись поддержки, просто форкают проект или отказываются от него.
Это конкретная оценка по полноте и объему информации любого архитектурного решения. Если там есть пейволл, то определенно точно на него будут акценты воронок продаж, чтобы как можно больше людей запросило поддержку. Наша задача, при выборе архитектурного решения, не очароваться математическим бэкграундом или техническим скиллом авторов. А трезво оценить их НАМЕРЕНИЯ. Степень доступности информации — это ключевая оценка любой технологии.
Это как изобрести сложный летающий автомобиль, а инструкцию как им пользоваться и выжать все соки на максимум — продавать отдельно. Правда ли он так нужен? Да, я говорю сейчас про TCA.
В некоторых случаях библиотеки словно специально делают сложнее, чем нужно. В итоге всё сводится к тому, что разработчики вынуждены платить за консультации — и не просто платить, а по несколько сотен евро. А если у них что-то не получилось — всегда можно сказать: «Они использовали старую версию и вообще всё неправильно делали. В нашем платном контенте мы расскажем как нужно». (отказаться от использование библиотек на зрелых этапах не так дешево)
Удобная позиция "Ты просто не умеешь это готовить". Только вот рецепты “как правильно” — платные. Доказательств нет, но интуиция подсказывает: усложнение может быть не случайным, особенно если платные консультации — единственный способ монетизации.
Идеальный маркетинг:
1. Убедить всех, что инструмент — бесплатный.
2. Дождаться, пока его минусы будут проявляться на больших масштабах проекта и о них мало кто расскажет.
3. Усложнить использование, а всех критиков обвинить "в недостатке скилла".
4. Понимать, что отказ и выпил технологии будет для них дорогой.
5. Загнав в угол предложить платное решение, чтобы “разобраться”.
Отличная шахматная партия. Шах и мат. Если уж и завидовать таланту авторов, то только их стратегии монетизации и отличной коммерческой игре. Но такая монетизация мне кажется зашкварной. Одно дело ты продаешь знания, а другое делаешь других зависимыми от своего продукта, создаешь искусственно проблему, а потом просишь за решение этой проблемы деньги. Капитализм? Меркантильность? Ну, извините, мы из разных обойм.
При выборе архитектурных решений всегда оценивате "интерес" авторов ;) И если их интерес построен на таком СКРЫТОМ НАМЕРЕНИИ и зависимости, как "поддержка", то это красный флаг.
Но пост не очередная критика ТСА. На мой взгляд, если и хвалить команды за крутые продукты, то только те, кто реально облегчают жизнь разрабам без платных туториалов.
Например, в отличие от ТСА, туист легко посчитать в цифры — вы экономите время ожидания билда. А это чуть ли не основная метрика приложения. Плюс в чат, если работали в проектах банка и ждали билды час. Так еще и бесплатно. Без намеренного усложнения. Без скрытых платных слоёв.
В этом гитхабе автор собрал полезные ссылки, если еще не затащили туист или не прокачали у себя.
GitHub
GitHub - tuist/awesome-tuist: A community-driven collection of Tuist related posts, plugins, talks, and much more.
A community-driven collection of Tuist related posts, plugins, talks, and much more. - tuist/awesome-tuist
Ищу крутых разрабов на наш секретный проект
Любое действие должно закрепляться практикой.
В этом канале мы прошли много челенджей:
🟣 выиграли призовое место в телеграмме
🟣 создали сообщество, до того, как этому начали подражать другие
🟣 были менторами, до того как это стало популярны
🟣 создали симулятор иосника, до того, как эту идею начали копировать
🟣 прошли 365 дней алгоритмов
🟣 решили сотни задач в сообществе
🟣 первыми сделали марафон систем дизайн
И много другое.
Мы набрались уверенности и теперь пришло время перейти на новый уровень. Мы никогда не боялись вызовов и принимали любой. Теперь настало время их создавать.
Уже пару месяцев я вынашивал крутую идею по практике, которая вам понравится. Продуктовое мышление, практическая среда и регулярные опросы аудитории помогает быстрее искать то, в чем нуждаетесь вы.
Поэтому мы ищем желающих поучаствовать в разработке нашего нового амбициозного продукта и еще больше повлиять на практическую культуру инженеров.
Пока без деталей, чтобы не было сотряски воздуха и пустых обещаний.
Если ты:
- веб разработчик
- бэкенд
- крутой QA
- бог ML
- дизайнер
Пиши. Есть задачи, которые пока никто не делал на рынке. Загруженность небольшая для MVP, по вечерам с пивасом
Я хочу сделать не просто канал одного автора, а площадку для талантливых, честных и смелых ребят
Любое действие должно закрепляться практикой.
В этом канале мы прошли много челенджей:
И много другое.
Мы набрались уверенности и теперь пришло время перейти на новый уровень. Мы никогда не боялись вызовов и принимали любой. Теперь настало время их создавать.
Уже пару месяцев я вынашивал крутую идею по практике, которая вам понравится. Продуктовое мышление, практическая среда и регулярные опросы аудитории помогает быстрее искать то, в чем нуждаетесь вы.
Поэтому мы ищем желающих поучаствовать в разработке нашего нового амбициозного продукта и еще больше повлиять на практическую культуру инженеров.
Пока без деталей, чтобы не было сотряски воздуха и пустых обещаний.
Если ты:
- веб разработчик
- бэкенд
- крутой QA
- бог ML
- дизайнер
Пиши. Есть задачи, которые пока никто не делал на рынке. Загруженность небольшая для MVP, по вечерам с пивасом
Я хочу сделать не просто канал одного автора, а площадку для талантливых, честных и смелых ребят
Please open Telegram to view this post
VIEW IN TELEGRAM
В нашем чате сообщества я провел голосование и узнал что больше всего интересует ребят. Продуктовый подход и практичный опыт научили меня слушать аудиторию. Поэтому искренне хочется попробовать закрыть её боли.
С большим отрывом выиграла тема "Решение популярных проблем".
В этой рубрике будут:
- Описание реальных проблем, с которыми сталкиваются реальные разрабы на работе.
- Частота и сложность этих проблем
- Разбор хороших и плохих решений
- Материалы для закрепления и комментарии участников сообщества
В общем, очень крутой и понятный по структуре контент.
Первая тема по популярности — это управление памятью. Почему это важно? В отличие от знаний как работает SideTable, утечки и их поиск, имеют реальное влияние на работу приложения:
Знать как работает память и уметь находить проблемы — признак профессионализма
В этой статье:
В этой рубрике мы собрали только реальную практику без углубленной теории. Подтвержденной реальными практикующими инженерами, чтобы не вводить в заблуждение изучая тонны подкапотной логики.
Please open Telegram to view this post
VIEW IN TELEGRAM
SwiftUI Architecture — Best Practices and Principles
Тема архитектур все острее и острее. Красить кнопки нам осталось немного.
Совсем недавно некоторые команды крупных бигтехов уже выпустили AI плагины, которые генерируют код по фигме. Верстки все меньше в задачах фронтенда. Теперь мы должны учиться как эффективно дружить с собой сгенерированный нейронками код.
Напомню, что архитектуры и систем дизайн — это не перебор паттернов проектирования и спор между MVC и VIPER. Это более глубокая тема, которая затрагивает очень много нюансов. Как и зачем складывать код? Как читается лучше? Где меньше когнитивная нагрузка?
Наткнулся на хороший доклад на выходные, который учит удобным практикам организации кода. Нет идеальных шаблонов. Есть принципы, на которых все строится.
Выбрасывайте TCA из проекта. Пишите свои удобные архитектурные решения.
Тема архитектур все острее и острее. Красить кнопки нам осталось немного.
Совсем недавно некоторые команды крупных бигтехов уже выпустили AI плагины, которые генерируют код по фигме. Верстки все меньше в задачах фронтенда. Теперь мы должны учиться как эффективно дружить с собой сгенерированный нейронками код.
Напомню, что архитектуры и систем дизайн — это не перебор паттернов проектирования и спор между MVC и VIPER. Это более глубокая тема, которая затрагивает очень много нюансов. Как и зачем складывать код? Как читается лучше? Где меньше когнитивная нагрузка?
Наткнулся на хороший доклад на выходные, который учит удобным практикам организации кода. Нет идеальных шаблонов. Есть принципы, на которых все строится.
Выбрасывайте TCA из проекта. Пишите свои удобные архитектурные решения.
YouTube
SwiftUI Architecture - Best Practices and Principles
https://do-ios.com
What if I told you that you might be unnecessarily complicating your SwiftUI apps by selecting an architecture that doesn’t align with the declarative nature of the SwiftUI framework? Instead of battling against the framework, what if…
What if I told you that you might be unnecessarily complicating your SwiftUI apps by selecting an architecture that doesn’t align with the declarative nature of the SwiftUI framework? Instead of battling against the framework, what if…
iOS Mock Interview: Платформа и рефакторинг
Новое видео на ютубе.
Вы не забыли, что у нас есть ютуб?😂 Решил загрузить туда один из первых видосов, которому уже почти год.
В нем мы провели мок-интервью по лайфкодингу и рефакторингу. Спросил популярные и редкие задачи у Искандера, молодого крутого инженера.
Премьера завтра.
Ставьте лайки и подписывайтесь на канал
Поддержите начинающего блоггера.😬
Новое видео на ютубе.
Вы не забыли, что у нас есть ютуб?
В нем мы провели мок-интервью по лайфкодингу и рефакторингу. Спросил популярные и редкие задачи у Искандера, молодого крутого инженера.
Премьера завтра.
Ставьте лайки и подписывайтесь на канал
Поддержите начинающего блоггера.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
iOS Mock Interview: Платформа и рефакторинг | Лев Бондаренко и Искандер Ситдиков
Мок собеседование на iOS инженера.
Платформа, архитектура, рефакторинг кода. Проверим, как кандидат справляется с реальными вопросами, которые задают на собеседованиях в крупные продуктовые компании.
Подписаться на сообщество: https://boosty.to/lionbond…
Платформа, архитектура, рефакторинг кода. Проверим, как кандидат справляется с реальными вопросами, которые задают на собеседованиях в крупные продуктовые компании.
Подписаться на сообщество: https://boosty.to/lionbond…
Swift Ownership: путь к предсказуемой производительности Swift
Язык Swift развивается пугающими шагами. Вопрос его изящности и дружелюбности становится под вопросом. Новые фичи языка дают много крутых возможностей, но увеличивают порог входа. Без бутылки уже не обойтись.
Странно, что этот доклад почти никто нигде не публиковал. Автор доклада рассказывает многие неочевидные детали языка, которые могут сильно повлиять на производительность.
Крайне рекомендую доклад.
Язык Swift развивается пугающими шагами. Вопрос его изящности и дружелюбности становится под вопросом. Новые фичи языка дают много крутых возможностей, но увеличивают порог входа. Без бутылки уже не обойтись.
Странно, что этот доклад почти никто нигде не публиковал. Автор доклада рассказывает многие неочевидные детали языка, которые могут сильно повлиять на производительность.
Крайне рекомендую доклад.
Forwarded from Московский кэш
👨💻В России заработала платформа для подтверждения навыков айтишников
Программисты, которые успешно справятся, получат сертификат Минцифры и отметку на Госуслугах.
Программисты, которые успешно справятся, получат сертификат Минцифры и отметку на Госуслугах.
Сократите расходы, а не углы. Модуляризация с помощью SPM
Когда речь идёт об архитектуре, важно понимать: MVC, MVP, VIPER, TCA — это не архитектуры, а лишь паттерны уровня UI. Настоящая архитектура — это о структуре всего приложения, а не одного экрана.
Модуляризация отвечает на прямые вопросы:
- Где будет бизнес-логика?
- Как делятся модули?
- Как они взаимодействуют?
- Как добавлять новые фичи?
Эти вопросы особенно важны, когда проект растёт и превращается в монолит: сборка становится медленной (привет банки с часом сборки проекта), а багов всё больше. В такой ситуации уже не до споров про TCA или VIPER — хочется просто, чтобы всё работало.
Автор этого видео рассказывает, как модуляризация с помощью SPM помогла избежать им множество реальных проблем:
- разделить код проекта на логические блоки
- ускорить билд проекта
- чётко разграничить зоны ответственности,
- упростить переиспользование кода
- улучшить чтение и понимание проекта
- повысить общее качество проект
Архитектура — это не стиль, а система с понятными метриками и последствиями. И если решать архитектурные проблемы — то с опорой на реальную структуру проекта, а не только на паттерны UI.
Ее не натянешь на готовый шаблон, ее нужно сформулировать с учетом бизнес требований проекта и его особенностей.
Когда речь идёт об архитектуре, важно понимать: MVC, MVP, VIPER, TCA — это не архитектуры, а лишь паттерны уровня UI. Настоящая архитектура — это о структуре всего приложения, а не одного экрана.
Модуляризация отвечает на прямые вопросы:
- Где будет бизнес-логика?
- Как делятся модули?
- Как они взаимодействуют?
- Как добавлять новые фичи?
Эти вопросы особенно важны, когда проект растёт и превращается в монолит: сборка становится медленной (привет банки с часом сборки проекта), а багов всё больше. В такой ситуации уже не до споров про TCA или VIPER — хочется просто, чтобы всё работало.
Автор этого видео рассказывает, как модуляризация с помощью SPM помогла избежать им множество реальных проблем:
- разделить код проекта на логические блоки
- ускорить билд проекта
- чётко разграничить зоны ответственности,
- упростить переиспользование кода
- улучшить чтение и понимание проекта
- повысить общее качество проект
Архитектура — это не стиль, а система с понятными метриками и последствиями. И если решать архитектурные проблемы — то с опорой на реальную структуру проекта, а не только на паттерны UI.
Ее не натянешь на готовый шаблон, ее нужно сформулировать с учетом бизнес требований проекта и его особенностей.
Некоторые считают, что Singleton разрушает архитектуру.
Другие, что без него не построить хорошую DI.
Че думаете вы?
Другие, что без него не построить хорошую DI.
Че думаете вы?
Anonymous Poll
6%
лютый антипаттерн на 100%, нельзя его использовать
11%
отличная глобальная переменная на стероидах
64%
Если аккуратно, то все ок
10%
Рабочая штука не для всех
9%
Что вообще с ним не так?
В закрытой базе я начал новую серию статей про модуляризацию. В комьюнити очень часто приходят с запросами по модуляризации и другим архитектурным вопросам.
За последние пол года уже 3-4 разработчика спрашивали лучшие практики или полезные материалы. Кто-то готовился к собесам, кто-то получал задачи на текущем проекте. Информации в сети не так много и поэтому многие не знали как к этому вопросу подойти.
Я и сам на своем проекте буду заниматься распилом фичей команды, поэтому мне нужно хорошо освежить, структурировать и улучшить знания, чтобы выбрать наилучшие подходы.
В первой статье собрал большой материал:
В следующих статьях будем погружаться глубже в практику. Разбирать такие инструменты как CocoaPods, SPM, Tuist, Xcodegen и другое. Какие архитектуры выбирают при разбиении, а также как избавляться от монолита.
Please open Telegram to view this post
VIEW IN TELEGRAM
SwiftUI in 2025: Забудьте MVVM
Мы уже заметили, что тема архитектур пробуждает в разрабах что-то первобытное и животное. Уходят рациональность и объективность, приходит что-то религиозное и стилистическое.
Я перестал воспринимать все архитектурные решения субъективно и оценивать «по уюту» как только осознал, что мы — коммерческие разрабы. Мы не строим удобный загородный дом. Мы строим коммерческие помещения, заводы, пароходы. Высокого качества.
Поэтому мне до сих пор странно видеть, как западные авторы рассказывают об угрозах в свой адрес, когда они высказывают непопулярное мнение. Или как мы переходим на оскорбления споря про синглтоны или ТСА/Вайперы.
Решил вас добить и скинуть еще одну провокационную статью🥲
Автор утверждает:
🟣 SwiftUI и MVVM несовместимы по философии.
Многие разрабы принесли в SUI свои привычки из UIKit. Автор утверждает, что многие привычки и так были встроены в фреймворк и мы лишь дублируем или усложняем то, что задумано by design.
🟣 на его практике все чаще встречаются приложения без ViewModel. Они отлично живут, все замечательно.
🟣 потребность в ViewModel появляется потому, что многие разрабы не понимают хорошо стандартные механизмы биндинга: @observable, @state, @binding
🟣 вся философия SwiftUI заложена на написания простого и понятного кода. Не усложняйте.
А вы как считаете? Заслуживает автор оскорблений и линчевания?
Мы уже заметили, что тема архитектур пробуждает в разрабах что-то первобытное и животное. Уходят рациональность и объективность, приходит что-то религиозное и стилистическое.
Я перестал воспринимать все архитектурные решения субъективно и оценивать «по уюту» как только осознал, что мы — коммерческие разрабы. Мы не строим удобный загородный дом. Мы строим коммерческие помещения, заводы, пароходы. Высокого качества.
Поэтому мне до сих пор странно видеть, как западные авторы рассказывают об угрозах в свой адрес, когда они высказывают непопулярное мнение. Или как мы переходим на оскорбления споря про синглтоны или ТСА/Вайперы.
Решил вас добить и скинуть еще одну провокационную статью
Автор утверждает:
Многие разрабы принесли в SUI свои привычки из UIKit. Автор утверждает, что многие привычки и так были встроены в фреймворк и мы лишь дублируем или усложняем то, что задумано by design.
А вы как считаете? Заслуживает автор оскорблений и линчевания?
Please open Telegram to view this post
VIEW IN TELEGRAM
Medium
SwiftUI in 2025: Forget MVVM
Let me tell you why