Сделал в компании доклад о применении ИИ в архитектуре, давайте и вам расскажу.
Фокус в использовании подхода architecture as code: абсолютно все архитектурные артефакты у нас это тексты. С обычной документацией понятно, это и так некоторый набор текстовых файлов, чаще всего в макрдауне. Для них мы применяем структурный шаблон Arc42 — список из 12 пунктов, по которым нужно распределить информацию о проектируемой системе.
Структурный шаблон, во-первых, хорошо известен нейронкам, и они сразу понимают, о чём речь. Во-вторых, можно кинуться в модель бизнес-требованиям и очень быстро создать некий первоначальный набросок, от которого вы дальше уже пляшете, уточняя по пунктам и исправляя ошибки ИИ. Ну и, в-третьих, готовая структура с ящиками, по которым нужно всё раскладывать, это гораздо лучше, чем свалка ADR'ок, как это нередко бывает в компаниях.
Со схемами и диаграммами ещё интереснее. Берём инструменты со своими DSL-языками, такие, как Structurizr и PlantUML. Вся схема или диаграмма целиком определяется текстовым файлом. Можно применять Git со всеми его преимуществами. А для нейронок это родная среда: вы, как человек, смотрите на схему глазами, но нейронка работает с её DSL-файлом. Навскидку тут прирост эффективности даже больше, чем в программировании, потому что DSL это просто синтаксис, без смыслового наполнения, человеку его можно вообще не знать. Ты пишешь промпты, а смотришь уже на картинку, сгенерированную схему, и следующим промптом указываешь, где какие правки сделать. Нейронке при этом не приходится думать про потоки, асинхронность, типы данных, она просто правит текст как текст, поскольку у DSL нет поведения.
Тут как раз наиболее видна разница между рутинной и интеллектуальной частью работы. Как именно будет выглядеть схема, продумывает архитектор. Если доверить это нейронке, даже мощной, будет полно ошибок, неоптимальностей, неучтённых нюансов среды и так далее. Но вот само по себе написание синтаксиса — имба.
#dev@clockstackwheels
Great post about service discovery and load balancing for GoLang microservices. Code examples, theory and step-by-step instructions are here:
#architecture#microservices#development
http://callistaenterprise.se/blogg/teknik/2017/04/24/go-blog-series-part7/
The article by Paul Dix calls “The Decomposable Monolith: Long Live the Monolith, Long Live Services!”
Code examples are available but without a code highlighting 🙂
#architecture#development#microservices
https://www.influxdata.com/blog/decomposable-monolith-long-live-monolith-long-live-services/
Great article about the architecture inside of Golang microservice, based on the Bob's Clean Architecture Concept (https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html)
Main points: Your GoLang microservice has 4 layers:
- Models, data structures, and their methods;
- Repository, the provider of DB operations and data management,
- Usecase for business logic implementation;
- Delivery, protocol, and algorithms for message handling (HTTP, gRPC, etc).
Each layer should be independent and be available for mocking, for internal communications between application layers.
An example project here: https://github.com/bxcodec/go-clean-arch
Full article on the Hackernoon website:
https://hackernoon.com/golang-clean-archithecture-efd6d7c43047
#development#microservices#architecture
Top-featured manual about kubernates-services step-by-step development. Code examples, service design, test coverage
#development#microservices#architecture
https://blog.gopheracademy.com/advent-2017/kubernetes-ready-service/
How can we track our microservice activity and monitor some processes inside of the service? The Prometheus can helps us in it: the next following article discovers an step-by-step flow for set up, configure and usage this excellent product:
#development#microservices#monitoring
https://www.google.ru/amp/s/blog.alexellis.io/prometheus-monitoring/amp/
This is a perfect longread about organization of microservice’s testing.
#microservices#testing#architecture
https://medium.com/@copyconstruct/testing-microservices-the-sane-way-9bb31d158c16?source=linkShare-b636419a57de-1520885775
Are you a beginner in GoLang? Then it requires your attention 🙂.
Good and simple for understanding article about microservice-based API development; just simple and work solution with code examples and couple of advices
#development#microservices#architecture#practice
https://medium.com/@thedevsaddam/build-restful-api-service-in-golang-using-gin-gonic-framework-85b1a6e176f3?source=linkShare-b636419a57de-1516910445
Do you think about gRPC usage? Here is a great post about step-by-step guide to gRPC framework development. You’ll find here code examples, theory introductions and useful tips. Enjoy learning! 🙂
#manual#development#microservices#examples
https://medium.com/@shijuvar/building-high-performance-apis-in-go-using-grpc-and-protocol-buffers-2eda5b80771b?source=linkShare-b636419a57de-1516656055
Interesting step-by-step guide about design and development API with Docker containers, Swarm cluster and Traefik (HTTP reverse proxy and load balancer).
In this article you’ll know how to configure the Traefik in the Docker environment with 3 following nodes: one manager and two workers
#architecture#configuration#docker#microservices
https://hackernoon.com/architecting-a-highly-scalable-golang-api-with-docker-swarm-traefik-875d1871cc1f?source=linkShare-b636419a57de-1517171008
Up-to-date article about data-stream processing: Apache Kafka, microservices, JVM to GoLang migrations, ES & Cassandra. What they did when they got 6x traffic increasing in 6 month
#design#cases#microservices#scalability
https://medium.com/@magicpineng/in-depth-look-at-a-scalable-robust-data-stream-processing-pipeline-using-golang-processing-500k-9e68310a0675
✅ Завтра
JBreak 2018
📅 4 марта / 10:00 (время Новосибирское, МСК+4) / Новосибирск, Станционная ул., 104 + онлайн-трансляция
💵 Платно
📝 Регистрация тут: https://goo.gl/J22JGQ
JBreak — единственная сибирская технологическая Java-конференция для опытных разработчиков.
Все доклады будут посвящены только востребованным Java-технологиям и проблемам: производительность, concurrency, тестирование, распределённые системы и высокие нагрузки в мире Java, а также будущее платформы.
Спикеры:
~ Simon Ritter
~ Sebastian Daschner
~ Никита Липский
~ Алексей Зиновьев
~ Дмитрий Бугайченко и другие
🔗 Программа: https://goo.gl/tYhuCR
#backend#java#spring#JDK#Hibernate#microservices#Новосибирск#онлайн