Вы все ждали, а этот случай настал.
Вот и настало время когда вам пригодится писать кастомный copy-on-write.
Оптимальным решением является создание нового хранилища, только если оно шарится.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Очень хорошая лекция про основы архитектур от яндекса. Правда лекция про бэк, но многое рифмуется и сильно похоже
https://www.youtube.com/watch?v=6eDehCyYWvc
https://www.youtube.com/watch?v=6eDehCyYWvc
YouTube
05. Об архитектуре. Часть 2 – Татьяна Семёнова, Илья Волков
На этой лекции провели экспресс-обзор принятых типов архитектур, рассмотрели несколько примеров паттернов и общий смысл их применения. После чего плавно перешли к качеству кода: связанности и связности, стилю, инструментарию для его поддержания, конечно же…
👍5
Лучшие привычки для разработчика
Знание SDK, языка, платформы и других технических штук — лишь малая часть работы для разработчика. Годами наи нужно формировать привычки и майндсеты для практик. Общаясь с окружением, читая книги и решая задачи.
Я сэкономил время и собрал для вас все, что нужно. Необязательно соглашаться со всеми. Можно просто изучить и взять подходящее для себя:
Обязательные знания для программиста — подкаст с СЕО Хакслета. Есть очень интересные идеи про алгоритмы, математику, но конечно попа сгорит от каких-то идей.
7 привычек высокоэффективного программиста — базовые, но важные вещи для разраба от любимого ex-Google, ex-Facebook Techlead.
Software Developer Mindset — бумажная версия видосов выше.
"Идеальный программист" Роберт Мартин — наш любимый идеалист и его супер завышенные требования, которые иногда вредны для многих компаний. Но можно почитать и украсть то, что будет где-то полезно
Знание SDK, языка, платформы и других технических штук — лишь малая часть работы для разработчика. Годами наи нужно формировать привычки и майндсеты для практик. Общаясь с окружением, читая книги и решая задачи.
Я сэкономил время и собрал для вас все, что нужно. Необязательно соглашаться со всеми. Можно просто изучить и взять подходящее для себя:
Обязательные знания для программиста — подкаст с СЕО Хакслета. Есть очень интересные идеи про алгоритмы, математику, но конечно попа сгорит от каких-то идей.
7 привычек высокоэффективного программиста — базовые, но важные вещи для разраба от любимого ex-Google, ex-Facebook Techlead.
Software Developer Mindset — бумажная версия видосов выше.
"Идеальный программист" Роберт Мартин — наш любимый идеалист и его супер завышенные требования, которые иногда вредны для многих компаний. Но можно почитать и украсть то, что будет где-то полезно
YouTube
Podlodka #190 – Обязательные знания для программиста
Все мы делаем разные вещи – красим кнопки, перекладываем JSON’ы, пишем автотесты для луноходов или создаем языки программирования. Можно ли в таких условиях выделить набор обязательных знаний, которые делают программиста настоящим профессионалом? На этот…
👍3❤🔥1
Forwarded from AvitoTech
Инженерные практики: Live Site Review
Мы настроили алёрты для синтетического мониторинга, алёрты от мониторингов сервисов. Юзаем общий дашборд по пользовательским событиям в Grafana. Создали специальный «проблемный» канал в Mattermost. И всё равно что-то может пойти не так.
Чтобы не просто решить проблему, но и исключить рецидив, мы используем практику live site review или LSR. Прототип взяли у Google и редактировали процесс под себя.
В деталях рассказываем на гитхабе, а в карточках — самые важные поинты.
#playbook_avitotech
Мы настроили алёрты для синтетического мониторинга, алёрты от мониторингов сервисов. Юзаем общий дашборд по пользовательским событиям в Grafana. Создали специальный «проблемный» канал в Mattermost. И всё равно что-то может пойти не так.
Чтобы не просто решить проблему, но и исключить рецидив, мы используем практику live site review или LSR. Прототип взяли у Google и редактировали процесс под себя.
В деталях рассказываем на гитхабе, а в карточках — самые важные поинты.
#playbook_avitotech
👍4
Неплохой набор всяких расширений к 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