Thursday, August 18, 2022

There's something inherently satisfying about 'putting in the plumbing'

I think it's one of the things that makes highly productive developers. The ability to identify and remove friction from the things you do every day.

I like things I can rely on. So I make simple things that do one thing... then rely on them do to that thing for me, so I can think at a higher level of abstraction.I wrote a script to go grab all the env vars from an environment, so I can set up my machine to connect to that environment correctly.

I wrote a script to launch 'docker-compose -f docker-compose-localRemotedb.config %$'  so I don't have to think about it any more. ... then it grew... to include sending my ssh key.. and soon to set up the env variables for me based on the output of the other script 
:wink:Anything that makes me able to type what I'm trying to achieve and it does it... instead of telling the computer a series of commands to get it to do something. :slightly_smiling_face:

The natural extension of this is devops.  I want to just say "i'm happy with this" and it gets checked and rolled out for me.
When learning Lisp the language itself is so light weight... that if you want to do anything you end up making your own abstractions and data structures...etc.  so in effect you end up defining your domain specific language for the problem you are solving... then define your solution in terms of that language.This mindset of "this code is defines a concept" and "this code explains my intention in terms of that concept" is key to accelerating as you work.

If the concepts you create align with how your domain experts (customers?) talk about the business domain you are working in.. then the likelyhood is that your solution will be something experts can read and agree with. Also..it's likely that when you learn more about the domain you will be able to refine your definitions of those terms and your code will keep working.
If you model someone's solution with a metaphore... like "So you can think of your customers as being on a conveyer-belt being dipped in different colors of products" .. then when your next requirement comes in.. you will probably have to drop the metaphore and re-write the code.

No comments:

GitHub Projects