Pull to refresh
8
0.1
vp_arth @vp_arth

Архитектура ПО

Send message

Не пропусти это при работе с Nx

Level of difficultyMedium
Reading time4 min
Views4K

Работая с монорепозиторием, ты наверняка слышал о наборе инструментов Nrwl Nx. Если вкратце, то Nx ускоряет и упрощает работу с монорепой, снабжает полезными утилитами. Держи документацию.

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

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

Итак, что же ты мог упустить при работе с Nx:

nx run-many
dependency graph + nx affected
nx-enforce-module-boundaries es-linting
computation cache
nx cloud
buildable libs 

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

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

Reading time7 min
Views38K

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

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

Полезные консольные Linux утилиты

Reading time13 min
Views108K

В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.


Осторожно много скриншотов. Добавил до ката утилиту binenv.


binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

Читать дальше →
Total votes 118: ↑114 and ↓4+110
Comments110

Валидация UTF-8 меньше чем за одну инструкцию на байт

Reading time9 min
Views23K


Даниэль Лемир – профессор Заочного квебекского университета (TÉLUQ), придумавший способ очень быстро парсить double – совместно с инженером Джоном Кайзером из Microsoft опубликовали ещё одну свою находку: валидатор UTF-8, обгоняющий библиотеку UTF-8 CPP (2006) в 48..77 раз, ДКА от Бьёрна Хёрманна (2009) – в 20..45 раз, и алгоритм Google Fuchsia (2020) – в 13..35 раз. Новость об этой публикации на хабре уже постили, но без технических подробностей; так что восполняем этот недочёт.
Читать дальше →
Total votes 122: ↑122 and ↓0+122
Comments14

Корутины в C++20. Часть 2

Reading time6 min
Views7.5K

Введение


Данная статья является продолжением данной статьи.


Бесконечный поток данных при помощи co_yield


Код ниже реализует бесконечный поток данных. Корутина getNext использует co_yield для создания потока данных который начинается со start и выдает по запросу каждое новое значение с шагом step.

Читать дальше →
Total votes 11: ↑10 and ↓1+9
Comments11

Про установку и использование LineageOS 16, F-Droid

Reading time127 min
Views311K
Предлагаю вашему вниманию инструкцию как оптимально (по моему мнению) перейти на свободное программное обеспечение при использовании смартфона на примере операционной системы LineageOS (далее сокращённо LOS) и приложений из F-Droid.

Я думаю, что это статья будет вам интересна, даже если вы не можете установить себе LOS, так как в данной статье также рассмотрены стандартные настройки Android, настройки и методика использования полезных приложений, магазин приложений F-Droid, разрешения Android, которые нельзя ограничить и другие, возможно полезные для вас нюансы.
Читать дальше →
Total votes 74: ↑72 and ↓2+70
Comments192

Архитектор ПО: зачем он нужен и в чём его проклятие

Reading time4 min
Views20K
Гость нового выпуска подкаста «Сушите вёсла» — архитектор программного обеспечения Егор Тафланиди. Обсуждаем, что это за метафизическая роль такая, какие сложности есть в работе и при чём тут тёмные силы.

image

Артём Кулаков и Рома Чорыев — разработчики Redmadrobot. Они записывают ламповые подкасты, где вместе с гостями обсуждают разные стороны создания ИТ-продуктов. Ниже ссылка на новый выпуск и ответы на несколько насущных вопросов.

Total votes 15: ↑14 and ↓1+13
Comments3

Памятка по борьбе с алкоголем или Как пережить фуршеты

Reading time20 min
Views174K
Тут вот праздники скоро. Спросил недавно друг «как мне это все пережить?». Я сначала объяснял, а потом решил написать статью на Хабр. Рассказанное — услышит один человек, а написанное — прочитают сотни!

