TDD for Embedded C
2023-10-30 14:18:59 UTC
Most useful learnings:
The physics of TDD and how to appropriately strategize when developing using TDD. How to go about what tests to write (ZOMBIES), the TDD micro cycle, and in general learned about writing code proactively and pragmatically in a systematic and simple manner. It is a common misconception to think about TDD as just a means of writing unit tests. In this training, I learned about how tests can drive the implementation of the production code one small step at a time. Overall, I also learned to be proactive with my development approach.
Concepts v exercises:
Presentation v discussion:
I believe overall the course was great and covered everything very well. But the legacy code section could be improved further with an example/demo of how to adapt TDD for the new code that gets added to the legacy code. Dragging the existing legacy code to the test environment is a challenge, so I know it's not very straightforward. But I think in most scenarios, the legacy code is tested by other means, in some cases unit tests, but in some cases using functional, integration, and systems level tests. So it would be nice to understand the physics of how to write tests for the new code that gets added to the legacy code.
Exercises were great. Maybe could be even more embedded systems focused?
James is great! I absolutely love his calm, fun, and very practical way of presenting sometimes rather difficult to grasp topics. I love how James is very approachable and friendly on top of being a master of the field. I certainly appreciate James and his support as an instructor.
Yes I can. The only issues/blockages I may face would be regarding which tests to write. I know we discussed the ZOMBIES approach, but if we could have a high-level step-by-step; it would do great wonders. Also, setting up the makefiles and test environment could be a blocker.
Challenges to applying:
Adding tests for the new code added on top of the legacy code. The new code somehow depends on the old code and needs to be taken into considerations. The overall dependencies.
I think remote delivery was great. As someone who recently graduated, I'm very used to the remote delivery method at this point :) and I believe most people are.
Legacy code workshop:
Recommend to others: