5 ;;Quote: don't live with broken windows; fix bad decisions and poor code; isolate if not enough time
|
26 ;;Quote: DRY--don't repeat yourself; every piece of knowledge must have a single representation in a system; knowledge changes too fast to keep multiple copies consistent
|
40 ;;Quote: avoid global data; if code references global data, it is tied to all users of that data
|
40+;;Quote: instead of global data, use objects to pass context; typically as parameters to the object's constructors
|
49 ;;Quote: quickly develop a framework for the final system; provides an integration platform, a structure to expand, something to demonstrate, and better work estimates
|
82 ;;Quote: use a single editor; otherwise, UI differences will make you stop and think about text manipulation
|
140 ;;Quote: law of Demeter--an object only calls itself, its parameters, or objects it creates; needs a large number of wrapper methods for forwarding requests
|
144 ;;Quote: use metadata to configure an application at runtime; e.g., tuning, preferences, installed directory
|
145 ;;Quote: put details in the metadata, abstractions into code; think declaratively for ease of change at the last moment
|
186 ;;Quote: refactoring is redesign of existing code; fix now instead of later; started with Smalltalk
|
187 ;;Quote: a refactoring browser can split up long routines, rename methods and variables, move code with drag and drop; e.g., Brant
|
196 ;;Quote: use a built-in web server for system status, logs, and debugging
|
196 ;;Quote: all software gets tested, either by you or your users; better to test now
|
199 ;;Quote: avoid code-generating wizards that you do not understand; your code and wizard's code are intermingled
|
202 ;;Quote: dig for requirements; they are buried under assumptions, misconceptions, and politics
|
208 ;;Quote: good requirements are simple, abstract needs
|
208 ;;Quote: Y2K happened because data processing implemented existing practices w/o date abstractions
|
220 ;;Quote: formal requirements are often meaningless to end users; everything is based on the designer's explanations, just as before; specialized, isolated participants
|
220+;;Quote: formal methods use static data models and event/activity-charting; poorly suited for dynamic systems
|
231 ;;Quote: avoid manual procedures; use scripts for repeatable command sequences; under source control
|
237 ;;Quote: code a little, test a little; test early, often, and automatically; bugs easier to fix
|
247 ;;Quote: write automated tests for every manually identified bug; the same problem will arise again
|