Меня, если честно, достаточно сильно раздражают всевозможные застолья. Потому что гораздо приятнее посидеть с паяльником или читая книгу, а не "… хорохорясь, ерепенясь и валяясь, как колода..." провести выходные. Но традиции-с, будь они неладны, формировались столетиями и не умея пить — бывает достаточно сложно вписаться в коллектив, найти нужный подход и т.д. Особенно грешат этим делом всевозможные руководящие кадры из старого поколения. Что же делать тем, для кого алкоголь и необходимость его употреблять — это просто лишняя головная боль? Самый простой ответ — НЕ ПИТЬ, но на практике полностью это очень сложно реализовать. Эффективнее в наших реалиях принять тезис «алкоголь — просто инструмент» и учиться с ним правильно работать и использовать для решения своих задач с минимизацией ущерба для здоровья.

Статью кладем в закладки и рассылаем всем друзьям, подчиненным и т.д. и т.п. Есть время подготовиться и встретить новогодние корпоративы во всеоружии. Практически уверен, что многое из описанного активно используют те, кто «не напиваться» обязан по долгу службы. Простой же обыватель чаще про это не думает, полагаясь на удачу и легкую руку. И чаще всего оказывается в проигрыше. Предупрежден = вооружен, поэтому под катом читаем, как победить в битве с алкоголем.

Читать дальше →
Total votes 191: ↑155 and ↓36+119
Comments478

Чего стоит идея и как превратить ее в концепт: инструменты геймдизайнера

Reading time8 min
Views13K


«Идея ничего не стоит» — эту мантру слышал наверное каждый геймдизайнер. Важны лишь концепт и реализация. Только на бумаге или экране компьютера идея начинает обретать смысл и форму. И я задался вопросом: а есть ли какие-то базовые принципы по превращению идеи в концепт?

Внутри перевод с краткой теорией и практическими советами для всех, кто ждет вдохновения или не знает, с чего начать.
Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments3

Используем console.log() в Chrome на полную

Reading time3 min
Views40K


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


Отладка — почти как расследование преступления, где главный преступник тоже вы — Филипе Фортес


Но помимо повсеместно используемой функции console.log(), есть ещё много инструментов, позволяющий сильно упростить процесс. Давайте разберём некоторые из них на простых примерах.

Читать дальше →
Total votes 25: ↑20 and ↓5+15
Comments13

Делаем адаптивный HTML, добавляя одну строку в CSS

Reading time4 min
Views191K
image

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

И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

Рассмотрим все подробнее.
Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments103

Какое главное отличие Dependency Injection от Service Locator?

Reading time5 min
Views53K
Ха, какая изящная маскировка Service Locator-а под DI. Даже может показаться, что это DI! :-)

Это первый коммент к моей предыдущей публикации "Dependency Injection, JavaScript и ES6-модули". Спасибо коллеге symbix 'у за этот коммент, т.к. именно он стало причиной погружения в тонкости отличия одного от другого. Под катом мой ответ на вопрос в заголовке.


image


(КДПВ особого смысла не имеет и предназначена в первую очередь для визуального опознания этой публикации в ряду других)

Читать дальше →
Total votes 25: ↑21 and ↓4+17
Comments25

Используем Secure Boot в Linux на всю катушку

Reading time17 min
Views110K


Технология Secure Boot нацелена на предотвращение исполнения недоверенного кода при загрузке операционной системы, то есть защиту от буткитов и атак типа Evil Maid. Устройства с Secure Boot содержат в энергонезависимой памяти базу данных открытых ключей, которыми проверяются подписи загружаемых UEFI-приложений вроде загрузчиков ОС и драйверов. Приложения, подписанные доверенным ключом и с правильной контрольной суммой, допускаются к загрузке, остальные блокируются.


Более подробно о Secure Boot можно узнать из цикла статей от CodeRush.



Чтобы Secure Boot обеспечивал безопасность, подписываемые приложения должны соблюдать некоторый «кодекс чести»: не иметь в себе лазеек для неограниченного доступа к системе и параметрам Secure Boot, а также требовать того же от загружаемых ими приложений. Если подписанное приложение предоставляет возможность недобросовестного использования напрямую или путём загрузки других приложений, оно становится угрозой безопасности всех пользователей, доверяющих этому приложению. Такую угрозу представляют загрузчик shim, подписываемый Microsoft, и загружаемый им GRUB.


