Pull to refresh
2
0

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

Send message

Восхитительная теория [якорных] баз данных от Ларса Рённбека

Level of difficultyMedium
Reading time10 min
Views5.8K

Обнаружил серию статей по принципам организации информации и базам данных от математика из Стокгольмского университета и с энтузиазмом перевожу. Моя уверенность в том, что реляционки с 3-й формой нормализации - лучшее, что придумало человечество, резко убавилась... Я бы назвал это "субъективной теорией информации", автор называет "Transitional modeling", но обычно это применяется под названием "якорная модель данных"...

Читать далее
Total votes 9: ↑7.5 and ↓1.5+6
Comments16

Применение DDD. От моделей до EDM — поиск новых форм и архитектурные излишества

Reading time14 min
Views5.9K

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



DDD не на коленке, а за дорого ;)

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

Как я пробовал внедрять DDD. Агитация и пропаганда

Reading time6 min
Views2.6K

Моё знакомоство с предметметно-ориентированным проектированием началось не совсем книги, а конференций 2019 года. Встречи с коллегами на AgileDays 2019, DDDevotion, DotNext, ArchDays позволили ясно увидеть два лагеря: не многих у кого DDD заработал, и многих кто хотел, но не взлетает. Это натолкнуло на длинные рассуждения, что DDD применим только при определённых производственных отношениях, а команды должны эффективно обучаться и применять на практике DDD.


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


Читать дальше →
Total votes 9: ↑2 and ↓7-5
Comments6

Концепция имплицитов в Scala

Reading time6 min
Views1.9K

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

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

Читать далее
Total votes 15: ↑12 and ↓3+9
Comments3

ФП виновно в снижении стоимости программ. Вот мои доказательства, господа присяжные заседатели

Level of difficultyMedium
Reading time12 min
Views12K

Среди особенностей моего подхода к разработке у моих заказчиков, коллег и студентов наибольшее сопротивление вызывает использование Spring Data JDBC, а не [Spring Data] JPA (де-факто стандарта работы с БД на платформе Java).

Изначально я собирался писать пост "Почему не JPA", но немного подумав понял, что ответ умещается в одно предложение: потому что JPA по своей природе (persistence context и dirty checking) не поддерживает неизменяемую модель данных - неотъемлемую часть функционального стиля программирования, который, в свою очередь, является неотъемлемой частью моего подхода к разработке. И это объективный факт.

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

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

Какие ваши доказательства?
Total votes 21: ↑18 and ↓3+15
Comments56

Умные программисты пишут STUPID-код

Level of difficultyEasy
Reading time9 min
Views52K
Умные программисты пишут STUPID-код, ведь они понимают, что неожиданно возникшая сложность может привести к провалу проекта.


▍ Страдание


На момент написания этой статьи на моих часах 21:30.

Этим утром я проснулся в хорошем, оптимистичном настроении, рассчитывая на прекрасный день, но теперь вымотан.

Я вымотан не физически, а, скорее, разочарован тем, что, несмотря на все имеющиеся у нас замечательные технологии, позволяющие писать наилучшее ПО, мы, как люди, профессионально пишущие код, по множеству причин склонны ценить больше сложность, а не простоту.
Читать дальше →
Total votes 81: ↑77 and ↓4+73
Comments77

Записки технического руководителя проектов

Reading time51 min
Views9.5K

Статья была написана мной в 2020 году, после запуска в прод очередной платформы, построенной на микросервисной архитектуре с целью зафиксировать выученные уроки с точки зрения технического руководителя проекта. В проектах участвовало со стороны подрядчика более 300 человек технических специалистов - разработчиков, тестировщиков, аналитиков и др. Поэтому можно сказать, что проекты были достаточно крупными и значимыми.. Теперь уже многие компании - участники проекта либо свернули бизнес в РФ, либо поменяли бренд, а разработанные системы находятся в эксплуатации. Микросервисная архитектура давно не является новой архитектурной парадигмой. Но я думаю, что статья все еще актуальна, как и многие выученные уроки . 

