... | ... | @@ -121,7 +121,7 @@ I would like to share some general guidelines of being a good, responsible engin |
|
|
* Write code for someone else to take over
|
|
|
* Strong developers never need to worry about `job security`
|
|
|
* Pass it on such that you can go do even more exciting work
|
|
|
* `Knowledge is not worth until transferred`
|
|
|
* `Knowledge is not worth anything until transferred`
|
|
|
* Take your time, and do things right
|
|
|
* Write code as if you are writing safety critical code for a pacemaker or an airplane flight controller
|
|
|
* This includes unit-test code; write maintainable unit test code
|
... | ... | @@ -134,8 +134,10 @@ I would like to share some general guidelines of being a good, responsible engin |
|
|
* Can you bet your life on it?
|
|
|
* Will it work 100% of the time?
|
|
|
* Write high quality, deterministic code
|
|
|
* Design code such that you will never need to hit the reset button for 1 year, and 10 years.
|
|
|
* That means memory allocation should never fail
|
|
|
* Design code such that you will never need to hit the reset button for 1 year, 10 years, and beyond
|
|
|
* One of my team members once said that `Oh we hit this bug every 24 hours, let us reset our controller every 23 hours`
|
|
|
* I never worked with that intern again
|
|
|
* Memory allocation should never fail
|
|
|
* Design code such that even if someone attacks your controller through a CAN bus, or Ethernet network, your code will always result in predictable execution
|
|
|
|
|
|
## Modularize Code
|
... | ... | |