[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f_74cnKImv5i7o7S07ZCMG_xLnmbR_awRNIXTIQdaGjA":3,"$fKqXtGNFmev82Kr6Ocm2ePMJdzBHwKzDWZKK-4iU0Jj8":12},{"author":4,"tags":11},{"author_id":5,"author_name":6,"author_name_first_letter":7,"article_count":8,"bio":9,"short_bio":9,"slug":10,"image_url":9},68835,"Martin Fowler","M",45,null,"martin-fowler",[],{"quotes":13,"pagination":77},[14,22,28,34,40,46,52,59,65,71],{"id":15,"quote_text":16,"author_id":5,"source_id":17,"has_image":18,"author":19,"source":20,"quote_tag":21,"commentary":9},3263378,"You can Change Your Organization or Change Your Organization.",6,false,{"id":5,"author_name":6,"slug":10,"author_name_first_letter":7,"article_count":8,"image_url":9},{},[],{"id":23,"quote_text":24,"author_id":5,"source_id":17,"has_image":18,"author":25,"source":26,"quote_tag":27,"commentary":9},3263373,"Life being what it is, you won’t get your names right the first time. In this situation you may well be tempted to leave it – after all it’s only a name. That is the work of the evil demon Obfuscatis; don’t listen to him. If you see a badly named method, it is imperative that you change it. Remember your code is for a human first and a computer second. Humans need good names.",{"id":5,"author_name":6,"slug":10,"author_name_first_letter":7,"article_count":8,"image_url":9},{},[],{"id":29,"quote_text":30,"author_id":5,"source_id":17,"has_image":18,"author":31,"source":32,"quote_tag":33,"commentary":9},3263370,"Other than when you are very close to a deadline, however, you should not put off refactoring because you haven’t got time. Experience with several projects has shown that a bout of refactoring results in increased productivity. Not having enough time usually is a sign that you need to do some refactoring.",{"id":5,"author_name":6,"slug":10,"author_name_first_letter":7,"article_count":8,"image_url":9},{},[],{"id":35,"quote_text":36,"author_id":5,"source_id":17,"has_image":18,"author":37,"source":38,"quote_tag":39,"commentary":9},3263366,"When you find you have to add a feature to a program, and the program’s code is not structured in a convenient way to add the feature, first refactor the program to make it easy to add the feature, then add the feature.",{"id":5,"author_name":6,"slug":10,"author_name_first_letter":7,"article_count":8,"image_url":9},{},[],{"id":41,"quote_text":42,"author_id":5,"source_id":17,"has_image":18,"author":43,"source":44,"quote_tag":45,"commentary":9},3263364,"Parallel inheritance hierarchies is really a special case of shotgun surgery. In this case, every time you make a subclass of one class, you also have to make a subclass of another.",{"id":5,"author_name":6,"slug":10,"author_name_first_letter":7,"article_count":8,"image_url":9},{},[],{"id":47,"quote_text":48,"author_id":5,"source_id":17,"has_image":18,"author":49,"source":50,"quote_tag":51,"commentary":9},3263360,"I’ve found that refactoring helps me write fast software. It slows the software in the short term while I’m refactoring, but it makes the software easier to tune during optimization. I end up well ahead.",{"id":5,"author_name":6,"slug":10,"author_name_first_letter":7,"article_count":8,"image_url":9},{},[],{"id":53,"quote_text":54,"author_id":5,"source_id":17,"has_image":18,"author":55,"source":56,"quote_tag":57,"commentary":58},3263355,"Whenever I have to think to understand what the code is doing, I ask myself if I can refactor the code to make that understanding more immediately apparent.",{"id":5,"author_name":6,"slug":10,"author_name_first_letter":7,"article_count":8,"image_url":9},{},[],"**The Backstory**\nMartin Fowler's approach to coding is rooted in his experience as a software engineer and consultant in the 1980s and 1990s. During this time, he became frustrated with the complexity and fragility of traditional codebases. His quote reflects his efforts to simplify and improve the maintainability of code.\n\n**The Hidden Insight**\nWhat's striking about Fowler's statement is that it's not just about refactoring for better understanding; it's also about the limits of one's own cognitive abilities. By admitting that he needs to \"think\" to understand the code, he acknowledges the potential for mental fatigue and the importance of creating systems that can be grasped with minimal effort.\n\n**How to Use This**\nWhen faced with a complex problem or codebase, apply Fowler's principle by asking yourself: \"Can I simplify this?\" rather than just diving headfirst into understanding it. By recognizing your own cognitive limitations and seeking clarity through refactoring, you'll avoid mental exhaustion and create more maintainable solutions.",{"id":60,"quote_text":61,"author_id":5,"source_id":17,"has_image":18,"author":62,"source":63,"quote_tag":64,"commentary":9},3263351,"A heuristic we follow is that whenever we feel the need to comment something, we write a method instead.",{"id":5,"author_name":6,"slug":10,"author_name_first_letter":7,"article_count":8,"image_url":9},{},[],{"id":66,"quote_text":67,"author_id":5,"source_id":17,"has_image":18,"author":68,"source":69,"quote_tag":70,"commentary":9},3263346,"Poorly designed code usually takes more code to do the same things, often because the code quite literally does the same thing in several places.",{"id":5,"author_name":6,"slug":10,"author_name_first_letter":7,"article_count":8,"image_url":9},{},[],{"id":72,"quote_text":73,"author_id":5,"source_id":17,"has_image":18,"author":74,"source":75,"quote_tag":76,"commentary":9},3263343,"If you have to spend effort looking at a fragment of code and figuring out what it’s doing, then you should extract it into a function and name the function after the “what”.",{"id":5,"author_name":6,"slug":10,"author_name_first_letter":7,"article_count":8,"image_url":9},{},[],{"currentPage":78,"totalPages":79,"totalItems":8,"itemsPerPage":80},1,5,10]