Alguns de vocês já devem saber que o GitHub lançou recentemente um tipo especial de repositórios. Se você criar um repositório que tenha o mesmo nome que a sua conta, o arquivo README.md desse repositório será mostrado na página do seu perfil no GitHub. Se você ainda não viu, dê uma olhada no meu perfil.

TL;DR

Com um simples exercício ao tentar fazer um resumo de quem eu sou em forma de código, consegui notar o quão importante é escrever código que será lido por uma outra pessoa, ao invés de escrever código que máquinas vão interpretar.

Aqui está o repositório…


A few of you might already know that GitHub recently released a special type of repository. In your account, if you create a repository that matches your account name, the README.md file of this repository will be shown on your GitHub profile page. If you haven’t seen it, check my profile.

TL;DR

With a simple exercise of trying to describe myself in code style, showed how important it is to write code that someone else will read, instead of writing code that machines can read.

You will find the model that I used to describe myself at: https://github.com/arleypadua/arleypadua

Story

Since I found…


I’m always fighting against myself when the topic is mapping domain objects correctly to a relational model. I wrote an article about it: “Why storing aggregates with NoSQL?” with a strong opinion on this topic and I recommend the read.

Basically my opinion hasn’t changed since that post, but lately I’m using a new approach to the subject that is worth sharing.

As the title of this article says: NoSQL with SQL, I’m proposing storing domain objects as documents with SQL.

This subject isn’t something new in the market and great companies are using it, like Particular Software (creators of…


I’d like to kick off this post by saying something that I recently learned: Don’t be afraid of refactoring.

The reason I’m writing this is because I recently read Martin Fowler’s book: Refactoring — Improving the design of existing code, which I totally recommend you to read it. This changed my way of seeing this topic.

I’ll leave down below a few points that were important to me when considering the change on the way I code. It is not easy to teach yourself this, specially if you are used to code in a different way, but worth a try.

What is refactoring and why doing so?


Eu gostaria de iniciar esse post colocando a seguinte sentença que aprendi: Não tenha medo de refatorar.

O motivo que estou escrevendo esse post é pelo fato de que recentemente li o livro do Martin Fowler: Refactoring — Improving the design of existing code. Recomendo muito pois mudou minha forma de enxergar o assunto.

Vou descrever abaixo alguns pontos que foram importante quando refleti sobre a forma como codifico. Não é fácil ter a auto-disciplina de aplicar a proposta, especialmente se a sua forma de codificar é diferente, mas vale a pena.

O que é refactoring e porque fazê-lo?

Refactoring é o processo de mudança de software…


Following my series about distributed systems, in which I start explaining about principles of service design, later on telling why they should be resilient and the need of domain events, after some feedbacks I want to share with you guys a little bit of hands on about what I’ve been talking lately.

Note.: At the end of the post, there is a link with the final solution.

To this hands on, I’ll show a system composed by:

  • An API that accepts orders containing customer name and list of products.
  • A frontend used only for sending orders to the backend and…

Designing a multi service architecture might give you some headaches when it comes to concurrency. In this post I will describe the most famous technical concurrency models and propose a different view on them, so we can design better our systems.

Follow bellow these concurrency models, their benefits and challenges.

Pessimist

This concurrency model proposes that no one can change an object while it is being held by a process, meaning that all subsequent transactions will wait on the line until they get to their job.

This approach in some cases is bad because you hold your data, cannot scale, and…


Criar um design de software multi serviços pode te levar a algumas dores de cabeça quando pensamos em concorrência. Nesse post vou descrever os modelos técnicos de concorrência mais famosos e uma proposta diferente ao vê-los, para que possamos pensar melhor no design dos nossos sistemas.

Veja abaixo os modelos de concorrência, benefícios e desafios.

Pessimista

Esse modelo de concorrência propõe que ninguém pode alterar o estado de um objeto enquanto ele está sendo alterado por outro processo, significando que todas as transações subsequentes interessadas no objeto, terão que esperar sua vez na fila para fazer o que precisam.

Essa abordagem…


Seguindo a minha série de posts sobre sistemas distribuídos em que começo explicando os princípios na modelagem de serviços, também explicando o porquê eles devem ser resilientes e a importância da implementação de domain events, após alguns feedbacks do pessoal resolvi compartilhar um pouco de prática associada aos conceitos mencionados nos posts.

Obs.: No final do post, há um link com a solução completa.

Para esse post prático, vou demonstrar um sistema muito simples composto de:

  • Uma API que aceita pedidos contendo nome do cliente e lista de itens de um pedido.
  • Um frontend simples usado somente para o envio…

Thinking about services, we always rely on transferring data over the network but, do you think that network is reliable ?

We are aware that it is not. Certainly you’ve experienced hardware, software or security issues while talking to a remote service.

Focusing on the code now, I’m sure that you saw this at least once in your life before:

var service = new MyWebService();
var result = service.Process(request);

There’s some sort of magic happening behind scenes here:
First the data gets serialized, goes through the wire, arrives on the destiny, the data is deserialized, the code is invoked with the…

Arley Pádua

Software Engineer and passionate about distributed systems

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store