Difference between revisions of "Guidance Cards - Refactor"

From School of CS Student Wiki
Jump to navigation Jump to search
gravatar Mbax9mb5 [userPHRhYmxlIGNsYXNzPSJ0d3BvcHVwIj48dHI+PHRkIGNsYXNzPSJ0d3BvcHVwLWVudHJ5dGl0bGUiPkdyb3Vwczo8L3RkPjx0ZD51c2VyPGJyIC8+PC90ZD48L3RyPjwvdGFibGU+] (talk | contribs)
(Refactor Card 2)
gravatar Mbax9mb5 [userPHRhYmxlIGNsYXNzPSJ0d3BvcHVwIj48dHI+PHRkIGNsYXNzPSJ0d3BvcHVwLWVudHJ5dGl0bGUiPkdyb3Vwczo8L3RkPjx0ZD51c2VyPGJyIC8+PC90ZD48L3RyPjwvdGFibGU+] (talk | contribs)
(Refactor Card 3)
Line 37: Line 37:
 
<div style="font-size: 140%;"><span style="background:#ff0">'''Requires Review/Re-wording'''</span></div>
 
<div style="font-size: 140%;"><span style="background:#ff0">'''Requires Review/Re-wording'''</span></div>
 
<div class="mw-collapsible-content">
 
<div class="mw-collapsible-content">
<big>''"Using literals in the code is a form of technical debt. Define literals as constants to keep them under control"''</big><br /><br />
+
<big>''Embedding literal values in your production code is a form of technical debt. Define key literals as constants to make their meaning explicit.''</big><br /><br />
 
[[File:Refactor 3.jpg|200px]]<br />
 
[[File:Refactor 3.jpg|200px]]<br />
  

Revision as of 16:26, 25 July 2014

Part of Red-Green-Go!

Refactor Card 1

Requires Review/Re-wording

Use helper methods with descriptive names to wrap low-level code, so that your code reads as much like natural language as possible.

Refactor 1.jpg

A good coder writes code that looks like it was easy and straightforward to do. Many of the examples by Brian Kernighan in his books follow this pattern. Part of the "trick" is coming up with a proper conceptualization of the problem and its solution. When we don't understand a problem well enough, we're more likely to over-complicate our solutions, and we will fail to see unifying ideas.

With a proper conceptualization of the problem, you get everything else: readability, maintainability, efficiency, and correctness. Because the solution seems so straightforward, there will likely be fewer comments, because extra explanation is unnecessary. A good coder can also see the long term vision of the product, and form their conceptualizations accordingly.


What does it mean to write good code?


http://goo.gl/qvPwE4 | QR Code

Refactor Card 2

Requires Review/Re-wording

Replace if-statements describing how to process 0, 1, 2 and 3 items with a loop showing how to process N items.

Refactor 2.jpg


http://goo.gl/myM3wE | QR Code

Refactor Card 3

Requires Review/Re-wording

Embedding literal values in your production code is a form of technical debt. Define key literals as constants to make their meaning explicit.

Refactor 3.jpg

Magic String

Eliminating Magic Numbers: When is it time to say “No”?

Avoid using magic numbers and string literals in your code


http://goo.gl/M66MS5 | QR Code

Refactor Card 4

Requires Review/Re-wording

"Test code is code too. Look for duplication in your test code. Remove it by introducing helper methods. This should increase maintainability of your tests."
Refactor 4.jpg
How do people maintain their test suite?


http://goo.gl/eZM6uu | QR Code

Refactor Card 6

Requires Review/Re-wording

"Refactoring is optional. Refactor only if you think it will improve the quality of your code."
Refactor 6.jpg

When should you refactor?
When is it time to refactor?
When to refactor?


http://goo.gl/2rWgw0 | QR Code

Refactor Card 7

Requires Review/Re-wording

Refactor 7.jpg

Refactor Card 8

Refactor 8.jpg

Requires Review/Re-wording

Refactor Card 9

Refactor 9.jpg

Requires Review/Re-wording

Authors

  • gravatar Mbasssme [userPHRhYmxlIGNsYXNzPSJ0d3BvcHVwIj48dHI+PHRkIGNsYXNzPSJ0d3BvcHVwLWVudHJ5dGl0bGUiPkdyb3Vwczo8L3RkPjx0ZD51c2VyPGJyIC8+PC90ZD48L3RyPjwvdGFibGU+] ·
  • gravatar Mbax9mb5 [userPHRhYmxlIGNsYXNzPSJ0d3BvcHVwIj48dHI+PHRkIGNsYXNzPSJ0d3BvcHVwLWVudHJ5dGl0bGUiPkdyb3Vwczo8L3RkPjx0ZD51c2VyPGJyIC8+PC90ZD48L3RyPjwvdGFibGU+]