[Перевод] Неопределённое поведение != Небезопасное программирование

От переводчика: Предлагаю вашему вниманию перевод двух постов из блога John Regehr. Я решил объединить их в одной публикации потому, что, во первых, они имеют небольшой объём, и, во-вторых, второй пост является продолжением первого, и является ответом на комментарий к первому посту на Hacker News. Ссылка на первый пост: https://blog.regehr.org/archives/1467 Ссылка на второй пост:https://blog.regehr.org/archives/1476 image

Часть 1. Неопределённое поведение != Небезопасное программирование

Неопределённое поведение (UB) в C и C++ представляет собой опасность для разработчиков, особенно если код работает с недоверенными данными. Менее известно, что неопределённое поведение существует в промежуточном представлении (IR) большинства оптимизирующих AOT компиляторов. Например, LLVM IR имеет значение undef и «отравленные» значения в дополнение к взрывоопасному UB языка С. Когда люди начинают беспокоиться об этом, типичная реакция такова: “Что? LLVM IR так же плох, как и C!” Эта статья объясняет, почему считать так неверно. ...Далее...

Дайджест интересных материалов для мобильного разработчика #236 (8 января — 14 января)

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

Читать дальше →

Анимация в мобильных приложениях. Тестируем Kite compositor



В 2017 году для MacOS вышла программа Kite compositor, которая может стать посредником между дизайнерами и разработчиками. Основная идея — быстрое создание анимации и прототипирование с последующей генерацией кода для платформы iOS. На структуре программы мы останавливаться не будем, на эту тему уже есть подробный материал. Цель нашей статьи — эксперимент. Дизайнер попробует создать анимацию с помощью программы, а разработчики проверят код и дадут обратную связь.
Читать дальше →

[Из песочницы] Swift-фреймворк в Objective-C-приложении

Хоть Apple и написали, казалось бы, подробную документацию о том, как можно использовать Swift-код внутри Objective-C-приложения (и наоборот), но когда доходит до дела, этого почему-то окаывается недостаточно. Когда в проекте, в котором я задействован, появилась необходимость обеспечить совместимость Swift-библиотеки одного из продуктов компании с Objective-C-приложением одного из клиентов, документация Apple породила больше вопросов, чем дала ответов (ну или по крайней мере оставила множество пробелов). Интенсивное использование поисковых систем показало, что данная тема освещена в Сети довольно скудно: парочка вопросов на StackOverflow, пара-тройка вводных статей (на англоязычных ресурсах, конечно) – вот и все, что удалось найти.

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

[Из песочницы] Разработка мобильных игр — тернистый путь падавана

image
Картинка здесь эта потому лишь, что «Звездных воин» фанат я, и телефон тут есть еще

Доброго времени суток. Меня зовут Александр, я фронтенд-разработчик в небольшой компании, но речь в статье пойдет о моем хобби, если его можно так назвать – разработка мобильных игр. Хочу поведать историю моего знакомства и дальнейшего погружения в эту область и поделиться опытом с теми, кто хочет себя попробовать в качестве инди-разработчика, но сомневается. Также интересно узнать мнение опытных разработчиков по поводу тех идей, которые я пытался реализовать. Начну, пожалуй, издалека.
Читать дальше →

Дайджест интересных материалов для мобильного разработчика #235 (18 декабря — 24 декабря)

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

Читать дальше →

В поисках идеальной архитектуры

image
За 9 лет работы фич в проектах роботов становилось все больше, запутаться в коде становилось все проще.
Когда разработчиков стало больше десятка, появилась еще одна проблема – болезненная ротация людей между проектами. Аутсорс-разработка славится жесткими дедлайнами, и у разработчиков нет месяцев или недель на погружение в особенности нового проекта, в то же время работа над разными проектами нужна для развития специалистов.
Главная проблема, которая возникает при долгосрочном развитии приложения – масштабируемость. Решить ее может переход на новую архитектуру или рефакторинг кодовой базы и добавление новых сущностей, которые разгружают объекты с большим количеством обязанностей.
Читать дальше →

Еще одна кража через SWIFT. Теперь в России


Один из российских банков стал жертвой кибератаки, направленной на кражу денег через международную межбанковскую систему платежей SWIFT. Про атаку известно, что она была произведена 15 декабря. Однако, название банка и размер ущерба пока не озвучиваются. Развитие атаки, организованной предположительно группировкой Cobalt, началось с рассылки вредоносного ПО за несколько недель до инцидента. Причем по сообщению заместителя начальника главного управления безопасности и защиты информации ЦБ Артема Сычева, хакеры получили широкий доступ к инфраструктуре и могли использовать и другие каналы вывода средств. Однако, их интересовал вывод средств в иностранный банк, поэтому целью хакеров стал доступ к SWIFT.
Читать дальше →

Самый большой донат и тренды GitHub

Я не самый активный пользователь Хабра, но большой любитель делиться историями. Ох, как я люблю истории! Знаете, это смесь опыта и практики в бою. На этом философию я закончу и перейду к сути. История про новый проект, большой донат и как мне пришлось его (донат) вернуть.
Читать дальше →

Синглтон, локатор сервисов и тесты в iOS

Привет, Хабр! Я Богдан, работаю в мобильной команде Badoo iOS-разработчиком.

В этой статье мы рассмотрим использование паттернов «Синглтон» и «Локатор сервисов» (service locator) в iOS и обсудим, почему их часто называют антипаттернами. Я расскажу, как и где их стоит применять, сохраняя код пригодным для тестирования.


Читать дальше →


Последние посты