Replacing Mocks with Spies

Mock objects are useful when verifying that a method was called is more important than verifying the outcome of calling that method. Completing a Reservation For example, I have a Reservation class that represents some concert tickets that are being held for a user until they complete their purchase. When you call the complete method on a Reservation, you pass […]

Вернуть пустой результат запроса из Laravel Query Builder

Весьма специфичный случай. Вернуть пустой результат SQL запроса независимо от остальных условий запроса. Необходимо задать заведомо невыполнимое условие, например идентификатор записи < 0. Естественно лучшим вариантом будет выбирать поле с индексом. Совершенно точно не стоит опираться на LIMIT 0. Постраничная навигация обязательно изменит этот параметр. SELECT * FROM entities WHERE […]

Как быстро попробовать CQRS/ES в Laravel или пишем банк на PHP

Недавно в подкасте «Цинковый прод» мы с товарищами обсуждали паттерн CQRS/ES и некоторые особенности её реализации в Elixir. Т.к. я в работе использую Laravel, грех было не покопаться в интернетах и не найти как же можно потягать этот подход в экосистеме данного фреймворка. Всех приглашаю под кат, постарался максимально тезисно […]

Laravel Event Projector и концепция порождения событий

Фрек ван дер Хертен (Freek Van der Herten) и команда Spatie долго трудились над Laravel Event Projector, пакетом, позволяющим применять концепцию порождения событий (Event Sourcing) во фреймворке Laravel. И вот наконец доступна первая стабильная версия (v1.0.0)! Вы можете установить Event Projector в свой проект при помощи composer и благодаря автоматическому […]

Haxe и PHP: статическая типизация, стрелочные функции и метапрограммирование

До того, как присоединиться к Haxe Foundation в качестве разработчика компилятора Haxe, Александр около 10 лет профессионально занимался программированием на PHP, так что он знает предмет доклада. Небольшое введение о том, что такое Haxe — это кроссплатформенный набор инструментов для создания ПО, в состав которого входят: компилятор, который в зависимости […]

Пошаговое руководство по машинному переводу на базе движка OpenNMT

Проект OpenNMT (Open Source Neural Machine Translation) представляет из себя нейросеть, которую, в том числе, можно натренировать переводить тексты с одного человеческого языка на другой, например, с английского на русский или наоборот. Для этого её нужно натренировать на датесэте представляющим из себя параллельный корпус текстов на двух языках. Т.е. нужно […]

Избавляемся от дублирования сквозного кода в PHP: рефакторинг кода с АОП

Думаю, каждому программисту знаком принцип единственной ответственности, ведь не зря он существует: соблюдая его, можно написать код лучше, он будет более понятным, его будет легче дорабатывать.  Но чем больше каждый из нас работает с кодом, тем больше приходит понимание того, что на существующем уровне языка — объектно-ориентированном — этого сделать […]

Как предсказать цену акций: Алгоритм адаптивной фильтрации

Группа бразильских ученых опубликовала исследование, посвященное созданию инструмента для предсказания поведения активов, торгующихся на фондовом рынке. В работе представлено подробное описание метода и способа расчетов для подобных прогнозов. Мы представляем вашему вниманию наиболее интересные моменты этого документа.

Техники машинного обучения для прогнозирования цен акций: функции индикаторов и анализ новостей

Существует две методики прогнозирования цен акций: Фундаментальный анализ — в этом случае аналитики оценивают информацию, которая больше относится к компании, чьи акции торгуются на бирже, нежели к самим акциям. Решения о тех или иных действиях на рынке принимаются на основе анализа предыдущей деятельности компании, прогнозах выручки и прибыли и так далее. […]