Читать далее
Total votes 12: ↑9 and ↓3+6
Comments9

Scala Digest. Выпуск 9

Level of difficultyEasy
Reading time6 min
Views1.6K

Привет, Хабр! Мы — Рома, Настя и Карина — бэкенд-разработчики Тинькофф, пишем код на Scala и горим желанием его популяризировать. Собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Свою мотивацию черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! 

Читать девятый выпуск
Total votes 8: ↑8 and ↓0+8
Comments1

Примеры формулировок требований по правилам руководства по написанию требований от INCOSE

Level of difficultyEasy
Reading time17 min
Views11K

Примеры формулировок требований в соответствии с руководством по написанию требований от INCOSE

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

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

Теория типов

Level of difficultyMedium
Reading time43 min
Views29K

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

Что можно узнать из этой статьи?
Total votes 75: ↑75 and ↓0+75
Comments70

Лучшая фантастика последних трех лет по версии Goodreads

Reading time5 min
Views132K

GoodrGoodreads — пожалуй, главный книжный сайт англоязычного интернета. Недавно он составил список самых популярных фантастических книг за 2020-2023 годы, опираясь на мнение пользователей. К сожалению, на русский язык переведено далеко не все, однако даже те книги, которые уже можно прочитать в переводе, составляют внушительный список. Вот он.

Читать далее
Total votes 62: ↑58 and ↓4+54
Comments180

Scala Digest. Выпуск 7

Level of difficultyEasy
Reading time6 min
Views2.1K

Привет, Хабр! Мы — Рома, Настя и Карина — бэкенд-разработчики Тинькофф, пишем код на Scala и горим желанием его популяризировать.

Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем дополнительные новости и собственные комментарии. Свою мотивацию мы черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Читать седьмой выпуск
Total votes 15: ↑15 and ↓0+15
Comments0

House of NHTi — от NHTi до ТРЕш. Почему материал об отсталости Эльбрус 8СВ несостоятелен

Level of difficultyEasy
Reading time48 min
Views21K

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

После введения ЕС санкций в отношении МЦСТ, производителя микропроцессоров Эльбрус, и ряда других компаний, я регулярно читаю одни и те же комментарии в интернете, будто бы написанные под копирку, словно пишут их вовсе не реальные люди: «зачем о них вообще говорить, если их нельзя производить», «зачем они нужны при отставании в X раз по производительности», «зачем они нужны, если их система команд основана на изначально не оптимальном подходе VLIW», «Эльбрусы – чисто военная тема и обычное физическое лицо не может их купить без подписания NDA (соглашения о неразглашении)», «Эльбрус нельзя вывозить из страны» и т.д.

Да только вот, даже если и допустить, что под эту музыку и танцуют в большинстве своём боты, то пишут эту музыку вполне реальные люди. И за примерами далеко ходить не надо. Совсем недавно одно такое видео было опубликовано на YouTube-канале House of NHTi (или, как иронично было подмечено на русской раскладке клавиатуры – ТРЕш). Этот канал ведёт вполне себе реальный человек, которого вы можете увидеть справа на фото с его же поста в сообществе на YouTube. На habr он опубликовал статью с тем же текстом под ником RiddleRider, а в Telegram он пишет посты в канале House of NHTi и сообщения в различного рода чатах под ником qfd01 (Dron).

В этом материале попробуем разобрать статью RiddleRider / Dron / Василия. Я дам свою критику этой статьи и постараюсь ответить на вопрос, в самом ли деле состоятельны аргументы о "тупиковости" Эльбруса и может ли человек, будучи в здравом уме, называть МЦСТ "компанией-паразитом". Что у них с финансированием, поставками, открытостью платформы и т.д. - разберём в этом материале.

Читать далее
Total votes 181: ↑105 and ↓76+29
Comments245