Чтобы от этого защититься, мы установим Ubuntu с шифрованием всего диска на базе LUKS и LVM, защитим initramfs от изменений, объединив его с ядром в одно UEFI-приложение, и подпишем его собственными ключами.

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

Как сделать офисную кухню через продуктовый подход

Reading time6 min
Views29K
Привет! Я продакт-менеджер в Туту и люблю рассказывать, что важно сначала понять, зачем вы что-то пишете вообще, потом сформулировать требования к результату, а потом уже делать. В качестве примера я часто привожу офисную кухню. Сейчас на пальцах расскажу, что такое продуктовый подход, как с его помощью сделать кухню, и что творится у нас на реальной кухне в офисе.

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



Откуда он взялся? Из простой мысли, что иногда люди выходят из офиса поесть что-то снаружи. Ближайший магазин у нас в 10 минутах от офиса (с учётом спуска-подъёма). Гораздо дешевле и практичнее принести сотрудникам бесплатную еду, чем тратить их время на её поиски, пускай и не за счёт компании. Сначала это были только здоровые закуски, но потом по мере роста офиса стали появляться сосиски, а для тех, кто иногда остаётся ждать ночи перед релизом, — пицца. При этом горячая еда тут не хранится постоянно, а приезжает отдельно.

Давайте проанализируем, как такое решение вообще могло быть принято.
Читать дальше →
Total votes 80: ↑73 and ↓7+66
Comments92

Stack Overflow на русском: инструкция по убийству сообщества

Reading time13 min
Views32K

Когда разнеслись новости не только об открытии Stack Overflow на русском языке, но и об импорте неизвестного мне тогда "Хэшкода", то я решил присоединиться. Чем чёрт не шутит? И знаете, мне понравилось. Небольшое, но сплочённое сообщество, возможность реально улучшить состояние сайта — всё это было глотком свежего воздуха после закостенелого механизированного большого Stack Overflow. Всем телом ощущалась атмосфера демократии. Я был как одним из самых активных отвечающих, так и одним из самых активных дворников; много писал на Мете, активно общался в чате, даже чуть не стал модератором.



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


Учитесь, что называется.

Читать дальше →
Total votes 81: ↑50 and ↓31+19
Comments242

PHP дженерики уже сегодня (ну, почти)

Reading time7 min
Views21K

Если спросить PHP-разработчиков, какую возможность они хотят увидеть в PHP, большинство назовет дженерики.


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


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

Читать дальше →
Total votes 29: ↑23 and ↓6+17
Comments28

CoreOS — Linux для минималистичных кластеров. Коротко

Reading time7 min
Views39K

Что такое CoreOS?



CoreOS — это операционная система на базе Linux для построения легко и гибко масштабируемых кластеров. CoreOS — минималистичный дистрибутив. Установочный ISO образ объемом всего в 136Мб, а в памяти на конечной машине после установки и запуска она займет всего 114Мб. CoreOS основан на ChromeOS, который в свою очередь базируется на Gentoo.

Фактически, CoreOS можно условно можно разделить на следующие части:

  • Systemd — управляет локальными службами на машинах кластера
  • Docker — обеспечивает изоляцию служб, но его использование, в принципе, не обязательно
  • Etcd — распределенно хранит конфигурацию кластера
  • Fleet — обеспечивает распределенное управление службами («надстройка» над systemd)


CoreOS умеет запускать службы systemd на нужных машинах кластера, следить за их состоянием, хранить их конфигурацию.

Читать дальше →
Rating0
Comments2

Зачем исследовать космос? Письмо 1970 года монахине в Африку

