O documento discute a importância de registrar decisões arquiteturais (ADRs) para projetos de software sustentáveis. Apresenta exemplos de situações comuns que podem beneficiar do registro de ADRs, como mudanças impactantes, más decisões e débito técnico. Também discute onde armazenar os registros e como atualizá-los ao longo do tempo.
Overview do Mercado de Desenvolvimento WebHector Nieva
Uma apresentação voltada para quem conhece pouco o mercado de Desenvolvimento Web. Falo sobre as possibilidades de carreira, observando o fluxo completo de desenvolvimento de software, desde a etapa de conceituação até o pós-deploy, procurando deixar claro onde cada cargo se situa. Falo de tendências do mercado, como desenvolvedores de Machine Learning, Data Scientists, Devops, SRE, Cloud Computing, Agile, etc. Depois dou dicas para iniciar e se manter na indústria de Desenvolvimento Web.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
Quem nunca ouviu, "mas é só mais campinho na tela?". Nesta palestra compartilharemos com vocês como estamos conscientizando a equipe e os demais setores da empresa da importância de avaliar o impacto de alterações nos sistemas, mesmo que sendo apenas uma linha de código. Iremos apresentar os aprendizados, desafios e erros que já enfrentamos nestes 12 meses de uso e evolução do processo de desenvolvimento na HostGator America Latina com fases/atividades mais bem definidas e a importância de perpetuar esta visão para os demais setores da empresa. Além disso, apresentar sobre o presente, o crescimento e o futuro desta nova cultura voltada a usabilidade, qualidade, escala e segurança.
Revisitando as Práticas de Engenharia ÁgilDanilo Sato
Slides da minha palestra na QCon SP 2013:
Agile virou mainstream: hoje em dia é difícil encontrar um time que não esteja seguindo um processo ágil. No entanto os processos mais comuns focam mais nas práticas gerenciais e não tanto nas práticas de engenharia. Na minha experiência com Métodos Ágeis, a falta de disciplina técnica é um dos principais impedimentos para criar equipes altamente produtivas. Nesta palestra eu pretendo revisitar as práticas de engenharia ágil, desde as originalmente propostas por XP há mais de dez anos atrás - como TDD, refatoração ou programação em par - até ideias mais recentes - como DevOps, infraestrutura como código e pipelines de deployment. Ao invés de focar no "O que?" de cada prática, pretendo tomar uma abordar mais profunda, focando no "Por quê?", nos comportamentos e nos resultados esperados de uma equipe que aplica as práticas com sucesso.
Overview do Mercado de Desenvolvimento WebHector Nieva
Uma apresentação voltada para quem conhece pouco o mercado de Desenvolvimento Web. Falo sobre as possibilidades de carreira, observando o fluxo completo de desenvolvimento de software, desde a etapa de conceituação até o pós-deploy, procurando deixar claro onde cada cargo se situa. Falo de tendências do mercado, como desenvolvedores de Machine Learning, Data Scientists, Devops, SRE, Cloud Computing, Agile, etc. Depois dou dicas para iniciar e se manter na indústria de Desenvolvimento Web.
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
Nesta sessão abordamos a performance de Sistemas de Informação desenvolvidos na plataforma ASP.NET com recurso a SQL Server com SGBD. Iremos explicar como surgem os problemas de performance em sistemas com alguns anos de existência e qual a abordagem a tomar, quando temos utilizadores insatisfeitos.
Abordaremos também alguns casos de sucesso no mercado a nível de sistemas de alta disponibilidade e como o mercado tem evoluído. De uma forma geral, pretendemos demonstrar técnicas de análise/tuning de performance em ASP.NET e sua evolução ao longo das várias versões, como também algumas técnicas de requisitos para obtenção e estruturação da informação.
Finalmente, o objetivo passa por divulgar procedimentos, técnicas e ferramentas que sirvam como uma referência que possam ser úteis caso surjam problemas de performance nos nossos sistemas de futuro, entre os quais : Do’s & Dont’s, Systematic Tuning, ASP.NET Trace, VS Profiling Tools, SQL Profiler entre outros.
Quem nunca ouviu, "mas é só mais campinho na tela?". Nesta palestra compartilharemos com vocês como estamos conscientizando a equipe e os demais setores da empresa da importância de avaliar o impacto de alterações nos sistemas, mesmo que sendo apenas uma linha de código. Iremos apresentar os aprendizados, desafios e erros que já enfrentamos nestes 12 meses de uso e evolução do processo de desenvolvimento na HostGator America Latina com fases/atividades mais bem definidas e a importância de perpetuar esta visão para os demais setores da empresa. Além disso, apresentar sobre o presente, o crescimento e o futuro desta nova cultura voltada a usabilidade, qualidade, escala e segurança.
Revisitando as Práticas de Engenharia ÁgilDanilo Sato
Slides da minha palestra na QCon SP 2013:
Agile virou mainstream: hoje em dia é difícil encontrar um time que não esteja seguindo um processo ágil. No entanto os processos mais comuns focam mais nas práticas gerenciais e não tanto nas práticas de engenharia. Na minha experiência com Métodos Ágeis, a falta de disciplina técnica é um dos principais impedimentos para criar equipes altamente produtivas. Nesta palestra eu pretendo revisitar as práticas de engenharia ágil, desde as originalmente propostas por XP há mais de dez anos atrás - como TDD, refatoração ou programação em par - até ideias mais recentes - como DevOps, infraestrutura como código e pipelines de deployment. Ao invés de focar no "O que?" de cada prática, pretendo tomar uma abordar mais profunda, focando no "Por quê?", nos comportamentos e nos resultados esperados de uma equipe que aplica as práticas com sucesso.
Escalando infra em ops em um ambiente de hiper crescimentoRenan Capaverde
DevOps é um tipo de cultura, não é um cargo, muito menos um time. Nesta seção, queremos compartilhar a história do Nubank buscando sanidade e equilíbrio entre Dev e Ops em uma arquitetura de microserviços.
Vamos demonstrar como evoluímos de um time de engenharia sem ninguém dedicado à Infraestrutura para um time responsável pela evolução horizontal da plataforma, mantendo times responsáveis pela operação dos seus próprios serviços.
The Individual Contributor Path - DPC2024Rafael Dohms
For most of my early career, I was told the only path up was through management roles. Our market has since evolved, and Staff+ engineering roles are more common and offer us a different path. But what is a Staff/Principal engineer? What do they do? How do they work? Are they just managers who can't admit it?
Let's explore all these topics, the skills you need, the role you may play, and the different flavors of Individual Contributors you will discover while we figure out how to hotwire your growth in this career path.
We all know not to poke at alien life forms in another planet, right? But what about metrics, do you know how to pick, measure and draw conclusions from them? In this talk we will cover various Site Reliability Engineering topics, such as SLIs and SLOs while we explore real life examples of defining and implementing metrics in a system with examples using Prometheus, an open-source system monitoring and alert platform, to demonstrate implementation. Let's get back to some real science.
Mais conteúdo relacionado
Semelhante a Architectural Decision Records - PHPConfBR
Escalando infra em ops em um ambiente de hiper crescimentoRenan Capaverde
DevOps é um tipo de cultura, não é um cargo, muito menos um time. Nesta seção, queremos compartilhar a história do Nubank buscando sanidade e equilíbrio entre Dev e Ops em uma arquitetura de microserviços.
Vamos demonstrar como evoluímos de um time de engenharia sem ninguém dedicado à Infraestrutura para um time responsável pela evolução horizontal da plataforma, mantendo times responsáveis pela operação dos seus próprios serviços.
The Individual Contributor Path - DPC2024Rafael Dohms
For most of my early career, I was told the only path up was through management roles. Our market has since evolved, and Staff+ engineering roles are more common and offer us a different path. But what is a Staff/Principal engineer? What do they do? How do they work? Are they just managers who can't admit it?
Let's explore all these topics, the skills you need, the role you may play, and the different flavors of Individual Contributors you will discover while we figure out how to hotwire your growth in this career path.
We all know not to poke at alien life forms in another planet, right? But what about metrics, do you know how to pick, measure and draw conclusions from them? In this talk we will cover various Site Reliability Engineering topics, such as SLIs and SLOs while we explore real life examples of defining and implementing metrics in a system with examples using Prometheus, an open-source system monitoring and alert platform, to demonstrate implementation. Let's get back to some real science.
How'd we get here? A guide to Architectural Decision RecordsRafael Dohms
Every day developers will make an uncountable number of decisions while working or run into past decisions that we do not fully understand. How can we organize all this content and simplify the sharing of architectural knowledge?
Let's explore ADRs and how they can support decision making and sharing on various levels.
We all know not to poke at alien life forms in another planet, right? But what about metrics, do you know how to pick, measure and draw conclusions from them? In this talk we will cover various Site Reliability Engineering topics, such as SLIs and SLOs while we explore real life examples of defining and implementing metrics in a system with examples using Prometheus, an open-source system monitoring and alert platform, to demonstrate implementation. Let's get back to some real science.
We all know not to poke at alien life forms in another planet, right? But what about metrics, do you know how to pick, measure and draw conclusions from them? In this talk we will cover various Site Reliability Engineering topics, such as SLIs and SLOs while we explore real life examples of defining and implementing metrics in a system with examples using Prometheus, an open-source system monitoring and alert platform, to demonstrate implementation. Let's get back to some real science.
Writing code you won’t hate tomorrow - PHPCE18Rafael Dohms
As developers we write code everyday, only to frown at it a week after that. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self judgment is a matter of clarity and simplicity. Let's talk about growing, learning and improving our code with calisthenics, readability and good design.
We all know not to poke at alien life forms in another planet, right? But what about metrics, do you know how to pick, measure and draw conclusions from them? In this talk we will cover various Site Reliability Engineering topics, such as SLIs and SLOs while we explore real life examples of defining and implementing metrics in a system with examples using Prometheus, an open-source system monitoring and alert platform, to demonstrate implementation. Let's get back to some real science.
Application metrics with Prometheus - DPC18Rafael Dohms
We all know not to poke at alien life forms in another planet, right? But what about metrics, do you know how to pick, measure and draw conclusions from them? In this talk we will cover Service Level Indicators (SLI), Objectives (SLO), and how to use Prometheus, an open-source system monitoring and alert platform, to measure and make sense of them. Let's get back to some real science.
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHPKonfRafael Dohms
As developers we write code everyday, only to frown at it a week after that. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self judgment is a matter of clarity and simplicity. Let's talk about growing, learning and improving our code with calisthenics, readability and good design.
“Writing code that lasts” … or writing code you won’t hate tomorrow. - PHP Yo...Rafael Dohms
As developers we write code everyday, only to frown at it a week after that. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self judgment is a matter of clarity and simplicity. Let's talk about growing, learning and improving our code with calisthenics, readability and good design.
Composer has triggered a renaissance in the PHP community, it has changed the way we deal with other people’s code and it has changed the way we share our code. We are all slowly moving to using Composer, from Wordpress to Joomla and Drupal and frameworks in between. But many of us mistreat composer, follow outdated practices or simply lack a few tricks. In this session i’ll get you the low down on how to use composer the right way.
Writing Code That Lasts - #Magento2Seminar, UtrechtRafael Dohms
As developers we write code everyday, only to frown at it a week after that. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self judgment is a matter of clarity and simplicity. Let's talk about growing, learning and improving our code with calisthenics, readability and good design.
Composer has triggered a renaissance in the PHP community, it has changed the way we deal with other people’s code and it has changed the way we share our code. We are all slowly moving to using Composer, from Wordpress to Joomla and Drupal and frameworks in between. But many of us mistreat composer, follow outdated practices or simply lack a few tricks. In this session i’ll get you the low down on how to use composer the right way.
“Writing code that lasts” … or writing code you won’t hate tomorrow. - #PHPSRB16Rafael Dohms
As developers we write code everyday, only to frown at it a week after that. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self judgment is a matter of clarity and simplicity. Let's talk about growing, learning and improving our code with calisthenics, readability and good design.
Composer has triggered a renaissance in the PHP community, it has changed the way we deal with other people’s code and it has changed the way we share our code. We are all slowly moving to using Composer, from Wordpress to Joomla and Drupal and frameworks in between. But many of us mistreat composer, follow outdated practices or simply lack a few tricks. In this session i’ll get you the low down on how to use composer the right way.
Composer has triggered a renaissance in the PHP community, it has changed the way we deal with other people’s code and it has changed the way we share our code. We are all slowly moving to using Composer, from Wordpress to Joomla and Drupal and frameworks in between. But many of us mistreat composer, follow outdated practices or simply lack a few tricks. In this session i’ll get you the low down on how to use composer the right way.
Composer has triggered a renaissance in the PHP community, it has changed the way we deal with other people’s code and it has changed the way we share our code. We are all slowly moving to using Composer, from Wordpress to Joomla and Drupal and frameworks in between. But many of us mistreat composer, follow outdated practices or simply lack a few tricks. In this session i’ll get you the low down on how to use composer the right way.
“Writing code that lasts” … or writing code you won’t hate tomorrow.Rafael Dohms
As developers we write code everyday, only to frown at it a week after that. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self judgment is a matter of clarity and simplicity. Let's talk about growing, learning and improving our code with calisthenics, readability and good design.
A Journey into your Lizard Brain - PHP Conference Brasil 2015Rafael Dohms
Languages and syntax are the easy part of programming, the real challenge is in knowing how to solve a problem and how to find and understand which paths can take you to the solution, the moving parts. This talk will dive into this thought process, give you insights to train your lizard brain and expand your knowledge base.
“Writing code that lasts” … or writing code you won’t hate tomorrow.Rafael Dohms
As developers we write code everyday, only to frown at it a week after that. Why do we have such a hard time with code written by others and ourselves, this raging desire to rewrite everything we see? Writing code that survives the test of time and self judgment is a matter of clarity and simplicity. Let's talk about growing, learning and improving our code with calisthenics, readability and good design.
10. “Entender de onde você saiu é crucial para entender
quais são suas novas opções.”
11. “Decisões são formadas baseadas em seu contexto,
entender o contexto permite entender as decisões
passadas e tomar melhores no futuro.”
12. Fizemos isso desta forma por <<motivo>>, caso
<<condição>> aconteça podemos removes este código.
Caso contrário, considere essa <<consequência>> de fazer
isto dessa forma.
📷 olia danilevich
15. Contexto
• Descreva fatos
• Enumere as influencias atuando neste momento
• O que esta acontecendo?
• Quais os motivos e motivadores para tomar essa decisão?
• Que tipo de pressão ou conflito esta influenciando ela?
• Politica, social ou tecnológica
16. When creating the new platform, time pressure forced us to take some
shortcuts when it came to the design of our RESTful APIs (APIs from here on).
This ADR tries to rectify that, realign us and create a guideline for all future
APIs.
We subscribe to the Richardson Maturity Model for APIs. We are currently
comfortably floating somewhere near level 2 and are wondering if the effort
involved to get to level 3 is worth it.
To better support and decouple the Backend development from the Frontend
development, we want to introduce the Backend for Frontend (BFF)
architectural pattern in the form of a GraphQL component. That component will
serve all Frontend requests and talk to the backend microservices. Our
preferred implementation for that component is Apollo (Javascript). Apollo
currently reaps no benefits from having a maturity level 3 API since all relations
need to be defined by hand and are not deduced from HATEOAS.
Contexto politico e histórico
Contexto Técnico
Contexto
ADR0025 - RESTful API standards
17. Decisão
• Use a voz imperativa: “Nós vamos…”
• Explique como atenderam às influencias descritas anteriormente
• Seja claro sobre o que compõem a decisão
18. Decisão
{
"someProperty": "with a value",
"channels": [
"web-passive",
"web-active"
]
}
We will adopt a new JSON naming structure.
• properties should follow camelCase
• constant values should use kebab-case
Descrição clara e na voz ativa
Exemplos fácies de ler
ADR0013 - Use standard case for all json payloads
19. Consequências
• Como ficará o contexto após a decisão ser aplicada
• Efeitos colaterais da decisão tomada:
• Positivos
• Negativos
• Neutros
• O que não será mais possível?
• Que outras decisões serão influenciadas
20. Projects implementing this convention should not need to migrate downwards
anymore. Thus it is unnecessary, from a production environment perspective,
to have a down migration.
Any down migration may be kept in repositories for development purposes,
allowing tests to migrate back and forth speeding up the test suite in general.
However, the down migrations should never be part of deploy or
rollback process and should never be executed in production environments.
Consequências, positivas.
Exceções, e como cuidar delas
Consequências
ADR0005 - Always ensure non-breaking migrations
21. Outros formatos
• Micheal Nygard Standard
Simples, direto e completo
https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions
• MADR
Longo com mais detalhes: motivadores, alternativas, pro/cons
https://adr.github.io/madr/
• Y-Statements
In the context of <use case/user story u>, facing <concern c> we decided for <option o> to achieve
<quality q>, accepting <downside d>.
https://www.infoq.com/articles/sustainable-architectural-design-decisions/
25. Context
Decision
Consequences
ADR0001 - Record Decisions
Date: 2020-12-01
Status
Approved
Quando vamos pagar o debito?
Quais as restrições
impostas pelo Produto
Que funcionalidades estão
bloqueadas agora?