Как быстро попробовать 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) представляет из себя нейросеть, которую, в том числе, можно натренировать переводить тексты с одного человеческого языка на другой, например, с английского на русский или наоборот. Для этого её нужно натренировать на датесэте представляющим из себя параллельный корпус текстов на двух языках. Т.е. нужно […]

Постановка зданий за протоссов в Starcraft 2

Сегодня мы поговорим о таком базовом элементе геймплея за протоссов как постановка зданий. Мы разберёмся, как строить глухие стенки, где ставить первые здания в разных матчапах и каких правил лучше придерживаться, чтобы ваши билд-ордеры не нарушались неприятными сюрпризами. Сегодня мы поговорим о таком базовом элементе геймплея за протоссов как постановка […]

Разработка транзакционных микросервисов с помощью Агрегатов, Event Sourcing и CQRS

Микросервисная архитектура становится всё более популярной. Это модульный подход, при котором приложение функционально разделяется на отдельные сервисы. В результате разработчики больших и сложных приложений могут быстрее выпускать качественный софт. При таком подходе им проще осваивать новые технологии, так как появляется возможность реализовывать каждый отдельный сервис с помощью наиболее подходящего и современного […]

Как восстановить контакты, удаленные с телефона или SIM-карты

Вчера я писал о том, как при попытке удалить контакты с SIM-карты, я ненароком удалил все телефонные контакты. Настало время рассказать, что я делал, чтобы попытаться восстановить удаленные контакты. Надеюсь, эта информация пригодится вам в будущем. Но лучше — чтобы не пригодилась. 

Symfony 2 Joboard : Отправка писем через Mailer

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

Определить включен ли компьютер через сеть

Сегодня напишем простой скрипт на языке shell, который будет определять включен ли компьютер, находящийся в сети. Например, нужно, чтобы туннель на роутере поднимался только, когда клиентская машина включена и разрушался, при ее выключении. Вот такая у нас будет схемка, в качестве VPN сервера может выступать маршрутизатор филиала фирмы. Или, может быть, вы захотите, […]

Разбиение на страницы на PHP

Если вы занимаетесь разработкой интернет магазинов, каталогов, досок объявлений — то наверняка сталкивались с проблемой постраничного вывода информации. Проще говоря с пагинацией. Представленная ниже функция помогает решить эту задачу. В данной реализации используется враппер MySQLi под названием goDB. Но вы без труда сможете переделать под собственные нужды, главное понимать принцип […]