Five Lines of Code, Video Edition

Five Lines of Code, Video Edition

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 57 Lessons (8h 30m) | 2.89 GB

Improving existing code—refactoring—is one of the most common tasks you’ll face as a programmer. Five Lines of Code teaches you clear and actionable refactoring rules that you can apply without relying on intuitive judgements such as “code smells.” Following the author’s expert perspective—that refactoring and code smells can be learned by following a concrete set of principles—you’ll learn when to refactor your code, what patterns to apply to what problem, and the code characteristics that indicate it’s time for a rework.

Every codebase includes mistakes and inefficiencies that you need to find and fix. Refactor the right way, and your code becomes elegant, easy to read, and easy to maintain. In this book, you’ll learn a unique approach to refactoring that implements any method in five lines or fewer. You’ll also discover a secret most senior devs know: sometimes it’s quicker to hammer out code and fix it later!

Five Lines of Code is a fresh look at refactoring for developers of all skill levels. In it, you’ll master author Christian Clausen’s innovative approach, learning concrete rules to get any method down to five lines—or less! You’ll learn when to refactor, specific refactoring patterns that apply to most common problems, and characteristics of code that should be deleted altogether.

In Five Lines of Code you will learn:

  • The signs of bad code
  • Improving code safely, even when you don’t understand it
  • Balancing optimization and code generality
  • Proper compiler practices
  • The Extract method, Introducing Strategy pattern, and many other refactoring patterns
  • Writing stable code that enables change-by-addition
  • Writing code that needs no comments
  • Real-world practices for great refactoring

Down to earth, focused, and right on point. It will challenge you without intimidating you and without insulting your intelligence.
Robert C. Martin

Table of Contents

1 Refactoring refactoring
2 Culture – When to refactor
3 Overarching example – A 2D puzzle game
4 Looking under the hood of refactoring
5 Gaining speed, flexibility, and stability
6 Part 1. Learn by refactoring a computer game
7 Shatter long functions
8 Introducing a refactoring pattern to break up functions
9 Breaking up functions to balancing abstraction
10 Breaking up functions that are doing too much
11 Make type codes work
12 Refactoring pattern – Replace type code with classes
13 Refactoring pattern – Push code into classes
14 Refactoring a large if statement
15 The only switch allowed
16 Addressing code duplication
17 Removing dead code
18 Fuse similar code together
19 Unifying simple conditions
20 Unifying code across classes
21 Refactoring pattern – Introduce strategy pattern
22 Rule – No interface with only one implementation
23 Defend the data
24 Encapsulating simple data
25 Refactoring pattern – Encapsulate data
26 Eliminating a sequence invariant
27 Remapping numbers to classes
28 Part 2. Taking what you have learned into the real world
29 Collaborate with the compiler
30 Strength – Access control helps encapsulate data
31 Using the compiler
32 Don’t fight the compiler
33 Trusting the compiler
34 Stay away from comments
35 Love deleting code
36 Technical waste from time pressure
37 Deleting code in a legacy system
38 Deleting branches in version control
39 Deleting testing code
40 Deleting code to get rid of libraries
41 Never be afraid to add code
42 Overcoming the fear of waste or risk with a fixed ratio
43 How copy and paste effects change velocity
44 Modification by addition through feature toggles
45 Follow the structure in the code
46 Expressing behavior in the structure of the data
47 Gaining safety through testing
48 Exploiting duplication with unification
49 Avoid optimizations and generality
50 Unifying things of similar stability
51 Optimizing according to the theory of constraints
52 Choosing good algorithms and data structures
53 Make bad code look bad
54 Rules for safely vandalizing code
55 Grouping things based on naming
56 Wrapping up
57 Prioritizing the team over individuals

Homepage