|
I strongly believe that it should be less rigid and more flexible and who don’t want to have a const signature if you are not changing the value, I feel the it’s more due to the fact of junior developers fresh out of school believing we are building a kernel or cathedral if you wish.
|
|
|
|
|
Nope the standards should be quite rigid, the senior developer setting the standards should be open to new ideas and concepts with a willingness to implement them. Junior and new hires (and everyone else) should be encouraged to put forward suggestions.
Never underestimate the power of human stupidity -
RAH
I'm old. I know stuff - JSOP
|
|
|
|
|
#realJSOP wrote: it's about what it looks like to the *team*.
Exactly.
I write code so with the view that someone else (even if it is me) will need to understand it months or even years after I wrote it.
|
|
|
|
|
Either you have coding guidelines or you do not.
We have guidelines, they dates from the 80s and 90s (seriously).
The mantra has been don't change anything. (even crazy bad tab/spaces everywhere)
But...
When I go in a file to do work in it, I clean it up and bring it to more modern best practices as much as the underlying code allows me to do.
I wish I could go deeper, but time and money are not infinite.
CI/CD = Continuous Impediment/Continuous Despair
|
|
|
|
|
I've been on the same project for 24 years now. Everyone else has been less than 3 years. I tell them what my coding standard is, and they follow it. It's really very simple:
1) Pattern match what already exists in the code you are editing.
2) In SQL, keywords are all caps and all statements end in a semi-colon.
3) Use the built-in formatters the IDE provide prior to every check-in.
4) Write code as if you have to maintain it for 24 years (correct spelling of variables/classes, no one-offs, use best practices and architecture, etc.).
5) Log state and location frequently.
6) Remove useless comments/only add comments that provide value.
The new devs are the worse with the last one. For example, they will add a section (C# code) to method GetUserPermissions() that has the text "Gets the user's permissions.". Why waste their time writing that useless text and everyone else's time reading it? If I see useless comments in a code review, I most definitely tell them to delete it.
Bond
Keep all things as simple as possible, but no simpler. -said someone, somewhere
|
|
|
|
|
Wordle 1,083 3/6*
⬛🟩⬛⬛🟨
⬛🟩🟨🟩🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 1,083 3/6
⬜🟩⬜⬜🟨
⬜🟩⬜🟩🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 1,083 4/6*
⬜🟨⬜⬜🟨
🟨⬜⬜🟩🟩
⬜⬜🟨🟩🟩
🟩🟩🟩🟩🟩
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
Wordle 1,083 3/6
⬜⬜⬜🟨🟨
🟨⬜⬜🟩🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
⬜🟨⬜⬜🟨
⬜⬜⬜⬜⬜
⬜🟨🟨⬜⬜
🟩⬜⬜🟩🟩
🟩🟩🟩🟩🟩
In a closed society where everybody's guilty, the only crime is getting caught. In a world of thieves, the only final sin is stupidity. - Hunter S Thompson - RIP
|
|
|
|
|
Wordle 1,083 4/6*
⬜⬜⬜🟨🟨
🟩⬜🟨🟨⬜
🟩⬜🟨🟩🟨
🟩🟩🟩🟩🟩
Happiness will never come to those who fail to appreciate what they already have. -Anon
And those who were seen dancing were thought to be insane by those who could not hear the music. -Frederick Nietzsche
|
|
|
|
|
Wordle 1,083 4/6
⬜⬜⬜🟩⬜
⬜⬜⬜🟩🟩
⬜🟩🟨🟩🟩
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 1,083 6/6
🟨⬜⬜⬜⬜
⬜🟨🟨⬜⬜
⬜⬜⬜⬜⬜
🟨🟨🟨⬜⬜
⬜🟨⬜🟩⬜
🟩🟩🟩🟩🟩
|
|
|
|
|
Wordle 1,083 4/6
⬛⬛⬛⬛🟨
🟨🟨⬛🟩⬛
⬛🟩⬛🟩🟩
🟩🟩🟩🟩🟩
Ok, I have had my coffee, so you can all come out now!
|
|
|
|
|
This might be interesting.
Background
I'm learning RISC-V assembly and I've written an article (here on CP) on how to run a RISC-V-based version of Debian via QEMU on your machine.
You can run QEMU on Windows, Mac or Linux and then emulate the RISC-V-based Debian on any of those systems. QEMU emualtion is fairly lightweight and very cool. The android emulator, for example, runs via QEMU.
It's a nice easy (safe) way to learn RISC-V Assembly.
The Main Story
I was thinking about how I'd also like to learn x86_64 Assembly on Windows because of this book, The Art of 64-Bit Assembly, Volume 1: x86-64 Machine Organization and Programming[^]
I'm on a Mac right now and I'm normally on a desktop running Ubuntu 22.04.4.
I started thinking, "Hey, can I emulate Windows / DOS in QEMU so I can run MASM and learn Assembly there?"
Nope! Not really.
I know I can run Windows via VirtualBox but wow, that is interesting that Microsoft OS is such a huge bloatware that you can't really run just a "command-line version" of it.
There are so many options with Linux that it really is amazing.
Also, I know I shouldn't even have thought of doing this bec "it's windows, after all", but just thought it was an interesting point that displays how different Windows v Linux really is.
EDIT UPDATE
And, of course, I can always learn x86_64 assembly on the Linux side and one of my top-5 all-time favorite authors updated his book on it recently: x64 Assembly Language Step-by-Step: Programming with Linux [^]
|
|
|
|
|
This reminds of an amusing story about emulation. This was quite some time ago but when I was in college a few friends wrote an emulator for the Control Data mainframe the school had. You could take programs written for the mainframe, which I believe was a 36-bit machine, and run them in their emulator with file and terminal I/O and just about everything. The funny part was their emulator running on an 80286 ran the programs faster than the actual machine did. We all get a good chuckle out of that.
"They have a consciousness, they have a life, they have a soul! Damn you! Let the rabbits wear glasses! Save our brothers! Can I get an amen?"
|
|
|
|
|
Rick York wrote: their emulator running on an 80286 ran the programs faster than the actual machine did. We all get a good chuckle out of that.
Very cool! Devs can do amazing things when they are motivated.
Usually the motivation has nothing to do with managers, but instead some technical challenge that "can't be done".
|
|
|
|
|
I guess if you are bored or into sadomasochism you decide to learn assembly today. Pure C does it better. I recommend gardening with chainsaws or plowing with explosives. I'm messing with you... But to this day, the ONLY reason I can see injecting assembly into a code base is for a very, very special occasion - say a space craft on its way out of the solar system with 8k of ram.
History - my first and only assembly class was on, I $hit you not, an IBM 360 mainframe where 200+ of us delved into the mysteries of computer architecture. WTF is a stack, and why is it important? How do I code for a subroutine and maintain data? And on. After the vikings got done beating on us, the lights came on and we raped and pillaged their villages.
To this day, 40+ years later, I can visualize a stack and actually explain it to someone with a masters degree in CS. Mind you, this was all on punch cards and printouts. I was in engineering school - we were not allowed to use the terminals.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
charlieg wrote: ...if you are bored or into sadomasochism you decide to learn assembly... Naw, directly coding the hardware is cool.
There are no solutions, only trade-offs. - Thomas Sowell
A day can really slip by when you're deliberately avoiding what you're supposed to do. - Calvin (Bill Watterson, Calvin & Hobbes)
|
|
|
|
|
I know, I know
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
charlieg wrote: I guess if you are bored or into sadomasochism you decide to learn assembly today.
Yeah, I don't like pain much, but a little mental pain is ok, I guess.
I cannot find a reason to learn Assembly either, but I do have my excuses.
1. I will understand what is really happening better.
2. I work with some electronics components (embedded) so I just wondered what was possible if I better understand assembly.
Here's a very weird thing. I was reading the 1st ed. of C++ For Dummies (pub in 1994) the other day and I stumbled upon this quote:
"However, a register variable is not stored in memory but cached in a register of the processor. Becuase register variables are not in memory they have no address."
And then much later in the book...
"Null pointer assignment is Borland and Turbo C's way of telling you that you screwed up the the pointer and wrote to location 0 in the default data segment."
I read that book back in 1994 & had no idea what it was talking about.
Now that I'm learning Assembly and I've discovered the .data segment of my programs I know what it means. So, you can plainly see how important this is, I'm sure.
|
|
|
|
|
well like I said, having to do it slammed home the concept of pushing things on the stack. Once we got through the next few homework assignments, you could see the light bulbs coming on. Pushing and popping off the stack went from some sort of supernatural operation to an oh, of course. The classmates survived transformed it to a tool. Move forward 30+ years. Ask your next job candidate to explain stack operations, the difference between passing by pointer or reference, etc. Be prepared to watch their heads explode.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
follow up - yes sir, been there.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
Completely agree.
C/C++ programmer really understands, how things are working, only having Assembly knowledge.
I am not writing Assembly, but Assembly knowledge helps me to write much better C/C++/C# code.
BTW, one practical Assembly usage in my work is debugging optimized code.
|
|
|
|
|
Ah memories (if we had any)
"A little time, a little trouble, your better day"
Badfinger
|
|
|
|