In my previous article, we started to look at some Scbcn workshops and things I have underlined from the event. In this article, I would like to continue sharing with you my notes and Software Crafters Barcelona highlights. 

As I mentioned in my first article, in September 2018 Apiumhub was honored to become a Platinum sponsor of VI edition of the  Software Crafters Barcelona. And Evgeny Predein – CEO & Co-founder of Apiumhub gave a motivation speech there. Also, Albert Parron – Frontend Architect of Apiumhub gave a speech about MVP & FRP for a controlerless architecture

Let’s look at some talks that captured my attention: 

 

Software Crafters Barcelona highlights

 

My monolith is so cool by Cristian Cotes

The point of the presentation: you don’t need to start your project thinking in microservices. With some basic rules you can have a code that may be split into microservices in the future if needed.

Rule 1: create user cases

Rule 2: encapsulate your business logic

  • create objects with its own behaviour
  • initialize them inside user cases
  • don’t expose their implementation

Rule 3: hide implementation details

  • database implementation, message brokers, frameworks …

Rule 4: create slices (bounded contexts)

/user/
          /application
          /domain
          /infrastructure

Rule 5: extract common code

  • it might end up as your own independent libraries

When to break the monolith?

  • when the team is too big
  • some slices have special requirements
  • slices with different non-functional requirements

 

Towards functional programming through hexagonal architecture by Javier Ferrer and Juan Manuel Serrano

In this talk, Javier talked about the Hexagonal architecture while Juan Manuel did it about the functional programming. They compared the same architecture from the two points of view trying to find the parallelism between them. Very interesting presentation with a high level of explanation that needs to be checked again for a better understanding.

Here you may find the slides

 

Reactive microsystems by Ignasi Marimon-Clos

Great talk given by Ignasi about some steps for migrating from monolith to reactive microservices architecture. It gave some interesting points to improve the architecture of a monolith (although you don’t want to reach the microservices):

  • Separate stateless from stateful
  • Move state to the process (not pushed on DB)
  • Separate reads from writes (use different models)
  • Denormalise
  • Emit state changes
    • Complementary log
    • Log source of truth

As he said: “microservices is hype, there’s a world between mono and micro”.

 

Calisthenics – Smells – SOLID – Cohesion / Coupling connecting the dots
by Pedro Moreira Santos

In this session Pedro gave one of his speeches that make you think about. He went through some principles rules like DRY, YAGNI…, through some code smells and finally the SOLID principles. With all this information, he started to find the relationships between these concepts. 

For example:

Single responsibility → cohesion

Open -> coupling

We’ll talk more about this exercise in another article.

 

Conclusion: Software Crafters Barcelona highlights 

There were a lot of interesting workshops and conferences that we worth visiting. Every year Software Crafters Barcelona is getting better and better. Can’t wait to attend next edition! 

 

If you would like to know more about Software Crafters Barcelona highlights , I highly recommend you to subscribe to our monthly newsletter by clicking here.  

 

And if you found this article about Software Crafters Barcelona highlights interesting, you might like…

 

Scala generics I: Scala type bounds

Scala generics II: covariance and contravariance  

Scala generics III: Generalized type constraints

BDD: user interface testing

F-bound over a generic type in Scala

Microservices vs Monolithic architecture

“Almost-infinit” scalability

iOS Objective-C app: sucessful case study

Mobile app development trends of the year

Banco Falabella wearable case study 

Mobile development projects 

Viper architecture advantages for iOS apps 

Why Kotlin ? 

Software architecture meetups

Pure MVP in Android 

Be more functional in Java ith Vavr