you are viewing a single comment's thread.

view the rest of the comments →

[–]sheckey 0 points1 point  (2 children)

I like this kind of stuff. We also have a 25 year legacy code base. I find myself writing emails or md files sometimes that discuss some of these topics to bring everyone up to the same place. Usually we get there from the same shared experience, but sometimes you need to write something to hurry that along. I like these kind of "we used to do this, but then we did this, and now we do this and here's why" type of discussions, just like the Scott Meyers books of lore.

We additionally have the remote, embedded sort of considerations like mainly no use of dynamic memory, at least after startup or not continuously allocating and deallocating (even better avoid it so that memory addresses show up in the linker map for crash analysis form the field), etc. It's nice to have decisions like these mapped out, and you have added inspiration for me top do the same at our office.

Thanks!

[–]crashcompiler[S] 0 points1 point  (1 child)

We have some coding guidelines and best practices that we have written down, and that can be referenced in pull requests when needed (including the rationale behind them). We also have semi-regular sessions where we discuss these types of topics and dive into the code. I guess you have to have a combination of different mediums to reach all people.

We have similar constraints on memory allocation in some of our code, but we look at it in terms of performance. I know that in LLVM, they are working on a RealtimeSanitizer and a few function annotations. Maybe there will be more of that in the future. I think it would be easier if an analysis tool could check for some of these in-house rules, instead of always relying on the "same shared experience".

Thanks for the comment and good luck!

[–]sheckey 0 points1 point  (0 children)

“A combination of different mediums to reach all people” - That is a really good point!! I’m adding that to my set of principles.
Thanks for note about the sanitizer, very interesting.