Pull to refresh
41
0
Юрий Богомолов @YBogomolov

Ментор по ФП на TypeScript

Send message

Как приручить DDD. Часть 2. Практическая

Reading time16 min
Views23K

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

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

Читать далее
Total votes 24: ↑22 and ↓2+20
Comments3

Что в голове у программиста? ч.3

Reading time5 min
Views7.5K

Как и обещал, с этой части стартует не просто рассуждение про особенности, но и конкретные рекомендации и упражнения, направленные на минимизацию деструктивного влияния особенностей "интеллектуалов".

Если вы не понимаете, о чём идет речь, то рекомендую ознакомиться с первыми частями: часть 1, часть 2.

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

Узнать как жить лучше
Total votes 12: ↑12 and ↓0+12
Comments19

План самостоятельного обучения DDD, CQRS, EventSourcing

Reading time7 min
Views39K

Если вы собрались плотно погрузиться в тему Doman Driven Design (DDD), о том как его применять, как использовать, для чего он нужен, и как с ним связаны Command and Query Responsibility Segregation (CQRS), Event Sourcing и другие термины из мира DDD то можно воспользоваться планом обучения, который последовательно погрузит вас в эти темы и поможет сориентироваться. Часть информации на русском, часть на английском языке, так как русскоязычных аналогов я не смог найти.

Погрузиться в DDD
Total votes 36: ↑35 and ↓1+34
Comments4

Самый полный чек-лист для защиты от мошенников

Reading time17 min
Views157K

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

Читать далее
Total votes 148: ↑146 and ↓2+144
Comments169

Более 10 лет ставлю цели на год: рассказываю, как это делать эффективно

Reading time12 min
Views186K

Меня зовут Павел Комаровский, и я алкоголик занимаюсь саморазвитием уже более 10 лет. Эта статья о том, какой подход к личному целеполаганию я выработал для себя в итоге – надеюсь, она поможет вам избежать ошибок, которых в своё время наделал я.

Я полностью прошёл все стадии грехопадения: в студенческие годы искал сакральные ответы в стопках self-help макулатуры; затем разочаровался и решил, что весь этот «успешный успех» – это разводилово для дурачков (до сих пор уверен, что Наполеон Хилл – шизофреник); позже переосмыслил всё ещё раз и пришёл к своему пониманию того, как может выглядеть саморазвитие с адекватным лицом.

Читать далее
Total votes 103: ↑92 and ↓11+81
Comments223

Стивен Вольфрам: кажется, мы близки к пониманию фундаментальной теории физики, и она прекрасна

Reading time70 min
Views380K
В продолжение моего поста про вычислимую Вселенную я хочу представить вам свой перевод статьи Стивена Вольфрама, созданной в рамках его проекта The Wolfram Physics Project.


Неожиданное открытие


За прошедшие несколько веков произошел настоящий прорыв в наших знаниях о принципах работы окружающего нас мира. Но несмотря на это, у нас все еще нет фундаментальной теории физики, и мы все так же не имеем ответа на вопрос о том, как именно работает наша Вселенная. Я занимаюсь этой темой уже порядка 50-и лет, но только в последние несколько месяцев все кусочки пазла наконец-то начали складываться вместе. И получающаяся картина оказалась гораздо прекрасней, чем все, что я только мог себе представить.
Читать дальше →
Total votes 317: ↑312 and ↓5+307
Comments459

Кто такие шизоиды, где они обитают, и почему вам может быть полезно о них узнать

Reading time35 min
Views145K

Основные стереотипы о шизоидах в одной картинке

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

Сам этот характер довольно тяжело описать одновременно коротко и корректно. Некоторые называют их «гиками», «интровертами», «чудаками», «ботаниками», «хикканами», «эксцентричными», «нердами», «компьютерными гениями»[1, стр. 231], и все эти характеристики в той или иной мере имеют отношение к, собственно, шизоидам, но ни одна из них не является определяющей.

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

Большая часть литературы, посвящённой шизоидам, имеет клиническую направленность и описывает достаточно тяжёлые случаи шизоидизации, а в рамках этого текста я хотел бы рассказать о здоровых шизоидах, коих среди нас присутствует достаточно для того, чтобы их особенности имели значение в контексте трудовых отношений, управления и маркетинга.
Читать дальше →
Total votes 170: ↑163 and ↓7+156
Comments351
Вру, я Алина и я работаю UX/UI дизайнером. И моя, казалось бы, идеальная удаленная работа этой осенью довела меня до бессонницы. Я слышала о ней раньше, но не представляла, какой это ад. Да, выжившие трудоголики еще соревнуются, кто меньше поспал и выпил больше таблеток, а негативные эффекты депривации сна отрицают директора крупных компаний, которые выжимают сотрудников до последней капли. Я выжала себя сама, и так же самостоятельно мне пришлось искать причины бессонницы и выводить себя из этого чертова состояния.
история одной борьбы
Total votes 56: ↑32 and ↓24+8
Comments64

Настройка окружения в CLI. WSL / Windows Terminal

Reading time17 min
Views81K
Есть люди, которые большинство рабочего времени проводят в консоли, есть те, кто пользуются терминалом при необходимости, запуская что-то по инструкциям. Но я думаю, что каждый айтишник, будь он разработчиком, сисадмином, сетевым инженером, или даже senior yaml developer`ом, пользуется command line interface. Далеко не все задумываются об улучшении рабочего окружения в CLI и повышении продуктивности работы в терминале. Мне хотелось бы поделиться своим опытом настройки окружения для работы с Linux из Windows.



Из статьи вы узнаете, какими средствами и каким терминалом актуально пользоваться в настоящее время для запуска Linux приложений в Windows 10. Речь пойдёт о WSL 2 и Windows Terminal, набирающим всё большую популярность у пользователей, которым для работы нужен Linux. Так как большинство use-case`ов у меня связаны с удалённым подключением через SSH, большая часть информации будет релевантно для случаев удалённых подключений, со всеми особенностями, связанными с этим (пробросом ssh ключей через ssh agent, пробросом X-сервера, управлением подключениями etс).

Внимание! Под катом много картинок и ужатого, но местами объёмного, gif`а, рекомендуется открывать статью при наличии соответствующего доступа к интернету. Заходите под кат, если вам актуален запуск Linux утилит под Windows, оптимизация работы в окружении CLI, или вы просто любите технические тексты и цветные терминалы. Текст я постарался скрасить скринкастами и скриншотами терминала, чтобы было не скучно.
Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments33

Большой гайд по UTM-меткам: как узнать, откуда приходят пользователи

Reading time20 min
Views249K
Большой гайд по UTM-меткам: как узнать, откуда приходят пользователи

Способы разметки ссылок придуманы давно. Но как обычно, разные стандарты смешались и выбрать правильный формат не так просто. Оставим в стороне случаи, когда владелец площадки возражает против размеченных ссылок (а это не такой уж редкий случай). Разберемся в деталях — какие и когда UTM-метки ставить и что с ними делать дальше.

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

Компания GitLab из-за политики прекращает набор инженеров из России и Китая

Reading time2 min
Views141K


2 недели назад в публичном трекере компании GitLab, стоящей за популярным одноимённым Open Source-решением для разработчиков и DevOps-инженеров, появился issue под названием «WIP: блокировка инженерных должностей по стране проживания». Сегодня о нём стало известно широкой общественности, и это событие вызвало огромный резонанс в англоязычном интернете. Достаточно сказать, что на одной только странице оригинала злополучного issue уже оставлено более 100 комментариев, и их число увеличивается буквально с каждой минутой…

Итак, публикуем перевод виновника бурных обсуждений:
Читать дальше →
Total votes 192: ↑176 and ↓16+160
Comments837

Типизированный DSL в TypeScript из JSX

Reading time5 min
Views6.1K


У TypeScript есть встроенная поддержка JSX синтаксиса и компилятор TypeScript'а предоставляет годные инструменты по настройке процесса компиляции JSX. По сути, это создает возможность писать типизированный DSL используя JSX. В этой статье речь пойдет именно про это — как написать DSL из г с помощью JSX. Заинтересовавшихся прошу под кат.

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

Выпуск Rust 1.30

Reading time6 min
Views8.8K

Команда разработчиков Rust рада сообщить о выпуске новой версии Rust: 1.30.0. Rust — это системный язык программирования, нацеленный на безопасность, скорость и параллельное выполнение кода.


Если у вас установлена предыдущая версия Rust с помощью rustup, то для обновления Rust до версии 1.30.0 вам достаточно выполнить:


$ rustup update stable

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


Что вошло в стабильную версию 1.30.0


Rust 1.30 — выдающийся выпуск с рядом важных нововведений. Но уже в понедельник в официальном блоге будет опубликована просьба проверить бета-версию Rust 1.31, которая станет первым релизом "Rust 2018". Дополнительную информацию об этом вы найдете в нашей предыдущей публикации "What is Rust 2018".


Процедурные макросы


Еще в Rust 1.15 мы добавили возможность определять "пользовательские derive-макросы". Например, с помощью serde_derive, вы можете объявить:


#[derive(Serialize, Deserialize, Debug)]
struct Pet {
    name: String,
}

И конвертировать Pet в JSON и обратно в структуру, используя serde_json. Это возможно благодаря автоматическому выводу типажей Serialize и Deserialize с помощью процедурных макросов в serde_derive.


Rust 1.30 расширяет функционал процедурных макросов, добавляя возможность определять еще два других типа макросов: "атрибутные процедурные макросы" и "функциональные процедурные макросы".

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

Actions on Google: пишем простое приложение для Google Ассистента на Dialogflow и Cloud Functions for Firebase

Reading time10 min
Views18K
В конце прошлого месяца состоялся официальный релиз Google Ассистента на русском языке, так что самое время разобраться, как делать свои приложения (экшены) для Ассистента на стандартном технологическом стеке Google. В этой статье мы рассмотрим создание экшена в Actions on Google, разберём процесс извлечения сущностей и интентов из фраз в Dialogflow, узнаем, как писать обработчики извлеченной информации и работать с сетью в Cloud Functions for Firebase.


Рис. 1. Архитектура приложения для Ассистента.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments1

Функциональная архитектура — это порты и адаптеры

Reading time9 min
Views22K
Представляю вашему вниманию новую статью Mark Seemann. Похоже, с таким количеством переводов он скоро станет топовым хаброавтором, даже не имея здесь аккаунта!

Чем интересна функциональная архитектура? Она имеет тенденцию попадать в так называемую «яму успеха» («Pit of Success»), в условиях которой разработчики оказываются в ситуации, вынуждающей писать хороший код.


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

Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments14

Как без проблем просыпаться рано по утрам

Reading time8 min
Views81K

image


У меня ушло четыре года на исследования, эксперименты и оправдания, но я наконец-то смог управлять привычкой рано вставать по утрам. И оно того стоило. Полагаю, что вы читаете эту статью, потому что тоже пытались развить эту привычку (вероятно, не раз), но по каким-то причинам потерпели неудачу.


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

Читать дальше →
Total votes 62: ↑36 and ↓26+10
Comments101

Play with Docker — онлайн-сервис для практического знакомства с Docker

Reading time4 min
Views67K


В конце прошлого года два капитана Docker представили свою разработку под названием Play with Docker (PWD) — «игровую площадку для Docker». Пользователям предлагается бесплатно поработать со сборкой и запуском Docker-контейнеров прямо в веб-браузере, а также выполнить лабораторные работы для знакомства с Docker с нуля и совершенствования своих навыков.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments6

Что за болезнь: рак. Как снизить риски

Reading time7 min
Views28K
В прошлой заметке мы собрали список факторов, которые повышают риск рака. В этой статье эксперты проекта Solo биомедицинского холдинга Атлас расскажут, какие факторы снижают риск развития злокачественной опухоли.


Иллюстрации: Майкл Ковальски
Читать дальше →
Total votes 26: ↑24 and ↓2+22
Comments93

Эпигенетические часы и другие биомаркеры старения

Reading time10 min
Views42K

Что такое биомаркер старения и зачем он нужен?


Все мы знаем кого-то, кто “прекрасно сохранился” для своего возраста, и кого-то, кто “стар не по годам”:


Собственно, биомаркеры старения нам как раз и нужны для того, чтобы можно было объективно сказать: да, вам 50, но здоровье у вас на уровне 35-летней. А вот вам, молодой человек, стоило бы повнимательней отнестись к своему здоровью — ваш биологический возраст на 10 лет превышает хронологический, а это чревато 48%-ым повышением риска смерти.

При чём тут старение и вероятность смерти? А при том, что у людей, как и у большинства млекопитающих, старение сопровождается экспоненциальным риском смертности:


И если в 30 лет годовая вероятность умереть у вас составляет 1 шанс на тысячу, то к 80 она повышается в 100 раз. Именно это возрастное повышение вероятности умереть геронтологи и называют старением. И нет, стареет далеко не “всё живое”. Есть виды, которые с возрастом наоборот “молодеют” — их вероятность смерти падает, а плодовитость повышается:
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments44

Information

Rating
Does not participate
Location
Испания
Date of birth
Registered
Activity