Reaktive — мультиплатформенная библиотека для реактивного Kotlin

Автор: admin от 11-04-2019, 18:55, посмотрело: 21

Reaktive — мультиплатформенная библиотека для реактивного Kotlin


Многие сегодня любят реактивное программирование. В нём масса плюсов: и отсутствие так называемого "callback hell", и встроенный механизм обработки ошибок, и функциональный стиль программирования, который уменьшает вероятность багов. Значительно проще писать многопоточный код и легче управлять потоками данных (объединять, разделять и преобразовывать).



Для многих языков программирования существует своя реактивная библиотека: RxJava для JVM, RxJS — для javascript, RxSwift — для iOS, Rx.NET и т. д.



Но что мы имеем для Kotlin? Было бы логично предположить, что RxKotlin. И, действительно, такая библиотека существует, но это всего лишь набор расширений (extensions) для RxJava2, так называемый «сахар».



А в идеале хотелось бы иметь решение, соответствующее следующим критериям:




  • мультиплатформенность — чтобы иметь возможность писать мультиплатформенные библиотеки с использованием реактивного программирования и распространять их внутри компании;


  • Null safety — система типов Kotlin защищает нас от «ошибки на миллиард долларов», так что значения null должны быть допустимы (например, Observable);


  • ковариантность и контравариантность — ещё одна очень полезная особенность Kotlin, дающая возможность, например, безопасно привести тип Observable к Observable.




Мы в Badoo решили не ждать у моря погоды и сделали такую библиотеку. Как вы уже могли догадаться, назвали мы её Reaktive и выложили на GitHub.



В этой статье мы подробнее рассмотрим ожидания от реактивного программирования на Kotlin и увидим, насколько им соответствуют возможности Reaktive.

Категория: Android, iOS

 

Новые процессоры для дата-центров — разбираем анонсы последних месяцев

Автор: admin от 11-04-2019, 18:55, посмотрело: 19

Говорим о многоядерных CPU мировых производителей


Новые процессоры для дата-центров — разбираем анонсы последних месяцев

/ фото PxHere
PD



48 ядер



В конце 2018 года Intel анонсировали архитектуру Cascade-AP. Эти процессоры будут поддерживать до 48 ядер, иметь мультичиповую компоновку и 12 каналов DDR4 DRAM. Такой подход обеспечит высокий уровень параллелизма, что пригодится в обработке больших данных в облаке. Релиз продуктов на базе Cascade-AP намечен на 2019 год.

Категория: Программирование

 

Бизнес-логика в базе данных при помощи SchemaKeeper

Автор: admin от 11-04-2019, 18:55, посмотрело: 27

Цель данной статьи — на примере библиотеки schema-keeper показать инструменты, которые позволяют существенно облегчить процесс разработки баз данных в рамках PHP-проектов, использующих СУБД PostgreSQL.



Информация из этой статьи, в первую очередь, будет полезна разработчикам, которые по максимуму хотят использовать возможности PostgreSQL, но сталкиваются с проблемами сопровождения бизнес-логики, вынесенной в БД.



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



