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

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

Автор: @lvbond Senior iOS Yandex, ex-Avito, VK
Download Telegram
iOS Makes Me Hate
Культурные коды экономики Находка года. Не люблю политику, экономику и историю, но эта книга выкрутила так, что ощущаешь всю мощь наук. Ее писал 10 лет профессор МГУ, где очень трезво описывается почему любовь к труду — лучшее экономическое развитие. Невероятно…
уже пару дней под впечатлением. Узнал допом, что автор был преподом Набиуллиной.

Многие личные вопросы находят ответы. Культура — один из важных пунктов в экономическом развитии каждого.

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

От культуры зависит векторы развития и кол-во необходимых ресурсов для достижения цели.
174
Обновление ноушена за неделю:
1. Добавил пару вопросов, ссылок и задач в блок памяти для джунов
2. Доработал блок вопросов с ответами для многопоточности
3. Добавил тесты для самопроверки для джунов по многопоточности
4. Добавил новые книги
5. Начал вести блок про качество коммуникации и нетворкинга
6. Добавил статью про этапы запуска приложения и какая роль памяти и многопоточности

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

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

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

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

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

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

Попытался собрать подборку с хорошими статьями как сделать свой код лучше:
- Как написать чистый код на Swift
- 7 советов для чистого кода
- 10 лучших практик написания чистого и эффективного кода на Swift
- Чистый код на iOS
- Как написать чистый, удобный в сопровождении код Swift для мобильных приложений?
- 10 советов по написанию более чистого и читаемого кода на Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
186
Блок с алгоритмами в ноушене.

Добавил раздел с алгосами с примерами на языке Swift и дополнительными комментами.

Пока одна статья, но дальше планирую больше:
- статьи
- разбор задач
- советы и практики для интервью
- разбор техник решения задач

В этом году я собираюсь еще глубже погрузиться в этот вопрос, поэтому делаю с качеством как для себя.
1899
Как качество кода ухудшается

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

Я тоже часто считаю, что бизнесу вообще все равно какой код ты пишешь. Если придут 2 разраба из разных команд, то повышение получит тот, кто сделал 20 фич со средним кодом, а не тот, кто 10 фич с идеальным.

Если нет четких метрик качества и стандартов — это все субьективные оценки, которые непонятны бизнесу.

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

- почему ручное управление потоками сложное
- что такое main тред
- Что такое синхронные и ассинхронные очереди

Найти ее можно все там же
131
🧍‍♀️ Реализация кастомного доступа по индексу

Иногда нам требуется быстрый доступ к элементам своих коллекций. Например, как в стандартном массиве или словаре


array[0] = "Henk"
print(array[0]) // Prints: Henk

agesDictionary["Antoine"] = 30
print(agesDictionary["Antoine"]) // Prints: 30


Иначе бы мы использовали методы для чтения и записи в типе данных:


array.set("Henk", forIndex: 0)
agesDictionary.set(30, forKey: "Antoine")


На слайдах разберем как это нам поможет упростить использование нашими структурами данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
74
🍭 100 платных подписчиков

Для многих очень маленькое число, но для меня большая цифра. Огромное спасибо каждому. За ваш фидбэк и конструктивно-креативную энергию.

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

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

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

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

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

Впереди пара интересных анонсов с новым форматом контента. Оставайтесь, присоединяйтесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
15721
Media is too big
VIEW IN TELEGRAM
Немного кринжа
2354
🛸 Подборка визуализаций алгоритмов

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

🌺 Pathfinding Visualizer — сайт визуализирует в действии различные алгоритмы поиска пути и многое другое: поиск в ширину, глубину, жадные алгоритмы и другие. Если вы работаете с расчетом пути, то очень полезно.

🌼 Algorithm visualizer — широкий список разных алгоритмов и визуализаций: рекурсия, динамическое программирование, бэктрекинг и брутфорсинг

🌸 VisuAlgo — простенький и небольшой сайт, но с приятными и простыми анимациями разных алгосов и структур данных
Please open Telegram to view this post
VIEW IN TELEGRAM
14
Динамическая высота ячейки в коллекции: Frame Based

В ноушене начал серию статей про UIKit. Первая статья стала ответом на самый частый вопрос на менторстве — "Как сделать динамическую высоту в ячейках". Все статьи я буду писать с очень большим кол-вом кода, без сторонних либ и только с нативом.

В этой статья я сделал пример через ручной расчет размеров в UICollectionView. Почему его юзают в 2024?

- Высокая производительность
- лучший контроль
- Признак высшего мастерства
- крупные компании почти не используют auto layout
- написав в ручную лучше понимаешь как работает

Идите бегом смотрите. Вышел очень плотный материал с кучей кода
15
❤️ Подборка ресурсов для эффективного кодревью

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

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

Попробовал собрать хорошие правила практик для эффективного код ревью:

🌄 Официальное руководство по стилю Kodeco Swift. Бывший сайт Рей Вандерлея собрал неплохие практики по многим частым вопросам.

🌄 Swift API design guideline. Нельзя не упомянуть всеми известную доку от разрабов нашего любимого языка.

🌄 Coding Guidelines for Cocoa. Еще один сборник рекомендаций от разрабов инфры Cocoa.

🌄 The Standard of Code Review in Google. Принципы и правила кодревью в гугле. Материал не о том, как писать код, а скорее общие стандарты по эффективному код ревью

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

Прежде чем стандартизировать процесс производства кода, мне кажется, нужно выявить общий компромисс
Please open Telegram to view this post
VIEW IN TELEGRAM
77
Что ждёт мобильную разработку в 2024 году

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

Вкратце, все будет хорошо. Главное не останавливаться и не отчаиваться

Ну и кстати, кто не знал, я автор контента на Яндекс практикуме
155