木子屋 Dnawo's BLOG

分类:网络文摘

共 136 篇

.NET异常处理最佳实践

1. 及早检查 发现问题越早,这个问题就越容易解决。 2. 不要相信外部数据 外部数据是不可相信的。不管这些数据是来自寄存器,数据库,硬盘,socket,你所书写的文件抑或是键盘,它们都必须被广泛的检查。所有的外部数据都应该被检查。当你需要外部数据时,你可能遇到以下的情形: ◆没有足够的安全权限. ◆信息不在那儿. ◆信息不完整. ◆信息是完整的但不可用. 不管它是注册信息,文件,SOCKET,数据库,网站服务抑或是串行端口,所有的外部数据源迟早都会出错。为安全错误做好准备才能把损失降到最小。 3. 不要抛出new Exception() 不要抛出new Exception()。Exception是一个非常大的类,如果没有side-effect,很难去捕获。引用你自己的异常类,但是使它继承自AppliationException。通过这种方法,你可以设计一个专门的异常捕获程序去捕获框架抛出的异常,同时设计另一个异常捕获程序来处理自己抛出的异常。…

好的编程习惯收益的是自己

前两天帮QQ群中的一个同学远程解决一个问题,这个同学据说自己折腾了一天都没搞定,给他结果以后感想非常多,今天有时间把这个问题以及背后隐藏的问题分享给大家。 下面说的吃异常的错误不仅初学者会犯,很多工作很多年的人也经常会犯这种错误,因此虽然在很多人看起来很简单,我还是在这里罗嗦了,希望对有的人有帮助。 这位同学说他写的程序总是报错说字段ParentId没找到,但是数据库中是有代码的。他是通过SQLHelper获得一个DataTable,然后把DataTable展示到ListView中进行数据展示的。示例性代码如下: 其实他的这个程序是有很大缺陷的,因为他是在UI层中进行数据过滤的,这个问题暂且不提。…

图王:如何做一个成功的站长?

图王:既然是分享经验,今天我写的这些,就全部是断网、原创的。没有复制精彩的文本。所以有不当的地方,也请多包含。 做网站,会做的人,常常说是很简单的事情,但是很多人还在是否做站的周边徘徊。 我今天分享的3个提纲: 做网站是为了什么? 做什么样的网站? 怎么做一个好网站? 每个提纲结束,接受5分钟的提问,我打字的速度还是很快的,大家放心,能回答的我会立即回答 :) 第一个提纲:做网站是为了什么? 你做网站,是兴趣爱好把它当做玩玩而已,还是对此有兴趣并准备把网络当做一个平台来实现盈利或创业,这是首先需要确定的问题。 在6-10年以前,做网站,更多一些的是兴趣,通过写代码来实现网络分享。 但是现在更多的是在实现平台的本身价值,所以更多的是谈盈利和运营。…

风雨20年:我所积累的20条编程经验

编者按:原文作者乔纳森·丹尼可(Jonathan Danylko)是一位自由职业的web架构师和程序员,编程经验已超过20年,涉足领域有电子商务、生物技术、房地产、医疗、保险和公用事业。正如乔纳森在文中所言,本文适合刚毕业的大学生和刚入门的程序员。如果你已是高级开发人员,或许你能在本文中看到自己的身影。 从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学到更多的朋友。 我会持续更新这些经验,我可能还会有更多的感想,但就我这20年来看,我想下面这个列表中基本不需要增添额外的东西了。下面就是我至今最难忘的经验。…

面向过程和面向对象的编程

关于写《面向过程和面向对象的编程》这个话题我很矛盾,我担心许多程序员对此话题不太感兴趣,可能他们不太懂得面向过程和面向对象编程的巨大差距,以及对编程水平的影响。 在我整个编程生涯中,有无数的转变和变化让我铭记在心。从汇编到C语言,从文件系统到数据库,从C语言到Dbase,从C/S到B/S,从程序语言到开发平台等等。但是,让我感觉最大的、最根本的转变是从C语言转学C++。可以说这是一个革命性的转变。在当时我对C语言的运用已经如日中天,得心应手,感到只要用C语言就能完成所有应用程序的开发。但是,学了C++之后,我才恍然大悟,程序还可以用另外一种思维编写。这个转变过程极其痛苦,每个概念的接受都需要和C语言进行对比,都要不停地问这个是为什么?整整花了我几乎半年时间,而且每分每秒让你在不解,忽然懂了,忽然不懂中度过。我学习一种语言,主要是学习这个语言的构架和基本原理,也就是说要研究这个语言的由来和特点。又经过若干年后,我才真正意识到面向对象编程的重要意义。它绝对是程序员思维方式的变革和升华,它使得程序员可以从具体编程,提升到抽象的结构。使得程序员可以编写更加通用的类,进而编写通用的软件产品。 人们从小就学习1、2、3、4,头脑里排满了次序!绝大数人都是按照次序思维的。这种次序就是一种过程。例如先做什么,后做什么。做得比较好的,表现做事有条理,做事很有逻辑性。做得不好的,则把过程做得歪歪扭扭最后也能达到预期的结果。同样,绝大多数程序员都是按照面向过程思维方式去编程的。尽管他们用了面向对象的程序设计语言,学了对象、学了类,用了类,但是他们仍然用面向过程的方式编程。…

迅雷邹胜龙:只有技术能带来安全感

