http://research.microsoft.com/en-us/um/people/blampson/33-Hints/WebPage.html, by ButlerLampson. Some of the hints are described on this Wiki: * Make actions atomic: http://c2.com/cgi/wiki?search=transaction * Use procedure arguments: HigherOrderFunction, FunctionalProgramming * PlanToThrowOneAway * DivideAndConquer * EndToEndPrinciple * DynamicCompilation * CacheCalculations, MemoizationStrategy * Don't generalize: YouArentGonnaNeedIt Hints (using the slogans in the paper) for which I couldn't immediately find an appropriate page: * Separate normal and worst case * Do one thing well * Get it right * Don't hide power * Leave it to the client * Keep basic interfaces stable * Keep a place to stand * Keep secrets * Use a good idea again * Shed load * Safety first * Use hints * Use brute force * Compute in background * Batch processing * Log updates Read the paper for the meanings of the slogans; some are not obvious. ---- CategoryPaper CategoryTips