How We Measure Developer Experience at Trybe
You have probably heard the term UX (User Experience), which is defined as “the discipline responsible for designing enchanting user experiences to retain and win customers”. Analogous to this term there is a more recent one, but it has been gaining popularity in recent years. This is the DX (Developer Experience). As this is the topic of the post, I will explain it using excerpts from this great post:...
Clean Architecture, 2 years later
UPDATE: This post is old and no longer reflects what I believe to be an ideal structure for a project. In 2023, I am using and recommending what my colleagues and I have described in this post. In February 2018 I wrote what would become the most relevant text I have ever published: Clean Architecture using Golang. With more than 105k views, the post generated presentations at some Go and PHP events and allowed me to talk about software architecture with several people....
Testing APIs in Golang using apitest
One advantage of the Go language is its standard library, which contains many useful features to develop modern applications, such as HTTP server and client, JSON parser, and tests. It is exactly this last point that I will talk about in this post. With the standard library it is possible to write tests for your API, as in the following example. API code In our main.go file, we will create a simple API:...
Profiling Golang applications using pprof
In the last few weeks, Codenation has been experiencing very significant growth. Confirming the sentence of the great Bruno Ghisi who says that “on the scale everything breaks”, features that always worked perfectly become problematic. We noticed in the metrics of our Prometheus that one of the endpoints of our API was consuming a lot of resources. Talking to the team we came up with a suspicious reason, but before I refactored the code, I thought it would be better to do a more “scientific” analysis....
Using Prometheus to collect metrics from Golang applications
This text is part of a series of posts I am doing with examples of applications using Clean Architecture. The other posts that are part of this series are: Clean Architecture using Golang Golang: using build tags to store configurations Continuous integration in projects using monorepo Data Migration with Golang and MongoDB Using Golang as a scripting language Creating test mocks using GoMock In this post, I will talk about a very important feature in the complex projects we work with daily: metrics....
Creating test mocks using GoMock
Using mocks in test development is a concept used in the vast majority of programming languages. In this post, I will talk about one solution to implement mocks in Go: GoMock. To show GoMock functionality, I will use the tests created in my repository about Clean Architecture Clean Architecture encourages testing across all layers, so it’s easy to see where we can use mocks to make development easier. As we write unit tests for the UseCases layer we are sure that the logic in this layer is covered by testing....
Processing parquet files in Golang
In this post, I will talk about a relatively new data file format, and how to use it in Go. The format is called Parquet and is currently a project supported by the Apache Foundation. It is a binary file format to store and facilitate data processing a columnar storage format. It supports different types of compression and is widely used in data science and big data environment, with tools like Hadoop....
Using Golang as a scripting language
Among the technical decisions we made during the development of [Codenation] (https://codenation.dev), one of the right ones was to choose Go as the main language. ...
Object Calisthenics in Golang
Jeff Bay introduced the term Object Calisthenics in his book [Thought Works Anthology] (https://pragprog.com/book/twa/thoughtworks-anthology). It is a set of good practices and programming rules that can improve the quality of our code. ...
Full Stack vs Full Cycle developer
Full Stack developer In the last years, the term full stack developer grown in many job opportunities, mainly in startups. According to this post, a full stack developer is: ...