Skip to content

Instantly share code, notes, and snippets.

@jonathankwok
Last active February 24, 2021 14:08
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save jonathankwok/828026b03f283726174f83b15fd80491 to your computer and use it in GitHub Desktop.
Save jonathankwok/828026b03f283726174f83b15fd80491 to your computer and use it in GitHub Desktop.
sandi's recommended references
(I've amended it to use Amazon.ca)
Things to Read:
Refactoring
Martin Fowler: Refactoring, Improving the Design of Existing Code
https://www.amazon.ca/Refactoring-Improving-Existing-Addison-Wesley-Technology-ebook/dp/B007WTFWJ6
Jay Fields: Refactoring, Ruby Edition
https://www.amazon.ca/Refactoring-Ruby-Addison-Wesley-Professional-ebook/dp/B002TIOYWG/
Joshua Kerievsky: Refactoring to Patterns
https://www.amazon.ca/Refactoring-Patterns-Addison-Wesley-Signature-Fowler-ebook/dp/B001TKD4RQ
Testing
Michael Feathers: Working Effectively With Legacy Code
https://www.amazon.ca/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052/
Patterns
Gamma, Helm, Johnsom, Vlissides (Gang of Four): Design Patterns,
Elements of Reusable Object-Oriented Software
http://www.amazon.ca/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612
Browse the entire book
Eric Freeman, Bates, Sierra: Head First Design Patterns
http://www.amazon.ca/Head-First-Design-Patterns-Freeman/dp/0596007124
(But only if you can stand the 'Head First' style)
Thinking about objects:
Sandi Metz: Practical Object-Oriented Design
http://www.amazon.ca/Practical-Object-Oriented-Design-Ruby-Addison-Wesley/dp/0321721330
Rebecca Wirfs-Brock, Wilkerson, Wiener: Designing Object-Oriented Software
http://www.amazon.ca/Designing-Object-Oriented-Software-Rebecca-Wirfs-Brock/dp/0136298257
http://www.wirfs-brock.com/PDFs/Characterizing%20Classes.pdf
Matt Weisfeld, The Object-Oriented Thought Process
http://www.amazon.ca/Object-Oriented-Thought-Process-Developers-Library/dp/0321861272
Freeman and Pryce: Growing Object-Oriented Software, Guided by Tests (GOOS)
http://www.amazon.ca/Growing-Object-Oriented-Software-Guided-Tests/dp/0321503627
Eric Evans: Domain Driven Design
http://www.amazon.ca/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215
Domain Driven Design Quickly (pdf)
http://www.infoq.com/minibooks/domain-driven-design-quickly
Vaughn Vernon: Implementing Domain Driven Design
http://www.amazon.ca/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577
David West: Object Thinking
https://www.amazon.ca/Object-Thinking-Developer-Reference-David/dp/0735619654
Things to Watch:
Design
http://bit.ly/sandi_metz_solid
http://bit.ly/sandi_metz_less_path_to_better_design
http://bit.ly/sandi_metz_make_a_mess
http://bit.ly/sandi_metz_nothing_is_something
http://bit.ly/gary_bernhardt_boundaries
http://bit.ly/peter_harkins_what_comes_after_mvc
Refactoring
http://bit.ly/neal_ford_rampant_emergence
http://bit.ly/katrina_owen_therapeutic_refactoring
http://bit.ly/ben_orenstein_refactoring
Testing
http://bit.ly/sandi_metz_magic_tricks_of_testing
http://bit.ly/gregory_moeck_why_you_dont_get_mocks
http://bit.ly/justin_searls_budgeting_reality
http://bit.ly/justin_searls_to_mock_or_not
http://bit.ly/michael_feathers_testing_revisted
http://bit.ly/freeman_pryce_mock_roles_talk
Pointy Headed
http://bit.ly/rich_hickey_simple_made_easy
https://codon.com/a-lever-for-the-mind
Most Fun Ever
Guy Steele: Growing A Language
https://www.youtube.com/watch?v=_ahvzDzKdB0
Curated List of Talks (includes some of the above)
http://bit.ly/jack_hsu_software_development_talks_list
Blog posts:
General:
http://www.sandimetz.com/blog/
http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/
http://blog.codeclimate.com/blog/2012/11/14/why-ruby-class-methods-resist-refactoring/
Dependency Inversion:
http://abernardes.github.io/2014/11/04/inverting-dependencies.html
Transformation Priority Premise
http://blog.8thlight.com/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html
Static Typing
http://blog.cleancoder.com/uncle-bob/2017/01/13/TypesAndTests.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment