1. 当性能遇到问题时,如果能在应用层进行计算和处理,那就把它从数据库层拿出来。排序和分组就是典型的例子。在应用层做性能提升总是要比在数据库层容易的多。就像对于MySQL,sqlite更容易掌控。

2. 关于并行计算,如果能避免就尽量避免。如果无法避免,记住,能力越大,责任越大。如果有可能,尽量避免直接对线程操作。尽可能在更高的抽象层上操作。例 如,在iOS中,GCD,分发和队列操作是你的好朋友。人类的大脑没有被设计成用来分析那些无穷临时状态——这是我的惨痛教训所得。

3. 尽可能简化状态,尽可能局部本地化。适用至上。

4. 短小可组合的方法是你的好朋友。

5. 代码注释是危险的,因为它们很容易更新不及时或给人误导,但这不能成为不写注释的理由。不要注释鸡毛蒜皮的事情,但如果需要,在某些特殊地方,战略性的长篇注释是需要的。你的记忆会背叛你,也许会在明天早上,也许会在一杯咖啡后。

6. 如果你认为一个用例场景也许“不会有问题吧”,它也许就是一个月后让你在发布的产品中遭受惨痛失败的地方。做一个怀疑主义者,测试,验证。

7. 有疑问时,和团队中所有相关人交流。

8. 做正确的事情——你通常会知道这指的是什么。

9. 你的用户并不傻,他们只是没有耐心理解你的捷径。

10. 如果一个开发人员没有被安排长期的维护你们开发的系统,对他保持警惕。80%的血、汗、泪水都是在软件发布后的时间里流的——那时你会变成一个厌世者,但也是更聪明的“行家”。

11. 任务清单是你的好朋友。

12. 主动让你的工作更有乐趣,有时这需要你付出努力。

13. 悄无声息的崩溃,我仍然会为此从噩梦中惊醒。监控,日志,警报。清楚各种的假警报和不可避免的感觉钝化。保持你的系统对故障的敏感和及时警报。

14. 复杂是大敌。

从自己以前记录的word中摘抄过来的,忘记从哪看到的了,找不到原始链接。如作者看到,请留言认领! 🙂

原文地址:http://blog.jobbole.com/19001/       作者:@敲代码的张洋

此文章的主旨是希望过于专注.NET程序员在做好工作、写好.NET程序的同时,能分拨出一点时间接触一下.NET之外的东西(例如10%-20%的时间),而不是鼓动大家什么都去学最后什么都学不精,更不是说.NET不行或劝大家放弃.NET。恕我愚钝,此主旨在文中表达不够清楚,看评论中很多朋友误解了,特此说明。

另外,本文中的观点并不全部是我个人的想法,相当一部分来自我以前聊过天的某些大牛,他们很多来自微软、百度、腾讯等知名企业,并且很多已经成为技术骨干,我曾经从他们那里受益匪浅,于是我把他们的指教结合自身的经验和理解写成此文。这就是此文的来源。

—————————————–华丽的分割线—————————————–

在给这篇文章起标题的时候,我斟酌了很久,因为我个人是反对使用“.NET程序员”、“C++程序员”或“PHP程序员”这类简单粗暴的方式为程序员做划分的。但是客观确实存在一个现象,就是很多程序员会为自己设置一个无形的界限,将自己与某种语言或平台硬绑定到一起,例如我这里所指的“.NET程序员”。请注意这与“术业有专攻”是不同概念的,有自己专攻的平台或领域这很正常,但是有很多人偏执地将自己与某个语言或平台紧紧捆绑,而忘记了自己首先是一名程序员,然后才使用某种语言,他们偏执于平台并陶醉于自己建立的盒子里,而不愿主动去接触一些盒子外的事物,最终使得自己无法进步。

张洋:写给.NET程序员,不要困在自己建造的盒子里

从我个人的观点看,本文中“.NET程序员”是指具有如下特点的程序员群体:

《阅读全文》

微软服务器与开发工具事业部 黄捷 原文地址

如果你创建寄宿在IIS中的WCF Service网站项目,(图1显示怎样创建这样的网站项目),或者你把你的WCF Web Application项目或者WCF Service网站项目发布或部署到IIS网站服务器上后,你可以用网页浏览器去访问你的网站。如果你在尝试打开这些网页时无法看到正确的页面显示,或者看到错误提示页面(图2是错误提示页面的一个例子: HTTP Error 500.21 – Internal Server Error Handler “svc-Integrated” has a bad module “ManagedPipelineHandler” in its module list),下面是最常见的问题和解决办法。

Image

图1 《阅读全文》