Как стать автором
Обновить
26
0

Пользователь

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

Микросервисы в представлении среднего разработчика, и как всё на самом деле

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров62K

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

Когда спрашиваю у людей на собесах, или когда в команде решаем, как клепать очередной проект, такое порой слышу, что становится страшновато. Мне кажется, лет через 5 все компании будут обитать в мультивселенной безумия из “микросервисов”, которую они себе радостно построили, уходя от этих ваших страшных “монолитов”.

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

погрузиться в микросервисы
Всего голосов 236: ↑232 и ↓4+260
Комментарии207

Как визуализировать кредитную историю заемщика. Кейс для одного из ведущих банков

Время на прочтение5 мин
Количество просмотров9.2K

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

Подробнее о решении задачи
Всего голосов 16: ↑14 и ↓2+13
Комментарии14

Повышаем интерпретируемость SHAP-графиков

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров6.5K

Привет, Хабр! В моей работе часто возникают задачи на исследование влияния факторов, на которые мы можем оказывать продуктовое влияние, на целевые метрики сообществ ВКонтакте. Один из возможных способов решения подобных задач — обучение ML‑моделей и последующий анализ значимости признаков в них. Базовым подходом видится использование графиков из библиотеки shap. Однако наиболее популярным является summary_plot, хотя он и повышает интерпретируемость модели, но отвечает не на все возникающие вопросы.

Меня зовут Сергей Королёв, я продуктовый аналитик в бизнес‑юните СМБ в VK, занимаюсь улучшением опыта предпринимателей на нашей платформе. В этой статье я представлю свое решение по кастомизации shap.dependence_plot для простого восприятия графиков влияния факторов на целевую метрику.

Читать далее
Всего голосов 43: ↑43 и ↓0+52
Комментарии0

Жёсткое руководство

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров28K

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

Читать далее
Всего голосов 63: ↑52 и ↓11+58
Комментарии100

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

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров13K

По мнению Артема Закируллина*, одна из фундаментальных проблем, с которой сталкиваются разработчики при анализе кода – высокая когнитивная нагрузка. Это не абстрактное, а реальное ограничение возможностей, которое стоит времени и денег. На чтение и понимание кода, тратится больше времени, чем на его написание. Поэтому, разработчику нужно постоянно задаваться вопросом: не пишет ли он код, чтение которого создает чрезмерную когнитивную нагрузку?

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

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее
Всего голосов 55: ↑54 и ↓1+61
Комментарии20

Создание автоматического долива воды в чайник — своими руками

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров21K
image

Во время наших ежедневных утренних ритуалов часто возникает момент, когда нужно включить кофемашину или чайник, и если не повезет, то можно услышать их молчаливую просьбу: «Пожалуйста, добавьте воды» И Вам приходится искать подходящую емкость, терпеливо ждать, пока она заполнится водой из фильтра, а потом аккуратно переливать воду из емкости в чайник, рискуя при этом разлить ее. Знакомая вам ситуация?
Читать дальше →
Всего голосов 51: ↑45 и ↓6+55
Комментарии64

Анализируем домен компании с помощью OSINT

Время на прочтение6 мин
Количество просмотров8.8K

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

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Теория типов

Уровень сложностиСредний
Время на прочтение43 мин
Количество просмотров33K

Мы так привыкли к типам, что редко задаёмся вопросом, что же они такое на самом деле? А главное - почему возникла необходимость в их использовании? Этот поверхностный обзор сделан для того, чтобы продемонстрировать, как типы и другие связанные абстракции являются следствием из обобщения условий различных задач.

Что можно узнать из этой статьи?
Всего голосов 75: ↑75 и ↓0+75
Комментарии70

Почему код становится legacy?

Время на прочтение7 мин
Количество просмотров11K

Написание кода похоже на соединение двух точек. Ожидаемо, что самым простым путем будет нарисовать прямую линию между точками А и Б. 

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

Давайте увеличим количество препятствий на порядок. Линия становится все более извилистой.

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

А если мы заставим двигаться не только препятствия, но и сами точки? Вдобавок убедимся, что эти точки не приклеены к линиям, и вам придется следить за ними, чтобы они оставались соединенными. Начинает немного бесить?

Читать далее
Всего голосов 18: ↑17 и ↓1+20
Комментарии16

Протокол обмена ключами Диффи-Хеллмана для «самых маленьких»

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров5K

