转载:资深设计师的29条忠告

1. Don't be too sure when it looks like true. Dig into the domain.

2. Experience is your treasure. And it is also your burden. (The design should be based on the problem domain, not what you have done in the past.)

3. It's hard to say "I was wrong", but if you don't say it, you have to pay for it.

4. It's not your job to show how to do coding. You can do it, but you can't devote to it.

5. Bugs fixing is also your responsibility, don't leave them to maintenance team alone.

6. You are not a problem solver. Try to eliminate problems before they surface. (good design can eliminate problems; you're not a firefighter)

7. Design is a technical thing, avoid politics in your decision. But if it is stronger than you, negotiate with it to make things still work.

8. If your decision is based on some limitations, always remember the limitations along with your decision.

9. If you can summarize principles from your work, write it down. Then sometimes you're able to know you were wrong, or you can use it as a
reminder.

10. If many programmers were waiting for your design, you're definitely dead man. (Human Resource driven is the sin)

11. Don't use lame metaphors; software is neither art nor brick building.

12. Tell users what you can provide; don't ask them what they really want.

13. Quality is your responsibility, don't hand it over to QA. (Design in the robust way)

14. Don't get smart. Write it down when you feel like a genius, and attack your idea as dangerous enemy.

15. Reuse is not your purpose, it's neither necessary nor sufficient to success.

16. A language addicit will always be a slave. Try to become a sensai.

17. Solutions/Tools with high price guarantee nothing on productivity.

18. Don't use "Microsoft did the same thing" to support yourself. It proves nothing. (Google/Facebook/Twitter/etc.)

19. Don't try to collect all information/requirements you need and decide later; welcome to the moving planet.

20. There's no universal solution; A language sometimes can be the one; and we need lots of languages, right?

21. Age and experience are not the right way to defend yourself in an argument.

22. Yesterday's workaround is tomorrow's limitation. 

23. Good design evolves; bad design patches.

24. Design what you're able to implement. If it's too hard to you, don't count on others.

25. Zenus didn't control everything; neither should you.

26. Inspect your design in each level.

27. Understand the hardware; your system doesn't run in air. (Hardware will never be perfect)

28. Make you design naturally and comfortable. Don't fight with programmers, and don't let them fight with your design.

29. It's too late when you realize to improve performance; design for it; 

原文地址:https://www.cnblogs.com/zhaorui/p/20090413_Architecture.html