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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
Я, хз. Но за Пашу болеешь как за своего кента которого участковый забрал по ошибке.

Французы те еще борцы за свободу. Абсурдность ситуации такая же, как если накрутчики опыта спорили с рекрутерами и обвиняли сторонние силы в своих проблемах.

Хотя, подождите…
353
Советы по выгоранию для ит специалистов

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

Иногда об этом любят говорить «эффективные менеджеры», которые бьют кнутом по спине. А потом все удивляются когда человек уходит из компании.

Мой отпуск заканчивается и я был рад, что почти не думал о работе. Уметь восстановить ресурсы очень важная вещь и наконец, мой отпуск принёс желание делать еще больше дел. Решать задачки 🙂

Я задумываюсь о ресурс менеджменте все чаще. Вот интересная статья для инженеров. Наша специфика работы и задачи могут не всегда дать понять, что нам нужен отпуск.

Мониторинг нашего здоровья и правильные привычки — залог успеха.
8
Сталкивались ли вы с выгоранием на работе?
Anonymous Poll
30%
Да, часто
41%
Да, не часто
16%
Нет, но были симптомы
6%
Нет, никогда
6%
Не знаю
This media is not supported in your browser
VIEW IN TELEGRAM
6 причин не использовать Server Driven UI

Мой главный посыл в этой статье - избегайте использования Server-Driven UI, насколько это возможно (если только команда разработчиков и руководство не разработают хороший конвейер для решения всех проблем). SDUI может сделать распределение кода и ответственности беспорядочным и трудноорганизуемым, даже если все находятся на одной волне. Это решение также может лишить вас гибкости в отношении новых решений в области дизайна и функциональности.

Статья: https://apptractor.ru/info/articles/server-driven-ui-6-prichin-ne-ispolzovat-ego.html
Платформа: архитектура
62
В одном канале я как-то видел очередной кликбейтный заголовок, что BDUI, или же SDUI, — будущее мобильной разработки.

Но чаще я встречаю больше минусов от него. Далеко не все разработчики в разных компаниях от него в восторге. Более того, его начинают недолюбливать не только разработчики, но и дизайнеры. Которым, впервую очередь, ломают творческую свободу

Да, он может хорошо ложиться на простые задачи, но в нем есть множество минусов.
92
Инфляция знаний, грейдов и навыков

Через год наши знания обесценятся.

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

После недавнего перфоманс ревью мы обсуждали с моим руководителем тему повышений. Как формируются требования, конкуренцию между бэком и фронтом, адаптацию рынка.

Никто не знает.

Главное правило, которое я сформировал — это никто не знает что будет завтра. Даже ваши руководители. 90% инженеров, кто получил повышение год назад, с таким бы результатом уже не получили бы в этом.

Система быстро меняется. Именно поэтому самые честные знания могут дать лишь практикующие специалисты. Тк они в авангарде.

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

Также и в нашем сообществе мы не стараемся давать гайды, мы даем наши наблюдения и делимся взглядами. Формировать окружение, кто изучает эту бесформенную науку.
Где каждый понимает, что может ошибаться. Где каждый не использует продающие подписку лозунги.

Мы не даем секретных знаний. Мы формируем культуру исследований и боремся с растущей неопределенностью. Ищем выходы и входы, которые с невероятной скоростью то закрываются, то открываются.
832
Предлагаем альтернативы ноушену

Или есть возможность обойти отключение?
51
This media is not supported in your browser
VIEW IN TELEGRAM
Ждем на наших рынках через 3, 2, 1

И курсы инфоцыган как подготовить правильно резюме 🙂
121
Советы из книги Mobile System Design: Сбор требований

Сейчас перечитываю книгу Mobile System Design и пропускаю сквозь свой накопленный опыт. Попытался адаптировать иногда очевидные советы в общую шпаргалку, но что-то лучше много раз проговорить.

В первой главе автор разбирает алгоритм проектирования и дает определения хорошего дизайна. Немного высмеивая тех, кто первым делом бежит обсуждать какой же паттерн стоит применить к этому проекту MVVM, VIPER и etc еще до того, как не написал даже строчку кода.

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

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

Собрал в список рекомендации автора, которые показались мне самые полезные:

🟣Первое правило разработки фичи — не торопись кодить, а попробуй сначала лучше понять проблему

🟣Это нормально, когда нет всех ответов в начале

🟣Обговори что обязательно, а что нет

🟣Если фича сделана на другой платформе, то поговори с разработчиками этой платформы и попроси показать их код

🟣Обговори ошибки, которые нужно обработать. Много условий могут не покрыть ни ответы бэка, ни макеты дизайнеров.

