Philipp Hauer, a software engineer and team lead, writes about Java and Kotlin practices, code review, Docker, testing, and management.
Commenters call his code review guidelines a favorite and cite his posts on Jib and fat jars, checked exceptions, and API pagination.
I keep a running list of articles I found useful over the years. There are many great articles about Code Reviews out there. Consider this a more general answer to your question:
Feedback Ladders: How We Encode Code Reviews at Net-lify
https://www.netlify.com/blog/2020/03/05/feedback-ladders-how-we-encode-code-reviews-at-netlify/
How to Make Good Code Reviews Better
https://stackoverflow.blog/2019/09/30/how-to-make-good-code-reviews-better/
Best Practices for Code Review
https://smartbear.com/learn/code-review/best-practices-for-peer-code-review/
Code Review Guidelines for Humans
https://phauer.com/2018/code-review-guidelines/
Unlearning toxic behaviors in a code review culture
https://medium.com/@sandya.sankarram/unlearning-toxic-behaviors-in-a-code-review-culture-b7c295452a3c
How to Do Code Reviews Like a Human
https://mtlynch.io/human-code-reviews-2/
Stop Nitpicking in Code Reviews
https://blog.danlew.net/2021/02/23/stop-nitpicking-in-code-reviews/
Yeah, if the commit record acts like an audit log I think there’s a lot of value. I wonder how hard it is to get the exact environment used to build an artifact.
I’m a big fan of this style [1] of building base containers and think that keeping the container where you’ve stacked 4 layers (up to resources) makes sense. Call it a build container and keep it forever.
1. https://phauer.com/2019/no-fat-jar-in-docker-image/
Checked exceptions deserve all the hate they get. It's not a good solution.
Here's a random rant online that ends up pitching the more common solution of unchecked exceptions + exception rewrapping: https://phauer.com/2015/checked-exceptions-are-evil/. And of course, in Rust, the rewrapping is basically forced upon you making for a really nice error-handling ecosystem.
i do...if i ever get an IOException all i have to do is end the app, no need to deal with it in any way different than an unchecked exception
https://phauer.com/2015/checked-exceptions-are-evil/
And this is the best explanation of Jib [1], but it’s hard to find via Google. It’s how all builds for every ecosystem should work IMO.
1. https://phauer.com/2019/no-fat-jar-in-docker-image/
My favorite guide on this is https://phauer.com/2018/code-review-guidelines/
There are also some great things in the book, Debugging Teams, like the Humility-Respect-Trust (HRT) concept.