Yet Another Analyst
Відкрити в Telegram
Анализ, архитектура, менеджмент в IT Сообщество аналитиков: https://tech-analyst.ai Вопросы сюда: @and_burakov
Показати більше6 558
Підписники
-124 години
-47 днів
+1430 день
Архів дописів
6 558
#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 второго уровня зрелости.
А морали не будет. С окончанием понедельника вас.
6 558
Ок, для анализа и выбора решения можно использовать простую табличку. Когда оно того стоит? Понятно, что нет смысла рисовать ее на каждый чих.
Когда точно будет полезно:
Уже видим несколько решений, но не знаем что выбрать. Плюс такого представления - удобно обсуждать с коллегами, в том числе значимость и полноту характеристик.
Когда несколько дней идет холивар, и никак не получается договориться. Часто баталии возникают лишь потому, что разные люди и роли смотрят на решения с разных сторон, им важны разные характеристики, и они не осознают полную стоимость (последствия) каждого решения.
Если предстоит важная защита решения, например, на этапе пресейла, архкоме, или просто нужно договориться с другой компанией, то с помощью таблички можно подобрать более чОткие и сильны аргументы, почему наше решение прекрасно со всех сторон, а чужое всех погубит.
Ну и самое интересное - иногда вообще нет идей, с чего начинать, или наоборот, чистое поле с бесконечным количеством вариантов. Тогда таблицу можно использовать для брейншторма:
1. выделяем важные характеристики будущего решения
2. указываем желаемое/достаточное значение для каждой характеристики
3. пробуем сгенерить решение, которое обладает таким набором
4. если пилим не новую систему, то текущее состояние берем как Решение 0 - для сравнения
Наверное, существуют еще кейсы. Но точно знаю, что 29 августа стартует курс по интеграции и архитектуре систем, там приложим эту идею к практике, в том числе к выбору паттернов и технологий.
6 558
#архитектура
Немного кошмаров интересного на ночь.
Взгляд на архитектуру через теорию систем от Фила, без паттернов и технологий.
Основное содержание разработки — это управление сложностью и борьба с ней.
Архитектура — это не про стрелочки и квадратики, это про текст.
6 558
А как правильно-то?
На занятиях регулярно повторяется ситуация: разобрали задачу, спроектировали несколько вариантов решения, обсудили плюсы и минусы каждого. Далее следует вопрос: "А как правильно-то?"
Обычно в такой ситуации просят чеклист. Обычно я отвечаю, что чеклист - абсолютное зло. Кроме своего.
Но как принимать решения?
1. Описываем задачу и контекст
2. Описываем варианты решения
3. Каждое решение обладает характеристиками, часть будет отличаться
4. Собираем табличку: характеристики vs варианты решения
5. Сортируем свойства по важности в рамках задачи
6. Заполняем клетки значениями
7. Анализируем, делаем выбор
Пример на картинке.
Где брать нужные свойства?
• Атрибуты качества системы aka NFR
• Ограничения: сроки, бюджеты, организационное, техрадар
• Продуктовые метрики - реже, но бывает
Что важно:
• Чаще всего хватает 3-4 характеристик, важных для нашей задачи.
• Максимально старайтесь использовать численные оценки, где это возможно. gRPC быстрее REST - правда? А на сколько? В 10 раз или на 10%? А оно нам надо?
• Не надо улучшать все сразу. Нам точно нужны 10.000+ rps в региональном магазине мебели?
• Когда мы улучшаем одну характеристику системы, обычно ухудшаем другую. Если решение ничего не ухудшает - скорее всего что-то пропустили.
• Обязательно прикрепляем табличку к ADR, Decision Log, Летописям Гениальных Костылей, или что там у нас. Команде, потомкам и агентам в будущем будет намного проще.
Проделывать это упражнение можно на любых уровнях абстракции и сложности: от выбора типа поля, до выделения границ сервисов. Каждый раз, когда рука тянется за чеклистом - рисуйте табличку. Потому что чужой заведомо делали в рамках другого контекста, задачи и целей.
Правда, для этого нужно понимать особенности технологий и принципы построения распределенных систем, этим мы займемся на курсе по интеграции и архитектуре, который стартует 29 августа.
6 558
Смотрю отзывы с последнего потока интеграции и архитектуры систем и думаю: зачем я, буренка, тебя закрываю?
Провести в полностью живом формате уже не осилю, но хочу попробовать полуасинхронный: ключевую теорию и вопросы записываю видосами-статьями и высылаю в начале недели, а по субботам встречаемся для практической работы.
Возможно, потом переделаю в симулятор, чтобы добро не пропадало.
Если кратко, о чем курс:
— про самостоятельный поиск решений, когда ты встречаешь новую задачу, а у тебя нет заученных паттернов и бест практик
— про понимание протоколов и инфры под ними, а не механическую работу по чек-листам и чужим критериям выбора
— про распределенные системы и фундаментальные проблемы проектирования, а не модные базворды
— про умение сформулировать архитектурный вопрос, провести исследование, оценить возможные решения
Отзывы с последних потоков смотрите тут
6 558
Выложили расписание на август в Tech Analyst Club.
Завтра уже будем разбирать MCP с Зоей — залетайте, кто не успел на тренинг.
6 558
Други, приходите порисовать стрелочки и квадратики на нашем архмитап в Школе 21 послезавтра (среда) в Москве.
https://t.me/techanalyst_club/481
6 558
#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.
6 558
Привет, Екатеринбург!
Через неделю делаем оффлайн митап вместе с аналитиками Контура. Обсудим, чем AI может помочь в работе, и как эффективно использовать LLM.
Что в программе:
• Андрей Бураков — У нас был контекст, мы им управляли?
• Светлана Дергачева — AI-дизайн для аналитиков: design‑as‑code, работа с презентациями, кликабельные интерфейсы и генерация дизайн-системы
• Сергей Петров — Как мы автоматизировали создание Troubleshooting Guide с помощью LLM
• Афтепати и неформальное общение
📆 28 июля, вторник, сбор гостей с 18:30
📍 Адрес: ул. Малопрудная, д 5. Офис разработки Контура, конференц-зал, 1 этаж
🔗 Смотрите программу и регайтесь по ссылке
6 558
Всем привет, есть кто из екб?
Завтра делаем митап вместе с аналитиками Контура, будем говорить про иишечку и тусить у них на набережной. Инфа ниже, приходите. А еще буду там всю среду — пишите, можем собраться на чаек или еще что.
6 558
Год назад писал, как с помощью ChatGPT пробовал интегрироваться с разными публичными сервисами.
Тогда были проблемы с интерпретацией пользовательских сценариев, маппингом на технические вызовы, проектированием асинхронных взаимодействий.
Сейчас кинул ссылку на здоровую эквайринговую доку и надиктовал голосом, что хочу — Fable и Opus 4.8, задали правильные вопросы, построили схемы, задизайнили БД. В некоторых местах поправил, что было проще в будущем. Codex не тестил, но думаю, там тоже достойно будет.
Ну да, эквайринг — довольно типовая штука. Но факт остается.
6 558
И снова обращаюсь к коллективному разуму. Сейчас выбираю тему воркшопа на осенний Analyst Days 23. Ткните в опрос ниже, плз.
Как обеспечить НФТ на этапе архитектуры
Аналитики (и разрабы, чо уж) часто грешат тем, что выявляют и фиксируют значимые НФТ, отдают их в команду или архитектору... и забывают о них. На воркшопе возьмем архкейс, обсудим требования и посмотрим, какие конкретные решения позволяют их обеспечить
Трейдоффы в архитектуре
Более философкая, но не менее важная тема. О том, почему архитектура - это вообще не про паттерны и технологии. Поговорим, почему не существует правильных решений, как осознанно выбирать между альтернативными решениями, как их генерить. И почему чужие чек-листы и статьи про выбор технологий бесполезны, в лучшем случае.
И тоже подавайтесь на конфу со своей темой - сейчас это единственная большая оффлайн площадка для аналитиков, отличный повод пообщать и пощупать живых людей.
Особо ждут темы:
• AI и LLM для аналитика
• Интеграция и архитектура
• Продуктовые исследования и мышление
Сильно не затягивайте, заявки принимают еще 2 недели.
6 558
Я вам тут послушать принес
Тот самый подкаст с Русланом Сафиным, где обсуждаем развитие код-агентов, будущее индустрии, изменение ролей, чему нужно будет учиться дальше.
Получилось философски и визионерски, с поразительным качеством и фантастическим пост-продакшеном.
🔥 Никаких манипуляций: накидаете 50 лайков — будет выпуск про Spec Driven Design глазами техдира и аналитика
6 558
Если вы пробовали Claude Design, и немного в шоке от того, сколько токенов жрет эта тварь, то приходите вечером к нам в клуб: будем разбирать Pencil.dev — работает на вашей любимой модельке, результат ничуть не хуже, аппетиты куда скромнее.
6 558
2026 год. Тестируем в проде
Прикручиваю известный экваринг к боту клуба, назовем его СР. Искренне считаю его одним из лучших, если не лучшими эквайрингом в РФ. Как минимум, самым удобным.
Есть у них услуга облачной фискализации, чтобы не платить за собственную кассу.
Гоняю финальные тесты, понимаю, что чек не приходит. Пишу в поддержку и узнаю, что фича работает только на проде, там и тестируйте.
Инженер внутри негодуе
Внутренний продакт начинает считать:
• фича выгодна при оборотах ~250к в месяц, дальше удобнее купить кассу
• большинство микробизнесов не будут подключаться по апи на старте — нет смысла или денег
• суммарный оборот у мерчей, которые юзают API + облачные чеки, скорее всего, минимальный
Скорее всего, нет экономического смысла в поддержке этой фичи в тесте.
К чему это?
Ваши красивые инженерные процессы никому не нужны, если не решают задачи бизнеса
А может там просто какая-то проблема с говнолегаси, не знаю.
6 558
Душевно посидели вчера, обсудили инфру, хранилища данных, способы масштабирования, а меня отправили работать в ПВЗ. Думаем повторить, есть еще много подобных симуляторов. Ннннада?
Запись стрима
