via: http://groups.google.com/group/pongba/browse_thread/thread/177efd30eba169ee
Don’t be too sure when it looks like true. Dig into the domain. Experience is your treasure. And it is also your burden. (The design should It’s hard to say "I was wrong", but if you don’t say it, you have to pay for It’s not your job to show how to do coding. You can do it, but you can’t Bugs fixing is also your responsibility, don’t leave them to maintenance You are not a problem solver. Try to eliminate problems before they surface. Design is a technical thing, avoid politics in your decision. But if it is If your decision is based on some limitations, always remember the If you can summarize principles from your work, write it down. Then If many programmers were waiting for your design, you’re definitely dead Don’t use lame metaphors; software is neither art nor brick building. Tell users what you can provide; don’t ask them what they really want. Quality is your responsibility, don’t hand it over to QA. (Design in the Don’t get smart. Write it down when you feel like a genius, and attack your Reuse is not your purpose, it’s neither necessary nor sufficient to success. A language addicit will always be a slave. Try to become a sensai. Solutions/Tools with high price guarantee nothing on productivity. Don’t use "Microsoft did the same thing" to support yourself. It proves Don’t try to collect all information/requirements you need and decide later; There’s no universal solution; A language sometimes can be the one; and we Age and experience are not the right way to defend yourself in an argument. Yesterday’s workaround is tomorrow’s limitation. Good design evolves; bad design patches. Design what you’re able to implement. If it’s too hard to you, don’t count Zenus didn’t control everything; neither should you. Inspect your design in each level. Understand the hardware; your system doesn’t run in air. (Hardware will Make you design naturally and comfortable. Don’t fight with programmers, and It’s too late when you realize to improve performance; design for it;
当某个东西看起来是真的时候,别那么确定就相信它。使劲去挖掘。
be based on the problem domain, not what you have done in the past.)
你的经验是你的财富,也是负担。(设计是应该按照问题域来进行的,而不是根据你过去做的事情)
it.
说出“我是错的”是很困难的,但是如果你(在该说的时候却)不说,你会为此付出代价。
devote to it.
你的工作不是做编程示范。你可以做,但是不要全身心投入进去。
team alone.
处理BUG也是你的责任,别把维护团队扔到一边。
(good design can eliminate problems; you’re not a firefighter)
你不是一个专门来解决麻烦的。试着在麻烦出现前将它们干掉。(好的设计能消除问题和麻烦;你不是消防队员)
stronger than you, negotiate with it to make things still work.
设计是一件技术活。不要让政治参与其中。如果政治力量比你强大,那就妥协以便让事情还能运转。
limitations along with your decision.
如果你的决策是基于某些限制的,那么在记住你的决策的同时,要记住这些限制
sometimes you’re able to know you were wrong, or you can use it as a
reminder.
如果你能在工作中总结出原则,就写下来。这样以后你就能知道你曾经如此地犯过错;或者你可以用它提醒自己。
man. (Human Resource driven is the sin)
如果有太多的程序员在等你的设计(来开工),你就死定了。(人办资源驱动是一种原罪)
别用蹩脚的比喻;软件不是艺术,也不是砖墙。
告诉用户你能提供什么;别问他们“你到底要什么”。
robust way)
质量也是你的责任;别把它们交给QA。
idea as dangerous enemy.
别搞小聪明。当你感觉自己像天才似地做出一个设计的时候,然后把它当成最危险地敌人来攻击。
“重用”不是你的目的。它不是“成功”的充分条件,也不是必要条件。
语言上瘾者永远是一个奴隶;尝试变成一个大师吧。
售价很高的解决方案/工具从不保证任何生产力。
nothing. (Google/Facebook/Twitter/etc.)
别用“微软也这么干过”来技术你自己。它什么也证明不了(google/facebook/twitter也是如此)
welcome to the moving planet.
别尝试先收集所有的信息和需求,然后再决定;欢迎来到移动的行星!
need lots of languages, right?
没有万能的解决方案;有时候编程语言是一个(万能解决方案);我们需要很多种语言,对不?
在争论中,年龄和经历不是你证明自己的正确方式(以德服人,以理服人)
昨天的Workaround就是明天的限制
好的设计在进化,坏的设计不停地打补丁
on others.
用你能实现的方式来设计;如果困难到你也写不出来了,那么就别指望其它人
宙斯没有控制所有的事物,你也不应该
在不同的级别下仔细检视你的设计
never be perfect)
要懂得硬件。你的系统不是在空气中运行的(但是可以Adobe Air)(硬件不是完美的,可能会出错)
don’t let them fight with your design.
让你的设计是自然而舒服的;别跟程序员斗争,也别让他们和你的设计斗争。
当你意识到应该提升性能的时候,已经太晚了。为性能而设计。