Elevator Pitch
Where do you start when writing code? Honestly, where exactly do you write your first line of code? Jamie Isaacs will be your guide to answer this question. Top Down Design has helped many teams at CJ Affiliate deliver working software. We will explore what, why, and how to start using it today.
Description
Top Down Design is a workflow that structures where to start, when to prototype, and how to unit test. This talk will explore how to apply this methodology to a Go command line application. We will cover everything from where to write your first line of code, and how to apply Test Driven Development pragmatically.
Top Down Design begins with a negative demo that identifies the entry point of a new feature. This helps communicate exactly what the product owner expects. Miscommunication is one of the most common problems in software development. Shortening this feedback loop can limit frustration and wasted effort.
The next step is to prototype the parts you do not understand. The purpose of the prototype phase is to understand how to test drive the production code. We will cover what can happen if you use the prototype in production, and examples of how that has backfired in the past.
We then explore how Top Down Design can be applied to writing unit tests in a Test Driven Development fashion. This style of writing unit tests can eliminate the often asked questions of “how do I start,” or “what am I supposed to do next” when writing test code. We start with a test assertion and work backwards leveraging IDE refactoring tools. This generates expressive variable names, methods, and objects while guiding you to the solution.
Jamie Isaacs has 20 years of professional experience as a Software Craftsman. He honed these techniques at CJ Affiliate, the world’s largest and most established affiliate marketing network. Many teams at CJ have been practicing Top Down Design, and Jamie is excited to share this new technique with you.
The material in this talk can be tailored to fit any time allotted. The concepts of Top Down Design are simple and easy to apply. Keynote style presentation slides will contain real code and IDE screenshots. While the talk can be understood by programmers of any level, we will deep dive into advanced topics for a brief period of time.
Notes
We have succeeded if you understand:
- How to begin writing a Go command line application
- When and why to prototype
- How to pragmatically apply Top Down Design with Test Driven Development
Previous talk given to the Go Study Group:
This talk was given to the online Go Study Group as a live coding presentation to solve a real problem, in real time.
- Slides: Youtube-Data-API-Top-Down.pdf
- Video: https://youtu.be/PojkUwBE2ZY?t=145