Неплохой набор всяких расширений к Swift. Можно не тащить в проект, а просто почитать для насмотренности
https://github.com/vincent-pradeilles/swift-tips
https://github.com/vincent-pradeilles/swift-tips
GitHub
GitHub - vincent-pradeilles/swift-tips: A collection useful tips for the Swift language
A collection useful tips for the Swift language. Contribute to vincent-pradeilles/swift-tips development by creating an account on GitHub.
👍12❤🔥3
Domain Driven Design
Если кто-то скажет вам, что понимать бизнес разраб не должен — смело посылайте этого советника читать о DDD. Ведь нет ничего лучше.
Что это за монстр такой? Да все просто. При проектировании архитектуры — мы проектируем реальность. Все как работает в жизни 1 в 1. Все в выигрыше. И разрабы херней не занимаются, и манагеры счастливы.
DDD на практике
DDD и SwiftUI
DDD и подлодка
DDD и самостоятельное обучение
Если кто-то скажет вам, что понимать бизнес разраб не должен — смело посылайте этого советника читать о DDD. Ведь нет ничего лучше.
Что это за монстр такой? Да все просто. При проектировании архитектуры — мы проектируем реальность. Все как работает в жизни 1 в 1. Все в выигрыше. И разрабы херней не занимаются, и манагеры счастливы.
DDD на практике
DDD и SwiftUI
DDD и подлодка
DDD и самостоятельное обучение
Хабр
Domain Driven Design на практике
Эванс написал хорошую книжку с хорошими идеями. Но этим идеям не хватает методологической основы. Опытным разработчикам и архитекторам на интуитивном уровне понятно, что надо быть как можно ближе к...
👍6🍓4💋1
Идеальная работа для программиста на всю жизнь
Anonymous Poll
23%
Программировать. Быть отдаленным от бизнеса, управления и встреч
30%
Влиять на продукт. Внедряться на ранних этапах
23%
Техлидерство. Обучать людей технологиям
17%
Тимлидство. Не говорить конкретных вещей,а учить находить решения самому
9%
Уйти в продакт менеджмент без программирования
47%
Открыть свой стартап/компанию
23%
Уйти из ИТ
Так я получаю образование бизнес информатика и мне это нравится, то у меня уже куча материала как итшник может повлиять на бизнес. Вам интересно?
Anonymous Poll
67%
Да, было бы интересно разнообразить тех.скиллы
13%
Нет, давай только инфу о хардах
11%
Вообще все равно
16%
Да, но только поверхностно и немного
Плейлист для вопросов к собесам. Сам не смотрел. Кто посмотрит - отпишитесь
YouTube
iOS Interview Questions and Answers
Your one stop from getting your dream job as an iOS developer. All types of question and details discussion to make you interview ready
👍7
Проблемы айфона при херовом состоянии батареи
Плохая батарея может влиять на наши апки. И в этом режиме нужно следить за производительностью:
- длительное время запуска приложения
- низкая частота кадров при прокрутке
- Приложения, обновляющиеся в фоновом режиме, могут потребовать перезагрузки при запуске
❔ Нужно ли следить за работой апки в таком состоянии? Я думаю хороший разраб учтет это. Режимы экономии энергии может приводить к таким же проблем. А его могут не выключать вообще
Тест модов
Плохая батарея может влиять на наши апки. И в этом режиме нужно следить за производительностью:
- длительное время запуска приложения
- низкая частота кадров при прокрутке
- Приложения, обновляющиеся в фоновом режиме, могут потребовать перезагрузки при запуске
Тест модов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
Советы по оптимизации энергии в iOS
Минимизировать чтение/запись данных
Частый доступ к памяти и файлам чаще вейкапит приложение из простоя. Например, слишком частые запросы в сеть, локальную бд, кэширование
Минимализация работы с таймером
Работа с таймерами дорогая тем, что ждет конца определенного интервала, а затем выполняет какое-то действие. Такое пробуждение системы энергозатратно. Не стоит использовать таймеры без необходимости
Приоритезация тасок
Тут все просто. Не стоит класть на главный поток что-то неважное, а лучше использовать ресурсы устройства по важности с помощью QoS.
Меньше работать в фоном потоке
Приложения, выполняющие ненужную фоновую деятельность, тратят энергию впустую. Например, не уведомляет систему о конце работы. Загружает ненужную инфу. Обновляет местоположение или подключается к устройствам
Минимизировать чтение/запись данных
Частый доступ к памяти и файлам чаще вейкапит приложение из простоя. Например, слишком частые запросы в сеть, локальную бд, кэширование
Минимализация работы с таймером
Работа с таймерами дорогая тем, что ждет конца определенного интервала, а затем выполняет какое-то действие. Такое пробуждение системы энергозатратно. Не стоит использовать таймеры без необходимости
Приоритезация тасок
Тут все просто. Не стоит класть на главный поток что-то неважное, а лучше использовать ресурсы устройства по важности с помощью QoS.
Меньше работать в фоном потоке
Приложения, выполняющие ненужную фоновую деятельность, тратят энергию впустую. Например, не уведомляет систему о конце работы. Загружает ненужную инфу. Обновляет местоположение или подключается к устройствам
👍6
Идеальный кодревью
За почти 10 лет опыта процесс кодревью в 90% компаний был неправильным. Часто на нем писали неважные комментарии. Смысл которых больше стилистический: "поменяй нэйминг", "убери пробел".
Кто-то находил в этом процессе пользу. Рассказывал, что с помощью него можно обучать людей. Я не считаю, что если кодревью даже на 40-50% — это механическая работа человека по комментариям линтера, правок кодстайла с названием романа на полке "Табуляции и пробелы", то в нем мало пользы. А чаще такие споры заканчиваются токсчичностью и психологическими травмами.
Проанализировав проблему я понял, что такой не один. Многие разрабы и тимлиды сталкивались с дороговизной и проблемностью самого процесса, если он был неправильно интергрирован. Научить проводить код-ревью — сложно. Да и требовать от этого процесса обучения — затея кмк мертворожденная.
Мне же больше нравятся практики парного программирования, разработка через тестирование и арх.ревью. Но попробуем представить какой же должен быть идеальный процесс?
1️⃣ Кодревью — это процесс проверки и оценки правильности измененного кода в соответствии заявленным целям других инженеров.
2️⃣ Одобрение одного из владельцев кода, подтверждающее, что код подходит для конкретной части кодовой базы. Владельцы действуют как "цензоры"
3️⃣ Проверка на удобочитаемость. Гарантия понятности изменений для других инженеров
4️⃣ Воспитание командной ответственности
5️⃣ Чекпоинт для понимания, что большое кол-во забракованных реквестов говорит о неправильных процессах
Но есть одно но. Гугл заявляет, что все вышеописанное работает в случае, если почти все, что можно было автоматизировать — автоматизировано. Т.е. условный CI провел кучу проверок на стайлгайд, тесты и тп. Гугл даже свой анализатор написали, для предварительной проверки механической работы.
Также есть множество рекомендаций как сделать его полезней:
1️⃣ Нужно быть вежливым и профессиональным. Ох, наверное тут самое трудное для меня. Как быть вежливым, когда кто-то учит тебя как писать правильно наш идеальный код? Пукан горит, а чел просто не шарит. Но есть множество советов как сделать свою обратную связь продуктивной. Один из них уважать решения автора и предлагать альтернативы. Говорят, нужно оставаться в строго профессиональных рамках.
2️⃣ Писать небольшие изменения. Тут все понятно. Не стоит тащить огромный реквест и ждать, что его проверят быстро и без замечаний.
3️⃣ Хорошие описания к изменениям. Описание изменений должно быть понятно для всех и начинаться с краткой формы, а заканчиваться (само)документацией изменений.
4️⃣ Привлекать к обзору минимальное число рецензентов. Чаще большое число ревьюеров приводит к спору между ними и ненужным комментариям. А если же привели, то желательно, чтобы они сосредоточились на разных аспектах.
Итого: кодревью может быть полезным, если у всех есть четкое понимание важности этого процесса. А гит становится доброжелательной и понимающей площадкой для коммуникации разрабов. Реально ли это на практике? Другой вопрос
- Обсуждения кодревью на подлодке тимлидов
- Инструмент кодревью от гугл
За почти 10 лет опыта процесс кодревью в 90% компаний был неправильным. Часто на нем писали неважные комментарии. Смысл которых больше стилистический: "поменяй нэйминг", "убери пробел".
Кто-то находил в этом процессе пользу. Рассказывал, что с помощью него можно обучать людей. Я не считаю, что если кодревью даже на 40-50% — это механическая работа человека по комментариям линтера, правок кодстайла с названием романа на полке "Табуляции и пробелы", то в нем мало пользы. А чаще такие споры заканчиваются токсчичностью и психологическими травмами.
Проанализировав проблему я понял, что такой не один. Многие разрабы и тимлиды сталкивались с дороговизной и проблемностью самого процесса, если он был неправильно интергрирован. Научить проводить код-ревью — сложно. Да и требовать от этого процесса обучения — затея кмк мертворожденная.
Мне же больше нравятся практики парного программирования, разработка через тестирование и арх.ревью. Но попробуем представить какой же должен быть идеальный процесс?
1️⃣ Кодревью — это процесс проверки и оценки правильности измененного кода в соответствии заявленным целям других инженеров.
2️⃣ Одобрение одного из владельцев кода, подтверждающее, что код подходит для конкретной части кодовой базы. Владельцы действуют как "цензоры"
3️⃣ Проверка на удобочитаемость. Гарантия понятности изменений для других инженеров
4️⃣ Воспитание командной ответственности
5️⃣ Чекпоинт для понимания, что большое кол-во забракованных реквестов говорит о неправильных процессах
Но есть одно но. Гугл заявляет, что все вышеописанное работает в случае, если почти все, что можно было автоматизировать — автоматизировано. Т.е. условный CI провел кучу проверок на стайлгайд, тесты и тп. Гугл даже свой анализатор написали, для предварительной проверки механической работы.
Также есть множество рекомендаций как сделать его полезней:
Итого: кодревью может быть полезным, если у всех есть четкое понимание важности этого процесса. А гит становится доброжелательной и понимающей площадкой для коммуникации разрабов. Реально ли это на практике? Другой вопрос
- Обсуждения кодревью на подлодке тимлидов
- Инструмент кодревью от гугл
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1🌚1
Полезно ли вам кодревью?
Anonymous Quiz
62%
Да, помогает развиваться
25%
Да, но скорее косметические правки
4%
Нет, чаще вредно
9%
Не уверен
😁8🌚4😍1🌭1
Осознанная меркантильность или рациональное бескорыстие
Можете скипать, если вам неинтересна философия.
iOS делает меня плакать. Такой заголовок этого канала. Я ко многому отношусь понимающе, еще к бОльшему стараюсь. Только вот есть одна вещь, которую не могу перебороть. Ненависть к инфоцыганам. Ненавижу, блэт, цыган.
Быть может, это потому, что я вырос в семье учителей. Где бескорыстие и желание делиться знаниями была настолько естественной, что любая попытка извратить и сделать из этого приравнивалась бизнес — приравнивалась к греху. Как бы я не учился смирению и сабру, но видеть, как люди предают свои принципы за рекламу и хайп — жопа горит ужасно. Еще больше, когда качество тех знаний завышено в разы.
Были ли искушения делать также? Конечно. Я родился в маленьком ауле Казахстана населением 800 человек. Хотел ли я денег? Да. Я всегда хотел выбраться и усердно старался научиться зарабатывать, чтобы не спиться в гаражах как мой лучший друг. Спустя 13 лет я, наверное, смог. И прошел путь пары десятков городов в Москву. Как мне кажется это хороший рывок. Но что дальше?
В нашем чате часто обсуждают вопрос денег. Важны ли они? Конечно. Делают ли они счастливым? Нет. Лишь временно и смотря как экологично для здоровья были заработаны. Стоит ли мне пойти за трендами? Запустить подкаст? Создать прайд львов и учить их как приукрасить опыт? Нет. Такие пути уже были пройдены и на долгой дистанции показали себя неэффективно.
Последнии годы я сторонник философии "Потока". Важен не результат, а процесс. Если ты улучшаешь его, то результаты становятся только лучше. Долгий марафон, а не быстрый спринт. Если ты бежишь за деньгами, то жди несчастья, обессиленности и кучу межпозвоночных грыж. Злость от невозможности больше ждать заслуженной награды. А те деньги, которые придут, их не хватит на лечение побочных эффектов.
Пытаюсь ли я казаться в своих глазах лучше, чем я есть? Возможно. Но для меня же лучший способ быть счастливым деньгам — упорный труд и честный бой. Такой философии стараюсь придерживаться везде.
Эти принципы будут лежать в любом продукте и любой работе. Скажу банальной фразой, но она отлично матчится со мной. Лучше быть, а не казаться.
Можете скипать, если вам неинтересна философия.
iOS делает меня плакать. Такой заголовок этого канала. Я ко многому отношусь понимающе, еще к бОльшему стараюсь. Только вот есть одна вещь, которую не могу перебороть. Ненависть к инфоцыганам. Ненавижу, блэт, цыган.
Быть может, это потому, что я вырос в семье учителей. Где бескорыстие и желание делиться знаниями была настолько естественной, что любая попытка извратить и сделать из этого приравнивалась бизнес — приравнивалась к греху. Как бы я не учился смирению и сабру, но видеть, как люди предают свои принципы за рекламу и хайп — жопа горит ужасно. Еще больше, когда качество тех знаний завышено в разы.
Были ли искушения делать также? Конечно. Я родился в маленьком ауле Казахстана населением 800 человек. Хотел ли я денег? Да. Я всегда хотел выбраться и усердно старался научиться зарабатывать, чтобы не спиться в гаражах как мой лучший друг. Спустя 13 лет я, наверное, смог. И прошел путь пары десятков городов в Москву. Как мне кажется это хороший рывок. Но что дальше?
В нашем чате часто обсуждают вопрос денег. Важны ли они? Конечно. Делают ли они счастливым? Нет. Лишь временно и смотря как экологично для здоровья были заработаны. Стоит ли мне пойти за трендами? Запустить подкаст? Создать прайд львов и учить их как приукрасить опыт? Нет. Такие пути уже были пройдены и на долгой дистанции показали себя неэффективно.
Последнии годы я сторонник философии "Потока". Важен не результат, а процесс. Если ты улучшаешь его, то результаты становятся только лучше. Долгий марафон, а не быстрый спринт. Если ты бежишь за деньгами, то жди несчастья, обессиленности и кучу межпозвоночных грыж. Злость от невозможности больше ждать заслуженной награды. А те деньги, которые придут, их не хватит на лечение побочных эффектов.
Пытаюсь ли я казаться в своих глазах лучше, чем я есть? Возможно. Но для меня же лучший способ быть счастливым деньгам — упорный труд и честный бой. Такой философии стараюсь придерживаться везде.
Эти принципы будут лежать в любом продукте и любой работе. Скажу банальной фразой, но она отлично матчится со мной. Лучше быть, а не казаться.
❤22👍8🔥2🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Рубрика «нихерасебе че нашел»
По стопам деливири и их змейки нашел в Яндексе лавке прикол с бегущим ко мне курьерчиком.
Оцените идею по Фаренгейту. Когда апки доставки стали быть игровыми приставками?
По стопам деливири и их змейки нашел в Яндексе лавке прикол с бегущим ко мне курьерчиком.
Оцените идею по Фаренгейту. Когда апки доставки стали быть игровыми приставками?
🔥1
Полный гайд по прохождению system design'а
Монументальный гайд для чего нужно проектирование и как проходить его. Тут больше для бэкенд разрабов, но просто ощутить масштаб различий клиентских и серверных.
- Горизонтальное и вертикальное масштабирование
- Сервера, хранилища, прокси, кэширование
- Очереди
- Балансировщики, DNS
- Файловые системы
- Базы данных
- Распределенные системы
- Машинное обучение
- Облачные технологии
Ощутим себя никчемными красителями кнопок
- Набор инструментов для современного проектирования
Монументальный гайд для чего нужно проектирование и как проходить его. Тут больше для бэкенд разрабов, но просто ощутить масштаб различий клиентских и серверных.
- Горизонтальное и вертикальное масштабирование
- Сервера, хранилища, прокси, кэширование
- Очереди
- Балансировщики, DNS
- Файловые системы
- Базы данных
- Распределенные системы
- Машинное обучение
- Облачные технологии
Ощутим себя никчемными красителями кнопок
- Набор инструментов для современного проектирования
Educative
The Essential Guide to System Design in 2025
An ode to the theory behind every groundbreaking piece of tech — and a comprehensive overview of one ex-Meta engineer's first true love.
😢4👍2
На одном собесе меня ввел в ступор вопрос: "А как бы ты сделал свой force unwrap?". Я начал паниковать и потеть. Тогда я еще не знал, что вопрос был супер изивым и на самом деле меня спрашивали про assert'ы
Так для чего же они нужны? Да как раз сломать приложение. Если вы думаете, что любая ошибка в программировании приводит к крашу, то это не так. Это очень везет, что мы легко понимаем где и почему у нас пошло не так. Об этом я писал в посте про fail safety и его вреде
На деле же мы сами можем преждевременно завершить работу нашего приложения если:
- неправильно используем API или SDK
- неверный результат
- неожиданное поведение
Ассерты могут быть 5 видов. Подробнее о них в слайдах.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11⚡4🐳2❤1
Про выгорание
Один из моих учеников пару месяцев назад попросил написать как бороться с выгоранием.
Данные советы не являются рекомендацией.
Сейчас у меня уже четкая система борьбы с выгоранием. Я не особо люблю этот термин из-за того, как его опошлили. Всегда, когда чувствую упадок сил — я смотрю на спортсменов, которые идут к олимпийским победам десятилетиями.
С 10 лет я ушел на казахскую борьбу. Это было навязанное решение моим отцом, который был и тренером. Он много отдал спорту и его кумирами были Ван Дам и Шварцнегер. Даже сейчас он выглядит в свои 51 моложе чем я. Но обратим особое внимание на навязанность. Пару лет у меня ничего не получалось. Меня все выигрывали, а любая моя маленькая победа была семейным праздником. Я с неохотой ходил в зал, халтурил, когда он отворачивался. В 10 лет я будто приходил на ненавистную работу, на которой мне нужно просто отсидеться.
Все изменилось в 16. Я пришел на боевое самбо. Этот вид единоборств был богаче и разнообразнее. Тут у меня появилось желание и я начал выигрывать сложные бои в столичных соревнованиях (моя любимая история про супер приз — ложки и кружки), а позже, в 21 год, стал призером одного из престижных республиканских соревнований, где было разрешено почти все: и в пах бить, и с головы, и с логтей. Это были 5 сложных боев в моей жизни, но помимо увлекательной истории Вам и моим внукам, с привкусом крови на губах я получил понимание как достается победа.
Если я хочу регулярно выигрывать, то нужно много и регулярно тренироваться. Одна победа в бою не дает выигранные соревнования, где впереди еще 5-6 боев. Это не регулярный выстрел мотивации на спринт в 5 месяцев. Нет. Здесь требуется игра в долгую для достижения такого накопительного эффекта, как керри из доты, который фармил в лесу 6 слотов и вышел делать рампагу.
Мои правила:
- Успех — это марафон. Под успехом можно вкладывать любой смысл: получать регулярно зп, карьерный рост
- Любой процесс базируется на внутреннем желании. Его нужно сохранять и не убивать износом организма
- Здоровый образ жизни. Да да. Я сам могу выпить и закурить, но делаю это крайне редко. Не чаще 1 раза в 1-2 месяца.
- Здоровый сон.
- Активный образ жизни. Баланс требует контраста. Если мой труд — сидячий образ жизни, то ментально и физически я могу отдохнуть только работая телом.
- Путешествия.
- Книги
- Уметь правильно отдыхать. Звучит как успешный успех, но после 25 уже примерно начинаешь понимать что это такое, а к 30 еще лучше. Говорят к ближе 40 вообще гуру становишься
Все безумно банально и просто. Но на практике главный враг — это ты сам. Где-то ты хочешь схалтурить, пока отвернулся тренер. Съесть лишнюю печеньку. Пропустить тренировку литкода. В высокой конкуренции это все будет стоить большую цену. А соблюдать баланс между износом и тонусом — сложнейшая вещь
Для меня выгорание — это неправильная техника и ценности. Индикатор того, что я делаю что-то не то. Оно будет стоить мне в будущем потерянных зубов.
Но я не доктор Хаус и все советы работают только со мной.
Один из моих учеников пару месяцев назад попросил написать как бороться с выгоранием.
Данные советы не являются рекомендацией.
Сейчас у меня уже четкая система борьбы с выгоранием. Я не особо люблю этот термин из-за того, как его опошлили. Всегда, когда чувствую упадок сил — я смотрю на спортсменов, которые идут к олимпийским победам десятилетиями.
С 10 лет я ушел на казахскую борьбу. Это было навязанное решение моим отцом, который был и тренером. Он много отдал спорту и его кумирами были Ван Дам и Шварцнегер. Даже сейчас он выглядит в свои 51 моложе чем я. Но обратим особое внимание на навязанность. Пару лет у меня ничего не получалось. Меня все выигрывали, а любая моя маленькая победа была семейным праздником. Я с неохотой ходил в зал, халтурил, когда он отворачивался. В 10 лет я будто приходил на ненавистную работу, на которой мне нужно просто отсидеться.
Все изменилось в 16. Я пришел на боевое самбо. Этот вид единоборств был богаче и разнообразнее. Тут у меня появилось желание и я начал выигрывать сложные бои в столичных соревнованиях (моя любимая история про супер приз — ложки и кружки), а позже, в 21 год, стал призером одного из престижных республиканских соревнований, где было разрешено почти все: и в пах бить, и с головы, и с логтей. Это были 5 сложных боев в моей жизни, но помимо увлекательной истории Вам и моим внукам, с привкусом крови на губах я получил понимание как достается победа.
Если я хочу регулярно выигрывать, то нужно много и регулярно тренироваться. Одна победа в бою не дает выигранные соревнования, где впереди еще 5-6 боев. Это не регулярный выстрел мотивации на спринт в 5 месяцев. Нет. Здесь требуется игра в долгую для достижения такого накопительного эффекта, как керри из доты, который фармил в лесу 6 слотов и вышел делать рампагу.
Мои правила:
- Успех — это марафон. Под успехом можно вкладывать любой смысл: получать регулярно зп, карьерный рост
- Любой процесс базируется на внутреннем желании. Его нужно сохранять и не убивать износом организма
- Здоровый образ жизни. Да да. Я сам могу выпить и закурить, но делаю это крайне редко. Не чаще 1 раза в 1-2 месяца.
- Здоровый сон.
- Активный образ жизни. Баланс требует контраста. Если мой труд — сидячий образ жизни, то ментально и физически я могу отдохнуть только работая телом.
- Путешествия.
- Книги
- Уметь правильно отдыхать. Звучит как успешный успех, но после 25 уже примерно начинаешь понимать что это такое, а к 30 еще лучше. Говорят к ближе 40 вообще гуру становишься
Все безумно банально и просто. Но на практике главный враг — это ты сам. Где-то ты хочешь схалтурить, пока отвернулся тренер. Съесть лишнюю печеньку. Пропустить тренировку литкода. В высокой конкуренции это все будет стоить большую цену. А соблюдать баланс между износом и тонусом — сложнейшая вещь
Для меня выгорание — это неправильная техника и ценности. Индикатор того, что я делаю что-то не то. Оно будет стоить мне в будущем потерянных зубов.
Но я не доктор Хаус и все советы работают только со мной.
🔥16👍3😁1
В предыдущих сериях мы поднялись до абстрактной теории про херовую ответственность модуля.
Сейчас опустимся до деталей и посмотрим на реальный код на самом простом примере
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6😢4❤2😐1