温家宝8月底视察迅雷时,邹胜龙作为公司CEO汇报工作说中国在下载领域领先,而迅雷在下载行业领先,并向温家宝赠送了"001"的会员资格。 如果国务院总理温家宝想在互联网上下载点什么资源,他一定会比普通网友快上很多,这不是因为他的政治局常委的身份,而是因为他的迅雷VIP资格。 在今天中国的互联网,下载在某种意义上等同于迅雷(占据八成市场份额),一如百度之于搜索,阿里巴巴之于电子商务。 在迅雷的墙报上写着一个100亿的数字,这是公司计划未来5年内达到的市场规模。看起来不可思议,而邹胜龙说:"5年百亿的市场是基于复合增长率分析,建立在对比百度和腾讯上市前同期的数据基础上,这也是迅雷这样一个用户数量级公司对资本市场的承诺。"…

软件Bug引发的十次严重后果

2009年2月份Google的Gmail故障,应该算是最近因软件故障而受到广泛关注的事件。据Google后称,那次故障是因数据中心之间的负载均衡软件的Bug引发的。 Gmail故障还仅是导致用户几个小时内无法访问邮箱,并没有造成伤亡。当然了,对某些用户来讲,是非常不便。 但看了伯乐在线-职场博客的这篇文章后,您会发现,Gmail的故障问题真是"小巫见大巫"了。 一触即发的第三次世界大战 1980年,北美防空联合司令部曾报告称美国遭受导弹袭击。后来证实,这是反馈系统的电路故障问题,但反馈系统软件没有考虑故障问题引发的误报。 1983年,苏联卫星报告有美国导弹入侵,但主管官员的直觉告诉他这是误报。后来事实证明的确是误报。…

Unix 发展史

一、Multics计划 1965年,AT&T贝尔电话实验室、通用电气公司、麻省理工学院MAC课题组一起联合开发一个称为Multics的新操作系统。Multics 系统的目标是要向大的用户团体提供对计算机的同时访问,支持强大的计算数据存储,以及允许用户在需要的时候容易地共享他们的数据。 1969年Multics的原始版本在GE645计算机上运行了,但它既没能提供预定的综合服务,而且,连它自己也不清楚究竟什么时刻算达到开发目标。在这种情况下,AT&T贝尔电话实验室首先退出了这一项目。 二、UNIX系统的萌芽 Multics项目中止后,AT&T贝尔电话实验室中参加开发的主要人员开始寻找其他有趣的项目。这其中,KenThompson写了一个名叫 “太空漫游”的游戏程序。他找到了一台基本无人使用的DEC PDP-7计算机运行他的程序。然而由于DEC PDP-7缺少程序开发程序,以致于Thompson不得不在另一台运行GECOS操作系统的Honeywell635上交叉汇编子他的程序,然后再通过纸带加载到DEC PDP-7上。 为了方便太空漫游的开发,Thompson和Dennis Ritchie一起着手开发DEC PDP-7上的操作环境: 1.一个简单的文件系统,它后来深化成称之为System V文件系统的早期版; 2.一个进程子系统和shell(命令解释器)。 这样这个系统就足以满足他们的需要,他们将这个操作环境命名为UNIX。 Thompson和Ritchie后来开发了B语言(后来Ritchie又将其发展为C语言),并扩展了UNIX系统,UNIX系统便在AT&T贝尔电话实验室流行起来。 1973年11月,他们用C语言彻底重写,这是UNIX操作系统迈向成功之路的关键一步。完成后,Thompson和Ritchie共同在《ACM通信》上发表了首篇UNIX论文,The UNIX Time Sharing System。 三、UNIX系统的发展 而由于AT&T公司受到美国反托拉斯法的诉讼,与联邦政府签署了一份协议,这份协议不允许AT&T公司生产与电话和电报服务无关的设备,也不允许从事除“公用通信服务”外的任何商业活支。这样,AT&T公司就陷入了不能经营计算机产品的尴尬局面。 而自从在《ACM通信》中发表了关于UNIX的论文后,越来越多的人希望能够获得UNIX软件和源码。为了不违背与政府签署的协议,AT&T公司既不出售UNIX、也不为其作广告、不对其提供技术支持。而同时为了满足大家的需要,AT&T公司在签署简单协议的前提下,将UNIX系统无偿地提供给大学,以供教学与研究。 由于AT&T公司对UNIX的策略,使得UNIX在全世界范围内快速发展。到1975年底,它已经传播到西至耶路撒冷的Hebrew大学,南至澳大利亚的新南威尔士大学,北至加拿大多伦多大学的世界各地。 1979年1月发行的UNIX版本是一个真正可移植的UNIX系统,它对其后的UNIX发展有着深远的影响。该版本最初是运行在PDP-11和 Interdata 8/32上的,该系统更加健壮,而且提供了比版本6更强大的功能,但其相当慢。许多领取了许可证的用户针对这一情况从不同方面对系统的性能进行了改进, AT&T又将这些改进中的许多加入了其以后的UNIX发行中。 这种使用者与开发者之间的合作精神正是UNIX快速成长和不断发展的关键因素。不幸的是,当UNIX在商业上取得很大成功之后,这种精神就不存在了。…

中国人正在上的四大当,你上了几个?

第一大当:房产 买房意味着什么?意味着你拥有了一个属于自己的房子。是的,你是这样以为,但是在中国你并无法拥有这个房子,只是租给你而已。因为房子是你的,地不是你的,只是把土地使用权租借给你70年(从现在退70年那是抗日战争时期,谁见过那时候的房子?)。房子通常情况下30年左右就会遇上拆迁或者旧房改造。也就是说你花了买房的钱,却只能得到租房的实际效果。当然这还不是最坏的。最坏的是,当几十年后你发觉上当了!有一群流氓冲进你用一辈子积蓄买下的房子,画上一个大大的拆字!然后把你的家当全部当垃圾一样的仍出门外,不顾你的苦苦哀求,甚至还在报纸上给你按一个钉子户的臭名,任大众辱骂的时候你就会知道什么叫做绝望! 形容中国的房地产有一个很有名的笑话是这样写的:…