Тёмный
Otavio Santana
Otavio Santana
Otavio Santana
Подписаться
Become an ultimate software engineer.

I can help software engineers become more effective and productive in reaching the ultimate stage of sophistication using the best practices of the open-source world. So they will get top-level tech positions in the most successful companies in the world as an ultimate engineer.

If you're tired of shallow topics around Software architecture and want to learn more beyond the buzzword, you came to the right place.

Nice to meet you; my name is Otávio Santana.

See you with weekly content!
Java Logs: Logging Best Practices
8:15
Месяц назад
Комментарии
@mukulkopulwar
@mukulkopulwar Месяц назад
Good video thanks for sharing
@otaviojava
@otaviojava 29 дней назад
Thanks for watching
@mikaelmedeiros2646
@mikaelmedeiros2646 Месяц назад
I'm glad and proud that my APIs are following some of these tips! And now I'll be improving with the others. By the way, great video!
@otaviojava
@otaviojava Месяц назад
Thank you, I am super glad that you enjoyed it.
@elailson
@elailson Месяц назад
Nice video.
@otaviojava
@otaviojava Месяц назад
Many many thanks, I glad that you enjoyed it.
@drapala97
@drapala97 Месяц назад
you dropped this just when I needed, muito obrigado!
@otaviojava
@otaviojava Месяц назад
Glad I could help! Como sempre é um prazer ajudar :)
@olddeveloper8648
@olddeveloper8648 Месяц назад
Thanks for this info.
@otaviojava
@otaviojava Месяц назад
Glad it was helpful!
@otaviojava
@otaviojava Месяц назад
The Article link: dzone.com/articles/data-management-with-offset-and-cursor-based-pagination
@otaviojava
@otaviojava Месяц назад
The link: dzone.com/articles/achieving-inheritance-in-nosql-databases-with-java
@MrAvelino2010
@MrAvelino2010 2 месяца назад
I CAN SEE THE LINK?
@otaviojava
@otaviojava Месяц назад
The link is here: dzone.com/articles/achieving-inheritance-in-nosql-databases-with-java
@_guilhermesales
@_guilhermesales 3 месяца назад
Tip: you could provide us also a link in the comment so we could check the article directtly. In the meanwhile, thank you so much for the content :)
@otaviojava
@otaviojava Месяц назад
The article link: dzone.com/articles/data-management-with-offset-and-cursor-based-pagination
@otaviojava
@otaviojava Месяц назад
I am glad that you enjoyed it.
@adityagupta1826
@adityagupta1826 3 месяца назад
Nice video 👍
@otaviojava
@otaviojava Месяц назад
Thanks
@ermenegildomossino5182
@ermenegildomossino5182 3 месяца назад
Thank you.....your videos are the most professional and deserve more views.
@otaviojava
@otaviojava 3 месяца назад
I appreciate that!
@ermenegildomossino5182
@ermenegildomossino5182 3 месяца назад
Thank you
@otaviojava
@otaviojava 3 месяца назад
You're welcome
@EduardoOliveiraDev
@EduardoOliveiraDev 5 месяцев назад
Parabéns Otavio, estou aprendendo bastante com seus vídeos. Tenho uma pergunta, recentemente na equipe onde trabalho sugeri a nunca mais usar Boolean, em casos de FLAGS por ex um atributo "ativo", sempre será true or false, então porque usar o Boolean ao invés de boolean sendo que o uso do Boolean corre-se o risco de ocasionar nullPointer. você acha correto ?
@otaviojava
@otaviojava 5 месяцев назад
olá Eduardo tudo bem? Fico muito feliz que gosta do video. Com relação ao primitivo, sim, é uma boa prática. Algo que, inclusive, se encontra no Effective Java. Além de nao lidar com problemas de NPE, vc também ganha na vantagem de uma melhor economia de memória e performance de processamento.
@jonascbamt
@jonascbamt 5 месяцев назад
Great!
@otaviojava
@otaviojava 5 месяцев назад
:)
@jonascbamt
@jonascbamt 5 месяцев назад
Your example gives us more cohesive classes/method, and eliminates the if, this means improving the performance and readability of the code and helping when doing unit testing, I am studying this in the solid principle and I'm really enjoying it. I knew your chanel via Elder's chanel. Thanks man!
@otaviojava
@otaviojava 5 месяцев назад
Hey Jonas, I am super happy that you enjoyed it. Yes, this decrease a lot of complexity inside your code.
@AloisioPinto
@AloisioPinto 6 месяцев назад
Tem a versão em português também? Muitos brasileiros, principalmente estudantes que estão no ensino técnico de nível médio, podem aproveitar mais rápido essas novidades em português
@otaviojava
@otaviojava 5 месяцев назад
Olá tudo bem? Infezilmente, não. Porém, tem a editora casa do código que foca no público brasileiro. eu tive o imenso prazer de escrever um livro sobre: www.casadocodigo.com.br/products/livro-apache-cassandra
@Pedro-fi5iy
@Pedro-fi5iy 6 месяцев назад
great video, are you brazilian?
@otaviojava
@otaviojava 6 месяцев назад
Yes I am!
@hwnetohermes
@hwnetohermes 6 месяцев назад
I had the exact same discussion here. Company/Teams trying to create the first version of a microservice using a hexagon architecture with all ports and adapters (bunch of unnecessary layers) that does make sense to me. Of course , lost the fight with all “experts” in the room.
@otaviojava
@otaviojava 6 месяцев назад
Whenever I discuss simplicity in the code, it is hard, mainly with the more senior people. Mainly because that means a new trick for learning. It is a challenging discussion.
@LucasSoaresAraujo
@LucasSoaresAraujo 6 месяцев назад
Very good!
@otaviojava
@otaviojava 6 месяцев назад
Thank you! Cheers!
@LuizPais
@LuizPais 6 месяцев назад
tks Otávio! You just saved millions of useless lines of code! Simplicity is beauty!
@otaviojava
@otaviojava 6 месяцев назад
It is my pleasure, and I am glad that you enjoyed it. The simplicity is still a considerable discussion, mainly with Java developers. But I hope one day we can discuss it more smoothly.
@marcosgarcia179
@marcosgarcia179 6 месяцев назад
Show de bola
@otaviojava
@otaviojava 6 месяцев назад
:)
@marcosgarcia179
@marcosgarcia179 6 месяцев назад
Massa!
@otaviojava
@otaviojava 6 месяцев назад
😀
@ididittoday
@ididittoday 7 месяцев назад
Thank you
@otaviojava
@otaviojava 7 месяцев назад
You're welcome
@garamburito
@garamburito 7 месяцев назад
very nice example
@otaviojava
@otaviojava 7 месяцев назад
Thanks for liking
@luisantonio7191
@luisantonio7191 7 месяцев назад
Why is everyone speaking english? Well, I'll just follow the flock!
@otaviojava
@otaviojava 7 месяцев назад
Opa, Luis tudo bem? Aqui tem comentários em vários idiomas. Esteja a vontade de comentar como vc se sente mais confortável.
@Camupof
@Camupof 8 месяцев назад
Thank you, nice explanation
@otaviojava
@otaviojava 8 месяцев назад
You are welcome
@helderneres
@helderneres 9 месяцев назад
Ótimo vídeo, Otávio! Comentando/Falando da Bahia, Vitória da Conquista. Gosto mais do modelo/estilo do ModelMapper. No entanto, o mapstruct parece ser um projeto mais maduro e com uma comunidade maior.
@otaviojava
@otaviojava 8 месяцев назад
Sim, o Mapstruct é muito mais maduro e o meu favorito. É um dos que mais uso em produção. Por isso, que eu também tenho um video sobre ele: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-oT6AXGpgdGI.html
@mukulkopulwar
@mukulkopulwar 9 месяцев назад
Thanks for sharing 😊
@otaviojava
@otaviojava 9 месяцев назад
My pleasure 😊
@elailson
@elailson 9 месяцев назад
I completely agree with that, we, as software developers, need to build code easy to understand and to maintain.
@otaviojava
@otaviojava 9 месяцев назад
Thank you for sharing. Yes, sometime we spend too much time in the future and forget the past.
@jamilxt
@jamilxt 9 месяцев назад
I'm thrilled to see someone discussing this topic. In one of my interviews, I struggled to explain to my interviewers why I should create an interface (or abstraction) when I'm not certain about the final contract's appearance. If you can imagine multiple ways to implement something while writing a specific class, then introducing an interface makes sense. Otherwise, it just adds complexity, like you mentioned, and can be seen as a delay layer.
@otaviojava
@otaviojava 9 месяцев назад
Yes, the goal is about simplicity. However, we have issues with the people who do interviews. It is about culture, not technique.
@DevMultitask
@DevMultitask 9 месяцев назад
Facade -> Delegate -> Service -> Repository -> DAO -> OMG! ! Useless layers are red flag for maintainability
@otaviojava
@otaviojava 9 месяцев назад
Yes, simplicity is the goal
@mikaelmedeiros2646
@mikaelmedeiros2646 9 месяцев назад
I have a question! It makes sense I'm wrote a method "speak" with a String parameter that receive "portguese" or "english" so I can use switch case? And that method call another speakEnglish() or speakPortuguese()? Because in this case, I'm encapsulating the methods and clearing the option of the method speak.
@otaviojava
@otaviojava 9 месяцев назад
The context will define it; for example, in our case, I had two languages with a super simple sentence. If I have more, I could use an enum that is more valid than a String, once I can put an invalid value in String, such as "Banana". If the logic became more complex, I could use the Strategy pattern, thus, a Language interface with some implementations.
@mikaelmedeiros2646
@mikaelmedeiros2646 9 месяцев назад
Are u using copilot to assist on code?
@otaviojava
@otaviojava 9 месяцев назад
Yes, I am
@mikaelmedeiros2646
@mikaelmedeiros2646 10 месяцев назад
That's make so sense for me. I hope we can explain that to our partners one day. This is a DDD practice?
@otaviojava
@otaviojava 10 месяцев назад
Yes, it is a mix of several amazing books: - A philosophy of software design - Just Enough Software Architecture: A Risk-Driven Approach - Clean Code - Building Evolutionary Architectures: Automated Software Governance
@UhrBushaltestelle
@UhrBushaltestelle 10 месяцев назад
What earbuds are you using and is the audio in this video from the earbud mic?
@otaviojava
@otaviojava 10 месяцев назад
JBL Tune 230NC
@luisdea4427
@luisdea4427 11 месяцев назад
My problem with lombok is that is one more dependency to our project, to maintain and keep up to date, to a new developer learn before being productive. If we used frameworks only when necessary, wouldn't be so dificult to keep up to date our dependencies.
@otaviojava
@otaviojava 11 месяцев назад
yeap, but in this case it might happen with others dependencies as well. In this case, I enjoy a lot of the Dependabot. It will generate PRs with new version of the dependencies that you have in your project.
@DevMultitask
@DevMultitask Год назад
Records make DTO very tiny, the way it should be 👍
@otaviojava
@otaviojava Год назад
Yeap, it makes the code shorter.
@andymejia545
@andymejia545 Год назад
Basically I use @Builder annotation, However I've seen several blogs and opinions about avoiding @Data, if It uses Record class, it could be the good choice but in most of the cases you can't use the latest version of java. do you recommend Lombok in production projects?
@otaviojava
@otaviojava Год назад
Not by my decision, but I do have some projects using Lombok. In general, capturing the annotation that should not be used in the project is challenging. In this scenario, I prefer to use IDE templates instead, but it is fine to use in production; the issue is a long-term project.
@vitorhugodecastrosil
@vitorhugodecastrosil Год назад
Documentação deveria ser requisito de dod, muitos lugares só tem doc na cabeça de x pessoas na organização.
@otaviojava
@otaviojava Год назад
Tenho essa mesma dor Vitor. as pessoas ainda não olham com bons olhos uma boa documentação.
@mikaelmedeiros2646
@mikaelmedeiros2646 Год назад
There are no problem with usage of memory when we instanciate a ArrayList?
@otaviojava
@otaviojava Год назад
When you instantiate an `ArrayList` without using it, it does consume memory, and it's better to use `java.util.Collections.emptyList()` if you don't intend to store any elements. However, when you plan to use it, `ArrayList` generally handles memory efficiently. It's crucial to be conscious of initial capacity, automatic resizing, and memory usage per element, particularly when dealing with large datasets or memory constraints. Properly configuring these aspects can help optimize memory usage while benefiting from the flexibility and convenience of `ArrayList`.
@mikaelmedeiros2646
@mikaelmedeiros2646 Год назад
@@otaviojava thx for response! very useful to me!
@otaviojava
@otaviojava Год назад
My pleasure@@mikaelmedeiros2646
@jobayertuser
@jobayertuser Год назад
Really amazing thanks a lot for sharing the idea
@otaviojava
@otaviojava Год назад
Thank you! Cheers!
@pockpicket9360
@pockpicket9360 Год назад
thanks for th video, but it's not a ultimate guide, you just show the very basic that Mapstruct can do
@otaviojava
@otaviojava Год назад
Hey, thank you for the feedback. I have updated the title.
@RicardoSilvaTripcall
@RicardoSilvaTripcall Год назад
Great content, congrats !!!
@otaviojava
@otaviojava Год назад
Glad you liked it!
@wagnertrindade8897
@wagnertrindade8897 Год назад
Nice video man! Didnt knew SoftAssertions yet, only the old school ones, i will go after to learn more of this lib
@otaviojava
@otaviojava Год назад
This AssertJ is fantastic; it makes the test more readable.
@SoldierDan
@SoldierDan Год назад
Hi Otavio! I have a question about records. I can use this in a entity model? Would it be allowed? Elegant?
@otaviojava
@otaviojava Год назад
You can record as an entity with Spring Data and several NoSQL Java frameworks. The record works only with immutable entities, thus, in rare occasions.
@curiosidadesdeti
@curiosidadesdeti Год назад
Awesome
@otaviojava
@otaviojava Год назад
Thank you.
@MrAvelino2010
@MrAvelino2010 Год назад
It would be awesome if you put some code captures of what are you explaining
@otaviojava
@otaviojava Год назад
Hey Avelino, thank you for that. It is a huge challenge on short because it is a short resolution, what I can do is a video about that. What do you think?
@MrAvelino2010
@MrAvelino2010 Год назад
@@otaviojava Can be.
@MrAvelino2010
@MrAvelino2010 Год назад
Reflection make use of anotation. Every anotation means that reflection it's been use ?
@otaviojava
@otaviojava Год назад
Nope, there frameworks that read annotations on build time such as Quarkus and Micronaut. another possibility is when you use annotation for documentation proposal.
@adrianomoreira
@adrianomoreira Год назад
I remember someone tell me, the interface Serializable, is a Interface because did not exist annotations in java 1.0
@otaviojava
@otaviojava Год назад
@@adrianomoreira Yeap that makes sense.
@Arthurfreitas94190
@Arthurfreitas94190 Год назад
Conteúdo de muita qualidade. Obrigado por compartilhar Otávio !
@otaviojava
@otaviojava Год назад
Valeu Jonathan, espero que goste.
@milanstevanovic4727
@milanstevanovic4727 Год назад
What is that font, it looks nice? Great video btw :)
@otaviojava
@otaviojava Год назад
It is Jetbreains's mono.