Дайджест свежих материалов из мира фронтенда за последнюю неделю №286 (23 — 29 октября 2017)

Автор: admin от 30-10-2017, 08:00, посмотрело: 270

Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.



Дайджест свежих материалов из мира фронтенда за последнюю неделю №286 (23 — 29 октября 2017)

Категория: Операционные системы / iOS

 

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

Автор: admin от 30-10-2017, 08:00, посмотрело: 232

В нашем новом большом дайджесте мы учимся распознавать рыбу, создавать приложения для iPhone X, открывать в новой версии Android доступ к машинному обучению, создавать безумные табуретки и даже готовить игры к запуску. Добро пожаловать!



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

Категория: Операционные системы / iOS

 

Что каждый программист на C должен знать об Undefined Behavior. Часть 1/3

Автор: admin от 30-10-2017, 08:00, посмотрело: 195

Люди иногда спрашивают, почему код, скомпиливанный в LLVM иногда генерирует сигналы SIGTRAP, когда оптимизация была включена. Покопавшись, они обнаруживают, что Clang сгенерировал инструкцию «ud2» (подразумевается код X86) — то же, что генерируется __builtin_trap(). В этой статье рассматривается несколько вопросов, касающихся неопределённого поведения кода на C и того, как LLVM его обрабатывает.



Что каждый программист на C должен знать об Undefined Behavior. Часть 1/3



В этой статье (первой из трёх) мы попытаемся объяснить некоторые из этих вопросов, чтобы вы могли лучше понять связанные с ними компромиссы и сложности, и возможно, изучить немного больше тёмные стороны С. Мы выясним, что C не является «высокоуровневым ассемблером», как многие опытные программисты на C (особенно те, кто сфокусирован на низком уровне) предпочитают думать, и что C++ и Objective-C напрямую унаследовали множество таких проблем.

Категория: Операционные системы / iOS

 

SILVER: как я проектирую приложения для iOS

Автор: admin от 30-10-2017, 08:00, посмотрело: 240

Еще одна архитектура?



В последние годы заметно набрала обороты тема альтернативных архитектур для создания приложений под платформу iOS. На доске особого почета уже закрепились некоторые силачи, известные как MVP, MVVM, VIPER. А кроме них есть еще множество других, не столь распространенных.



Среди силачей, на мой взгляд, ни одна не является универсальной таблеткой для всех случаев:




  • если нужно сделать пару маленьких экранов со статическим набором данных, то вводить полноценный VIPER довольно затратно;

  • если не нравится реактивный подход, то MVVM с большой долей вероятности пройдет мимо;

  • если столкнулся с проблемой Massive в большом проекте, то MVC наверняка уже не подходит.



Есть вариант использовать несколько архитектур, ибо многие позволяют в той или иной степени сочетать себя с другими, но это тоже не слишком удобно как минимум по трем причинам:




  • по мере роста модуля может возникнуть надобность конвертировать его в другую архитектуру;

  • при внесении изменений в модуль надо сначала сообразить, какая архитектура использована для него, и как именно надо вносить туда изменения;

  • надобность добавлять код-адаптер, чтобы совместно использовать модули разных архитектур, ибо на пустом месте код вряд ли получится нативным одновременно для них обеих.



И вот, столкнувшись за последние четыре года со множеством проектов (несколько проектов из банковской сферы, несколько разнородных заказных, а также несколько своих собственных — как приложений, так и игровых), я сформировал для себя архитектурный подход, который теперь по возможности стараюсь использовать в любом проекте, который начинаю.



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

Категория: Операционные системы / iOS

 

Swift 4 — слабые ссылки

Автор: admin от 27-10-2017, 12:15, посмотрело: 231

Вскоре после публикации исходного кода Swift, я написал статью о том как реализованы слабые ссылки. Время не стоит на месте и всё меняется, реализация слабых ссылок в Swift тоже. Сегодня я расскажу о новой реализации и сравню ее со старой. Спасибо Guillaume Lessard за идею для поста.



Старая реализация



Для тех из вас кто не помнит старую реализацию и кому лень пробежаться по предыдущей статье я кратко опишу ее здесь.



В старой версии Swift объекты имели 2 счетчика ссылок: счетчик для сильных ссылок и счетчик для слабых. Когда счетчик сильных ссылок становится равен нулю, а слабых еще нет — объект уничтожается, но память не освобождается. Поэтому в памяти остается так называемый “зомби объект” на который ссылается слабая ссылка.



Когда слабая ссылка загружается, среда времени выполнения (runtime) проверяет является ли объект “зомби”. Если он “зомби” то runtime обнуляет слабую ссылку и уменьшает счетчик слабых ссылок на 1. Когда счетчик слабых ссылок достигает 0 — память освобождается (deallocated). Это означает, что полностью объект удаляется только тогда, когда все слабые ссылки на него обнуляются.



Мне нравилась простота этой реализации, но были у нее и недостатки:

Категория: Операционные системы / iOS

 

Экономика токенов: дисконты — основные проблемы

Автор: admin от 25-10-2017, 01:15, посмотрело: 423

Экономика токенов: дисконты — основные проблемы


Начнём с главного: зачем это знать тем, кто живёт на it-ресурсе? Причин, минимум, две: первая — львиная доля современных проектов так или иначе строит собственную программу лояльности или подключает одну из действующих, но в любом случае речь идёт в первую очередь о скидках (иногда — бонусах); вторая — ICO — пузырь, а значит — после того, как он схлопнется, сам процесс привлечения средств нормализуется и всё только увеличится, то есть нужно быть готовым к востребованности услуги.

Категория: Операционные системы / iOS

 

Как избежать ненужного совещания или в сотый раз о собраниях

Автор: admin от 25-10-2017, 01:15, посмотрело: 242

Вы знаете кого-нибудь, кто хотел бы почаще ходить на собрания? Я хотел бы сказать, что не знаю таких людей, но, к сожалению, это не так. Обычно это менеджеры среднего или высшего звена, которые хотят заполнить весь свой рабочий день воображаемыми руководящими действиями, независимо от того, оправданы они или нет.



Совещание – это способ собрать всех необходимых людей и дать им возможность пообщаться напрямую. И это отличный инструмент, если собрания происходят редко и действительно при необходимости.



Совещание заставляет бросить все свои дела и переключиться на что-то другое. Уверены ли вы, что часовое совещание, ради которого вы отрываете 8 человек, обычно высокооплачиваемых человек, стоит целого дня одного сотрудника? Часто ли совещания того стоят?

Категория: Операционные системы / iOS

 

Дизайн под iPhone X. Гайдлайны для iOS 11

Автор: admin от 25-10-2017, 01:15, посмотрело: 931

Дизайн под iPhone X. Гайдлайны для iOS 11


Вместе с iOS 11 появился новый iPhone X, айфон с самой большой диагональю экрана, который фактически не имеет границ. 5.8 дюймовый OLED экран даже больше чем экран 5.5 дюймов iPhone 8 Plus, в то время как размер самого корпуса примерно такой же как у iPhone 8. Для дизайнеров это означает большую свободу в макетах.

Категория: Операционные системы / iOS

 

Как мы Raiffeisen Online создавали…

Автор: admin от 24-10-2017, 15:45, посмотрело: 255

Как мы Raiffeisen Online создавали…

Интернет-банк уже давно превратился из роскоши в must have для любого уважающего себя банка. Излишне говорить, что приложение должно не просто быть, а должно быть надёжным, удобным и приятным в использовании. В одной статье не получится рассказать обо всех аспектах нашего интернет-банка Raiffeisen Online, но зато я расскажу о нашем опыте создания новой версии, его архитектуре и трудностях, с которыми столкнулась команда. Возможно, кому-то наш опыт поможет сэкономить время и усилия.

Категория: Операционные системы / iOS

 

Живой митап #RuPostgres: вопросы и ответы с экспертами Avito

Автор: admin от 24-10-2017, 15:45, посмотрело: 316

Мы в своей работе активно используем PostgreSQL, много участвуем в тематических конференциях, проводим соревнования и пишем про администрирование и разработку. И вот сегодня я хочу пригласить вас поучаствовать ещё в одной встрече, посвященной Postgres — живом митапе на канале #RuPostgres Live. В прямом эфире, который будет вести и модерировать Николай Postgresmen Самохвалов, я и мои коллеги ответим на ваши вопросы. Подробности под катом.



Живой митап #RuPostgres: вопросы и ответы с экспертами Avito

Категория: Операционные системы / iOS