Знаете это чувство, когда руки сами тянутся к клавиатуре? После поста про Дзен.Мани меня накрыло желанием обновить свой SDK. И понеслось! 🚀
Две ночи пролетели как один миг. Когда код идёт из-под пальцев быстрее мыслей – это просто космос! Перевёл всё на английский, разложил функционал по пакетам (прощай, плоская структура со скриншота 👋), написал тесты. Ну, почти – покрытие под 80% в одном пакете, 100% в другом и несколько пакетов не покрыто, и это уже неплохо!
Сейчас смотрю на результат и душа радуется – репозиторий выглядит почти идеально. Хотя, кого я обманываю, список TODO никуда не делся 📝:
- Добить оставшиеся тесты
- Расписать методы поподробнее, чтобы не нырять в офф доку
- Прикрутить моки для тестов (скорее всего через mockery)
- Ну и по мелочи там...
https://github.com/nemirlev/zenmoney-go-sdk - можно зайти, поставить ⭐️, а потом дать свои классные рекомендации о том, что я упустил 🙂
UPD: Пришлось пост перевыложить, в сущуствующий уже не добавить скриншоты, которые я забыл добавить :(
#golang #разработка #рефакторинг #api #sdk #OpenSource #программирование #zenmoney
Две ночи пролетели как один миг. Когда код идёт из-под пальцев быстрее мыслей – это просто космос! Перевёл всё на английский, разложил функционал по пакетам (прощай, плоская структура со скриншота 👋), написал тесты. Ну, почти – покрытие под 80% в одном пакете, 100% в другом и несколько пакетов не покрыто, и это уже неплохо!
Сейчас смотрю на результат и душа радуется – репозиторий выглядит почти идеально. Хотя, кого я обманываю, список TODO никуда не делся 📝:
- Добить оставшиеся тесты
- Расписать методы поподробнее, чтобы не нырять в офф доку
- Прикрутить моки для тестов (скорее всего через mockery)
- Ну и по мелочи там...
https://github.com/nemirlev/zenmoney-go-sdk - можно зайти, поставить ⭐️, а потом дать свои классные рекомендации о том, что я упустил 🙂
UPD: Пришлось пост перевыложить, в сущуствующий уже не добавить скриншоты, которые я забыл добавить :(
#golang #разработка #рефакторинг #api #sdk #OpenSource #программирование #zenmoney
Хочу поделиться книгой, которую наконец-то прочитал - "Микросервисы. Паттерны разработки и рефакторинга" Криса Ричардсона.
Если вы давно хотели разобраться в микросервисной архитектуре - это то, что нужно! 🎯 Автор очень толково объясняет все основные концепции и приводит конкретные примеры использования. Особенно здорово то, что после прочтения можно сразу стартовать и правильно спроектировать свои микросервисы.
Правда, есть пара моментов, о которых стоит знать 🤔
Во-первых, все примеры на Java (ну, это было ожидаемо). И автор, скажем так, очень любит свою библиотеку - упоминает её при каждом удобном случае 😅
А вот с русским переводом - отдельная история! Готовьтесь к веселым терминам вроде "спурта" и "GpLang". Хотя общий смысл всё равно понятен. Кстати, сможете догадаться, что это за термины? 🤓
#книги #микросервисы #разработка #java #программирование #обучение #архитектура
Если вы давно хотели разобраться в микросервисной архитектуре - это то, что нужно! 🎯 Автор очень толково объясняет все основные концепции и приводит конкретные примеры использования. Особенно здорово то, что после прочтения можно сразу стартовать и правильно спроектировать свои микросервисы.
Правда, есть пара моментов, о которых стоит знать 🤔
Во-первых, все примеры на Java (ну, это было ожидаемо). И автор, скажем так, очень любит свою библиотеку - упоминает её при каждом удобном случае 😅
А вот с русским переводом - отдельная история! Готовьтесь к веселым терминам вроде "спурта" и "GpLang". Хотя общий смысл всё равно понятен. Кстати, сможете догадаться, что это за термины? 🤓
#книги #микросервисы #разработка #java #программирование #обучение #архитектура
👍5🔥1
Устал от холиваров 'gRPC быстрее' против 'REST привычнее'? Давайте о главном - КОНТЕКСТЕ использования.
Микросервисы внутри периметра? gRPC однозначно: контракты, производительность, удобство поддержки. Но стоит выйти за периметр...
Делаем API для React-фронта? REST + OpenAPI. Иначе намучаетесь с grpc-web, прокси и тонной лишнего кода на клиенте. Enterprise интеграции? REST снова выигрывает: у условного банка-партнера серверы еще на SOAP могут работать, не то что gRPC.
Мой опыт: используем gRPC между своими бекенд сервисами, REST для внешних API.
#architecture #api #microservices"
Микросервисы внутри периметра? gRPC однозначно: контракты, производительность, удобство поддержки. Но стоит выйти за периметр...
Делаем API для React-фронта? REST + OpenAPI. Иначе намучаетесь с grpc-web, прокси и тонной лишнего кода на клиенте. Enterprise интеграции? REST снова выигрывает: у условного банка-партнера серверы еще на SOAP могут работать, не то что gRPC.
Мой опыт: используем gRPC между своими бекенд сервисами, REST для внешних API.
#architecture #api #microservices"
💯3👍1
3 проверенных стека для метрик:
Классика: Prometheus + Grafana
➕ Простота, огромное комьюнити
➖ Масштабируется до средних нагрузок
Идеально для начала и небольших систем
Длинное хранение: VictoriaMetrics + Grafana
➕ Хранит годы данных, совместим с Prometheus
➖ Сложнее в настройке
Отлично для растущих проектов
Распределенный: Thanos + Prometheus + Grafana
➕ Горизонтальное масштабирование
➖ Сложная инфраструктура
Для больших распределенных систем
#monitoring #devops #metrics"
Классика: Prometheus + Grafana
➕ Простота, огромное комьюнити
➖ Масштабируется до средних нагрузок
Идеально для начала и небольших систем
Длинное хранение: VictoriaMetrics + Grafana
➕ Хранит годы данных, совместим с Prometheus
➖ Сложнее в настройке
Отлично для растущих проектов
Распределенный: Thanos + Prometheus + Grafana
➕ Горизонтальное масштабирование
➖ Сложная инфраструктура
Для больших распределенных систем
#monitoring #devops #metrics"
👍4
Одного PKCE для SPA уже мало. Почему? Участились случаи token theft даже с правильно настроенным OAuth 2.0.
Варианты улучшений:
Browser fingerprinting (защита от token replay)
Rate limiting по комбинации IP + fingerprint
Anomaly detection по паттернам запросов
Важно: это не серебряная пуля, а набор инструментов. Выбирайте исходя из модели угроз. Не сложно реализовать - browser fingerprinting и rate limiting по device ID, но даст достаточный уровень безопасности.
#security #oauth #api"
Варианты улучшений:
Browser fingerprinting (защита от token replay)
Rate limiting по комбинации IP + fingerprint
Anomaly detection по паттернам запросов
Важно: это не серебряная пуля, а набор инструментов. Выбирайте исходя из модели угроз. Не сложно реализовать - browser fingerprinting и rate limiting по device ID, но даст достаточный уровень безопасности.
#security #oauth #api"
👍1
😎1
Вчера OpenAI выпустила Operator - AI-ассистента с собственным браузером. Он умеет самостоятельно работать с веб-интерфейсами: заполнять формы, делать заказы и искать информацию.
Работает на новой модели Computer-Using Agent (CUA), которая использует GPT-4 для взаимодействия с графическим интерфейсом - умеет кликать, печатать и скроллить как обычный пользователь.
Пока доступен только Pro-пользователям в США.
#AI #OpenAI #ChatGPT #Operator #технологии
Работает на новой модели Computer-Using Agent (CUA), которая использует GPT-4 для взаимодействия с графическим интерфейсом - умеет кликать, печатать и скроллить как обычный пользователь.
Пока доступен только Pro-пользователям в США.
#AI #OpenAI #ChatGPT #Operator #технологии
🤔2👍1
В прошлом году писал про рейтинг на Хабре. До сих пор не могу понять эту математику – простые статьи часто получают высокие оценки, а технически сложные материалы не особо заходят. И каждый раз волнуюсь, публикуя новый пост.
Но знаете что? Самый важный индикатор – не цифры, а реальная обратная связь от читателей. Когда человек пишет, что благодаря твоему материалу узнал что-то новое и полезное – это дает невероятный заряд энергии и мотивации делать ещё.
И это работает не только со статьями, а вообще со всеми проектами – главный драйвер для меня это осознание, что твоя работа кому-то помогла. Что ты постарался не зря.
#мотивация #хабр #комьюнити #разработка #контент
Но знаете что? Самый важный индикатор – не цифры, а реальная обратная связь от читателей. Когда человек пишет, что благодаря твоему материалу узнал что-то новое и полезное – это дает невероятный заряд энергии и мотивации делать ещё.
И это работает не только со статьями, а вообще со всеми проектами – главный драйвер для меня это осознание, что твоя работа кому-то помогла. Что ты постарался не зря.
#мотивация #хабр #комьюнити #разработка #контент
❤5🔥3👏1
Такого ажиотажа в AI-сфере не было со времен запуска ChatGPT 3.5! DeepSeek наделал столько шума, что после их заявления о затратах всего в 6 млн$ (при сопоставимой с o1 мощности) акции Nvidia упали почти на 20%. Досталось и другим компаниям, связанным с чипами.
Конечно, я тоже не удержался от тестов. Впечатления позитивные - по качеству почти не отличается от o1, но есть два больших плюса: не нужен VPN и есть нативное приложение для телефона.
А для разработчиков вообще праздник - можно развернуть локально или использовать API всего за $0.14 (против $2.50 за o1). Хотя вроде OpenAI на днях снизили цены, раньше было около $7.5 (я почему-то помню такую цену, но могу ошибится).
С техническими задачами справляется на уровне конкурентов. Правда, если говорить о качестве текста - Sonnet всё ещё остается моим фаворитом 😉
#AI #DeepSeek #OpenAI #нейросети #технологии
Конечно, я тоже не удержался от тестов. Впечатления позитивные - по качеству почти не отличается от o1, но есть два больших плюса: не нужен VPN и есть нативное приложение для телефона.
А для разработчиков вообще праздник - можно развернуть локально или использовать API всего за $0.14 (против $2.50 за o1). Хотя вроде OpenAI на днях снизили цены, раньше было около $7.5 (я почему-то помню такую цену, но могу ошибится).
С техническими задачами справляется на уровне конкурентов. Правда, если говорить о качестве текста - Sonnet всё ещё остается моим фаворитом 😉
#AI #DeepSeek #OpenAI #нейросети #технологии
👍8❤1🥰1
Не зря я себе купил M4 Max с 128 ГБ оперативки — как будто чувствовал выход мощной нейросети. В теории мне должно хватить для дообучения модели на 70B параметров. Бенчмарки впечатляют, и теперь хочу сам сравнить локальную версию.
UPD: Отбой. Пробовать всё же буду, но, как выяснилось, бенчмарк выше R1 — не настоящий. Модели 70B и 7-8B — это файнтюн версии Qwen или Llama, дообученные на выходных данных оригинальной R1.
#AI #DeepSeek #OpenAI #нейросети #технологии
UPD: Отбой. Пробовать всё же буду, но, как выяснилось, бенчмарк выше R1 — не настоящий. Модели 70B и 7-8B — это файнтюн версии Qwen или Llama, дообученные на выходных данных оригинальной R1.
#AI #DeepSeek #OpenAI #нейросети #технологии
🔥1😢1
Не успел протестить DeepSeek локально, китайцев не остановить, Alibaba дропнули НОВУЮ нейросеть Qwen2.5-MAX.
Говорят мощнее всех существующих и бесплатная. Можете попробовать здесь без смс и vpn.
#AI #Qwen #Alibaba #нейросети #технологии
Говорят мощнее всех существующих и бесплатная. Можете попробовать здесь без смс и vpn.
#AI #Qwen #Alibaba #нейросети #технологии
chat.qwen.ai
Qwen Chat
Qwen Chat offers comprehensive functionality spanning chatbot, image and video understanding, image generation, document processing, web search integration, tool utilization, and artifacts.
🔥1
Бодрый кодер pinned «Не успел протестить DeepSeek локально, китайцев не остановить, Alibaba дропнули НОВУЮ нейросеть Qwen2.5-MAX. Говорят мощнее всех существующих и бесплатная. Можете попробовать здесь без смс и vpn. #AI #Qwen #Alibaba #нейросети #технологии»
Бодрый кодер pinned «Не успел протестить DeepSeek локально, китайцев не остановить, Alibaba дропнули НОВУЮ нейросеть Qwen2.5-MAX. Говорят мощнее всех существующих и бесплатная. Можете попробовать здесь без смс и vpn. #AI #Qwen #Alibaba #нейросети #технологии»
Привет! Если вы думали над тем, чтобы заменить bash на Go для CI/CD, получить мощные инструменты тестирования, отладки и читаемый код, посмотрите на Dagger. Это инструмент, который позволяет писать CI/CD-пайплайны на Go, TypeScript или Python — как обычный код. Например сборка приложения и публикация в registry:
Из минусов, кода становится больше:
Но на больших и сложных кейсах приемущество становиться очевидным.
#DevOps #CI_CD #Dagger #Automation #GoLang
package main
import (
"context"
"dagger.io/dagger"
)
func main() {
ctx := context.Background()
client, err := dagger.Connect(ctx)
if err != nil {
panic(err)
}
defer client.Close()
// Собираем Docker-образ
image := client.Container().Build(client.Host().Directory("."))
// Пушим в registry
_, err = image.Publish(ctx, "my-registry/my-app:latest")
if err != nil {
panic(err)
}
}
Из минусов, кода становится больше:
#!/bin/bash
echo "Building app..."
docker build -t my-app .
echo "Pushing to registry..."
docker tag my-app my-registry/my-app:latest
docker push my-registry/my-app:latest
Но на больших и сложных кейсах приемущество становиться очевидным.
#DevOps #CI_CD #Dagger #Automation #GoLang
This media is not supported in your browser
VIEW IN TELEGRAM
В начале недели прям залп новинок для тех, кто работает с информацией:
OpenAI представили Deep Research - агента, который сам проводит исследования. Например, просишь его проанализировать IT-тренды за 5 лет, и он самостоятельно изучает интернет, формируя серьезный аналитический отчет со всеми ссылками на источники. Работает от 5 до 30 минут, доступно для Pro-аккаунтов.
Появился Typeset.io - специализированный AI для работы с научными статьями. Его фишка в том, что он опирается только на проверенные научные источники.
Ну и OpenDeepResearcher - еще один инструмент для автоматизации исследовательской работы. Заточен под курсовые и дипломные. Собирает инфу из интернета, не останавливается пока не соберет всё необходимое, и предоставляет готовые ссылки на источники.
#AI #OpenAI #DeepResearch #исследования #технологии #наука
OpenAI представили Deep Research - агента, который сам проводит исследования. Например, просишь его проанализировать IT-тренды за 5 лет, и он самостоятельно изучает интернет, формируя серьезный аналитический отчет со всеми ссылками на источники. Работает от 5 до 30 минут, доступно для Pro-аккаунтов.
Появился Typeset.io - специализированный AI для работы с научными статьями. Его фишка в том, что он опирается только на проверенные научные источники.
Ну и OpenDeepResearcher - еще один инструмент для автоматизации исследовательской работы. Заточен под курсовые и дипломные. Собирает инфу из интернета, не останавливается пока не соберет всё необходимое, и предоставляет готовые ссылки на источники.
#AI #OpenAI #DeepResearch #исследования #технологии #наука
🔥5👍2
Поговорим про распил монолита. На схеме представлены 4 ключевых паттерна, которые помогут упростить переход:
Strangler Fig Pattern - позволяет постепенно извлекать функционал из монолита в отдельные сервисы, не нарушая работу системы. Как лиана, новые сервисы обвивают старый монолит, постепенно забирая его функционал.
Parallel Run Pattern - позволяет запускать старую и новую реализацию параллельно, сравнивая результаты. Это снижает риски при миграции, так как мы можем быстро откатиться на старую версию.
Decorating Collaborator Pattern - позволяет добавлять новую функциональность через прокси-слой, не меняя существующий монолит.
Change Data Capture (CDC) - позволяет отслеживать изменения в базе данных и синхронизировать данные между старой и новой системой.
Кстати, даже если вы не планируете разделять монолит, очень рекомендую внедрить API Gateway. Это даст вам:
* Централизованный контроль над всеми API эндпоинтами
* Принудительное документирование контрактов
* Простое подключение мониторинга и метрик
* Полную трассировку запросов через OpenTelemetry
#архитектура #микросервисы #монолит #паттерны #разработка
Strangler Fig Pattern - позволяет постепенно извлекать функционал из монолита в отдельные сервисы, не нарушая работу системы. Как лиана, новые сервисы обвивают старый монолит, постепенно забирая его функционал.
Parallel Run Pattern - позволяет запускать старую и новую реализацию параллельно, сравнивая результаты. Это снижает риски при миграции, так как мы можем быстро откатиться на старую версию.
Decorating Collaborator Pattern - позволяет добавлять новую функциональность через прокси-слой, не меняя существующий монолит.
Change Data Capture (CDC) - позволяет отслеживать изменения в базе данных и синхронизировать данные между старой и новой системой.
Кстати, даже если вы не планируете разделять монолит, очень рекомендую внедрить API Gateway. Это даст вам:
* Централизованный контроль над всеми API эндпоинтами
* Принудительное документирование контрактов
* Простое подключение мониторинга и метрик
* Полную трассировку запросов через OpenTelemetry
#архитектура #микросервисы #монолит #паттерны #разработка
👍4❤1