Skip to content
mborizanov edited this page Jul 29, 2014 · 1 revision

Part of Red-Green-Go!

== Refactor Card 1 ==
'''Requires Review/Re-wording'''
''"Your code should read as natural language as much as possible. Use helper methods to wrap code into meaningful labels."''

File:Refactor 1.png

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.


[http://programmers.stackexchange.com/questions/17443/what-does-it-mean-to-write-good-code What does it mean to write good code?] ---- http://goo.gl/qvPwE4 | [http://chart.googleapis.com/chart?cht=qr&chs=150x150&choe=UTF-8&chld=H&chl=http://goo.gl/qvPwE4 QR Code]

== Refactor Card 2 ==

'''Requires Review/Re-wording'''
''"Repeated patterns in production code can suggest the need for a loop. Replace hard-coded if-statements with while/repeat loops to remove the duplication."''

File:Refactor 2.png
---- http://goo.gl/myM3wE | [http://chart.googleapis.com/chart?cht=qr&chs=150x150&choe=UTF-8&chld=H&chl=http://goo.gl/myM3wE QR Code]

== Refactor Card 3 ==

'''Requires Review/Re-wording'''
''"Using literals in the code is a form of technical debt. Define literals as constants to keep them under control"''

File:Refactor 3.png

[http://en.wikipedia.org/wiki/Magic_string Magic String]

[http://programmers.stackexchange.com/questions/56375/eliminating-magic-numbers-when-is-it-time-to-say-no Eliminating Magic Numbers: When is it time to say “No”?]

[http://www.techrepublic.com/article/avoid-using-magic-numbers-and-string-literals-in-your-code/ Avoid using magic numbers and string literals in your code]

http://goo.gl/M66MS5 | [http://chart.googleapis.com/chart?cht=qr&chs=150x150&choe=UTF-8&chld=H&chl=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."''
File:Refactor 4.png
[http://programmers.stackexchange.com/questions/167922/how-do-people-maintain-their-test-suite How do people maintain their test suite?]
---- http://goo.gl/eZM6uu | [http://chart.googleapis.com/chart?cht=qr&chs=150x150&choe=UTF-8&chld=H&chl=http://goo.gl/eZM6uu QR Code]

== Refactor Card 5 ==

'''Requires Review/Re-wording'''
''"Using literals in code is a form of technical debt. Remove literals by replacing them with an expression."''
File:Refactor 5.png

[http://en.wikipedia.org/wiki/Magic_string Magic String]

[http://programmers.stackexchange.com/questions/56375/eliminating-magic-numbers-when-is-it-time-to-say-no Eliminating Magic Numbers: When is it time to say “No”?]

[http://www.techrepublic.com/article/avoid-using-magic-numbers-and-string-literals-in-your-code/ Avoid using magic numbers and string literals in your code]

http://goo.gl/Dr2aKu | [http://chart.googleapis.com/chart?cht=qr&chs=100x100&choe=UTF-8&chld=H|0&chl=http://goo.gl/Dr2aKu 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."''
File:Refactor 6.png

[http://sourcemaking.com/refactoring/when-should-you-refactor When should you refactor?]
[http://blog.codeclimate.com/blog/2014/01/09/when-is-it-time-to-refactor/ When is it time to refactor?]
[http://programmers.stackexchange.com/questions/135845/when-to-refactor When to refactor?]

http://goo.gl/2rWgw0 | [http://chart.googleapis.com/chart?cht=qr&chs=100x100&choe=UTF-8&chld=H|0&chl=http://goo.gl/2rWgw0 QR Code]