Будут рассмотрены следующие вопросы:




  • В каком виде хранить дамп структуры БД в системе контроля версий (далее по тексту — VCS)

  • Как отслеживать изменения в структуре БД после сохранения дампа

  • Как переносить изменения в структуре БД на другие окружения без конфликтов и гигантских файлов миграций

  • Как наладить процесс параллельной работы над проектом нескольких разработчиков

  • Как безопасно деплоить большее количество изменений в структуре БД на production-окружение
  • Категория: Программирование

     

    Восхождение на Эльбрус — Разведка боем. Техническая Часть 2. Прерывания, исключения, системный таймер

    Автор: admin от 11-04-2019, 18:20, посмотрело: 18

    Восхождение на Эльбрус — Разведка боем. Техническая Часть 2. Прерывания, исключения, системный таймерПродолжаем исследовать Эльбрус путем портирования на него Embox.

    Данная статья является второй частью технической статьи об архитектуре Эльбрус. В первой части речь шла о стеках, регистрах и так далее. Перед прочтением этой части рекомендуем изучить первую, поскольку в ней рассказывается о базовых вещах архитектуры Эльбрус. В этой части речь пойдет о таймерах, прерываниях и исключениях. Это, опять же, не официальная документация. За ней следует обращаться к разработчикам Эльбруса в МЦСТ.

    Категория: Программирование, Системное администрирование

     

    Как раскрутить новичка и ничего не сломать

    Автор: admin от 11-04-2019, 16:15, посмотрело: 20

    Поиск, собеседование, тестовое задание, отбор, приём на работу, адаптация — путь тяжёлый и понятный каждому из нас — и работодателю и сотруднику.



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



    Как раскрутить новичка и ничего не сломать Примерно так

    Категория: Веб-разработка

     
     

    Восхождение на Эльбрус — Разведка боем. Техническая Часть 1. Регистры, стеки и другие технические детали

    Автор: admin от 11-04-2019, 12:20, посмотрело: 19

    Восхождение на Эльбрус — Разведка боем. Техническая Часть 1. Регистры, стеки и другие технические деталиКак и обещали, продолжаем рассказывать про освоение процессоров Эльбрус. Данная статья является технической. Информация, приведенная в статье, не является официальной документацией, ведь получена она при исследовании Эльбруса во многом как черного ящика. Но будет безусловно интересна для лучшего понимания архитектуры Эльбруса, ведь хотя у нас и была официальная документация, многие детали стали понятны только после длительных экспериментов, когда Embox все-таки заработал.



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

    Категория: Программирование, Системное администрирование

     

    Красный Хогвартс: Академик без диплома

    Автор: admin от 11-04-2019, 12:05, посмотрело: 18

    11 сентября 1903 г. в семье осевшего в Москве крестьянина-старовера Павла Алимарина родился сын, которого назвали Ваней.



    Ване Алимарину не везло с образованием. Нет, начальное образование он получил — в Рогожском училище.



    Красный Хогвартс: Академик без диплома


    Ваня Алимарин (в центре) — ученик Рогожского училища.



    Нет, не в том Рогожском училище, которое сейчас Московское старообрядческое духовное училище, а том Рогожском училище, которое сейчас Детская музыкальная школа имени Н.А. Алексеева. Да, того самого Николая Александровича Алексеева, который знаменитый московский городской голова, основатель и первый директор училища. Который потом передал директорство своему двоюродному брату, известному предпринимателю и промышленнику Константину Сергеевичу Алексееву, более известному под сценическим псевдонимом «Станиславский». Да, тот самый, который «Не верю!».



    Но я отвлекся. Вернемся к Ване, который закончил Рогожское училище.

    Категория: Программирование

     

    Почему города сопротивляются внедрению Amazon Go, первых магазинов без касс

    Автор: admin от 11-04-2019, 12:05, посмотрело: 25

    Почему города сопротивляются внедрению Amazon Go, первых магазинов без касс


    Amazon надоело доминировать только на онлайн-рынке. После открытия своего первого уникального магазина без касс в Сиэтле в начале прошлого года, эти супермаркеты IT-гиганта, следящие за вашими покупками с помощью AI и камер, начали появляться во многих крупных городах Америки. В планах фирмы – захватить вообще весь офлайн-ритейл, в ближайшие годы открыв еще как минимум 3000 этих автоматических супермаркетов в США. Но далеко не всем нравится такое движение в будущее. Многие города и даже целые штаты почему-то пытаются запретить появление Amazon Go на своей территории.

    Категория: Программирование

     

    Компилируемая конфигурация распределённой системы

    Автор: admin от 11-04-2019, 12:05, посмотрело: 15

    Хотелось бы рассказать один интересный механизм работы с конфигурацией распределённой системы. Конфигурация представлена напрямую в компилируемом языке (Scala) с использованием безопасных типов. В этом посте разобран пример такой конфигурации и рассмотрены различные аспекты внедрения компилируемой конфигурации в общий процесс разработки.



    Компилируемая конфигурация распределённой системы



    (english)

    Категория: Программирование

     
    Назад Вперед