Refactoring

Summarized using AI

Keeping Your Code Strong

Jack Danger Canty • August 16, 2012 • Earth

In the presentation titled Keeping Your Code Strong, Jack Danger Canty, an engineer at Square, discusses the concept of 'strong code', a term he has coined. He emphasizes the importance of having a robust and resilient codebase that can adapt to future changes, which is crucial for managing a financial system with a small team. Here are the key points covered in the talk:

  • Definition of Strong Code: Strong code is not defined merely by its execution efficiency but rather by the quality and structure of the source code itself. It denotes resilience, adaptability, and a solid foundation, making it enjoyable to work with.

  • Importance of Strong Code: Canty highlights the necessity of strong code for developers, especially during critical moments like business growth or changes in direction. He shares from his experience the challenges that arise when one lacks strong code and advises against such situations.

  • Characteristics of Strong Code:

    • Functionally Correct: It includes proper implementation of design patterns, effective testing strategies, and reliable test coverage. Nonetheless, Canty points out that many experts in the audience would be better suited to discuss these aspects.
    • Ease of Editing: Strong code is identifiable by its simplicity to modify. It should allow developers to approach the code and confidently make edits without second-guessing.

Canty aims to convey that the foundation of software must prioritize resilience and usability, which ultimately leads to a more enjoyable and productive coding experience.

The talk serves as a guide for developers to understand the attributes of strong code and encourages them to build systems that can easily evolve as project requirements change.

Keeping Your Code Strong
Jack Danger Canty • August 16, 2012 • Earth

Help us caption & translate this video!

http://amara.org/v/FGiL/

MountainWest RubyConf 2012

00:00:20.199 I thought I'd just hail Mary that. My name is Jack Danger. I'm very privileged to be an engineer at Square.
00:00:25.400 If you don't know what that is, please come see me later. I'll give you this cool little piece of electronics that lets you swipe a credit card with only an iPhone, iPod, or Android phone. It's really cool.
00:00:32.559 There was a lot of work we had to do to run a giant financial system with a small team. So if you're good at anything, please come work for us. We could really use you.
00:00:39.160 Also, three catered meals a day—it's pretty good. I’ve been doing Ruby for a while, and I’ve made a lot of mistakes. This presentation is about what I’ve learned.
00:00:45.680 I would like to talk about strong code. This is a made-up term that I coined for this talk, but it’s something I discuss often, and it's very important to me.
00:00:51.680 I think it's significant. I talk about code in terms of strong and weak on a regular basis.
00:00:58.239 Strong code is defined not by its running process, like being efficient or powerful, but by the source code itself.
00:01:03.399 Strong code means it’s resilient. It's a platform you can trust for future changes; it provides a firm foundation, and it's a pleasure to work with.
00:01:10.040 It's generally something you can add whatever you imagine to, because it’s been prepared in anticipation of your needs.
00:01:17.200 I think this is very strong. Just like if you get in a jam, you want something strong to save you. When your business explodes, crumbles, or pivots, you need a codebase that is strong.
00:01:23.520 I’ve been stuck without strong code before. I don’t recommend it.
00:01:29.640 A loose definition of strong code includes resilience, the firmness of its foundation, and its ability to adapt.
00:01:35.640 There are three primary things that make code strong: One, it's functionally correct.
00:01:40.680 This involves the patterns you employ, how you write your tests, and whether you have good tests.
00:01:46.320 There are many smart people here who know far more about that than I do, so I’m going to delegate that part.
00:01:51.680 The second and third components are what I'm going to talk about.
00:01:58.039 You can easily identify strong code. It is fun. It’s easy for you to edit.
00:02:04.680 You sit down and think, 'I know what to do. I'm going to edit this code.'
Explore all talks recorded at MountainWest RubyConf 2012
+11