🟣Мобильные разработчики — это проводники между дизайном и бэком. Сохрани время всем находя ошибки, несогласованности и несоответствия

🟣Дизайн — это инструмент для обсуждений, а не финальное состояние продукта. Его можно менять и идти на компромиссы

🟣Пробуй найти скрытые условия и функции, которые упустили дизайнеры

🟣Определяй приоритеты с дизайнером и определи что необязательно делать

🟣Всегда будь вежлив критикуя дизайн

🟣Хорошо изучи согласованное АПИ. Бэкенд отдают верхнеуровневый мок, они могут не учитывать UX/UI

🟣Изучи ошибки, которые отдает бэкенд. Соответствуют ли они требованиям дизайна

🟣Изучи можно ли объединить множество запросов в один


Кстати, в базе знаний веду расширенные конспекты
101
🧬 Кодревью: запахи кода

Кто-то говорит, что качественный код — это субьективная вещь. Но я с этим не соглашусь.

Есть много рекомендаций и советов, которые помогают писать не просто рабочий код, но и чистый, легко читаемый и поддерживаемый.

Например, многим известные запахи кода можно эффективно использовать как для написания своего кода, так и для конструктивного кодревью. Без лишних споров и отсебятины находя компромиссы.

В этой подборке я собрал примеры:
🟣Почему комментарии — зло
🟣В чем же проблема синглтонов
🟣Как дублирование ломает жизнь
🟣Методы борьбы с надуманной сложностью
🟣И многое другое

💎 Я напоминаю, что до конца летней акции осталось пару дней.
Please open Telegram to view this post
VIEW IN TELEGRAM
241
🌿 Систем дизайн в реальной жизни: Как предлагать свои изменения

В этом посте мы разберем что такое процесс принятия решений и как внедряют и выбирают технологии в зрелых командах.

Недавно мне написали в лс и попросили совет в проблеме, что очень сложно доказывать команде какие-то архитектурные проблемы и точки роста. Разработчик хотел показать команде, что очень сложно работать без паттернов проектирования и СОЛИД принципов в проекте, но не мог найти аргументы.

Только в маленьких командах можно занести какие-то иновации или внести изменения легко. Зависимостей немного, проект небольшой. В крупных же это становится в разы сложнее. Времени на синхронизацию и кодревью съедает больше, чем на написание кода. Если твоя работа затрагивает другие команды, то нужно собрать их апрувы еще до того как напишешь код. Ибо своим желанием причинить добро ты можешь сломать всем проект.

Не нравится вам архитектура проекта, вынеси свои предъявы и предложи решения. Пора переходить на SwiftUI? Также создай обсуждение и собери аргументы почему именно он сделает жизнь лучше.

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

📺 Какие же инструменты помогают согласовать и синхронизировать изменения в реальной жизни?

Самый частый инструмент для сбора требований — это TDR.

Technical Design Review — это специальный процесс, который помогает эффективно проработать фичу, до того как ты начнешь ее кодить. Именно здесь и нужны все навыки системного дизайна.

Для многих кажется, что это можно сделать на кодревью. Но это крайне опасное заблуждение. Этап кодревью — это когда ты уже написал код, запланировал спринт и закомитился на сроки. И вот ты потратил кучу времени, сказал своему менеджеру что твоя фича будет к такому-то сроку, а на кодревью тебя завернули и дали под жопу, что ты сделал дичь и никого об этом не предупредил. Тебя либо завернули назад и ты подвинул сроки, либо со слезами умоляешь что в будущем все перепишешь. Спустя же время все забыли что там писали в комментах твоего реквеста и твой код остался вечным легаси, который никогда не перепишут.

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

Теперь, прежде чем приступить к разработке, многие бигтехе очень много думают: учитывают зависимости других команд; последствия; сроки и трейдоффы. А главное, это все влияет на качество твоего решения, которое в итоге пойдет в прод.

Они собирают большой документ с описанной текущей проблемой, предлагаемыми решениями (чаще от 2 до 4), отмечают всех заинтересованных и получают зеленые или красные флаги для раскатки. Все в одном документе для сохранения истории и фокуса.

Только после этого можно приступать к реализациям.

Подробнее о tech design review можно почитать здесь:
- Tech Design Review в Авито
- Technical Design Review (TDR)
- Technical Design Reviews at Marfeel
Please open Telegram to view this post
VIEW IN TELEGRAM
17
Декодирование JSON в Swift медленнее, чем в Python?

Еще один забавный факт. Если у вас большие json’ы, то Swift не такой уж и хороший вариант для их декодирования.

Переходим на Котлин?
162
💎 Вышел мок-собес по систем дизайну

Мы провели первый мок-собес. Добровольцем выступил кандидат из альфы. Задача — спроектировать главный экран инстаграма.

