Подборка материалов по тестам
🏠 Dodo: Тест-ревью: как прошли два года написания unit-тестов
🏠 Cian: Тесты в iOS: хороший, плохой
🤑 Sber: Как доказать важность тестов каждому участнику проекта
Книги:
- Agile Swift
- Pro iOS Testing
- Test-Driven iOS Development
- Принципы юнит-тестирования
#подборка
Книги:
- Agile Swift
- Pro iOS Testing
- Test-Driven iOS Development
- Принципы юнит-тестирования
#подборка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5⚡2👍2
Будет ли гонка?
Final Results
40%
Нет, у нас есть lock
10%
Нет, но приложение крашнится
24%
Да
26%
Не знаю
Для типов значений, изменяющих функции, self неявно передается функции в качестве параметра inout. И в контексте доступа к памяти в параметрах in-out есть доступ на запись, который автоматически начинается в начале функции и заканчивается, когда функция завершается. Таким образом, в приведенном примере, даже если мы не изменяем наш массив внутри функции, существует долгосрочный доступ на запись для всего выполнения метода.
ℹ️ Из документации Apple (раздел Conflicting Access to In-Out Parameters):
A function has long-term write access to all of its in-out parameters. The write access for an in-out parameter starts after all of the non-in-out parameters have been evaluated and lasts for the entire duration of that function call. If there are multiple in-out parameters, the write accesses start in the same order as the parameters appear.
Получается, что гонка происходит, когда мы вызываем node.clearChilds() в первой очереди, начиная доступ на запись для self, который также является node, и после этого снова пытаемся использовать node.clearChilds() во второй, начиная другой доступ на запись на node, а также пытаясь прочитать self в self.childs.isEmpty.
Решение:
Полный разбор в статье
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Способы сериализации данных в iOS
🟡 lvl: mid
Сериализация — процесс перевода данных в битовую последовательность. Сериализация используется для передачи объектов по сети и для сохранения их в файлы.
В iOS самые популярные способы:
- NSCoding (NSKeyedArchiver)
- JSON
- Plist
- Codable
JSON — самый быстрый, а NSKeyedArchiver самый медленный.
В статье ниже можно ознакомиться с чего начиналось кодирование и почему Codable пока лучшее, что имеем
- Сериализация в iOS
🟡 lvl: mid
Сериализация — процесс перевода данных в битовую последовательность. Сериализация используется для передачи объектов по сети и для сохранения их в файлы.
В iOS самые популярные способы:
- NSCoding (NSKeyedArchiver)
- JSON
- Plist
- Codable
JSON — самый быстрый, а NSKeyedArchiver самый медленный.
В статье ниже можно ознакомиться с чего начиналось кодирование и почему Codable пока лучшее, что имеем
- Сериализация в iOS
👍8
Недавно меня спросили: "а как решать литкод? с чего вообще начинать?".
Честно, хер его знает. Особой страты у меня пока нет. Я беру грокаем алгоритмы -> читаю главу -> решаю по этой теме пару тасок.
Но вот наткнулся на рекомендации изучения тем новичкам.
Честно, хер его знает. Особой страты у меня пока нет. Я беру грокаем алгоритмы -> читаю главу -> решаю по этой теме пару тасок.
Но вот наткнулся на рекомендации изучения тем новичкам.
🔥15
Очень актуальная вещь с первым синдромом. Как там пословица индейцев? Лошадь сдохла - слезь?
Forwarded from Teamlead Good Reads – ежедневные советы про менеджмент людей и команд (Egor Tolstoy)
Эффект IKEA
Исследование 2011 года показало, что люди, которые сами собрали мебель из IKEA, считают ее выгодным вложением на 63% чаще, чем те, кто просто приценивается к аналогичной собранной кем-то еще мебели. Привязанность к предмету тоже значительно повышается для тех, кто своими руками его собирает.
Этот эффект объясняет два других часто встречающихся в разработке синдрома:
💦Sunk costs effect – продолжение инвестиций в проект, который уже очевидно не выгорел, только потому, что в него уже многое было вложено раньше
🤷🏻♂️Not invented here syndrom – отказ от идей и технологий, разработанных где-то или кем-то еще только потому, что это не in-house разработка
Исследование 2011 года показало, что люди, которые сами собрали мебель из IKEA, считают ее выгодным вложением на 63% чаще, чем те, кто просто приценивается к аналогичной собранной кем-то еще мебели. Привязанность к предмету тоже значительно повышается для тех, кто своими руками его собирает.
Этот эффект объясняет два других часто встречающихся в разработке синдрома:
💦Sunk costs effect – продолжение инвестиций в проект, который уже очевидно не выгорел, только потому, что в него уже многое было вложено раньше
🤷🏻♂️Not invented here syndrom – отказ от идей и технологий, разработанных где-то или кем-то еще только потому, что это не in-house разработка
Че по тестам?
Учимся тестить пуши. Как мне кажется очень полезная практика покрывать пуши и диплинки юнит тестами. Частая проблема, когда хер пойми сколько пушей и диплинков у вас в приложении. Иногда уходили месяцы на их актуализацию. Покрывать их тестами приведет к экономии и времени, и денег
https://medium.com/testableapple/testing-push-notifications-within-xctest-75f719ab0494
Учимся тестить пуши. Как мне кажется очень полезная практика покрывать пуши и диплинки юнит тестами. Частая проблема, когда хер пойми сколько пушей и диплинков у вас в приложении. Иногда уходили месяцы на их актуализацию. Покрывать их тестами приведет к экономии и времени, и денег
https://medium.com/testableapple/testing-push-notifications-within-xctest-75f719ab0494
Medium
Testing push notifications within XCTest
Testing push notifications within XCTest This Note originally published on my Personal Blog here. Read original note so that you won’t miss any content. Xcode 11.4 introduced a handy feature that …
👍5❤1💯1
Уехать — это как написать юнит тест. Вроде и не нужно, но безопасней
👍22😁6🤔3😢3
Forwarded from Teamlead Good Reads – ежедневные советы про менеджмент людей и команд (Egor Tolstoy)
Качество как функция системы его обеспечения
Качество продукта зависит не столько от скиллов разработчиков, сколько от системного подхода к его обеспечению. Группа супер-крутых разработчиков, работающих без оглядки на качество, скорее всего произведет продукт хуже, чем группа средненьких мидлов, работающих в системе, построенной с целью производить качественный результат.
К характеристикам такой системы обеспечения качества относится:
🐞Культура и инфраструктура, поощряющие написание тестов и дающие на это время
💻Надежные и простые в использовании dev/test окружения
☮️Отсутствие давления на команду, заставляющего релизить недостаточно протестированный код
📝Наличие документации и выделяемое на нее время
💬Регулярный разбор факапов с исправлением их корневых причин, без попыток блеймить кого-то
Качество продукта зависит не столько от скиллов разработчиков, сколько от системного подхода к его обеспечению. Группа супер-крутых разработчиков, работающих без оглядки на качество, скорее всего произведет продукт хуже, чем группа средненьких мидлов, работающих в системе, построенной с целью производить качественный результат.
К характеристикам такой системы обеспечения качества относится:
🐞Культура и инфраструктура, поощряющие написание тестов и дающие на это время
💻Надежные и простые в использовании dev/test окружения
☮️Отсутствие давления на команду, заставляющего релизить недостаточно протестированный код
📝Наличие документации и выделяемое на нее время
💬Регулярный разбор факапов с исправлением их корневых причин, без попыток блеймить кого-то
jacobian.org
Quality Is Systemic - Jacob Kaplan-Moss
Software quality is more the result of a system designed to produce quality, and not so much the result of individual performance. That is: a group of mediocre programmers working with a structure designed to produce quality will produce better software than…
👍5
Memory Unsafety in Apple's Operating Systems
🟡 lvl: mid+
Большая часть ошибок и уязвимостей ОС эйпл связана с небезопастным использованием памяти
Языки, как C и C++ небезопасны для памяти. Использование неинициализированной памяти, двойное освобождение, переполнение буфера, использование после освобождения и т. д. Программист должен идеально выделять, записывать, читать и освобождать память или иначе легко могут возникнуть серьезные уязвимости.
Казалось бы, Memory Safe языки должны помочь нам и сделать работу с памятью лучше. В погоне за скоростью авторы Swift забывают о крайне важной вещью — безопасной память.
👾 Для сравнения в iOS 12 было исправлено 261 из которых 173 были связаны с небезопасностью памяти. А в macOS Mojave исправлено 298 из которых 213.
Также автор ругает Swift за его попытку в безопасность, но при этом сильное снижение скорости, в отличие от других практик
- Основная статья
- Работа современных языков с Memory Safety
🟡 lvl: mid+
Большая часть ошибок и уязвимостей ОС эйпл связана с небезопастным использованием памяти
Языки, как C и C++ небезопасны для памяти. Использование неинициализированной памяти, двойное освобождение, переполнение буфера, использование после освобождения и т. д. Программист должен идеально выделять, записывать, читать и освобождать память или иначе легко могут возникнуть серьезные уязвимости.
Казалось бы, Memory Safe языки должны помочь нам и сделать работу с памятью лучше. В погоне за скоростью авторы Swift забывают о крайне важной вещью — безопасной память.
👾 Для сравнения в iOS 12 было исправлено 261 из которых 173 были связаны с небезопасностью памяти. А в macOS Mojave исправлено 298 из которых 213.
Также автор ругает Swift за его попытку в безопасность, но при этом сильное снижение скорости, в отличие от других практик
- Основная статья
- Работа современных языков с Memory Safety
👍3
С учетом последних ситуаций считаю необходимым сделать этот канал также и средством помощи. В том виде, в котором можно.
1️⃣ Если вас или ваших друзей итшников взяли призвали — пишите. Только факты и прочеканные вещи
2️⃣ Будем делиться советами. Долг долгом, но от ошибок необученных или непорядочных людей в призывных пунктах никто не застрахован
3️⃣ Будет много шокирующих новостей. Нужно быть готовым. Учиться не отключать мозг и не травмировать себя думскроллингом. Здесь будут методички, курсы или литература как справляться с текущим давлением и не делать необдуманные поступки
Я твердо убежден, что позиция "моя хата скраю Еревана" сейчас проигрышная. Нужно объединиться и снизить градус паники, который пожирает всех изнутри ежедневно
Наше молчание будет спонсировать беспредел
1️⃣ Если вас или ваших друзей итшников взяли призвали — пишите. Только факты и прочеканные вещи
2️⃣ Будем делиться советами. Долг долгом, но от ошибок необученных или непорядочных людей в призывных пунктах никто не застрахован
3️⃣ Будет много шокирующих новостей. Нужно быть готовым. Учиться не отключать мозг и не травмировать себя думскроллингом. Здесь будут методички, курсы или литература как справляться с текущим давлением и не делать необдуманные поступки
Я твердо убежден, что позиция "моя хата скраю Еревана" сейчас проигрышная. Нужно объединиться и снизить градус паники, который пожирает всех изнутри ежедневно
Наше молчание будет спонсировать беспредел
👍27❤🔥6💯3❤2
Forwarded from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT (Egor Tolstoy)
The GitHub Blog
Git's database internals I: packed object store
This blog series will examine Git’s internals to help make your engineering system more efficient. Part I discusses how Git stores its data in packfiles using custom compression techniques.
Интересный эксперимент. Пару учителей информатики и программистов выясняют кто из них самозванец, а кто нет
Иногда те, кто далеки от программиста, выглядят убедительней людей с годами опыта.
https://youtu.be/uJJsbBYInzU
Иногда те, кто далеки от программиста, выглядят убедительней людей с годами опыта.
https://youtu.be/uJJsbBYInzU
YouTube
Программисты вычисляют учителей информатики | Свой/Чужой | КУБ
Курс по Java разработке от Kata Аcademy - https://clck.ru/wcAfz
---
Очередной выпуск формата Свой/чужой посвящен программистам. Ребята расскажут о своей работе, ответят на вопросы про особенности профессии и попытаются вычислить двоих учителей информатики…
---
Очередной выпуск формата Свой/чужой посвящен программистам. Ребята расскажут о своей работе, ответят на вопросы про особенности профессии и попытаются вычислить двоих учителей информатики…
Начали уже учить андроид?
Anonymous Poll
6%
Да
44%
Нет
10%
Ухожу в бэк
40%
Остаюсь иосером и улетаю в армянские стартапы
Топ важных навыков для симулятора иосника
Anonymous Poll
13%
Казахский
11%
Копать окоп
15%
Быстро переключаться на андроид переступая принципы
21%
Английский
13%
Режим инвиза через границу
8%
Армянский
20%
Найти стартап на западе
😁8