Рубрика «Программирование» - 556

Как выбрать тот самый PHP-фреймворк. Сравнительное тестирование - 1

При разработке любого программного продукта перед командой разработчиков прежде всего стоит задача грамотного выбора программной платформы, определяющей структуру программной системы.

Для этого нужно учесть достаточно большое количество характеристик, от «как быстро всё будет работать» до «а необходима ли нам эта фича?». И так каждый раз. Именно в моменты мозгового штурма команда сравнивает удобство фреймворка, скорость, набор фич, которые реализованы в нем или в совместимых с ним модулях.

Но какой же всё-таки лучше, быстрее и производительнее?

Разработчики постоянно проводят сравнение фреймворков, чтобы прояснить для себя этот вопрос. Например, в статье Lukasz Kujawa приведено сравнение PHP фреймворков. Одно «но» — статья за 2013 год. А ведь время идёт… Поэтому мы решили провести своё, актуальное сравнение фреймворков.

Для оценки производительности был использован PHP Framework Benchmark. Он предлагает для сравнения множество фреймворков (не только указанных выше), но автор не спешит добавлять в репозиторий новые версии проектов, что, конечно же, печально, хотя и не смертельно. При желании добавить новую версию не сложно. 


Одной из основных целей данной статьи также является попытка практическим путем определить улучшения в производительности и эффективности новых версий PHP. Поэтому тестирование было проведено на РНР 5.6/7.0/7.1
Читать полностью »

Intel и Facebook совместно повышают производительность библиотеки Caffe2 - 1

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

Mocks, fakes, and stubs — три столпа юнит тестирования. Конечно же все знают что это такое, как солить и когда есть.
Я честно тоже так думал, пока не столкнулся с действительностью, под которую мне пришлось немного прогнуться.

Все началось очень просто — я сменил место работы, и первое что я увидел в новой кодовой базе — это тесты, их было немного больше чем кода. И посреди этих тестов была странная конструкция

Component = proxyquire.noCallThru().load(‘../Component’, {
 
     ‘../../core/selectors/common': { getData }

}).default;

Читать полностью »

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

Откуда Рокетбанк знает ваше имя - 1Тратить время на поиск ручками по базе или, не приведи господи, на набивку номера из CRM в телефон – это роскошь в прямом смысле слова. Когда Рокетбанк стал набирать популярность, что сопровождалось увеличением количества заявок на новые карты, банку нужно было ускорить обработку входящих обращений. Первым делом они решили научить CRM-систему звонить. Как им удалось обуздать свою CRM, читайте под катом.
Читать полностью »

Smart IDReader SDK — как добавить распознавание в iOS приложение за 5 минут — теперь и на Github - 1

Ранее мы, Smart Engines, уже писали про наши технологии распознавания (паспорта РФ, банковских карт и многих других). Основной ценностью SDK является "ядро" или "движок" распознавания Smart IDReader, который объединяет функциональность сканирования всего, что мы умеем сканировать, под единым интерфейсом.

Библиотека распознавания написана на С++ для достижения максимальной производительности, но для использования с различными языками программирования у нас есть версии интерфейсов библиотеки на C++, C, C#, Objective-C, Java и даже Visual Basic. Мы поддерживаем все популярные операционные системы: iOS, Android, Windows, Linux, MacOS, Solaris и, разумеется, Эльбрус и AstraLinux. Наши алгоритмы оптимизированы под такие архитектуры, как ARMv7-v8, AArch64, x86, x86_64, SPARC, E2K.

Мы решили выложить демо-версию нашего SDK на Github, чтобы вы могли ознакомиться с интерфейсом библиотеки (как Objective-C часть, так и C++), почитать документацию и попробовать встроить Smart IDReader в ваше приложение. Репозиторий с демо-версией Smart IDReader iOS SDK доступен по ссылке: https://github.com/SmartEngines/SmartIDReader-iOS-SDK

Чтобы посмотреть, как Smart IDReader выглядит в нашем исполнении после встраивания, вы можете скачать бесплатные полные версии приложений из App Store и Google Play.

В этой статье мы расскажем, как iOS разработчик может использовать наши технологии для добавления функциональности распознавания документов в своё приложение.

Читать полностью »

С утра вы приходите на работу, выпиваете чашечку кофе, закусывая печенькой, и в полной боевой готовности идете на свое рабочее место. Заходите в Jira (любой другой трекер), выбираете наиболее приоритетную задачу из текущего спринта и переводите ее в статус “In Progress”. Спустя некоторое время увлеченной работы задача отправляется на код-ревью, а вы позволяете себе отлучиться еще за одной чашкой кофе.

Вы довольны собой – к решению задачи вы подошли ответственно и копнули вглубь, проработав все возможные сценарии развития событий и написав красивый и лаконичный код. Вы возвращаетесь с кухни спустя несколько (десятков) минут, отвечаете на пару сообщений в одном из чатов и замечаете, что ваш почтовый ящик не пуст. Это пришла нотификация с гитхаба – ваш ревьюер оставил около 10 комментариев и сделал change request.

Почему ненавидеть код-ревьюера – хорошо - 1

Знакомая ситуация?Читать полностью »

learnopengl. Урок 2.1 — Цвета - 1Перевод очередного урока с сайта learnopengl.com. Недавно обнаружил на русском Уроки по OpenGL с сайта OGLDev, но некоторые из них требуют 4 версию opengl, а примеры кода слишком зависимы от предыдущих уроков и объектно-ориентированы. Поэтому, вниманию всех интересующихся opengl'ем новичков со стареньким железом предлагаю коротенькую статью о цвете, с которой начинается вторая часть обучающего курса от Joey de Vries:
Читать полностью »

Russian Code Cup — по следам отборочного раунда - 1

14 мая прошёл отборочный раунд Russian Code Cup 2017. По традиции выкладываем разбор задач и подводим итоги.

A. Маленькие числа
B. Новая клавиатура
C. Складывание фигуры
D. Остроугольные треугольники
E. Объединение массивов
F. Два поддерева

В раунде участвовали 603 человека: приблизительно по 200 лучших программистов с каждого квалификационного раунда. По результатам отборочного раунда мы взяли в финал 55 участников.

Читать полностью »

О дженериках в PHP и о том, зачем они нам нужны - 1

В этой статье мы рассмотрим некоторые распространённые проблемы, связанные с массивами в PHP. Все проблемы могут быть решены с помощью RFC, добавляющего в PHP дженерики. Мы не будем сильно углубляться в то, что такое дженерики, но к концу статьи вы должны понять, чем они полезны и почему многие так ждут их появления в PHP.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js