Мок-собес вышел крутым. Если вы хотите узнать как проходит такой формат или сталкивались с похожей задачей, то он точно будет вам полезен.

Что ожидать еще:
🟣 мок собес по платформе от разработчика из Яндекса
🟣 мок собес по систем дизайну от архитектора из Альфы

Тем самым в канале уже есть фулл хаус, где мы провели алгоритмы и задачи по iOS.

Ищу желающих провести или пройти собес доступ в канал бесплатный. Участие также бесплатное.

💎 А для остальных для доступа к закрытому каналу
нужно иметь подписку от трех месяцев на мидл или быть подписаным на мидл+
Please open Telegram to view this post
VIEW IN TELEGRAM
163
Кодревью: запахи кода ч.2

Тема запахов кода мне понравилась и я решил сделать вторую часть.

Помню, как в первых проектах мне запрещали писать оператор switch/case. А использование SOLID было не всегда хорошим решением.

Здесь я решил разобрать такие вопросы как:
🟣 Почему наследование невсегда хорошо
🟣Как важна согласованность нэйминга
🟣Магические числа

💎 Сегодня последний день летней акции
Please open Telegram to view this post
VIEW IN TELEGRAM
162
Влияет ли стресс на результативность технического собеседования?

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

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

Я думал, что будет достаточно спокойно и без спешки решать задачи и всё будет окей. А если не прошел собес, то значит просто недостаточно много решал.

Но вот очередные исследования, где доказали как стресс и сжатые условия влияют на результат.

В этом эксперименте людей разделили на две группы и заставили решать задачу у доски:
🟣В первой группе люди решали задачи в раслабленном темпе, но сильно выходили за временные рамки
🟣Во второй же группе люди решали задачи перед интервьюерами, где укладывались в сроки
🟣Первая группа находила более оптимальные решения.
🟣Результаты тех, кто провалил задачи в первой группе равны 36.3%, а во второй аж 61.5%.

Охереть. Я догадывался, что стресс сильно дебафает, но не настолько.

🌋О чем это говорит?

Как минимум, что навыки решения задач сильно падают при реальном собеседовании и что недостаточно просто соло решать литкод, закрывшись в четырех стенах. А решение тысяч задач на платформах не гарантирует успех.

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

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

Возможно, именно поэтому мы и сделали мок-собесы, чтобы каждый желающий мог попробовать себя, натренироваться и поделиться опытом с другими.
Please open Telegram to view this post
VIEW IN TELEGRAM
181
Forwarded from XOR
Мир, если бы отменили алгоритмы на собесах

@xor_journal
😁16
что выведется в консоль?
6
🌭 НОВОЕ МОК СОБЕСЕДОВАНИЕ

Вчера я писал пост, что мок-интервью — очень хороший инструмент преодолеть психологический мандраж, который сильно ухудшает наши навыки на собесах. Недостаточно в комфортных условиях решать задачи и зубрить ответы. Собеседования чаще очень отличаются, от условий реальной работы.

Считается, что собесы яндекса часто являются одними из сложных и стрессовых. Там много кодинга, много практики и мало теории. Все очень сжатое в сроках и большая конкуренция за место.

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

Подписывайтесь на его канал
@swifyway

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

🧬 Получить доступ к закрытым мок-собесам оформив подписки. В честь первого сентября действуют щедрые скидки на бусти и в боте
Please open Telegram to view this post
VIEW IN TELEGRAM
52
Все что говорят в интернете умножай на ноль

Забавно, на днях в чате мы общались по поводу Kotlin Multiplatform. Вспоминали тему мобиуса год назад. Где множество команд говорили, что Kotlin Multiplatform — это будущее. А сейчас разработчики, которые работают в тех командах говорят, что почти никогда не слышали и не видели то, о чем говорят свои коллеги. Никаких Kotlin Multiplatform уже нет в проектах. Ну либо эти инструменты уже выпилили, либо юзают только в очень специфичных кейсах.

Как теперь верить этим громким заголовкам, что будущее не станет как прежде?

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

Десять лет назад мобильную индустрию должен был убить React Native. Потом Flutter. Потом Kotlin Multiplatform. Сейчас BDUI.

Но натив все равно не просто подает признаки жизни — он живее всех живых.

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

Много сказок у нас было в мобильной разработке:
- хайп по архитектурам, которые помогают писать юнит тесты. Которые в итоге никто и не пишет на клиентах.
- кроссплатформы
- BDUI
- тесты
- алгоритмы
- систем дизайн

В итоге, из своих громких обещаний завоевать рынок, это начало скромно лежать в стороне Или вообще отмирать.
102092