Telegram Web
📃 BABOK Guide уже много лет не обновлялся. Зато на днях появилась вторая версия The Business Analysis Standard. Скачать стандарт можно по ссылке выше ☝️, при желании, предварительно зарегистрировавшись здесь

🔖 Что поменялось (сжатый анонс от авторов):
- Оптимизирован язык для более легкого понимания и навигации
- Области знаний реорганизованы в соответствии с BABOK Guide. Согласована терминология стандарта и руководства
- Стили документа приведены в соответствие со стандартами ISO
- Для быстро ознакомления со стандартом добавлен общий обзор
- Новые и расширенные разделы: ценность и результаты (outcomes and value), организационные соображения, улучшения и проработка идей

🖇 Как всё это связано с архитектурой решений. В какой-то момент IIBA стал максимально широко трактовать бизнес-анализ, захватив заметный кусок solution architectгure. Вряд ли это правильно, но зато, пока у солюшенов нет своего стандарта, в какой-то мере, можно воспользоваться стандартом аналитиков (а не только стандартами архитекторов предприятия)
🔥5👍2
ℹ️ В прошлом году неожиданно обновилось до 4 версии руководство по программной инженерии SWEBOK (The Guide to the Software Engineering Body of Knowledge) Предыдущая версия руководства была выпушена в 2014, а первая версия появилась в 2004.

🆕 Еще более неожиданным является то, что к 15 областям знаний, описанным в SWEBOK ранее, добавились три новых: Software Engineering Operations, Software Security и (сюрприз-сюрприз) Software Architecture. При этом область знаний Software Design, существовавшая в предыдущей версии, тоже сохранилась.

⬇️ Загрузить руководство можно по ссылке выше. Русскоязычный обзор новой версии SWEBOK можно почитать в журнале Открытые системы. СУБД
8👍2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Eще несколько решений, способных облегчить Out-of-process Component (Acceptance) Testing: - https://schemathesis.readthedocs.io/ - https://hypothesis.readthedocs.io/ - https://github.com/python-jsonschema/hypothesis-jsonschema - https://pypi.org/project/hypothesis…
Как я делаю fitness-functions для микросервисов. Мой способ ориентирован на системы среднего размера.

Who Writes Fitness Functions? <...> In general, architects write fitness functions as they determine the objective measures for important architecture characteristics.
-- Building Evolutionary Architectures, by Neal Ford, Patrick Kua, and Rebecca Parsons

Самым существенным оказался, вероятно, вопрос о том, должны ли performance fitness functions тестировать сервис в изоляции или систему целиком?

Однозначного ответа в литературе отыскать не удалось. Даже в оригинальной книге "Building Evolutionary Architectures" ограничились известной фразой "It depends!"

Sam Newman советует оба варианта:

As with functional tests, you may want a mix. You may decide that you want performance tests that isolate individual services, but start with tests that check core journeys in your system. You may be able to take end-to-end journey tests and simply run these at volume.
-- "Building Microservices. Designing Fine-Grained Systems" 2nd edition by Sam Newman

Некоторые аргументы в пользу изолированного тестирования:
- "Load Testing And Microservices Architecture" by Gatling Author
- "Isolate Performance Testing for each Microservice: Part 7" By Brice Dardel
- "Performance Testing of Microservices" by Niranjan Limbachiya

Я склоняюсь к тестированию на обоих уровнях. Поскольку целью fitness functions является улучшение ("селекционирование") архитектурных качеств системы, то команде разработки более удобными могут оказаться изолированные тесты.

Для описания требований я использую Behave. Для любителей Pytest может подойти Pytest-BDD.

Поскольку за прообраз fitness-functions был взят стандарт породы, то это значит, что требование может быть желаемым (целевым) или в пределах допустимого отклонения (допустимого диапазона изменчивости). Поэтому, помечаю их соответственно тэгами
@fitness-function.performance.target и
@fitness-function.performance.acceptable.

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

@fitness-function.performance.acceptable
  Scenario: Some object endpoint name
    Given SUT with 10000000 objects
    When 100 processes created 10000 objects each
    Then average RPS is greater than 1000
    And error rate is less than 5%