Reading time10 min
Views57K
Эрнс Шталингер написал это письмо 6 мая 1970 года сестре Мэри Джаканд, монахине, которая работала среди голодающих детей города Кабве в африканской стране Замбии, в ответ на вопрос о значении освоения космоса. В то время доктор Шталингер был заместителем директора по науке в Центре Космических Полетов Маршалла, в Хэнтсвилле, штата Алабама. Тронутый искренностью и обеспокоенностью Мэри, он направил ей все свои искренние убеждения о ценности исследований космоса. Красноречивое заявление доктора актуально до сих пор, даже спустя четыре десятилетия. Родившись в Германии в 1913 году, доктор Шталингер получил Ph.D. по физике в университете Tuebingen 1936 году. Он был членом немецкой ракетной группы, в Peenemunde и приехал в Соединенные Штаты в 1946 работать на американскую армию в Форт Блисс, штат Техас. Он переехал в Хэнтсвилль в 1950 и продолжил работать для армейского Redstone Arsenal до тех пор пока не был создан центр космических полетов в 1960. Доктор Шталингер был неоднократно награжден и широко известен за свои исследования силовых установок. Он получил награду от министра обороны (Exceptional Civilian Service Award) за участие в запуске Эксплорера-1, первого американского космического спутника.

Читать дальше →
Total votes 236: ↑228 and ↓8+220
Comments308

Сделай сам: MSc Computer Science на уровне топ американских университетов из дома

Reading time12 min
Views161K

Вступление


Давно хотел написать статью про образование в Computer Science, но руки не доходили. Решил все-таки это наконец сделать. Итак, о чем пойдет речь? Речь о том, что из себя представляет диплом MSc Computer Science топовых университетов США (во всех подробностях, включая основные курсы, книги и проекты) и как ему соответствовать.

Почему именно MSc? Это — некая развилка: с одной стороны после MSc — вы уже готовый к жизни инженер (да, речь идет о инженерной подготовке, как мне кажется это самое больное место в нашей системе образования), с другой — можно спокойно идти по пути PhD. Как известно, в PhD программу можно попасть и не особо умея программировать — особенно это касается теоретического Computer Science. С другой стороны найти работу программиста тоже дело не очень сложное, и часто не требует мощного образования. Но достигнув уровня MSc — вы получаете возможность разбираться как во всех новый идеях в Computer Science, так и возможность их воплотить в практику. То есть с одной стороны круто разобраться в каком-нибудь deep learning и сделать в нем что-то новое, а также взять и написать свою операционную систему (кто так сделал?). Причем вы не зажаты в рамки узкой специализации (если конечно продолжаете учиться). То есть вы теперь — универсальный солдат, готовый на все.

Надеюсь что эта статья будет полезна:
1. Студентам, которые хотят соответствовать высоким стандартам топ вузов США, или собирающиеся туда в аспирантуру по Computer Science
2. Профессионалам, которые хотят закрыть «дыры» и пробелы
3. Может кто-то из преподавателей возьмет на заметку для своих курсов.
4. Студентам, аспирантам американских вузов — хотелось бы тоже получить фидбэк, особенно касается последних трендов в образовании

Что же здесь будет написано? Минимум философии и общих мыслей: конкретная программа undergraduate и graduate курсов, конечно из дисциплин наиболее мне близких. Все курсы были лично прочувствованы на собственной шкуре, по этому и пишу. (Я пытался записаться на все интересные курсы, которые были, но мой основной упор — системное программирование, базы данных и искусственный интеллект. Отсюда конечно некий bias, но пытаюсь предложить более-менее универсальную программу).
Читать дальше →
Total votes 86: ↑81 and ↓5+76
Comments64

Junior, который в первый день работы удалил базу данных с production

Reading time2 min
Views143K
Reddit и другие иностранные ресурсы буквально покорила история о младшем разработчике, который, придя на свою первую работу, в первый же день удалил базу данных на production.


«Два типа людей в эксплуатации: кто уже сломал production, кто ещё только собирается это сделать»

Опубликованная 10 дней назад заметка собрала более 23 тысяч положительных голосов на Reddit и разошлась по другим специализированным ресурсам вроде The New Stack. Суть истории такова:
Читать дальше →
Total votes 139: ↑136 and ↓3+133
Comments376

Information

Rating
2,638-th
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity