Benoit J - My mostly tech blog

2021w49 - Weekly Summary

Published on 2021-12-10

Categories: summaries
Tags: summaries

Pssst - this is a RSS only post.
Please keep it secret. Read more about RSS Club.

For a while I’ve been thinking of capturing thoughts / experiences regularly.

You will find thoughts related to my work, my passions, and my life.

work - new project

Last week I joined a long running project.

Couple of thoughts from this:

  1. Most of challenges are related to organization, and processes
  2. It’s really hard to get in context when no having access to code, tools, information.
  3. This team is awesome. They are skilled, and easy to work with.
  4. The tools… Locked down, super limited. Not ideal.

work - Lots of industries impose tools to their developers

I’m getting tired of getting all my tools imposed on me. There is a context to it, but it does not make it much easier to digest.

Here I’m talking primarily about my hope to use Linux, and Emacs at work.

This is harder when working for a consulting firm, where there are many layers of decision makers, and it’s a constant beginning every x months.

Object Mother test design pattern using a factory

The Object Mother pattern is great as a way to create your test fixture. Especially for complex domain objects.

I’ve successfully implemented it in the past by combining it with the builder pattern. It made it really nice and fluent.

This week, I’ve seen it implemented as an abstract factory. I think the builder approach works better.

lombok is over appreciated

This library manipulates byte code and inject changes in your Java classes. Some features it brings are related to created accessors, builders, etc…

Couple of things overlooked when including lombok in a tech stack:

  1. # of active contributors (roughly 4)
  2. # of bugs (732 open bugs)
  3. risk of breaking in the future manipulating byte-code is and will break in many major revisions
  4. conflict with other libraries and the JVM runtime in some scenarios, manipulating byte-code can impact dynamic proxies, transactions, AOP matchers, etc.. I experienced some issues in the past between Lombok and H2 DB.
  5. troubleshooting since lombok is byte-code without actual source code, it’s harder to troubleshoot issues.

This is quite a long list of risks for a simple set of features.

There are other alternatives to lombok:

  1. for getters / setters: just use the IDE to generate your accessors
  2. builder: snippets to generate actual builders. some IDEs does it. or get a builder generator that creates java code in target/generated-sources

At this point, you may have guessed I never use lombok unless it’s already in our client’s code.

Changes to my career plan

I’m tired of OO, statically typed languages and tools I need to use at work. (reasons may be explained in later posts)

My career goals are to continue building awesome piece of software using the tools and language I like.

I’m going to focus my learning on Clojure and Javascript/NodeJS to be ready when the time is right.

benlab

This week has been quite active in this area:

  1. setting up mail / gpg with nix home-manager
  2. started to plan how to setup Emacs as a replacement for IntelliJ for Java dev started playing with lsp-mode
  3. Refactoring of the way I deal with my git repositories setup group of repos: private, public, contrib, and others.

my public repos

These are all my public repositories where I’m the only contributor.

New strategy is:

my private repos

These contains:

New strategy is:

home improvements

I’ve been renovating my old house for many years. I usually do everything myself.

This week, I’m planning:

  1. finish some plastering / painting touch-ups.
  2. start planning the construction of my new office.

craftering

For comments, use email or Mastodon

Don't forget to subscribe to my RSS feed!