Scala Digest. Выпуск 6

Level of difficultyEasy
Reading time7 min
Views1.8K

Привет, Хабр! Мы — Рома, Настя и Карина — бэкенд-разработчики Тинькофф, пишем код на Scala и горим желанием его популяризировать.

Мы собираем и агрегируем новости из разных источников, включая Scala Times, блог Petr Zapletal и канал Scala Nishtyaki, добавляем другие интересные новости и собственные комментарии. Свою мотивацию мы черпаем из желания развиваться и делиться полученными знаниями. Приветствуем любую обратную связь! (づ ◕‿◕ )づ

Читать шестой выпуск
Total votes 10: ↑10 and ↓0+10
Comments1

Типы, больше типов

Level of difficultyMedium
Reading time17 min
Views5.8K

При описании модели данных, часто приходится создавать новые типы, в первую очередь, используя такие ключевые слова как class/struct/record. Я же предлагаю взглянуть на случаи, когда моделируемая сущность, описывается существующими, часто простыми типами, такими как целое число или строка. В статье хочу поделиться мыслями, которые привели меня к использованию специальных типов там, где часто используются встроенные: int, string и тому подобные. И как удобно (относительно) это делать. Примеры приведу на языках Scala, Go и C++.

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

Опыт интеграции .NET Core+ приложений с HashiCorp Vault

Level of difficultyMedium
Reading time14 min
Views4.2K

Привет, Хабр! В этой статье я хотел бы поделиться опытом нашей команды в части интеграции .NET Core и выше приложений с корпоративным хранилищем секретов HashiCorp Vault.

Наши приложения, как и большинство приложений в компании, используют в процессе работы различные секреты (пароли, токены и т.д.). Их, с точки зрения информационной безопасности, нельзя хранить в коде или на компьютере, на котором запущено приложение. Поэтому в компании используется специальное ПО – хранилище секретов HashiCorp Vault.

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

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

Промежуточное руководство по производным в Scala: Magnolia

Reading time7 min
Views894

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

Примечание: Этот пост предназначен для пользователей Scala среднего (intermediate) уровня. Если же вы еще не знакомы с данной темой, я рекомендую начать с введения для начинающих.

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

Архитектурный компромисс в enterprise. Опыт Alfa People. Наш путь сквозь джунгли

Level of difficultyMedium
Reading time16 min
Views5.2K

Здравствуйте, меня зовут Дмитрий Марков. Я архитектор направления в Альфа-Банке. В этой статье мы поговорим об архитектуре, как ни странно. Без космических «прорывов» и «аналоговнет». Всё жизненно. 

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

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

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

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

Читать далее
Total votes 27: ↑26 and ↓1+25
Comments3

Классы и объекты в Scala

Level of difficultyEasy
Reading time9 min
Views2.3K

Привет, Хабр!

Меня зовут Дмитрий Мулло, я сотрудник Группы «Иннотех».

В этой статье на несложных примерах рассматриваются понятия объектно‑ориентированного программирования, такие как «класс» и «объект», помогающие структурировать код приложения.

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

Как я писал свой распределенный мессенджер на Scala/fs2 и немного lock-free. Часть 1: Архитектура и бизнес-логика

Level of difficultyMedium
Reading time14 min
Views2.5K

Привет, хабр!

Данная задача в разных вариациях мне давалась на нескольких собеседованиях несколько лет назад. Хоть мой дизайн и проходил, мне стало интересно реализовать это в коде с нуля. Сыроватый и сильно урезанный по функционалу MVP готов, ссылка на github будет под катом. Пока что мной запланировано 3 статьи - эта, по бэкенду и по фронту. Будет много кода на scala, много котов (cats effect), стримов (fs2), пара lock-free техник, scala js, и постараюсь сделать так, чтобы мозг от всего этого не взорвался.

Все, кому интересно - добро пожаловать под кат.

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

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Registered
Activity