Pull to refresh
-2
0
Александр Семибратов @semibratov

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

Send message

Что такое аутстаффинг в России и по каким критериям выбирать аутстафф-подрядчика

Level of difficultyMedium
Reading time7 min
Views8.6K

Мы ответили на эти вопросы, когда готовили новый рейтинг агентств-аустафферов. Кто-то скажет: «Пфф, это же очевидно, чего тут разбираться?». Кажется, что не всё так просто.

Читать далее
Total votes 12: ↑4 and ↓8-2
Comments9

Один день из жизни JVM-инженера

Reading time27 min
Views21K


Можно разрабатывать на Java, а можно разрабатывать Java. Есть люди, чей код исполняет виртуальная машина — а есть люди, чей код и есть виртуальная машина.


Вроде бы те и другие существуют в одной Java-экосистеме, но задачи совершенно разные. Поэтому редкое место, где они пересекаются и могут что-то поведать друг другу — Java-конференции. Мы проводим их регулярно (уже в апреле будет JPoint). И на предыдущей нашей конференции Иван Углянский dbg_nsk поделился с Java-разработчиками тем, как всё выглядит с его стороны.


Чем он вообще занимается? Почему JVM-инженеры всё так медленно делают? На каком языке стоит писать рантайм, а на каком компилятор? Как «папка бога» в Windows привела к неожиданным последствиям? Может ли «обычный джавист» стать JVM-инженером?


Поскольку все эти вопросы из доклада звучат интересно, мы решили для Хабра сделать его текстовую версию (а для тех, кому удобнее видео, прикладываем ссылку на ютуб). Далее повествование идёт от лица Ивана.

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

Что читать техлиду: 7 увлекательных книг

Reading time6 min
Views28K

Какие качества отличают хорошего технического лида? Уверены, как минимум инициативность, стратегическое видение, интерес к новым практикам и инструментам, идущие рука об руку с желанием постоянно развиваться. Немалую роль в lifelong learning техлида могут сыграть правильно подобранные книги.

Немет, Луц, Лав, Танненбаум, Страуструп, Олифер, Лукас — вот лишь некоторые известные авторы, о которых мы сегодня не будем говорить. Надеемся, что раз вы стали лидером технической команды, то с фундаментальной литературой в своей области знаний знакомы не понаслышке.

Под катом рекомендуем 7 изданий о soft-skills, методологиях, управлении командами и проектами.

Читать далее
Total votes 57: ↑55 and ↓2+60
Comments16

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

Reading time10 min
Views9.4K

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

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

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

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

DDD, HEXAGON, HIBERNATE, не считая JOOQ. Часть 2: гексагональная архитектура

Reading time9 min
Views4.6K

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

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

Киногид управленца

Reading time4 min
Views6.9K

В 1939 году Курт Левин проводит социальный эксперимент среди 10-летних детей с целью выявления типов лидерства и их влияния на работу в команде. Возможно, выводы Левина не будут открытием для читателей, знакомых с «Повелителем мух», однако некоторые наблюдения не перестают удивлять. Диктатура дисциплинирует, но убивает творчество; демократия плодит креативность, но уменьшает производительность, а либерализм вызывает агрессию. Так ли все однозначно? Не совсем.

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

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

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

DDD, HEXAGON, HIBERNATE, не считая JOOQ. Часть 1

Reading time8 min
Views6K

Статья написана для java разработчиков, создающих системы со сложной предметной областью. Система, как правило, представлена сетью микросервисов или модульным монолитом. В рамках такой системы обычно содержится большое количество сущностей (JPA/JOOQ), которые одновременно используют как технические, так и бизнес-сущности. Смена технологической базы по прошествии нескольких лет разработки для такой системы является очень дорогостоящим решением. Доработки бизнес-функционала занимают большое количество времени.

В первой части статьи проведем теоретический обзор основных терминов и паттернов гексагональной архитектуры и Domain Driven Design или сокращенно DDD.

Какие проблемы вы сможете решить, прочитав статью

Вероятно,

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

Блеск и нищета модели предметной области

Reading time28 min
Views50K


Мартин Фаулер в книге «Patterns of Enterprise Application Architecture» описывает «Модель предметной области (Domain Model)» как сложный подход к организации бизнес-логики. Метод заключается в создании классов, соответствующих объектам предметной области из реального мира как с точки зрения структуры данных, так и поведения. При этом технические аспекты, такие как хранение данных, аутентификация и авторизация, управление транзакциями, выносится за пределы слоя бизнес-логики. Паттерн реализуется одним из двух способов:

  1. Богатая (насыщенная) модель — данные и поведение инкапсулируются внутри объектов предметной области.
  2. Анемичная модель — в объектах предметной области инкапсулируются только данные, поведение (методы) выносится в отдельный слой сервисов.

Фаулер и Эванс считают анемичную модель анти-паттерном. Однако многие кодовые базы, с которыми мне доводилось работать, реализованы именно в стиле «анемичной» модели. Под катом расшифровка и видео моего доклада с DotNext 2019 Moscow, посвященного сравнению сильных и слабых сторон обоих подходов и не очевидным деталям реализации модели предметной области в парадигме ООП и в функциональном стиле.
Читать дальше →
Total votes 36: ↑34 and ↓2+45
Comments46

Покажи мне свой Git, и я скажу, кто ты

Reading time15 min
Views37K

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

Я Александр Кириллов, технический директор компании Evrone. Больше 20 лет я посвятил разработке. В этой статье поделюсь с вами опытом, который собрал за время работы с распределенными командами. Расскажу о том, как, не нарушая приватность разработчиков, следить за качеством работы на проектах и отслеживать нежелательные паттерны с помощью метрик в Jira и Git.

Читать далее
Total votes 63: ↑53 and ↓10+53
Comments26

Глубокое погружение в Java Memory Model

Reading time53 min
Views140K


Я провел в изучении JMM много часов и теперь делюсь с вами знаниями в простой и понятной форме.


В этой статье мы подробно разберем Java Memory Model (JMM) и применим полученные знания на практике. Да, в интернете накопилось достаточно много информации про JMM/happens-before, и, кажется, что очередную статью про такую заезженную тему можно пропускать мимо. Однако я постараюсь дать вам намного большее и глубокое понимание JMM, чем большинство информации в интернете. После прочтения этой статьи вы будете уверенно рассуждать о таких вещах как memory ordering, data race и happens-before. JMM — сложная тема и не стоит верить мне на слово, поэтому большинство моих утверждений подтверждается цитатами из спеки, дизассемблером и jcstress тестами.

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

Быстрый способ создать установщик для Java программы

Reading time4 min
Views18K
Вам никогда не надо было быстро создать установщик для своего Java-приложения, но не хотелось тратить на это кучу времени, создавая свой собственный? Возможно, вы удивитесь, но в стандартной поставке JDK7 такой инструмент уже присутствует.
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments12

Information

Rating
Does not participate
Registered
Activity