За последние десять лет масса технологий, имеющих хоть какое-либо отношение к информационным, претерпела массу изменений. Более того, многие сферы жизни, изначально не имеющие к IT никакого отношения, также преобразились до неузнаваемости и приобрели некий IT-шный бэкграунд. Немаловажную роль в этих процессах информатизации сыграла концепция Интернета вещей (IoT). С самого появления этой концепции было понятно, что она серьёзно повлияет на все сферы деятельности человека, экономические и социальные процессы, а спустя несколько лет после её появления технология оказалась на карандаше Национального разведывательного совета США и была занесена в список «подрывных инноваций».

По мере развития технологии IoT, ставшей устойчивой тенденцией на протяжении последних десяти лет, она наполнялась технологическим содержанием и практическими стандартами. При этом до некоторого времени комплексная информационная безопасность этой технологии вообще никого не интересовала. Если внедрялись какие-то меры безопасности, то по крайне остаточному принципу. Учитывая, что изначально никто никаких специальных стандартов для устройств IoT не разрабатывал, в основном использовали то, что было. Понятно, что «взрослые» варианты стандартов подходят для IoT не в полной мере. Требуются технологии, обладающие высокой производительностью в ограниченных средах. Устройства IoT связаны достаточно жёсткими ограничениями по питанию, памяти и вычислительным ресурсам.

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

Читать далее
Всего голосов 6: ↑5 и ↓1+7
Комментарии10

Абсолютно бесплатный VPN с бесплатного VPS

Время на прочтение3 мин
Количество просмотров193K

Думаю про VPN слышали все, и многим приходилось им пользоваться. При этом использование готового VPN, которым руководит какой - то неизвестный человек, не является хорошей идей. Тем более в России на данный момент пытаются блокировать, как сами VPN провайдеры (Windscribe, Proton и другие известные сервисы), так и сами протоколы.

Читать далее
Всего голосов 86: ↑82 и ↓4+88
Комментарии112

Импортозамещаем Evernote. Obsidian – менеджер заметок и лучший друг менеджеров

Время на прочтение11 мин
Количество просмотров81K

Привет, Хабр! Меня зовут Николай Суворов. Я – профессиональный менеджер, руководитель направления Delivery Management в МТС Digital. Занимаюсь Enablement Platform – единой платформой для быстрого создания продуктов в экосистеме МТС. Сегодня я расскажу о своем pet-проекте и о том, как я заменил привычный, но такой недоступный Evernote прекрасным менеджером заметок Obsidian. Статья будет интересна прежде всего тем, кто хочет обладать «вторым мозгом» и ни о чем не забывать.

Читать далее
Всего голосов 53: ↑53 и ↓0+53
Комментарии97

Декомпозиция систем по ограниченным контекстам DDD — глубокое погружение

Время на прочтение10 мин
Количество просмотров11K

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

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

Но методика на самом деле есть, и весьма неплохая. Называется она Предметно Ориентированным Дизайном (Domain Driven Design, DDD). С помощью DDD деление большой системы на (микро)сервисы становится простым и понятным.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

Рабы бизнес-процессов

Время на прочтение9 мин
Количество просмотров6.6K

Скованные одной цепью, 
Связанные одной целью.
/И. Кормильцев/

Начну с вопросов. Как вы считаете, нужно ли для обычной офисной работы вдохновение? Может ли сотрудник закопаться в задачу и сделать её вот прям невероятно круто, но не успеть две другие? Или же он должен сделать все три задачи средне, потому что план, KPI, OKR, бизнес-процессы, регламент? Своё мнение я оставлю для статьи, а пока скажу, что в корпоративной среде есть целый слой рабов процессов: руководителей и сотрудников, которые готовы на что угодно, лишь бы соблюсти регламенты, формальности и быть такими… ну такими… ну как в «Мы» у Замятина. И это, как мне кажется, бесконечно плохо, безгранично скучно, отчасти глупо, а главное, очень опасно для всей компании. Потому что нет ничего хуже равнодушного формализма. Сталкивались с таким?

Читать далее
Всего голосов 18: ↑16 и ↓2+21
Комментарии11

Как НЕ надо строить надежные системы

Время на прочтение12 мин
Количество просмотров20K


При проектировании системы знание анти-паттернов и подвохов зачастую оказывается более полезным, чем знание самих паттернов. Отталкиваясь от этой идеи, я решил написать данную статью, чтобы рассказать о факторах, которые, на мой взгляд, приведут к созданию ненадёжных систем. В её основе лежит мой собственный опыт проектирования преимущественно распределённых корпоративных приложений. Будет здорово, если ниже вы поделитесь собственным опытом и полезными идеями по теме.
Читать дальше →
Всего голосов 50: ↑45 и ↓5+59
Комментарии3

Анализ временных рядов, применение нейросетей (1 часть)

Время на прочтение9 мин
Количество просмотров30K

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

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

Читать далее
Всего голосов 14: ↑12 и ↓2+12
Комментарии8

Lavritech V7.1 Lite: младший брат Wirenboard на ESP32

Время на прочтение9 мин
Количество просмотров7.1K


В своём блоге я рассмотрел десятки контроллеров разных компаний, среди которых Kincony, Norvi, RobotDyn, LILYGO и т. д., всё это замечательные изделия, но есть у них одна общая черта — все они созданы зарубежными производителями. Само по себе это неплохо, но хотелось бы уже познакомиться с чем-то, созданным нашими IT-умельцами.

На самом деле, в России разрабатывается и производится множество различных и весьма интересных контроллеров, сегодня мы познакомимся с одним из них — это контроллер Lavritech V7.1 Lite на основе ESP32, созданный для рынка DIY автоматизации. То есть как раз того направления, которое интересно мне и постоянным читателям моего блога.

Lavritech V7.1 Lite интересен ещё и тем, что совместим с блоками популярной экосистемы контроллеров Wirenboard и имеет необычную модульную архитектуру, что резко выделяет его на фоне ранее рассмотренных «обычных» контроллеров. По сути, это «младший брат Wirenboard» на ESP32 с архитектурой а-ля IBM PC, но только в мире контроллеров.

Ну и ещё одна отличная новость: для того, чтобы узнать об этом чуде инженерной мысли, вам достаточно просто нажать на кнопку «Читать дальше», что я и предлагаю вам незамедлительно сделать (уже завидую).

Итак, приступим…
Читать дальше →
Всего голосов 14: ↑13 и ↓1+16
Комментарии27

WebODM: Создаем карты и 3d модели с дрона

Время на прочтение5 мин
Количество просмотров12K

Развитие программного обеспечения с открытым исходным кодом, снижает барьер входа в нишевые технологии. Ранее подобные технологии были широко распространены в рамках геодезии, однако сейчас фотограмметрия используется в разработке игр, VR/AR, или для сохранения исторических памятников культурного наследия.

В данной статье, мы рассмотрим процесс установки и эксплуатации WEBODM - бесплатного, кросс-платформенного программного обеспечения для создания карт, и 3D-моделей из аэрофотоснимков.

Читать далее
Всего голосов 12: ↑11 и ↓1+14
Комментарии12

Профилируем php на бою

Время на прочтение9 мин
Количество просмотров10K

Привет Хабр! Последняя статья про инструменты для профилирования php датируется аж  2018 годом. Но все перечисленные решения разработаны много лет назад и имеют недостатки: древний интерфейс btp (аналог pinba), оверхед xhprof и необходимость ручного запуска phpspy на stage.

Я тимлид в рекомендательном сервисе Zoon и перед моей командой стояла цель найти инструменты, которые профилируют весь код на проде 24/7 и хранят данные. Инструменты, с которыми могут работать рядовые разработчики, без доступа к проду. Инструменты, которые позволяют находить "бутылочные горлышки" за 30 секунд.

В конце 2021 года показался свет в конце туннеля, в виде системы на основе семплирующего eBFP профайлера: prodfiler

С какими трудностями мы столкнулись при настройке и что вышло в итоге - под катом.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии2

Как оставаться отказоустойчивым, переходя на микросервисы на PHP (и как правильно падать)

Время на прочтение8 мин
Количество просмотров13K

Когда-то вы кодили на одном большом и могучем серваке, с кучей памяти и кучей процов. Сервер был безграничен, все ваши сервисы были здесь, все ваши Redis’ы и даже зачастую MySQL-и были тут. Все ваши приложения были здесь же: какая-то аналитика, какой-то бэкенд для админки, еще десяток сервисов — все было рядом. 

Но вот вы заехали в Swarm. Все приложения — это набор контейнеров. А контейнеры это, по сути, набор микросерверов со своей файловой системой, своей памятью, своими процами. И они уже не всегда рядом. Соответственно, это тянет за собой некоторые изменения. 

Читать далее
Всего голосов 16: ↑15 и ↓1+17
Комментарии2
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Новокузнецк, Кемеровская обл., Россия
Дата рождения
Зарегистрирован
Активность