程序员应该知道的97件事

  1. Act with prudence:  关注技术债
  2. Appply Functional Programming Principles
  3. Ask, “what would the User do”?: 观察用户操作
  4. Automate your coding standard:
  5. Beauty is in Simplicity: 代码可读性,可维护性,部署速度,
  6. Before you refactor: 保证测试;避免重写一切;多次增量改变;确保现有测试通过;不要带入个人偏好;不要盲目追求新技术;
  7. Beware the share:检查上下文
  8. The boy scout rule: 每次代码仓库要更干净
  9. Check your code first before looking to blame others
  10. Choose tools with care
  11. Code in the language of the domain: 代码更好反映出领域模型
  12. Code is Design
  13. Code layout matters: Easy to scan; Expressive layout; Compact format
  14. Code Reviews: 目的是为了共享知识和建立共同的编程原则;评论一件要有建设性,而不是刻薄。不同的人可以有不同的关注点(异常、文档、函数功能)
  15. Coding with reason:
  16. A comment on Comments:
  17. Comment only what the code cannot say.
  18. continuous learning
  19. Convenience Is Not an -ility: 不要因为方便而设计复杂的api
  20. Deploy early and Often:
  21. Distinguish Business Exceptions from Technical:
  22. Do lots of Deliberae Practice: 挑战超出现有能力的练习,尝试、分析并且纠正
  23. Domain-Specific Languages
  24. Don’t be afraid to break things
  25. Don’t be cute with your test data: when writing any text in your code(comments, logging,dialogs,test data),always ask yourself how it will look if it becomes public.
  26. Don’t Ignore That Error:
  27. Don’t just learn the language, understaned it’s culture
  28. Don’t Nail your program into the upright position: 不要让用户看到异常报告。
  29. Don’t rely on ‘magic happens here’
  30. Don’t Repeat Yourself
  31. Don’t touch that code
  32. Encapsulate Behavior, Not just State
  33. Floating-Point Numbers Aren’t Real
  34. Fulfill yur amtibions with open source
  35. The golden Rule of Api Designn:仅仅为api写单元测试还不够,还要为使用用你的api的代码写单元测试。
  36. The Guru Myth
  37. Hard Work Does Not Pay off: act like a professional: prepare, effect, observe, reflect, and change.
  38. How to use a bug tracker: bug report:如何复现;期望行为;实际行为。
  39. Improve Code by Removing it.
  40. Install me
  41. Interprocess communication affects application response time:
  42. Keep the build clean.
  43. Know how to use command line tools
  44. Know Well More Than two programming languages
  45. Know Your IDE
  46. Know Your Limits: 不同介质访问速度,不同算法的时间复杂度。
  47. Know Your Next commit: 不要向代码库提交你的 guesswork
  48. Large, Interconnected data belongs to a database
  49. Learn Foreign Languages
  50. Learn to estimate: estimate, target and commitment.
  51. Learn to Say, ‘hello, world’
  52. Let your project speak for itself.
  53. Make Interfaces Easy to use correctly and hard to use incorrectly.
  54. Make the Invisible More Visible.
  55. Message Passing Leads to Better Scalability in Parallel Systems.
  56. A message to the future