Nathan's Brain
  • Introduction
  • Incubator
  • American Sign Language
  • Art
  • Behavior Change
    • Akrasia
      • Beeminder
      • Procrastination
  • Career
  • Civil Discourse
  • Communication
  • Computer Science
    • Artificial Intelligence
  • Creativity
    • Writing
  • Design
    • Color
    • Design Process
    • Stock
    • Web Design
  • Economics
  • Engineering
  • Entrepreneurship
    • Customer Development
    • Marketing
      • Newsletter Publishing
    • Pricing
  • Environment
    • Energy
    • Transportation
  • Failure & Vulnerability
  • Freelancing
    • Estimating
  • Futurism
  • Governance & Politics
    • Representation & Voting
  • Health
  • Humane Tech
    • Phone Usage
  • Infotainment
  • Linguistics
  • Minimalism
  • Personal Finance
    • FIRE Movement
    • Investing
  • Productivity
    • Attention Management
    • Audio for Focus
    • Automation
    • Task Management
    • Time Management
  • Programming Languages
    • JavaScript
      • Snippets
    • PHP
    • Python
      • Development Environments
      • Package Management & Distribution
  • Psychology
  • Quantified Self
    • Experience Sampling Method
  • Rationality
    • Bayes' Theorem
    • Cognitive Biases
  • Religion
    • Adventism
  • Remote Work
  • Research
    • Note Taking
  • Science
  • Self-Study
    • Accessibility & Usability
    • Algorithms
    • Artificial Intelligence
    • Cryptography
    • Data Science
    • Design Patterns
    • Freelancing
    • Functional Programming
    • Game Development
    • Graphic Design
    • Grid Layout
    • Microservices
    • PWAs
    • SaaS
    • Software Craft
    • Software Management
    • Statistics
    • SVG
    • UI Design
    • Web Animation
  • Software Development
    • API Design
    • Collaboration
    • Command Line
    • git
    • Integrated Development Environments
    • Knoxville Scene
    • Paradigms
    • Refactoring
    • Self-Care
    • Testing
  • Technology History
    • People
    • Timeline
  • Web Development
    • Accessibility & Usability
    • APIs
    • Browsers
    • Content Management Systems
    • CSS
    • Email
    • Frameworks
      • React
    • Libraries
    • No Code & Low Code
    • Performance
    • Serverless
    • Static Sites
    • Testing
    • Twig
    • Type
Powered by GitBook
On this page
  1. Software Development

Refactoring

PreviousParadigmsNextSelf-Care

Last updated 4 years ago

https://www.basson.at/images/blog/dilbert-rewrite.gif

- Internal link. See subheading.

/ - "A little Kata to practice clean code"

/ - "Starting code for the GildedRose Refactoring Kata in many programming languages."

#video - Most practical stuff starts 30 minutes in.

- "Menders love fixing bugs, refactoring, and testing to make software applications more stable, scalable and secure."

#article - "Read by Refactoring is a technique discussed and taught by Arlo Belshee ) at . Using this technique, reading code – to figure out what it does, to estimate the effort to modify it, etc. – turns into active refactoring of the code. You read the code by modifying it, nudging it into a clearer, more readable state. The key is you are leveraging your IDE’s built in refactoring functions and mastering the keyboard shortcuts in such a way that your insights of how the code can be improved translate immediately into modification of the code. I’m typing this sentence with no conscious decision of what key to hit or even any thought to commanding my fingers where to go on the keyboard, but the words I think nevertheless appear on the screen. You want to get your mastery of your refactoring tools to the same unconscious, effortless state."

Read by Refactoring and #article - "Last week I went to a workshop at Expedia called Read by Refactoring where we learned a methodology for reading legacy code and making it better in the process."

- "Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior."

- "Refactoring.Guru makes it easy for you to discover everything you need to know about refactoring, design patterns, SOLID principles and other smart programming topics."

#book

#video - "In this talk, ‘Rewrite!‘ at , David Heinemeier Hansson, Co-Founder, Basecamp, and Creator of Ruby on Rails explains why he disagrees and discusses his experience in rewriting the code for Basecamp, not once, but twice, with the third version of Basecamp launched this month."

- "Explore, navigate, and better understand all code, everywhere, faster. Sourcegraph Universal Code Search provides , , and ."

#video - "You've been bitten by the testing bug, are thoroughly test infected. Excellent! You're undoubtedly producing more robust, less buggy software faster and at lower cost. Sadly, it wasn't always this way. You're saddled with a large legacy of untested code. Test first development is not an option. Nonetheless unit testing, JUnit, and test driven development can still dramatically improve your maintenance tasks. Learn strategies for retrofitting test frameworks onto existing code, and developing a test suite for code that never had one before."

#article - Joel Spolsky. Never rewrite from scratch.

#book

How to Read Confusing Code
Legacy Code Rocks
Read by Refactoring
(@arlobelshee
Industrial Logic
part 1
part 2
Refactoring.com
Refactoring Guru
Refactoring: Improving the Design of Existing Code
REWRITE! | David Heinemeier-Hansson, Basecamp | BoS USA 2015
Business of Software Conference USA 2015
Sourcegraph
code discovery
code intelligence
code change management
Testing Legacy Code Elliotte by Rusty Harold
Things You Should Never Do, Part I
Working Effectively with Legacy Code
Approval Tests
davelosert
clean-code-kata
emilybache
GildedRose-Refactoring-Kata