Какой архитектурный паттерн лучше всего подходит под Clean Architecture
Anonymous Poll
25%
MVVM
32%
VIPER
30%
VIP
11%
MVP
8%
MVC
3%
RIBs
13%
REDUX
7%
Другое
Почему голосуете за VIPER? Если брать книгу Роберта Мартина, то там чистый VIP.
VIPER не придуман Мартином, он популярен только в платформе iOS. А когда писалась книга паттерна даже не было. Как и айфонов.
VIPER не придуман Мартином, он популярен только в платформе iOS. А когда писалась книга паттерна даже не было. Как и айфонов.
Мы уже выяснили, что VIPER не тот Clean, о котором писал Мартин в своей книге. Но у иос разрабов есть заблуждение, что именно о нем хотел сказать он. Знает ли Мартин о существовании VIPER’а, который популярен только у иос-разрабов, и что бы о нем он сказал, остается только догадываться.
Для пруфов я собрал статьи, которые помогут разобраться что же такое Clean и почему нельзя назвать «чище», только если в паттерне UI слоя больше букв:
Если у вас на собесах есть вопросы про архитектуры и паттерны, то очень советую дать четкие ответы в методичках или провести с интервьюерами диалог по выравниванию определений. Оценить адекватность вопросов и адекватность ответов на них. Распределить их вес по важности и нужности.
Тема архитектур очень холливарная и часто усыплена карго-культами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Скиллы vs Грейды: никогда не бегайте за лычками
Прочитал пост у Стаса Цыганова и сразу внутри поднялась острая тема.
Во-первых, грейды не отражают скиллов. В книге "Growth as a Mobile Engineer" мы уже комментировали тему в чем разница роста по карьерной и профессиональной лестнице. Это два разных направления, где ваши скиллы никак не отражают вашу позицию и наоборот. Также мы уже проголосовали, что грейд имеет самую маленькую ценность для определения экспертности и интереса.
Во-вторых, матрицы компетенций не работают. Во многих компаниях есть такой инструмент как "матрица компетенций". Есть ошибочное мнение, что этот инструмент отражает вашу ценность. Но чаще это просто грубый набросок минимальных скиллов, которыми должен обладать разработчик. Эти навыки устаревают или с ними могут быть не согласны другие руководители, инженеры. Поэтому, они всегда имеют заранее устаревшую позицию.
Нам не дадут повышение просто потому, что мы стали "лучше". Почти всегда мы должны своими навыками доказать свою эффективность. Ждать, когда манагер принесет крутые задачи, для доказания нашей пользы — один из выходов. Но эффективен ли он?
В-третьих. На работах нет развития. Оно есть только внутри нас. Как бы вам не говорили, что рабочие задачи дают лучший опыт, но это чаще не так. В ит много своих инфо-пузырей, где одна тусовка спорит с другой. Каждая из них считает других лоу-скиллами. Где есть реформы и сокращения. Где одни команды переписывают старое легаси за другой. Где вчерашнее заменится сегодняшним, а сегодняшнее завтрашним. У каждой из тусовок есть своя матрица компетенций и ей тычат, что она более "правильная".
Я же считаю, что мы все просто "другие". Где-то важны одни скилы, где-то другие. Вопрос скиллсетов определяется окружением и личными предподчениями(а также размером дохода 😄 )
Поэтому, мы с коммьюнити сделаем "свою матрицу". Она не будет обязательной и догматичной. Она будет сбором хард и софт навыков, которые, по мнению комьюнити, нужны разработчикам. За что они ценятся и какие конкретно навыки нужны
Это будут рекомендации, а что делать с этими рекомендациями и куда их применять, каждый сам решит
Прочитал пост у Стаса Цыганова и сразу внутри поднялась острая тема.
Во-первых, грейды не отражают скиллов. В книге "Growth as a Mobile Engineer" мы уже комментировали тему в чем разница роста по карьерной и профессиональной лестнице. Это два разных направления, где ваши скиллы никак не отражают вашу позицию и наоборот. Также мы уже проголосовали, что грейд имеет самую маленькую ценность для определения экспертности и интереса.
Во-вторых, матрицы компетенций не работают. Во многих компаниях есть такой инструмент как "матрица компетенций". Есть ошибочное мнение, что этот инструмент отражает вашу ценность. Но чаще это просто грубый набросок минимальных скиллов, которыми должен обладать разработчик. Эти навыки устаревают или с ними могут быть не согласны другие руководители, инженеры. Поэтому, они всегда имеют заранее устаревшую позицию.
А самое главное, что матрица может давать ложную надежду, что вот прокачаю эти скиллы и ура – следующий грейд.
Нам не дадут повышение просто потому, что мы стали "лучше". Почти всегда мы должны своими навыками доказать свою эффективность. Ждать, когда манагер принесет крутые задачи, для доказания нашей пользы — один из выходов. Но эффективен ли он?
В-третьих. На работах нет развития. Оно есть только внутри нас. Как бы вам не говорили, что рабочие задачи дают лучший опыт, но это чаще не так. В ит много своих инфо-пузырей, где одна тусовка спорит с другой. Каждая из них считает других лоу-скиллами. Где есть реформы и сокращения. Где одни команды переписывают старое легаси за другой. Где вчерашнее заменится сегодняшним, а сегодняшнее завтрашним. У каждой из тусовок есть своя матрица компетенций и ей тычат, что она более "правильная".
Я же считаю, что мы все просто "другие". Где-то важны одни скилы, где-то другие. Вопрос скиллсетов определяется окружением и личными предподчениями
Поэтому, мы с коммьюнити сделаем "свою матрицу". Она не будет обязательной и догматичной. Она будет сбором хард и софт навыков, которые, по мнению комьюнити, нужны разработчикам. За что они ценятся и какие конкретно навыки нужны
Это будут рекомендации, а что делать с этими рекомендациями и куда их применять, каждый сам решит
Please open Telegram to view this post
VIEW IN TELEGRAM
Потихоньку начинаю открывать для себя другие площадки. Иногда меня зовут на интервью, подкасты, митапы. Пока живой формат для меня непривычен и часто отказываюсь. Мне проще выражать мысли через текст. Я слишком долго был наедине с компьютерами и общался с ними через клавиатуру. Ненавижу голосовые и созвоны.
Сейчас взял цель улучшить навыки речи. Так как нашел проблему, что не могу выразить устно и 50% своих мыслей. Время усердной работы над собой. Мне есть что сказать.
У меня накопилась экспертиза, мнения, опыт и эмоции по многим темам. Какие-то проблемы хотелось бы подсветить, какие-то решить, где-то предложить решения.
Самые острый вопрос — это вопрос найма. К нему все меньше доверия и все больше растут недовольства среди программистов. Можно ли сказать, что найм сломан? Не знаю, но я скорее скажу, что нет прозрачности, согласованности и понимания ожиданий. Да и к сожалению, чаще большинство собесов устроены на оценку твоих устных навыков речи, а не написания кода. От чего страдают по-настоящему скилловые разработчики, которые привыкли писать код, а не говорить.
Кто-то скажет, что проходить собесы — это отдельный навык. Но я скажу, что и проводить собесы хорошо сразу не научишься.
Поэтому я начинаю серию внутренних докладов для комьюнити. Одна из основных целей — это научиться понятно и доступно доносить инфу в устной форме, а также потренироваться для крупных площадок, куда я постепенно буду приносить свои наработки.
В этом докладе я расскажу о процессах собеседований:
Изначально этот доклад рассчитывался как микро-вступление к предстоящим мок-собесам. Но становится гораздо больше.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Принцип Лисков один из важных принципов, который требует, чтобы расширения суперклассов не ломали поведения.
Например, класс квадрат должен быть квадртом, а не иметь поведения круга.
В этой статье мы расмотрим:
Please open Telegram to view this post
VIEW IN TELEGRAM
Макросы — напишут код за вас, но есть нюанс…
Наверное, одна из лучших статей про макросы. Я пока не так сильно углублялся в них, но скоро начну.
Такие статьи помогают быстро ознакомиться с главными идеями десятков докладов и статей:
🟣 Отличие макросов от property wrapper
🟣 Зачем нужны макросы
🟣 Где используются макросы
🟣 Влияние на перфоманс
А также многое другое
Наверное, одна из лучших статей про макросы. Я пока не так сильно углублялся в них, но скоро начну.
Такие статьи помогают быстро ознакомиться с главными идеями десятков докладов и статей:
А также многое другое
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Макросы в swift — напишут код за вас, но есть нюанс…
Привет! Меня зовут Настя Ищенко, я — iOS-разработчик в KTS . Эта статья поможет узнать, что такое макросы и как они работают, а также понять, стоит ли добавлять их в свой проект. Оглавление Коротко...
Время отпусков началось. Поэтому ввожу щедрую скидку аж 30% на бусти
Скоро будут мок-собесы нового формата и закрытые доклады.
🌴 Получить доступ можно через бусти
Please open Telegram to view this post
VIEW IN TELEGRAM
Изучаете вы другую платформу кроме iOS?
Anonymous Poll
13%
Да, изучаю Котлин. Изучаю андроид
6%
Да, изучаю dart. Изучаю в кроссплатформенность
22%
Да, изучаю backend.
4%
Да, изучаю frontend.
8%
Да, изучаю менеджмент
5%
Да, хочу уйти из ит. Изучаю несвязанную с ней область
4%
Да, изучаю другую нишу их ИТ
8%
Да, изучаю AI
5%
Да, изучаю крипту
52%
Нет. Только iOS
Как работают кривые Безье
Самый понятный и доступный ролик, в котором объясняется что такое кривые Безье.
Особенно полезно для тех, кто увлекается анимациями и графикой
Самый понятный и доступный ролик, в котором объясняется что такое кривые Безье.
Особенно полезно для тех, кто увлекается анимациями и графикой
YouTube
The Beauty of Bézier Curves
Bézier curves - how do they do?
They're used for animation, text rendering, and all sorts of curved shapes! But how do they actually work? well, like, that's what the video is about, so, watch it to find out etc!!
• Lots of love to
💛 Jazz "queenjazz" Mickle…
They're used for animation, text rendering, and all sorts of curved shapes! But how do they actually work? well, like, that's what the video is about, so, watch it to find out etc!!
• Lots of love to
💛 Jazz "queenjazz" Mickle…
Опрос про грейды среди опытных интервьюеров и руководителей
Прошлый пост про кризис мобильной разработки набрал много положительных реакций. Видимо, нашлась не маленькая поддержка, кто согласен был с моими словами. Я решил его удалить, тк для кого-то эта проблема демотивирующая и захотел взять позицию действий. Начнем с попытки идентификации проблемы.
Кризис мобильной разработки связан не только с отсутствием задач, а с неправильной оценкой ресурсов на текущие задачи.
Одна из общих проблем — это размытые грани между мидлом и сеньором, а может быть и всеми остальными грейдами. Различить сидит ли перед тобой мидл или сеньор не могут даже люди с опытом в 10 лет. Это очень сложная метрика. Нельзя стандартизировать требования, но можно ознакомиться с правилами и мнениями тех, кто оценивает.
Новички, которые только начинают интервьюировать, чаще думают что сеньор это тот, кто идеально отвечает на теорию.
А руководители опускают многую теорию и сразу идут к опыту и практике. По их мнению, в оценки теории сеньоры даже чуть хуже мидлов, потому что они отделяют то, что важно на практике, от того, что нет. Сеньор работает больше на интуитивном уровне, а Мидл фокусирует все ресурсы на правильные формулировки. Сеньор же на правильное применении.
Пообщавшись на выходных с разными людьми я понял, что у многих руководителей есть свой фреймворк оценки "сеньорности". Для многих это сразу понятно, для других — нет.
Я решил сделать опрос и воспользоваться своим социальным ресурсом. Где соберу все комментарии опытных интервьюеров и руководителей. Результатами открыто поделюсь с вами.
Пройти опрос можно тут
Прошлый пост про кризис мобильной разработки набрал много положительных реакций. Видимо, нашлась не маленькая поддержка, кто согласен был с моими словами. Я решил его удалить, тк для кого-то эта проблема демотивирующая и захотел взять позицию действий. Начнем с попытки идентификации проблемы.
Кризис мобильной разработки связан не только с отсутствием задач, а с неправильной оценкой ресурсов на текущие задачи.
Одна из общих проблем — это размытые грани между мидлом и сеньором, а может быть и всеми остальными грейдами. Различить сидит ли перед тобой мидл или сеньор не могут даже люди с опытом в 10 лет. Это очень сложная метрика. Нельзя стандартизировать требования, но можно ознакомиться с правилами и мнениями тех, кто оценивает.
Новички, которые только начинают интервьюировать, чаще думают что сеньор это тот, кто идеально отвечает на теорию.
А руководители опускают многую теорию и сразу идут к опыту и практике. По их мнению, в оценки теории сеньоры даже чуть хуже мидлов, потому что они отделяют то, что важно на практике, от того, что нет. Сеньор работает больше на интуитивном уровне, а Мидл фокусирует все ресурсы на правильные формулировки. Сеньор же на правильное применении.
Пообщавшись на выходных с разными людьми я понял, что у многих руководителей есть свой фреймворк оценки "сеньорности". Для многих это сразу понятно, для других — нет.
Я решил сделать опрос и воспользоваться своим социальным ресурсом. Где соберу все комментарии опытных интервьюеров и руководителей. Результатами открыто поделюсь с вами.
Пройти опрос можно тут
Google Docs
Определение грейдов в мобильной разработке
В этом опросе я хочу собрать как можно больше мнений по определению грейдов в iOS разработке. Сейчас границы размываются и у многих начинающих, и не только интервьюеров, есть проблема в оценках людей. Мы хотим помочь им собрав больше техник и свободно поделиться…
Продолжаю обновлять базу вопросов. В прошлый раз мы разбирали задачи на hitTest, а сейчас подборка на обработку жестов. В ней я затронул UIGestureRecognizer:
Также напоминаю, что в подборках уже более 300 точечно отобранных вопросов без чатгпт и других приколов, а конкретно из реальной практики.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 3 2
Fear of Missing Out
Мой мозг часто обманывает меня. Не дает выйти на нужный темп. Не заменяет легкие и дешевые развлечения на желание достигнуть той радости, которая приходит после тяжелых усилий. Он наркоман легких путей.
Так я хочу настроить и улучшить процесс образования. Часто я перечитываю список когнитивных искажений, которые мешают мне развиваться и выйти на новый уровень.
Главный враг современной жизни — это страх упущенной выгоды.
С развитием социальных сетей этот страх развивается огромными шагами. Он настолько вреден, что тратит не только наше время впустую, но и деньги.
Инстаграм, ВК, телега — это все заменило нам качественные альтернативы развития. Книги вымирают из-за безумного страха упущенной выгоды. Без шуток, очень страшно наблюдать, как мы ищем механизмы развития не в книгах, а в видеороликах.
Я считаю, развиваться только по социальным сетям — это как иметь диету в бургерной.
Уже не редкость ты встретишь мысли «мне универ не нужен — ютуб меня всему научил». Страшно пугающие слова.
Раньше меня пугало, что я мало читал художественной литературы. Из-за страха потерять время и лучше бы почитал что-то техническое. А сейчас, что я заменю инстой книги.
Чатгпт подсветил старую проблему, о которой все говорили — интернет ошибается. В нем тяжело найти пользу. Он часто неправ, а спорить с ним бесполезно.
Люди перестают читать статьи, верить им. Они возвращаются в книги и документации. Сокращают посредников и дилеров.
Единственный инструмент, который стал эффективным — это люди. Наши рекомендации и предпочтения.
Мой мозг часто обманывает меня. Не дает выйти на нужный темп. Не заменяет легкие и дешевые развлечения на желание достигнуть той радости, которая приходит после тяжелых усилий. Он наркоман легких путей.
Так я хочу настроить и улучшить процесс образования. Часто я перечитываю список когнитивных искажений, которые мешают мне развиваться и выйти на новый уровень.
Главный враг современной жизни — это страх упущенной выгоды.
С развитием социальных сетей этот страх развивается огромными шагами. Он настолько вреден, что тратит не только наше время впустую, но и деньги.
Инстаграм, ВК, телега — это все заменило нам качественные альтернативы развития. Книги вымирают из-за безумного страха упущенной выгоды. Без шуток, очень страшно наблюдать, как мы ищем механизмы развития не в книгах, а в видеороликах.
Я считаю, развиваться только по социальным сетям — это как иметь диету в бургерной.
Уже не редкость ты встретишь мысли «мне универ не нужен — ютуб меня всему научил». Страшно пугающие слова.
Раньше меня пугало, что я мало читал художественной литературы. Из-за страха потерять время и лучше бы почитал что-то техническое. А сейчас, что я заменю инстой книги.
Чатгпт подсветил старую проблему, о которой все говорили — интернет ошибается. В нем тяжело найти пользу. Он часто неправ, а спорить с ним бесполезно.
Люди перестают читать статьи, верить им. Они возвращаются в книги и документации. Сокращают посредников и дилеров.
Единственный инструмент, который стал эффективным — это люди. Наши рекомендации и предпочтения.
Этот принцип SOLID один из самых сложных для понимания. Формулировка из вики звучит так:
A. Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.
B. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Окей. С абстракциями понятно, но что такое модули верхних и нижних уровней и где тут инверсия зависимостей? Давайте разберемся.
Для начала разберемся что такое модули: в iOS модулями можно назвать классы, фреймворки и библиотеками. Возьмем пример с классами.
Теперь попробуем разобраться со второй частью “Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.”
Деталь — это часть параметра, который мы отдаем нашему классу низкого уровня.
Где тут инверсия зависимостей?
Принцип инверсии зависимостей помогает строить приложение не от реализаций, а от абстракций.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM