Рубрика «enterprise» - 2

Привет!

На днях мне в очередной раз на глаза попал код вида

if(someParameter.Volatilities.IsEmpty())
{
    // We have to report about the broken channels, however we could not differ it from just not started cold system.
    // Therefore write this case into the logs and then in case of emergency IT Ops will able to gather the target line
    Log.Info("Channel {0} is broken or was not started yet", someParameter.Key)
}

В коде есть одна довольно важная особенность: получателю крайне хотелось бы знать, что произошло на самом деле. Ведь в одном случае у нас проблемы с работой системой, а в другом — мы просто прогреваемся. Однако модель не дает нам этого (в угоду отправителю, который зачастую является автором модели).
Более того, даже факт "возможно, что-то не так" происходит из того, что коллекция Volatilities пуста. Что в некоторых случаях может быть и корректно.

Я уверен, что большинство опытных разработчиков встречало в коде строки, в которых заключалось тайное знание в стиле "если выставлена эта комбинация флажков, то от нас просят сделать A, B и C" (хотя по самой модели этого не видно).

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

Важно: в статье я привожу примеры, которые полезны для проектов, в которых несколько разработчиков (а не один), плюс которые будут обновляться и расширяться в течении хотя бы 5-10 лет. Всё это не имеет смысла, если в проекте один разработчик лет на пять, или же если после релиза никаких изменений не планируется. И логично, если проект необходим всего на пару месяцев, нет смысла вкладываться в четкую модель данных.

Однако если же вы занимаетесь долгоиграющим — добро пожаловать под кат.

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

Rabbit MQ в системе обработки обращений жителей - 1

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

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

Одной из специфичных задач проекта был вопрос интеграции с большим числом внешних систем.

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

Т.к. данных поступало много, часто приходилось работать в асинхронном режиме, то проектной команде пришлось решать вопрос, как бы не заддосить себя и сторонние системы. Решение нашли в программном брокере сообщений Rabbit MQ. Это была новая технология для команды на тот момент.

Ниже интервью с разработчиком бэкенда проекта, Александром Щегловым WilyLynx, который разбирался с вопросом и реализовывал интеграцию.

— Саш, привет! Расскажи пожалуйста в двух словах что собой представляет Rabbit MQ?

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

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

DJI — мировой лидер в производстве гражданских дронов и технологий аэрофотосъемки анонсировал DJI Mavic 2 Enterprise, переносной дрон с уникальными мощными функциями, разработанными для бизнеса, правительства, обучения и других профессионалов, кому необходим надежный инструмент на каждый день, способный помочь делать работу лучше.

DJI анонсирует Mavic 2 Enterprise — мощный инструмент для профессионалов - 1
Читать полностью »

Статья о том, как решали задачу оптимизации процесса удаления файлов из шардированной системы. Речь пойдет о проекте для совместного доступа и работы с файлами. Система была стартапом лет 8 назад, потом он успешно выстрелил и был несколько раз продан. В проекте 4 разработчика, которые с проектом с самого начала, что очень ценно. Документацию, традиционно, либо не успели написать, либо она не очень актуальна.

Зачем вам это читать и зачем я все это написала? Хочется рассказать о граблях, которые заботливо лежат внутри системы и бьют так, что звездочки сыпятся из глаз.

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

Удаление данных с шардированной базы - 1
Читать полностью »

Всем привет!

Компания Netсracker уже много лет разрабатывает и поставляет enterprise-приложения для мирового рынка операторов связи. Разработка таких решений достаточно сложна: в проектах участвуют сотни людей, а количество активных проектов исчисляется десятками.

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

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

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

Привет! Мы выложили видеозаписи докладов с конференции DotNext 2018 Piter. Получился плейлист из 26 видео! В нашей подборке под катом будут десять, но только самых лучших, получивших высшие оценки от зрителей. Если есть силы смотреть все доклады из плейлиста — мы только рады.
 
Традиционно, чем ниже доклад по списку, тем выше его рейтинг. Но очень важно понимать: все доклады имеют примерно одинаковые оценки, около 4,36-4,49 баллов, и расположение может легко измениться, стоит немного поменять методику подсчета. К примеру, на доклад, занявший второе место с рейтингом 4,48, отзывов в несколько раз больше, чем на лучший доклад с рейтингом 4,49. В общем, смотреть нужно всё.

Под катом все видео разбиты с оглавлением по содержимому поста, презентациями и короткими описаниями.
Как «декодирование цифрового мира» взорвало зал: топ-10 докладов DotNext 2018 Piter - 1
Читать полностью »

Привет! У нас совсем недавно вышла книга "Изучаем Java EE. Современное программирование для больших предприятий" от немецкого Java-чемпиона Себастьяна Дашнера.

Предполагаемые принципы проектирования для Jakarta EE - 1

Господин Дашнер активно пишет и выступает на темы, связанные с современной Java EE, поэтому в своем блоге не обошел вниманием и общие принципы проектирования для платформы Jakarta EE, ныне разрабатываемой Eclipse. Перевод именно этой статьи (июньской) мы сегодня предлагаем вашему вниманию.
Читать полностью »

Зимой и летом одним цветом? Поиск сезонности в данных - 1

Однажды мы решили посмотреть, какие сезонные интересы есть у пользователей 2ГИС в разных городах. Всплески интереса к цветам, новогодним подаркам и шинам — вполне ожидаемы. Мы решили ими не ограничиваться и пойти дальше, проверив все сферы деятельности во всех 113 городах присутствия.

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

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

Здравствуйте, коллеги.

Сегодня хотим обсудить с вами такую нетривиальную тему как архитектура IoT для больших предприятий. Популяризация IoT на русском языке идет полным ходом, однако на английском языке уже выходят первые серьезные книги об архитектуре таких решений в масштабе (больших) предприятий. Нас изрядно заинтересовала следующая книга Перри Ли (Perry Lea):

Промышленный IoT: изучение спроса - 1

Просим вас активно высказываться насчет актуальности этой книги. Если кто-то хочет поделиться реальным опытом реализации промышленного IoT в России и/или отрецензировать перевод книги — также пишите.

Под катом предлагаем перевод публикации Red Hat, где рассмотрены вопросы грамотного и безопасного проектирования API для IoT-систем
Читать полностью »

Главное в платежной системе — взять денежки, перевести записи из одной таблички в ту же самую табличку со знаком «минус». Звучит не очень сложно, пока не пришли юристы. Платежные системы во всем мире облагаются огромным количеством всевозможных отягощений и указаний. Поэтому в рамках разработки платежной системы приходится все время балансировать на грани между тяжелым enterprise и вполне нормальным масштабируемым web-приложением.

Под катом рассказ Филиппа Дельгядо (dph) на Highload++ про опыт, накопившийся за несколько лет работы над платежной системой для российского легального букмекерского бизнеса, про ошибки, но и про некоторые достижения, и про то, как грамотно смешать, но не взбалтывать, web с enterprise.

Архитектура платежной системы. Банальности, проверенные опытом - 1
Читать полностью »


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