Python, and dynamically typed languages in general, are known as being great for beginners. However, I feel that while they’re fun for beginners, they should only be used if you really know what you’re doing, as the code can get messy real fast without some guard rails in place (static typing being a big one).
Okay, I see what you’re saying and I concur. Thanks for the clarifying comment! 🫡
I’m willing to bet a team of untrained, uneducated, software/data engineers receiving big salaries are responsible for this.
It’s my understanding that big brand banks live on top of brittle, low quality, poorly tested code- and that’s if they’re not straight up using excel to run production processes.
Ah yes, the project that nobody asked for, and it has to be worth it because you still have your actual assigned work to hack.
I remember that feeling of not seeing the light at the end of the tunnel while having invested multiple days into a side quest that my boss never asked for (but would ultimately make me, or the team, more productive). I remember being more junior in my career and fighting that devil on my shoulder as it’s saying, “it’s turned into spaghetti! Just abandon it and get back to your deadlines before you go too far!”
Docker builds are not reproducible
What makes you say that?
My team relies on Docker because it is reproducible…
Docker is like, my favorite utility tool, for both deployment AND development (my replacement for Python virtual environments). I wanted to hear more of why I shouldn’t use it also.
I find Go to be a great language. I read a couple of books on Go as I started learning it, and I learned about some of the items that the author is complaining from those books ahead of time (rather than encountering them as some sort of surprise or bug).
None of the author’s complaints with the language gained traction with me. I understand the complaints, but my reaction certainly wasn’t “I’m lying to myself about this so I can enjoy this language.” Perhaps it’s because my exposure to Go has been more limited than the author’s, or maybe Go is a great language and these complaints are just language features or trade offs that are good to be made aware of. 🤷♂️
…one of my early uses of Go was making libraries to be consumed from in a different language’s runtime. This was something the author made sound horrific, but something I was doing as a relatively new person to Go. I had to learn “how” to do it, but it certainly didn’t leave me feeling like it was “extremely hard.”
The meme itself isn’t bashing Docker.
Single responsibility principle: is your GetData()
function responsible for getting data? Or is it responsible for creating a new database connection and also using that to go get the data?
Start naming your functions by what they really do. When you see the word “and” in your function name, you know your function is responsible for too much.
Dependency injection is the difference between CreateDatabaseConnectionAndGetData()
and GetData(connection ConnectionType)
.
In the first example, that function will always connect to the specific db that you hard coded in it. It probably has to also read in a config file to get the connection details. Maybe you should name it ReadConfigAndCreateDatabaseConnectionAndGetData()
?
In the second example, I can pass in a MySQL connection or PostgreSQL connection, or some dummy connection for testing.
Keep all that nasty dirty untestable code in one place and spare your business logic from owning all of that.
My condolences. This is the stuff Robert C. Martin talks about in his book “Clean Architecture”; database vendors locking you into their tech.
Your boss isn’t just a developer, he’s a *db developer *. From his perspective, the database is a god rather than a means to store information.
I should add onto my original post that the queries should strive to be as database agnostic as possible. This alleviates a lot of pain when the company decides to move from one DBMS to another.
Is it safe to assume your stored procedures have lots of DBMS specific functions and syntax sprinkled among the code?
I’m in this boat. I just want to see lemmy succeed as a legit Reddit alternative.
Edit: WefWef has made me feel right at home, coming from the Apollo app. If you haven’t tried it, check it out! (https://wefwef.app)
WASM is simply further down the rabbit hole for someone who is new to programming (but not someone who’s already a programmer and just doesn’t focus on web dev today). You are likely far less beginner than you think if you’re making decisions like “I’m going to compile my software written in Rust targeting WASM so I can demo it.”