@fitness-function.performance.target
  Scenario: Some object endpoint name
    Given SUT with 30000000 objects
    When 100 processes created 10000 objects each
    Then average RPS is greater than 1000
    And error rate is less than 5%

Продолжение.
👍53🔥21
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Как я делаю fitness-functions для микросервисов. Мой способ ориентирован на системы среднего размера. Who Writes Fitness Functions? <...> In general, architects write fitness functions as they determine the objective measures for important architecture characteristics.…
Как я делаю fitness-functions для микросервисов. Продолжение. Начало здесь.

По хуку before_scenario() (или before_tag()) создается дамп изначального состояния БД (если он не был создан ранее) утилитой pg_dump в многопоточном режиме, с использованием аргументов:
--jobs=n, где n - количество ядер процессора, len(os.sched_getaffinity(0));
--format=directory (требуется для параллельного дампа);
--clean;

Composition Pattern отлично подошел для создания дампов баз данных нескольких микросервисов.

При необходимости, созданная директория с дампом архивируется и сохраняется в хранилище (тут есть разные варианты сохранения дампов между запусками тестов, от монтирования удаленной директории до отправки архива в S3).

По хуку after_scenario() (или after_tag()) дамп изначального состояния БД восстанавливается утилитой pg_restore так же в многопоточном режиме, с использованием аргументов:
--jobs=n
--clean

Некоторые коллеги из других компаний восстанавливают БД на уровне файлов PGDATA тестируемого сервиса. Работает быстрее, но менее универсально.

При исполенении шага "Given SUT with 10000000 objects" проверяется наличие актуального предзаполненного дампа БД для указанного объема данных и производится или его восстановление, или его создание путем генерации фэйковых данных. С целью сокращения времени генерации, я генерирую данные непосредственно в БД, хотя можно и через Public API сервиса. Для генерации используется собственный performance framework, позволяющий воспроизвести селективность индексов целевой системы. Коробочные решения мне неизвестны, но за основу можно взять:
- https://hypothesis.readthedocs.io/en/latest/strategies.html
- https://github.com/litestar-org/polyfactory

На следующем шаге создаем нагрузку. Я использую тот же собственный performance framework, который автоматически определяет создавать ли зависимый объект или реиспользовать ранее созданный в соответствии с заданной вероятностной распределенностью. Коробочные решения мне опять же неизвестны, но за основу можно взять:
- https://schemathesis.readthedocs.io/

Если используется JS (например, при использовании K6), то имеет смысл обратить внимание на:
- https://dredd.org/

Для изоляции сервиса можно использовать Mountebank, WireMock или Mockintosh (на Python), pytest-httpserver. На PyPi достаточно много реализаций mock-серверов. Вплоть до стандартного http.server. Некоторые из них позволяют генерировать данные на основе OpenAPI спецификации. На JS имеет смысл посмотреть в сторону Prism. См. так же OpenAPI Generator (docs), Swagger Codegen (HOWTO).

Для относительно небольших систем нагрузочный движок можно не использовать вообще, ограничившись простой многопоточностью multiprocessing.Pool.map().

В некоторых случаях подойдет минималистичный нагрузочный движок molotov.

Для крупных систем потребуется распределенный нагрузочный движок. Locust можно запускать как библиотеку (пример). О том, как подружить Locust и asyncio, см. здесь. K6, Gatling, JMeter можно запускать через субпроцессинг.

Результат каждого запроса записывается в Graphite или в Prometheus для детализированного анализа.

Используя Gherkin, удалось совместить хранение спецификаций как функциональных, так и нефункциональных требований. При этом функциональные требования в Gherkin формате очень хорошо ложатся на EventStorming диаграмму.

[UPDATE]: см. также:
- https://allurereport.org/docs/behave/
- https://allurereport.org/docs/pytestbdd/
👍6🔥311🤣1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Шикарная статья для тех, кто намерен использовать PostgreSQL JSONB для хранения Агрегатов: "Борьба с  TOAST или будущее JSONB в PostgreSQL" - https://habr.com/ru/company/oleg-bunin/blog/646987/ Статья является продолжением статьи "Проклятье TOAST и с каким…
Pattern Specification можно реализовать парой строчек кода, в случае использования JSONB поля для хранения агрегата, путем применения jsonpath.

Для реализации метода IsSatisfiedBy подойдет, например,
- https://jsonpath2.readthedocs.io/en/latest/

А для компиляции спецификации в SQL достаточно использовать нативные функции:
- https://www.postgresql.org/docs/current/functions-json.html#FUNCTIONS-SQLJSON-PATH

О классической реализации для сравнения см. здесь:
- https://dckms.github.io/system-architecture/emacsway/it/ddd/grade/domain/specification.html
🔥4
Размышления про ML/DL.

Когда-то, давным давно, логика работы системы автоматизации была выражена электронной схемой. Внесение изменения в логику требовала внесения изменения в структуру электронных компонентов.

Потом удалось создать универсальную структуру электронных компонентов (микропроцессор, hardware), и выражать логику посредством software. Таким образом, изменение логики больше не требовало перепаивать электронные компоненты. Hardware стал обобщенным.

Следуюшим витком развития стало обобщение software. Появились нейронные сети. А логика стала определяться данными для обучения нейронки, т.е. dataset. Например, логика распознавания животного машинным зрением камеры наблюдения. Или логика распознавания номерных знаков госрегистрации автомобилей. Или логика распознавания нарушений общественного порядка в общественных местах.

Отсюда можно сделать вывод, что в будущем роль нейронных сетей будет такой же, как сегодня - роль программного обеспечения. И кто раньше это поймет, тот быстрее адаптируется к новым рыночным условиям.
🔥8🤔6💯3🤨2
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Недавно обсуждалось такое же явление в одном из профильных чатов. Как видно, это вовсе не редкость. Личный кабинет ИП налоговой службы РФ, форма подачи отчета движения средств по зарубежным счетам. Последний день подачи отчета.
Status code: 200
Response: ERROR
URL: https://lkip2.nalog.ru/api/document/sign

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

В прошлом году я зарегистрировал компанию в Кыргызстане, в одном из крупнейших ИТ-хабов ближнего зарубежья, располагающем особой экономической зоной для ВЭД экспортеров ИТ-услуг. В период санкций он стал фактически амбасадором российского ИТ-экспорта.

Будучи в Кыргызстане иностранцем (не имея даже ИНН), я уладил все формальности (включая открытие банковских счетов) менее чем за сутки! И это собственноручно, без "помогаторов".

Знаете, сколько времени я открывал ИП в самом информатизованном (судя по телевизору) государстве? Более недели, при этом совершил в общей сложности более шести поездок (в МФЦ и в три разные налоговые). Готовы услышать почему? Чтобы подать заявление о том, что уже более трех лет как я прописан по другому адресу. Три года не хватило на то, чтоб сделать интеграцию.

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

И у меня есть предположение, что преградой для этих самых знаний и опыта в госухе (как и в финтехе) является возглавление кадровой политики не техническими профессионалами, а представителями СБ.
👍9🔥43👏1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
💬 14:45. Звонит мой приятель, очень успешный художник. Он приглашает меня на открытие своей выставки. Я нахожу большое удовольствие в общении с этим парнем. В отличие от многих других деятелей искусства, он совершенно чужд тщеславия. Как-то раз, несколько…
Коллеги, настоятельно рекомендую прочесть о том, как Д.Трамп добивался разрешения на строительство конгресс-центра на берегу Гудзона, когда он был еще никому неизвестным, "Глава 5. Прорыв на Манхэттен" книги "Искусство заключать сделки" / Д.Трамп.

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

Это настоящая пилюля против беспомощности многих архитекторов перед бизнесом.

Цитировать не буду, ибо в одно сообщение текст не влезет.

P.S.: Скачать можно здесь (только не в Яндекс.Браузере) для ознакомления, но лучше обрести - я нахожу эту книгу стоящей.
🔥13👍1
Отношение к эйджизму человека, входящего в первую тысячу самых богатых людей мира по версии Forbes, в бытность своей молодости:

💬 К тому времени я сумел привлечь к этому делу опытного брокера по работе с недвижимостью Генри Пирса. И мы вместе отправились выбивать кредит.
Генри Пирс возглавлял компанию Pearce, Mayer, and Greer. Это был фантастический человек. Тогда ему было уже под семьдесят, но любой двадцатилетний мальчишка мог позавидовать его неиссякаемой энергии. Когда нужно было добиться финансирования проекта, он проявлял чудеса настойчивости и целеустремленности. Самое интересное, что нам помог и его возраст. Нам предстояло встречаться с банкирами, а это была публика, отличающаяся крайней консервативностью и осторожностью. Можно было предположить, как они себя поведут, если никогда не слыхали о Дональде Трампе. Конечно, в некоторых вопросах я был намного консервативнее Генри, но зато банкиры знали его, десятилетиями вели с ним дела. И в паре с этим убеленным сединами человеком я внушал им больше доверия.
-- "Искусство заключать сделки" / Д.Трамп.

P.S.: Сравнивая Trump Tower и Яндекс.Телемост, мне почему-то невольно вспоминается Второй закон Вейнберга: если бы строители строили здания так же, как программисты пишут программы, первый залетевший дятел разрушил бы цивилизацию.

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

Да, я знаю, что Яндекс потом попытался опровергнуть эйджизм, но Теория Игр говорит, что опровержение вполне могло быть замотивированным.
👍7🔥4👏2💯1
Анонимный вопрос к senior developers:
какой уровень дохода у вас после вычета налогов (на руки):
Anonymous Poll
4%
<= 250 000 руб.
6%
<= 300 000 руб.
16%
<= 400 000 руб.
11%
<= 500 000 руб.
6%
<= 600 000 руб.
7%
> 600 000 руб.
50%
я только посмотреть результаты
👍7🔥1
Microsoft опубликовали большой список примеров использования ИИ в бизнесе и работе — внутри собраны реальные кейсы компаний со ссылками на инструменты, актуальные в 2025 году.

Изучаем тут.
5🔥5
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Случайно наткнулся на видео, в котором Александр Покрышкин рассуждает о лидерстве, об инструкциях и менеджменте, о роли теории, об искусстве побеждать. О том, как побеждать в условиях, когда инструкции и менеджмент препятствуют победе. Когда-то я услышал…
💬 Члены групп верят другим членам — а особенно вожакам — больше, чем себе.
В двухтомном исследовании «Американский солдат» (The American Soldier) Теодор Адорно (Theodore Adorno) в соавторстве с другими социологами установил, что критерий, по которому можно определить, как проявит себя рядовой в боевой обстановке, — это его отношения с сержантом. Тот, кто верит своему командиру, пойдет за ним хоть на смерть — в прямом смысле слова.
...
Согласно Зигмунду Фрейду сплоченность группы зависит от преданности лидеру. Он вызывает чувства, которые члены группы, будучи детьми, испытывали к отцам: доверие, благоговение, страх, желание заслужить похвалу и подспудный протест разом. Примкнув к группе, человек воспринимает все касающееся этой группы на детском уровне мышления. У группы без лидера нет сердцевины, и она распадается. Этим, кстати, объясняются покупательная и продажная биржевые лихорадки. Внезапно ощутив, что тенденция, которой они следовали, «ушла из-под ног», трейдеры панически закрывают позиции.
...
Люди испокон веков объединялись в группы для самосохранения. Охотясь на саблезубого тигра толпой, ее члены получали большой шанс остаться целыми. При единоборстве с этим зверем жизнь охотника висела на волоске. Единоличники и гибли чаще, и потомства оставляли меньше. У коллективистов шанс выжить был больше, и стремление объединиться стало, судя по всему, врожденным свойством человеческой натуры.

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

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

-- Как играть и выигрывать на бирже. Психология. Технический анализ. / Александр Элдер

Ну, вы поняли, в общем, об основном инструменте власти архитектора.

[UPDATE]: Gregor Hohpe о табуретке архитектора о трёх ногах: Skill, Impact, Leadership.
🔥9👍2🤔1
emacsway-log: Software Design, Clean Architecture, DDD, Microservice Architecture, Distributed Systems, XP, Agile, etc.
Photo
This media is not supported in your browser
VIEW IN TELEGRAM
Многие из вас, вероятно, уже знают из моих (@emacsway) сторисов, что вот уже пару недель как я нахожусь по делам в Бишкеке.

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

Вероятно, местные вирусы/бактерии отличаются по своему спектру от московских, и иммунитета к ним у меня не оказалось. На что я обратил внимание? В 23:00 (тут есть поликлиники 24/7) я получил практически полный спектр необходимых мне медицинских услуг, быстро, без очередей. Никто не требовал ни прикрепления к поликлинике, ни регистрации, ни страховки ОМС. Можно сразу попасть на прием к любому профильному врачу, а не только к широкопрофильному терапевту. К терапевту не нужно стоять несколько дней/недель в очереди, чтоб он направил к профильному врачу.

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

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

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

Что еще могу сказать про Бишкек? В Москве даже в топовых ресторанах не всегда умеют готовить мясо так, как в Бишкеке на каждом углу. Бишкек - это, действительно, гастрономический рай. При этом средний чек раза в 2-3 дешевле московского. Обычно полноценный хороший (не фаст-фуд) обед мне обходится до 500 руб.

Из ресторанов мне понравились: Frunze, Etiler, Лесной, Torro.

В магазинах тоже много свежеприготовленной вкусной и здоровой (без химии) еды по символическим ценам, например, шашлык из тандыра, плов и т.п.

О природе:

- https://www.instagram.com/in_tourists

- https://www.instagram.com/gotoogo.kg

- https://www.instagram.com/kettik.kg

Меня впечатлил отель с бассейнами Mountain View Hot Spring Resort
- https://www.booking.com/Share-IAqVJsN
- https://www.instagram.com/mountain.view.kg

Мое фото одного из его бассейнов: https://www.tgoop.com/emacsway/s/64

Рядом есть котеджный отель "12 каминов" на берегу горной реки, но без бассейнов.

Очень хороший отель есть еще в невероятно красивых местах Ала-Арча.

И все это в получасе езды от Бишкека. Можно поехать дальше, например, на 7-е по глубине озеро в мире Иссык-Куль на высоте 1609м с невероятно приятным климатом по температуре, влажности и свежести. Зимой можно поехать там же на горнолыжный курорт Каракол - в советское время здесь была горнолыжная база олимпийской сборной СССР.

На видео - ущелье Оруу-Сай, (там тоже есть отели с красивыми видами).

Самолеты из Москвы летают в Бишкек пять раз в день.

Если кто-то думает открывать бизнес, ориентированный на экспорт ИТ-услуг, то я рекомендовал бы присмотреться к Бишкеку. Налог УСН (для ИТ) - 2%, а для резидента Парка Высоких Технологий - 1%. Кыргызстан является членом ЕАЭС, а значит, для валютных резидентов РФ нет никаких ограничений по открытию здесь валютных счетов (в отличии от Грузии) и нет растаможки. Деловые поездки всегда можно совместить с приятным отдыхом на горных озерах летом и на горнолыжных курортах зимой. Многие бизнесмены и пилоты получают кыргызское второе гражданство в упрощенном порядке (за полгода) для облегчения получения виз в шенген и в страны Северной Америки.
👍3210👎6🔥3🤣3
Forwarded from Data Secrets
Конспект LLM.pdf
38 MB
Большой коспект по LLM от нашей команды 👍

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

Краткая история LLM от перцептрона до ризонинг-моделей
Необходимая математика: линал и матанализ на пальцах
Все про механизм внимания и трансформеры от А до Я
Дотошное объяснения процесса предобучения
Практический гайд "Как самостоятельно затюнить модель"
RL – с нуля до ризонинга

Все – в иллюстрациях, схемах и интуитивно понятных примерах.

Сохраняйте, делитесь с друзьями и ставьте ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2623🔥4🙏2
Forwarded from Forbes Young
Согласно опросу ВЦИОМ, 87% россиян «читали что-либо за последнюю неделю». При этом интерес к книгам растет, а к новостям и текстовым блогам — падает. Среди молодых россиян читающих намного больше, чем среди бумеров и иксов — 99% цифрового поколения против 80% рожденных в эпоху оттепели и застоя. Если говорить о предпочтениях, то зумеры выбирают в основном художественную литературу: фантастику, классику, книги по психологии, любовные романы и детективы. Исследователи отмечают, что интерес к литературе поддерживается трендом на развитие и самопознание.

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

#хоббиномика @forbes_young
👍103😁2🔥1
2025/07/08 12:53:43
Back to Top
HTML Embed Code: