День неслыханной щедрости!
Мне тут подсказали, что в связи с сезоном собеседований самое время сделать небольшую скидку на middle уровень. Так как конкуренция весной и осенью самая высокая.
На ней вы получите:
С помощью этих инструментов ты сможешь лучше подготовиться, чем конкуренты
UPD: Добавил еще 10 подписок
Please open Telegram to view this post
VIEW IN TELEGRAM
Тем самым став самым большим закрытым сообществом чисто иос-разработчиков с самой большой конверсией. Почти 80%
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведется в консоль?
Anonymous Quiz
14%
1, deadlock
19%
deadlock сразу
18%
2, 1, 3
35%
1, 2, 3
9%
2, 3, 1
5%
Будет ошибка компиляции
Решил написать серию постов про оптимизацию UI. Пару лет назад я уже писал статью на эту тему, но затрагивал по верхам общие советы. Зависания интерфейса заставляет пользователя задуматься, правильно ли работает приложение. В постах же мы углубимся и освежим древние советы, а также добавим новые.
Начнем с Offscreen rendering.
Off-screen рендеринг это часть отрисовки, которая не может быть выполнена на GPU и должны быть выполнена на CPU.
Низкоуровнево это выглядит так:
при рендеринге layer'a который требует off-screen рендеринг, GPU останавливает процесс рендеринга и передает управление CPU, который выполняет все необходимые операции и возвращает контроль обратно GPU, который затем продолжает процесс рендеринга.
В дополнение к оверхеду по смене контекста, off-screen рендеринг также требует выделения дополнительной памяти.
Кейсы которые приводят к off-screen рендерингу:
Как найти проблему с off-screen rendering?
В случае с corner radius, проблему можно решить отрисовав контент с округленными углами заранее. К примеру, если мы хотим показать аватарку с округленными углами, вместо того чтобы выставлять cornerRadius у UIImageView, мы можем отрисовать аватарку с округленными углами и соотвествущим фоном за ними. Таким образом сделав сделав округленные углы частью bitmap'a.
В случае с тенями, мы можем заранее посчитать и выставить shadowPath у layer'a, либо использовать картику теней для достижения нужного эффекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
🧵 Thread в Swift
В 95% случаев современные разработчики используют GCD как инструмент для многопоточности. Но иногда, нам требуется создать отдельный тред для дополнительных задач. В Swift мы легко сделаем это с помощью Thread.
Собрал подборку статей про:
- Основные советы по Thread: создание, синхронизация, завершение
- Исследование потоков в Swift
- Жизненный цикл Thread'ов
🌿 Еще больше задач и примеров про них тут
В 95% случаев современные разработчики используют GCD как инструмент для многопоточности. Но иногда, нам требуется создать отдельный тред для дополнительных задач. В Swift мы легко сделаем это с помощью Thread.
Собрал подборку статей про:
- Основные советы по Thread: создание, синхронизация, завершение
- Исследование потоков в Swift
- Жизненный цикл Thread'ов
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучший процесс собеседования для поиска универсальных инженеров под любой стэк
Anonymous Poll
7%
Теория по методичке
35%
Только задачи из практики
16%
Алгоритмы
33%
Архитектуру
43%
Теория и задачи
38%
Проектирование
27%
Вопросы про жили были
18%
Собесы это зло
4%
Другое
Протокол Sequence
Мы часто используем готовые коллекции языка, такие как Array, Set, Dictionary. Но что, если я захочу сделать свою? Swift легко позволяет это сделать с помощью протокола Sequence.
Дока эйпл говорит:
Примеры работы в скриншотах.
Полезные ссылки:
- Sequence
- Use Sequence & IteratorProtocol Protocols in Swift
🌿 Еще больше вопросов и задач в самой большой базе для собесов
Мы часто используем готовые коллекции языка, такие как Array, Set, Dictionary. Но что, если я захочу сделать свою? Swift легко позволяет это сделать с помощью протокола Sequence.
Дока эйпл говорит:
Тип, обеспечивающий последовательный итерационный доступ к своим элементам.
Примеры работы в скриншотах.
Полезные ссылки:
- Sequence
- Use Sequence & IteratorProtocol Protocols in Swift
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Жить надо так, чтобы про тебя сняли такой видос
Продолжаю рубрику улучшения производительности наших кнопок. В прошлом посте мы поговорили про Offscreen Rendering и чем он мешает. В этом мы поговорим про главный поток.
Как мы знаем, избыточная загрузка главного потока сильно влияет на зависания. Работа, что выполняется в основном потоке, влияет как на задержку между входящим пользовательским событием и его обновлением экрана. А также влияет и на максимальную частоту обновлений экрана.
Если задержка взаимодействия с пользователем становится больше 100 мс, она начинает становиться заметной и приводит к зависанию. Для плавного и непрерывного движения новый кадр должен быть готов при каждом обновлении экрана.
- Избегайте задач, которые не должны выполняться в основного потоке, даже асинхронно.
- Убедитесь, что ваше приложение использует основной поток только для взаимодействия с пользовательским интерфейсом
Используйте Main Thread Checker или Watchdog
Иногда системного механизма не хватает и можно написать свой, который будет следить за временем ответа главного потока.
Please open Telegram to view this post
VIEW IN TELEGRAM
Никогда не идите работать в большую компанию или почему студенты чаще выигрывают телеграм конкурсы
Вышло интервью Дурова, где он рассказал про штат разрабов. Всего 30 человек делают лучший мессенджер в мире.
Многие разрабы думают это большая компания и такой продукт нужно делать минимум 200 человек на каждую платформу. Но я решил вспомнить почему небольшие компании лучше, чем огромные и что говорил Дуров.
Вы знали, что почти все первые места в телеграм конкурсах это либо студенты, либо фрилансеры, стартаперы? А разрабы из корпораций занимают чаще 3 или 4 места?
На мой взгляд, размер команды телеграм как раз и связан с той самой фразой Дурова. Ведь большие компании убивают рутиной и спамят ненужными задачами талантливых разрабов, которые в итоге уступают обычным студентам, которые еще не успели погибнуть в безжалостной бюрократичной машине. Раздувают штат и придумывают локальные, ошибочные и неэффективные метрики, которые чаще нужны только для промо руководителей.
Помер ли твиттер, когда сократили надутый штат на 80%?
Не потеряем огонь и будем всегда молоды сердцем! Не подменяем ценности субкультурами и чужими идеями!
Вступаем в сообщество и челенджим себя!
Вышло интервью Дурова, где он рассказал про штат разрабов. Всего 30 человек делают лучший мессенджер в мире.
Многие разрабы думают это большая компания и такой продукт нужно делать минимум 200 человек на каждую платформу. Но я решил вспомнить почему небольшие компании лучше, чем огромные и что говорил Дуров.
Вы знали, что почти все первые места в телеграм конкурсах это либо студенты, либо фрилансеры, стартаперы? А разрабы из корпораций занимают чаще 3 или 4 места?
На мой взгляд, размер команды телеграм как раз и связан с той самой фразой Дурова. Ведь большие компании убивают рутиной и спамят ненужными задачами талантливых разрабов, которые в итоге уступают обычным студентам, которые еще не успели погибнуть в безжалостной бюрократичной машине. Раздувают штат и придумывают локальные, ошибочные и неэффективные метрики, которые чаще нужны только для промо руководителей.
Помер ли твиттер, когда сократили надутый штат на 80%?
Не потеряем огонь и будем всегда молоды сердцем! Не подменяем ценности субкультурами и чужими идеями!
Вступаем в сообщество и челенджим себя!
Как менторство умерло или чему учат менторы
Все чаще приходят с запросом на менторство и все чаще я отказываю.
На это есть две причины:
1. Мне и самому нужно развиваться. Есть много вещей, в которых я слаб или хочу изучить.
2. Благодаря тому, что каждый второй называет себя "ментор" это слово опошлилось. Слишком много их стало, а качество услуг упало ниже пола.
Недавно я перестал заниматься с несколькими ребятами, тк устал и нет времени. Они ушли к другим менторам и поделились фидбэком. На четкий запрос "подскажи как развиваться мне как специалисту" многие не могут ответить. Даже опытные менторы говорят "Я и не знаю. Я либо помогу тебе опыт накрутить, либо резюме нарисовать. А развиваться я не знаю как". При этом уже взяв деньги и не маленькие.
Таких менторов раслодилось почкованием. Их задача дать мотивационный пинок за 50к и не дать качественную услугу, которая поможет апнуться как специалисту. Многие уходят разочарованными и злыми. Если я плачу денег за очевидные советы, то почему с меня берут деньги?
Я также общался с опытными ребятами, по-настоящему крутыми инженерами, они отказываются быть менторами потому что уже из каждого утюга любой человек после курсов учит вкатываться в ит. Также и в нашем чате замечают, что найти качественного ментора стало в разы сложнее. Эта ниша прогнила и нужно кровопускание.
С этого момента я отказываюсь называть себя ментором. Называйте репетитор, терминатор, трансформатор, инкубатор, инструктор. Но не ментор. Это слово опошлилось и стало в однин ряд с "коуч" и "инфоцыган". Это ниша наполняется мошенниками и самозванцами, а ранее благородное дело стало уже отдавать легким пренебрежением "а, ты очередной ментор..."
А мы пока подумаем как уйти от этой модели "менторов".
Все чаще приходят с запросом на менторство и все чаще я отказываю.
На это есть две причины:
1. Мне и самому нужно развиваться. Есть много вещей, в которых я слаб или хочу изучить.
2. Благодаря тому, что каждый второй называет себя "ментор" это слово опошлилось. Слишком много их стало, а качество услуг упало ниже пола.
Недавно я перестал заниматься с несколькими ребятами, тк устал и нет времени. Они ушли к другим менторам и поделились фидбэком. На четкий запрос "подскажи как развиваться мне как специалисту" многие не могут ответить. Даже опытные менторы говорят "Я и не знаю. Я либо помогу тебе опыт накрутить, либо резюме нарисовать. А развиваться я не знаю как". При этом уже взяв деньги и не маленькие.
Таких менторов раслодилось почкованием. Их задача дать мотивационный пинок за 50к и не дать качественную услугу, которая поможет апнуться как специалисту. Многие уходят разочарованными и злыми. Если я плачу денег за очевидные советы, то почему с меня берут деньги?
Я также общался с опытными ребятами, по-настоящему крутыми инженерами, они отказываются быть менторами потому что уже из каждого утюга любой человек после курсов учит вкатываться в ит. Также и в нашем чате замечают, что найти качественного ментора стало в разы сложнее. Эта ниша прогнила и нужно кровопускание.
С этого момента я отказываюсь называть себя ментором. Называйте репетитор, терминатор, трансформатор, инкубатор, инструктор. Но не ментор. Это слово опошлилось и стало в однин ряд с "коуч" и "инфоцыган". Это ниша наполняется мошенниками и самозванцами, а ранее благородное дело стало уже отдавать легким пренебрежением "а, ты очередной ментор..."
А мы пока подумаем как уйти от этой модели "менторов".
Backtracking — это метод решения задачи перебора всех возможных вариантов с последующим выбором оптимального решения.
Подход часто юзается в решении задач, где требуется найти наилучшее решение из множества возможных комбинаций.
Основная идея — это перебор всех возможных решений путем выбора вариантов и проверки их на соответствие заданным условиям.
На примере разобрана частая задача генерации скобочной последовательности с помощью бэктрекинга. А также добавлю раздел бэктрекинга в литкоде
Please open Telegram to view this post
VIEW IN TELEGRAM
Продолжаю рубрику улучшения производительности наших кнопок. В прошлом посте мы поговорили про разгрузку главного потока. В этом мы поговорим про Color Blending.
Blending это стадия в процессе рендеринга фрейма, когда вычисляется финальный цвет пикселя. Каждый UIView в иерархии (а если быть точнее каждый CALayer) аффектит цвет финального пикселя, который будет отрисован на экране, так как нужно учесть все пересекающиеся views, их alpha, backgroundColor, opaque и тд.
UIView.opaque сообщает системе, что данный view является полностью непрозрачным. Это позволяет улучшить перформанс отрисовки. Опция UIView.opaque позволяет системе скипать отрисовку нижележащих views, а также blending при вычислении финального цвета.
Обнаружить проблему color blending'a можно выбрав опцию "Color Blended Layers" в in Xcode или в Debug меню iOS Simulator'a.
Если layer всегда показывается поверх другого монотонного layer'a, то можно просто присвоить layer'y background такого же цвета, эффект будет таким же, как если бы layer имел прозрачный background, но не будет проблемы blending'а.
Please open Telegram to view this post
VIEW IN TELEGRAM
Вопросы для собесов на память | Junior | часть 2
В этой подборке были собраны вопросы про:
🟣 Что такое delayed deallocation
🟣 Какие участки памяти могут быть кроме кучи и стэка
🟣 Сколько живет Global и Value память
🟣 Виды утечек памяти
🟣 Инструменты для поиска утечек
🟣 многие другие вопросы.
🌿 Этот и другие сборники можно найти тут
🧬 Ознакомиться с другими сборниками тут
В этой подборке были собраны вопросы про:
Please open Telegram to view this post
VIEW IN TELEGRAM
Лучшее мобильное приложение в мире
Anonymous Poll
9%
Instagram
3%
iMessage
73%
Telegram
23%
Тинькоф
1%
Todoist
2%
Uber
0%
Facebook
24%
Youtube
3%
X
13%
Другое
Инженерная культура в FAANGA'ах
Одна из целей моего сообщества это не только взаимообмен технической экспертизы, но и обмен культурой из разных компаний.
Для меня не существует метрик, которые влияют на экспертов высоких грейдов. Какие бы санкции за их нарушение не вводили, какой бы код не писали, какие бы требования не просились их будут нарушать или использовать для бюрократии или отчетности. Чем экпертней человек, тем он чаще отказывается от чужих установок и требует свободы. Ну, и промо как-то надо получать. А на чужом далеко не уедешь.
Да и чем больше система, тем больше нужно ресурсов для контроля этих метрик.
Единственный способ создать порядок в такой системе — это культура. В по-настоящему развитых странах людей не нужно заставлять к порядку, они сами его наводят. Не во всем, не всегда, но культурное и здоровое общество готово само самоорганизовываться.
В этом выпуске ведущие поговорили с staff-инженером из нетфликса:
🟣 почему бигтехи очень разные
🟣 что такое культура
🟣 почему в ит бесконечные реорги и нет постоянства
🟣 почему литкод лучший инструмент для собесов
🟣 как и зачем бигтехи насаживают на культуру
В чате мы уже не один день ведем дискуссию про важность культуры и (без)полезность метрик.
Одна из целей моего сообщества это не только взаимообмен технической экспертизы, но и обмен культурой из разных компаний.
Для меня не существует метрик, которые влияют на экспертов высоких грейдов. Какие бы санкции за их нарушение не вводили, какой бы код не писали, какие бы требования не просились их будут нарушать или использовать для бюрократии или отчетности. Чем экпертней человек, тем он чаще отказывается от чужих установок и требует свободы. Ну, и промо как-то надо получать. А на чужом далеко не уедешь.
Да и чем больше система, тем больше нужно ресурсов для контроля этих метрик.
Единственный способ создать порядок в такой системе — это культура. В по-настоящему развитых странах людей не нужно заставлять к порядку, они сами его наводят. Не во всем, не всегда, но культурное и здоровое общество готово само самоорганизовываться.
В этом выпуске ведущие поговорили с staff-инженером из нетфликса:
В чате мы уже не один день ведем дискуссию про важность культуры и (без)полезность метрик.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Инженерная культура BigTech: работа мечты или испытание на прочность?
❓ Хочешь обсудить выпуск или задать вопрос эксперту? Вступай в наш tg-чат: https://t.iss.one/+QE7Frg-mBCFkODEy
📰 Не любишь чаты, но хочешь оставаться в курсе дел и прокачивать свой ИТ кругозор? Подписывайся на наш tg-канал: там публикуются анонсы новых выпусков…
📰 Не любишь чаты, но хочешь оставаться в курсе дел и прокачивать свой ИТ кругозор? Подписывайся на наш tg-канал: там публикуются анонсы новых выпусков…
Forwarded from Алексей Гладков
Главный навык в 21 веке
Глядя на все это захотелось написать то, что у меня давно уже крутится в голове. Изначально (хз наверное с каменных веков) были люди у которых, что называется была совесть и люди у которой этой совести не было. Они были везде и всегда. Причем формализовать, что такое совесть очень трудно. Тут можно удариться в христианскую мораль, различные философские тенденции, но мы этого делать не будем
Так вот в 21 веке у людей с совестью начались проблемы. Проблемы очень простого характера. Быть человеком с совестью ахуеть как невыгодно. Ну сами посудите. Пока вы честно учите андроид и качаете свои знания, кто-то нарисовал себе 5 лет опыта и запрыгнул в поезд айти и уже получает свои 300К в наносекунду (эт конечно нихуя не так, но так это продается)
Или, например, пока человек с совестью думает о том, что у других людей тоже есть чувства, другие скачут по карьерной лестнице весело перепрыгивая через головы. Как говорил архангел в фильме Догма, что является основой совести? Страх. Люди перестали бояться. И чем выше и дальше ты по лестнице, тем меньше ты боишься
Я щас даже не буду говорить про наших недавно отличившихся товарищей с различными там заявлениями. Им норм, их совесть не мучает. Они могут делать какие угодно заявления, кидать людей, обманывать, воровать и тд и им норм. Более того, если вы думаете, что они как-то там плохо живут и мучаются совестью на своей яхте, то я вас разочарую - осознание этого приходит оооочень поздно, а к некоторым и вообще никогда (шлюхи с кокаином говорят плохо на сердечной мышце отражаются)
Но в этой системе есть один существенный недостаток. Все эти люди без совести, они могут существовать только за счет одного - за счет паразитирования. Также как экономика услуг и потребления не способна существовать без реального сектора (ну кому-то банально нужно делать все эти столы, детали, сортиры и так далее), также и вот эти бессовестные товарищи могут существовать только за счет людей, которые поступают по совести
И как только их становится сильно много, то такое общество обречено. Паразиты просто пожирают сами себя, пытаясь выхватить кусок пожирнее у такого же паразита.
Поэтому я пришел к выводу, что самый важный навык для человека с совестью (которым он не обладает как правило) - это умение посылать нахуй. Посылать нахуй очень неудобно для такого человека, потому что он все время рефлексирует на тему, а не обидел ли он кого-то, а вдруг он сделал плохо другому человеку
Я и сам через это проходил. Но важно здесь, что посылать нахуй нужно строго только таких вот паразитов. Я уверен вы легко можете их отличить. Поймите, что эти люди не рефлексируют, они не думают обидели они кого-то или нет. У них есть только одна единственная функция - поднять бабла. Любым способом. В том числе и за счет других
Поэтому пользуйтесь. Очень полезный навык в 21 веке. Как говорится, для торжества зла нужно лишь одно - бездействие добра
Глядя на все это захотелось написать то, что у меня давно уже крутится в голове. Изначально (хз наверное с каменных веков) были люди у которых, что называется была совесть и люди у которой этой совести не было. Они были везде и всегда. Причем формализовать, что такое совесть очень трудно. Тут можно удариться в христианскую мораль, различные философские тенденции, но мы этого делать не будем
Так вот в 21 веке у людей с совестью начались проблемы. Проблемы очень простого характера. Быть человеком с совестью ахуеть как невыгодно. Ну сами посудите. Пока вы честно учите андроид и качаете свои знания, кто-то нарисовал себе 5 лет опыта и запрыгнул в поезд айти и уже получает свои 300К в наносекунду (эт конечно нихуя не так, но так это продается)
Или, например, пока человек с совестью думает о том, что у других людей тоже есть чувства, другие скачут по карьерной лестнице весело перепрыгивая через головы. Как говорил архангел в фильме Догма, что является основой совести? Страх. Люди перестали бояться. И чем выше и дальше ты по лестнице, тем меньше ты боишься
Я щас даже не буду говорить про наших недавно отличившихся товарищей с различными там заявлениями. Им норм, их совесть не мучает. Они могут делать какие угодно заявления, кидать людей, обманывать, воровать и тд и им норм. Более того, если вы думаете, что они как-то там плохо живут и мучаются совестью на своей яхте, то я вас разочарую - осознание этого приходит оооочень поздно, а к некоторым и вообще никогда (шлюхи с кокаином говорят плохо на сердечной мышце отражаются)
Но в этой системе есть один существенный недостаток. Все эти люди без совести, они могут существовать только за счет одного - за счет паразитирования. Также как экономика услуг и потребления не способна существовать без реального сектора (ну кому-то банально нужно делать все эти столы, детали, сортиры и так далее), также и вот эти бессовестные товарищи могут существовать только за счет людей, которые поступают по совести
И как только их становится сильно много, то такое общество обречено. Паразиты просто пожирают сами себя, пытаясь выхватить кусок пожирнее у такого же паразита.
Поэтому я пришел к выводу, что самый важный навык для человека с совестью (которым он не обладает как правило) - это умение посылать нахуй. Посылать нахуй очень неудобно для такого человека, потому что он все время рефлексирует на тему, а не обидел ли он кого-то, а вдруг он сделал плохо другому человеку
Я и сам через это проходил. Но важно здесь, что посылать нахуй нужно строго только таких вот паразитов. Я уверен вы легко можете их отличить. Поймите, что эти люди не рефлексируют, они не думают обидели они кого-то или нет. У них есть только одна единственная функция - поднять бабла. Любым способом. В том числе и за счет других
Поэтому пользуйтесь. Очень полезный навык в 21 веке. Как говорится, для торжества зла нужно лишь одно - бездействие добра