Обновить
0
@mikeoleynikread⁠-⁠only

develover

Отправить сообщение

Как мы создаем микросервисные проекты с нуля

Время на прочтение7 мин
Охват и читатели16K

Считается, что запуск микросервисов изначально затратнее по времени, чем монолит, и наш опыт это подтверждает. Однако, если следовать проверенным процессам, эти затраты можно минимизировать. Делюсь лучшими практиками и составляю чек-лист запуска.

Читать далее

Huginn: простая интеграционная платформа

Время на прочтение4 мин
Охват и читатели16K
В мире API, сервисных архитектур и облачных решений многое доступно вообще без программирования. Однако, компании все еще тратят драгоценное время разработчиков на рутинные задачи по интеграции. Мы хотим рассказать об одной из платформ, которая позволяет нам подключить новомодный маркетинговый сервис или проверить гипотезу максимально быстро и без участия разработки.

Читать дальше →

Отправляем SMS из Erlang/Elixir. Короткая инструкция

Время на прочтение6 мин
Охват и читатели6.9K


Photo by Science in HD


Если вам когда-либо приходилось решать задачу отправки SMS из кода вашего приложения, скорее всего, вы использовали готовое REST API поставщика дополнительных услуг. Но что происходит после того, как поставщик получит ваш запрос? Какие протоколы используются и какой путь проходит текст сообщения, прежде чем оказаться на экране мобильного терминала пользователя?


В этой статье вы найдёте:


  1. Немного теории и терминологии SMPP-протокола: SMSC, ESME, PDU, MO/MT SM.
  2. Краткий обзор существующих библиотек для работы с SMPP в Erlang/Elixir.
  3. Пример реализации асинхронного клиента при помощи библиотеки SMPPEX. Возможно, он будет полезен тем, кто ещё не использовал Elixir-библиотеки в Erlang-проектах.
  4. Информацию по обработке deliver_sm, MO SM.

Чего тут точно нет, так это информации по отправке коротких сообщений через SIGTRAN.

Читать дальше →

Поваренная книга разработчика: DDD-рецепты (5-я часть, Процессы)

Время на прочтение19 мин
Охват и читатели20K

Введение


В рамках предыдущих статей мы описали: область применения, методологические основы, пример архитектуры и структуры. В данной статье, я хотел бы рассказать как описывать процессы, о принципах сбора требований, чем отличаются бизнес требования от функциональных, как перейти от требований — к коду. Рассказать о принципах применения Вариантов Использования (Use Case) и как они нам могут помочь. Разобрать на примерах варианты реализации шаблонов проектирования Interactor и Service Layer.


likeyourgrandmom


Примеры приведенные в статье даны с использованием нашего решения LunaPark, оно поможет вам с первыми шагами в описанных подходах.


Отделяем функциональные требования от бизнес требований.


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


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


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

Готовим пирог с капустой

Поваренная книга разработчика: DDD-рецепты (4-я часть, Структуры)

Время на прочтение13 мин
Охват и читатели14K

Введение


Итак, мы уже определились с областью применения, методологией и архитектурой. Перейдем от теории к практике, к написанию кода. Хотелось бы начать с шаблонов проектирования, которые описывают бизнес логику — Service и Interactor. Но прежде чем приступить к ним, изучим структурные паттерны — ValueObject и Entity. Разрабатывать мы будем на языке ruby. В дальнейших статьях разберем все паттерны, необходимые для разработки с использованием Вариативной архитектуры. Все наработки, являющиеся приложениями к данному циклу статей, соберем в отдельный фреймворк.


Blacjack & hockers


И мы уже подобрали подходящее название — LunaPark.
Текущие наработки выложенны на Github.
Разобрав все шаблоны, соберем один полноценный микросервис.

Зачем нам еще один велосипед?

Поваренная книга разработчика: DDD-рецепты (3-я часть, Архитектура приложения)

Время на прочтение8 мин
Охват и читатели32K

Введение


В рамках предыдущих статей мы выделили область применения подхода и рассмотрели основные методологические принципы Domain Driven Design.


В данной статье я хотел бы обозначить основные современные подходы к построению архитектуры корпоративных систем: Supple, Screaming, Clean и дать им свою четкую интерпретацию в виде полноценного готового решения.


WM


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

Читать дальше →

Поваренная книга разработчика: Domain Driven Design рецепты ( 2-я часть, структура и взаимодействие )

Время на прочтение12 мин
Охват и читатели24K

ddd-header


Введение


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


В данной статье я хотел бы сделать краткий обзор основных принципов DDD, а также поделиться личным опытом их применения. Более подробно будет рассказано о коммуникационных и структурных подходах с примерами их реализации.


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

Читать дальше →

Миграции данных в Ruby On Rails

Время на прочтение13 мин
Охват и читатели6.9K

img


TL;DR Пожалуйста, выносите код миграции данных в Rake-задачи или пользуйтесь полноценными гемами в стиле миграций схемы. Покрывайте тестами эту логику.

Читать дальше →

Человечная декомпозиция работы

Время на прочтение26 мин
Охват и читатели30K

img


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

Читать дальше →

Витамин D. Краткий экскурс

Время на прочтение8 мин
Охват и читатели122K
Приветствую всех Хаброжителей!

Это мой первый пост, так что, возможно он будет несколько сумбурным – прошу не очень строго судить, но конструктивным замечаниям буду рад. Картинок не будет.

Если мой пост что называется «зайдёт», я планирую осветить ещё некоторые интересные, на мой взгляд, темы, связанные с медициной, фармацией и здоровьем.

Пишу простым языком, с минимумом медицинской и фармацевтической терминологии.
Читать дальше →

Наборы и конструкторы для начинающих электронщиков 6-10 лет. Что доступно в магазинах

Время на прочтение2 мин
Охват и читатели32K
После серии моих публикаций, мне посыпались вопросы, а что я могу порекомендовать для детей 6-10 лет, которым родители хотели бы показать «основы» радиоэлектроники? Я посмотрел что есть в масс-маркете и составил свой список. Он не окончательный и я надеюсь в комментариях вы выскажете свое мнение о нем и предложите свои варианты.


Читать дальше →

Как программисту защитить свой пет-проект

Время на прочтение3 мин
Охват и читатели22K
image

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

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

Пошаговая инструкция под катом.
Читать дальше →

Репетитор по программированию: почему вы должны стать им и как это сделать

Время на прочтение5 мин
Охват и читатели23K
Доброго времени суток, Хабр. Представляю Вашему вниманию перевод статьи:«Coding Mentor: Why You Should Become One and How to Do It» автора Oleg Sklyarov (Олег Скляров).



Привет! Меня зовут Олег Скляров, я работаю руководителем группы разработки мобильных устройств для детей в Skyeng. В свободное время я работал репетитором студентов IT сферы. Это был большой опыт для меня, поэтому я хочу поделиться своей историей и идеями, которые я получил в ходе этих занятий.
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Старший
Ruby
Ruby on Rails
Elixir
Erlang