uk
Feedback
Yet Another Analyst

Yet Another Analyst

Відкрити в Telegram

Анализ, архитектура, менеджмент в IT Сообщество аналитиков: https://tech-analyst.ai Вопросы сюда: @and_burakov

Показати більше
6 558
Підписники
-124 години
-47 днів
+1430 день
Архів дописів
#API #интеграция Не верю, что снова пишу об этом... но в интернетах опять кто-то неправ. Есть два реста между прошлым и будущем: REST-как-архитектура и REST-как-апи. REST как архитектурный стиль - это та самая работа Филдинга, в которой он описывает 6 ограничений, которые нужно накладывать на распределенную систему, чтобы получить определенные свойства. И это вообще не про API и не про HTTP. В этом смысле REST можно ставить в один ряд с SOA, MSA и другими арх стилями. REST как стиль API - неформальное понятие, родившееся на фоне холиваров "Как правильно использовать HTTP" и "И что же такое RESTful-сервис". Тогда Лео Ричардсон предложил модель зрелости REST API, которую приняли Филдинг и индустрия. Строится она на том, на сколько "правильно" мы используем HTTP-глаголы, проектируем URL, ресурсно-ориентированы, и вообще поддерживаем гипермедиа. Поэтому REST API в отрыве от HTTP никто особо не рассматривает. Кстати, по версии Филдинга, настоящего REST API почти никто не видел. НО На прошлой неделе я узнал, что существует протокол CoAP - Constrained Application Protocol. Там буквально взяли семантику HTTP и перекроили под специфику IoT, плюс он работает поверх UDP. Спасибо чатам за ночные срачи. Если задуматься, то и честный GraphQL в этом смысле можно отнести к REST API. Причем реста там будет больше, чем в "каноничном" REST API over HTTP. Но вслух об этом лучше не говорить, конечно. Вся эта метафизика в реальности никому особо неинтересна. Про REST-как-архитектуру давно никто не думает, хотя отдельные персонажи продолжают спрашивать на собесах (кстати, зачем?). Когда обсуждают ресты, скорее всего подразумевают REST API второго уровня зрелости. А морали не будет. С окончанием понедельника вас.

Ок, для анализа и выбора решения можно использовать простую табличку. Когда оно того стоит? Понятно, что нет смысла рисовать ее на каждый чих. Когда точно будет полезно: Уже видим несколько решений, но не знаем что выбрать. Плюс такого представления - удобно обсуждать с коллегами, в том числе значимость и полноту характеристик. Когда несколько дней идет холивар, и никак не получается договориться. Часто баталии возникают лишь потому, что разные люди и роли смотрят на решения с разных сторон, им важны разные характеристики, и они не осознают полную стоимость (последствия) каждого решения. Если предстоит важная защита решения, например, на этапе пресейла, архкоме, или просто нужно договориться с другой компанией, то с помощью таблички можно подобрать более чОткие и сильны аргументы, почему наше решение прекрасно со всех сторон, а чужое всех погубит. Ну и самое интересное - иногда вообще нет идей, с чего начинать, или наоборот, чистое поле с бесконечным количеством вариантов. Тогда таблицу можно использовать для брейншторма: 1. выделяем важные характеристики будущего решения 2. указываем желаемое/достаточное значение для каждой характеристики 3. пробуем сгенерить решение, которое обладает таким набором 4. если пилим не новую систему, то текущее состояние берем как Решение 0 - для сравнения Наверное, существуют еще кейсы. Но точно знаю, что 29 августа стартует курс по интеграции и архитектуре систем, там приложим эту идею к практике, в том числе к выбору паттернов и технологий.

#архитектура Немного кошмаров интересного на ночь. Взгляд на архитектуру через теорию систем от Фила, без паттернов и технологий. Основное содержание разработки — это управление сложностью и борьба с ней. Архитектура — это не про стрелочки и квадратики, это про текст.

А как правильно-то? На занятиях регулярно повторяется ситуация: разобрали задачу, спроектировали несколько вариантов решения,
А как правильно-то? На занятиях регулярно повторяется ситуация: разобрали задачу, спроектировали несколько вариантов решения, обсудили плюсы и минусы каждого. Далее следует вопрос: "А как правильно-то?" Обычно в такой ситуации просят чеклист. Обычно я отвечаю, что чеклист - абсолютное зло. Кроме своего. Но как принимать решения? 1. Описываем задачу и контекст 2. Описываем варианты решения 3. Каждое решение обладает характеристиками, часть будет отличаться 4. Собираем табличку: характеристики vs варианты решения 5. Сортируем свойства по важности в рамках задачи 6. Заполняем клетки значениями 7. Анализируем, делаем выбор Пример на картинке. Где брать нужные свойства? • Атрибуты качества системы aka NFR • Ограничения: сроки, бюджеты, организационное, техрадар • Продуктовые метрики - реже, но бывает Что важно: • Чаще всего хватает 3-4 характеристик, важных для нашей задачи. • Максимально старайтесь использовать численные оценки, где это возможно. gRPC быстрее REST - правда? А на сколько? В 10 раз или на 10%? А оно нам надо? • Не надо улучшать все сразу. Нам точно нужны 10.000+ rps в региональном магазине мебели? • Когда мы улучшаем одну характеристику системы, обычно ухудшаем другую. Если решение ничего не ухудшает - скорее всего что-то пропустили. • Обязательно прикрепляем табличку к ADR, Decision Log, Летописям Гениальных Костылей, или что там у нас. Команде, потомкам и агентам в будущем будет намного проще. Проделывать это упражнение можно на любых уровнях абстракции и сложности: от выбора типа поля, до выделения границ сервисов. Каждый раз, когда рука тянется за чеклистом - рисуйте табличку. Потому что чужой заведомо делали в рамках другого контекста, задачи и целей. Правда, для этого нужно понимать особенности технологий и принципы построения распределенных систем, этим мы займемся на курсе по интеграции и архитектуре, который стартует 29 августа.

Смотрю отзывы с последнего потока интеграции и архитектуры систем и думаю: зачем я, буренка, тебя закрываю? Провести в полнос
+3
Смотрю отзывы с последнего потока интеграции и архитектуры систем и думаю: зачем я, буренка, тебя закрываю? Провести в полностью живом формате уже не осилю, но хочу попробовать полуасинхронный: ключевую теорию и вопросы записываю видосами-статьями и высылаю в начале недели, а по субботам встречаемся для практической работы. Возможно, потом переделаю в симулятор, чтобы добро не пропадало. Если кратко, о чем курс: — про самостоятельный поиск решений, когда ты встречаешь новую задачу, а у тебя нет заученных паттернов и бест практик — про понимание протоколов и инфры под ними, а не механическую работу по чек-листам и чужим критериям выбора — про распределенные системы и фундаментальные проблемы проектирования, а не модные базворды — про умение сформулировать архитектурный вопрос, провести исследование, оценить возможные решения Отзывы с последних потоков смотрите тут

Есть кто на ит пикнике сегодня?

Выложили расписание на август в Tech Analyst Club. Завтра уже будем разбирать MCP с Зоей — залетайте, кто не успел на тренинг.

Други, приходите порисовать стрелочки и квадратики на нашем архмитап в Школе 21 послезавтра (среда) в Москве. https://t.me/techanalyst_club/481

#API Не прошло и пяти лет, как в HTTP утвердили глагол QUERY. Вот теперь заживем! Краткая история: • сложные запросы плохо ложатся в query-параметры • 10 лет назад пытались пофиксить, разрешив слать тело в GET, но никто это особо не поддержал • сейчас решили вынести этот кейс в отдельный глагол Как это будет выглядеть:
QUERY /contacts HTTP/1.1 Host: example.org Content-Type: application/x-www-form-urlencoded Accept: application/json select=surname,givenname,email&limit=10&match=%22email=*@example.*%22
HTTP/1.1 200 OK Content-Type: application/json Content-Location: /contacts/stored-results/17 Location: /contacts/stored-queries/42 Last-Modified: Sat, 25 Aug 2012 23:34:45 GMT Date: Sun, 17 Nov 2024, 16:10:24 GMT [ { "surname": "Smith", "givenname": "John", "email": "smith@example.org" }, { "surname": "Jones", "givenname": "Sally", "email": "sally.jones@example.com" }, { "surname": "Dubois", "givenname": "Camille", "email": "camille.dubois@example.net" } ]
Чем же QUERY отличается от привычной реализации через POST? — Он ИДЕМПОТЕНТНЫЙ Ну да, а мы-то сейчас при чтении постом полбазы апдейтим — Его можно кэшировать!!! Вы предлагаете кэшировать на уровне тела, мы давно так делаем в GraphQL и прочих RPC — Результат работы QUERY можно повторно получить с помощью GET Получается, мы создаем некий вспомогательный ресурс с помощью QUERY. Т.е. это не только чтение? Обновление актуально для тех, кто все еще стремиться делать "каноничное REST API", остальные давно оставили в покое несвежий труп стюардессы. Справедливости ради, даже для нормальных рестов первого уровня было бы удобно выделить логику из POST в другой глагол для единообразия, но вангую, что судьба этого обновления будет примерно такой же, как у GET-body и стандарта на описание ошибок в HTTP.

Привет, Екатеринбург! Через неделю делаем оффлайн митап вместе с аналитиками Контура. Обсудим, чем AI может помочь в работе,
Привет, Екатеринбург! Через неделю делаем оффлайн митап вместе с аналитиками Контура. Обсудим, чем AI может помочь в работе, и как эффективно использовать LLM. Что в программе: • Андрей Бураков — У нас был контекст, мы им управляли? • Светлана Дергачева — AI-дизайн для аналитиков: design‑as‑code, работа с презентациями, кликабельные интерфейсы и генерация дизайн-системы • Сергей Петров — Как мы автоматизировали создание Troubleshooting Guide с помощью LLM • Афтепати и неформальное общение 📆 28 июля, вторник, сбор гостей с 18:30 📍 Адрес: ул. Малопрудная, д 5. Офис разработки Контура, конференц-зал, 1 этаж 🔗 Смотрите программу и регайтесь по ссылке

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

Год назад писал, как с помощью ChatGPT пробовал интегрироваться с разными публичными сервисами. Тогда были проблемы с интерпретацией пользовательских сценариев, маппингом на технические вызовы, проектированием асинхронных взаимодействий. Сейчас кинул ссылку на здоровую эквайринговую доку и надиктовал голосом, что хочу — Fable и Opus 4.8, задали правильные вопросы, построили схемы, задизайнили БД. В некоторых местах поправил, что было проще в будущем. Codex не тестил, но думаю, там тоже достойно будет. Ну да, эквайринг — довольно типовая штука. Но факт остается.

На какой воркшоп сходили бы?
Anonymous voting

И снова обращаюсь к коллективному разуму. Сейчас выбираю тему воркшопа на осенний Analyst Days 23. Ткните в опрос ниже, плз. Как обеспечить НФТ на этапе архитектуры Аналитики (и разрабы, чо уж) часто грешат тем, что выявляют и фиксируют значимые НФТ, отдают их в команду или архитектору... и забывают о них. На воркшопе возьмем архкейс, обсудим требования и посмотрим, какие конкретные решения позволяют их обеспечить Трейдоффы в архитектуре Более философкая, но не менее важная тема. О том, почему архитектура - это вообще не про паттерны и технологии. Поговорим, почему не существует правильных решений, как осознанно выбирать между альтернативными решениями, как их генерить. И почему чужие чек-листы и статьи про выбор технологий бесполезны, в лучшем случае. И тоже подавайтесь на конфу со своей темой - сейчас это единственная большая оффлайн площадка для аналитиков, отличный повод пообщать и пощупать живых людей. Особо ждут темы: • AI и LLM для аналитика • Интеграция и архитектура • Продуктовые исследования и мышление Сильно не затягивайте, заявки принимают еще 2 недели.

Где слушаете подкасты?
Anonymous voting

Я вам тут послушать принес Тот самый подкаст с Русланом Сафиным, где обсуждаем развитие код-агентов, будущее индустрии, изменение ролей, чему нужно будет учиться дальше. Получилось философски и визионерски, с поразительным качеством и фантастическим пост-продакшеном. 🔥 Никаких манипуляций: накидаете 50 лайков — будет выпуск про Spec Driven Design глазами техдира и аналитика

Если вы пробовали Claude Design, и немного в шоке от того, сколько токенов жрет эта тварь, то приходите вечером к нам в клуб: будем разбирать Pencil.dev — работает на вашей любимой модельке, результат ничуть не хуже, аппетиты куда скромнее.

2026 год. Тестируем в проде Прикручиваю известный экваринг к боту клуба, назовем его СР. Искренне считаю его одним из лучших, если не лучшими эквайрингом в РФ. Как минимум, самым удобным. Есть у них услуга облачной фискализации, чтобы не платить за собственную кассу. Гоняю финальные тесты, понимаю, что чек не приходит. Пишу в поддержку и узнаю, что фича работает только на проде, там и тестируйте. Инженер внутри негодуе Внутренний продакт начинает считать: • фича выгодна при оборотах ~250к в месяц, дальше удобнее купить кассу • большинство микробизнесов не будут подключаться по апи на старте — нет смысла или денег • суммарный оборот у мерчей, которые юзают API + облачные чеки, скорее всего, минимальный Скорее всего, нет экономического смысла в поддержке этой фичи в тесте. К чему это? Ваши красивые инженерные процессы никому не нужны, если не решают задачи бизнеса А может там просто какая-то проблема с говнолегаси, не знаю.

Душевно посидели вчера, обсудили инфру, хранилища данных, способы масштабирования, а меня отправили работать в ПВЗ. Думаем повторить, есть еще много подобных симуляторов. Ннннада? Запись стрима