Pull to refresh
3
0
Юрий Захаров @YuryZakharov

User

Send message

Грокаем валидацию при помощи аппликативного функтора

Reading time7 min
Views1.3K

В предыдущем посте мы открыли Аппликативный функтор, а если точнее, изобрели функцию apply. С ее помощью мы решили проблему валидации полей кредитной карты. Функция apply позволила легко объединить результаты каждой функции, отдельно проверяющей одно поле - номер карты, срок действия и CVV - в объект типа Result<CreditCard>, который представляет финальный результат проверки всех данных кредитной карты на корректность. Возможно, вы также помните, что в случае если у нас есть несколько ошибок валидации, мы решили пойти простым путем и просто возвращать первую из них.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments0

Теория категорий в API для консистентности Apache Cassandra

Reading time15 min
Views2.6K

Для Apache Cassandra проектирование структуры таблиц выполняется для нужд одного конкретного приложения, а перед программистом встают проблемы дублирования данных (один запрос читает одну таблицу, в которой есть все нужные поля) и контроля инициализации значений для колонок, входящих в первичный ключ

В статье предлагается вариант организации клиентского API для решения проблем с консистентностью данных и инициализации требуемых полей на базе комбинации паттернов проектирования Factory Method, Builder и Finite State Machine

TLDR: Если представить паттерн Factory Method как предел в терминах теории категорий, т.е. кортеж с проекциями, и инициализировать фабрику при помощи паттерна Builder, то можно получить удобный API для создания объектов с дублирующимся данными

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments0

Falang.io: редактор блок-схем

Reading time2 min
Views8.6K

Здравствуйте, позвольте рассказать вам про сервис falang.io - редактор блок схем.

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

Читать далее
Total votes 16: ↑14 and ↓2+13
Comments49

Архитектура Шредингера и способы с ней бороться

Reading time21 min
Views4.6K


Представьте, что вы работаете в команде над крупным проектом какое-то время. Проект прошел начальный этап и уже работает в продакшн среде. Им пользуются люди, даже можно сказать, что им пользуются много людей и они рассчитывают на ваш продукт, он для них важен. С какого-то момента вдруг вами овладевает беспокойство, что что-то не так. Каждый спринт дается тяжело. Новые задачи вызывают проблемы с внедрением, а после релиза вы ловите один инцидент за другим. Каждый день вы со страхом смотрите в свой месенджер, боясь увидеть очередное сообщение с очередной проблемой, которую нужно срочно решать. Запросы к базе начинают тормозить, важная информация теряться, все валится из рук, контроль над ситуацией утекает как песок сквозь пальцы. Вы начинаете плохо спать, начинают снится кошмары о бесконечных сообщениях в очередях вашего брокера, которые воркеры не способны переварить. Вам снятся сервера, на которых заканчивается CPU и память, потому что сервисы безмерно потребляют ресурсы. Утилизация дисков на серверах с СУБД уже давно под 100%, ведь сервисы что-то постоянно с них читают или пишут. Ошибки, задержки, падения. Вы просыпаетесь.

Читать дальше →
Total votes 16: ↑15 and ↓1+19
Comments2

Полурешётки и законы Мерфи

Reading time6 min
Views5K

Программист обязательно ставит на тумбочку у кровати два стакана: один полный, на случай, если он проснётся и захочет пить, а другой пустой — вдруг он не захочет. Так гласит известный анекдот. Но в реальной жизни часто работают законы Мерфи, и предусмотренные планы рушатся. Что же делать программисту на случай, если он проснётся и не поймёт, хочет он пить или нет

Читать далее
Total votes 14: ↑13 and ↓1+16
Comments91

Как написать хороший текст о себе, даже если вы не привыкли писать

Reading time4 min
Views19K

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

Читать далее
Total votes 7: ↑5 and ↓2+5
Comments0

Кастомный генератор кода API: структура и методы доработки

Reading time14 min
Views5.3K

Всем привет! Меня зовут Юлия Сладковская, я разработчик в МТС Digital, команда BOPS (Backoffice Portal). Эта статья – про структуру генераторов NSwag для кода клиента и сервера на основе схемы API. Также я расскажу о создании кастомного генератора на базе стандартных генераторов Nswag, методах его настройки и расширения.

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments4

API для Инвестиций, или Как написать торгового робота

Reading time6 min
Views21K

На связи команда Тинькофф Инвестиций. В этой статье разберем, как клиенты с минимальными навыками программирования создают торговых роботов. Базой будет API брокера Тинькофф Инвестиций — Tinkoff Invest API. Добро пожаловать на борт!

Читать далее
Total votes 16: ↑14 and ↓2+13
Comments4

Бесплатные системы управления проектами: 15 систем, 70 функций

Reading time9 min
Views6.3K

Привет! Продолжаю стабильно выходить на связь с Хабром раз в несколько лет =) Благо есть повод – пару месяцев назад перешел в новую контору, где снова надо было наладить работу целого отдела сотрудников на удаленке, который раньше как-то справлялся без системы управления задачами. 

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

А изменилось на российском рынке систем управления проектами за минувший год чуть менее, чем всё. И это помимо того, что успело измениться еще раньше. Мы с командой перепробовали десятки новых и старых систем. Искали бесплатные и доступные в РФ. Составили себе подборку из 15 систем, и для особо нетерпеливых – свели в одну таблицу по возможностям бесплатных версий. 

Читать далее
Total votes 7: ↑5 and ↓2+3
Comments4

CI/CD из GitHub в Яндекс Облако через Docker

Reading time6 min
Views13K

Всем привет!

Будем использовать GitHub Actions. Создадим виртуальную машину в Яндексе. И многое другое.

Сегодня настраиваем деплой из GitHub в Яндекс Облако, используя Docker compose.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments6

Немного о WebEngine — low-code IDE для разработки современных веб-приложений

Reading time9 min
Views7.5K

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

С огромной гордостью, хочу анонсировать WebEngine - IDE и набор технологий для создания современных сайтов на React, а в дальнейшем Angular, Vue, тем для WordPress, приложений на Electron и многое другое.

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

td;lr
Total votes 15: ↑15 and ↓0+15
Comments26

Стратегии тестирования микросервисов

Reading time11 min
Views36K

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

Читать далее
Total votes 13: ↑12 and ↓1+13
Comments4

5 советов по созданию лучших диаграмм архитектуры решения

Reading time6 min
Views7K

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

Читать далее
Total votes 9: ↑5 and ↓4+2
Comments1

Как перестать велосипедить или 4 self-hosted сервиса для начинающего СТО

Reading time3 min
Views16K

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

Слезть с велосипеда
Total votes 30: ↑29 and ↓1+32
Comments5

Парсим ГАР БД ФИАС в удобный формат в питоне. Бесплатно, без регистрации и СМС

Reading time8 min
Views29K

20160419_182146


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


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


"В чем же подвох?", — спросите вы, прищурившись.


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

Читать дальше →
Total votes 25: ↑15 and ↓10+9
Comments25

Децентрализованный поиск для свободного веба

Reading time12 min
Views10K

Возможно ли создать поисковую систему, которую тяжело подвергнуть цензуре, влиянию и блокировке?

Говоря техническим языком, возможно ли выполнять полнотекстовый поиск не имея удаленного сервера, удобным для пользователя способом, одновременно храня поисковый индекс в peer-to-peer системе и имея возможность быстро обновлять поисковый индекс?

Да, это возможно!

Под катом описание архитектуры поискового движка Summa на Rust и набора приемов, позволивших ответить утвердительно на все вопрос

Читать далее
Total votes 53: ↑51 and ↓2+61
Comments21

Event Storming: что будет, если запереть 10 человек в одной комнате

Reading time8 min
Views8.4K

Меня зовут Александр Донсков и я архитектор в компании REG.RU. Сегодня я расскажу о том, что такое Event Storming и что будет, если запереть 10 человек в одной комнате (в том числе виртуальной). Цель статьи не столько в том, чтобы рассказать, как это работает, сколько показать действенность подхода на реальных кейсах.

Читать далее
Total votes 8: ↑7 and ↓1+6
Comments2

Нефункциональные требования: как не пустить систему ко дну

Reading time9 min
Views43K

Привет, Хабр! Меня зовут Елена, я ведущий аналитик ИТ-компании SimbirSoft. Сегодня хочу затронуть такую тему, как нефункциональные требования к ИТ-продукту, которым не всегда уделяется должное внимание, а зря. Их несоблюдение может привести к потере прибыли, клиентов, репутации, остановке производственных процессов и большим штрафам, хотя с первого взгляда их влияние на осуществление пользовательского функционала неочевидно. 

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

- мощности и производительности

- безопасности, соответствию стандартам и законодательству

- переносимости и совместимости.

Читать далее
Total votes 10: ↑10 and ↓0+10
Comments9

Создаем личное файловое облако легко и просто (и дешево)

Reading time13 min
Views135K

А сегодня мы с вами быстро и решительно легко и просто поднимем свое личное файловое облако типа Google Drive или Яндекс.Диск, а если повезет, то еще и очень дешево.

Зачем? Ну, например, потому что не хотим зависеть от корпораций с их кабальными лицензионными соглашениями и сменой условий задним числом. Или потому что нам хочется приватности. Или просто потому что можем. А бонусом на нашем сервере вы потом сможете еще установить VPN или прокси для доступа к запрещенным сайтам, или поднять простенький веб-сайтик.

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

Читать далее
Total votes 79: ↑71 and ↓8+84
Comments233

Грокаем функторы

Reading time6 min
Views12K

Это перевод статьи из целого цикла постов "Грокаем функциональное программирование" Мэта Торнтона. Я позволил себе немного поменять порядок постов. В оригинале, функторы идут после монад, что мне показалось неверным. Всякая монада - это функтор, но не всякий функтор - это монада. Также я убрал дублирование из поста про монады и добавил необходимые пояснения. Мне нравится практическая направленность материала. Он довольно подробно останавливается на базовых вещах, так что скорее предназначен для тех, кто только знакомится с функциональным программированием.

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

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments11

Information

Rating
Does not participate
Location
London, England - London, Великобритания
Registered
Activity