Рубрика «ruby»

В эту пятницу 21 июня пройдет юбилейная DevConfX, 22 июня эксклюзивные мастер-классы - 1
В эту пятницу пройдет юбилейная конференция DevConfX devconf.ru/ru
Как всегда — все участники получают значительную фору в знаниях на год вперед и шанс оставаться востребованным инженерами WEBa

Доклады которые могли бы Вас заинтересовать:

  • PHP 7.4: стрелочные функции, типизированные свойства и др
  • Symfony: Разработка абстрактных компонентов и бандлов
  • Domain Driven Design
  • TDD: как уйти от мучений и войти в поток
  • Погружение в блокчейн для веб-специалиста
  • Инфраструктура большой платежной платформы
  • NoSQL + SQL = MySQL 8 Document Store!
  • Предвкушая двенадцатый PostgreSQL
  • Сертификация PostgreSQL. Вопросы и ответы
  • Tarantool. Добавляем SQL в noSQL СУБД
  • Ceph: настройка и тестирование
  • Как мы построили сервис распределённых очередей в Яндексе
  • Экстрим-улучшения — работа в рамках высокой нагрузки

Остальные доклады программы
devconf.ru/ru/schedule/jun21#main
Читать полностью »

Введение

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

likeyourgrandmom

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

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

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

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

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

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

Если вы пишите тесты для вашего проекта и используете factory_bot для генерации тестовых данных, то представляю вам гем factory_trace, который поможет вам поддерживать ваши factories & traits в актуальном состоянии.Читать полностью »

При расчете стоимости новой кухни цена оказалась такой большой, что я решил сделать её сам так как это обойдется в два раза дешевле. Для тренировки решил сделать для себя рабочий стол. Достаточно быстро пришло понимание: чтобы сделать хорошую вещь нужно сделать 3D модель. Это позволит на этапе проектирования посмотреть как будет выглядеть мебель и продумать как в дальнейшем будет происходить сборка. Так как 3D моделированием я не занимаюсь, то начал искать программу попроще. И самая простая что нашел SketchUp. При создании модели постоянно приходилось править модель из-за постоянно изменявшихся размеров. И после третьего изменения появилась идея — сделать параметризированную модель, чтобы она сама генерировалась с нужными размерами. SketchUp поддерживает скрипты на языке Ruby и эта статья о том что у меня получилось.

Решение достаточно простое — создаю некоторый API, который позволяет создавать 3D объекты листов ЛПСД с нужными параметрами. Из этих объектов компонуется готовая модель а также в отдельный файл выгружаются размеры листов для передачи их в центр распила. В результате эксплуатации добавил ещё возможность указывать кромки для листов. Данный плагин был использован для проектирования более десятка различных изделий из ЛДСП. С каждым новым проектом плагин дорабатывался и модифицировался, улучшалось удобство и совершенствовалось API. В качестве примера последний проект — стол-тумба. На картинке модель + готовое изделие (птица и собака для привлечения внимания :))
main.jpg

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

Так случилось, что ваша программа написана на скриптовом языке — например, на Ruby — и встала необходимость переписать ее на Golang.

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

Как победить дракона: переписываем вашу программу на Golang - 1Читать полностью »

Введение

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

Blacjack & hockers

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

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

Уж сколько раз твердили Миру… Существует давний и, вероятно, нескончаемый спор о том, какой именно регуляркой правильно и нужно проверять поле email пользователя.
Да, проверять регуляркой действительно нужно. Но ведь наши продукты работают в Сети. Так почему бы не использовать её настоящую мощь?
Читать полностью »

Пацаны, так Ruby умер или нет? - 1

Последнее время, когда я говорю с разработчиками или компаниями, часто слышу одну и ту же историю разными словами — «мы писали на Ruby, но сейчас переезжаем». С одной стороны, ничего удивительного. Разработка — дело изменчивое, всегда появляется что-то новое, каждый день надо тратить кучу мозгов, чтобы оставаться актуальным.

Но при этом существуют же некие преданность технологии и даже культ инструмента. Скажи пхп-шнику, что пора переезжать на .NET, услышишь «PHP отличный, полмира на нем пишет», или просто получишь в лоб.

Что же не так с Ruby, и куда делась его взрывная популярность? Я поговорил с несколькими рубистами. Например, Максимом Индыковым из Staply, чья команда переезжает с Ruby на Go, и с Алексеем Кузнецовым из GeekBrains, компании, которая начиналась с курсов по Ruby, а сейчас отказалась от них полностью.
Читать полностью »

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

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

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

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