注册通行证 用户名 密码
  • 文章投稿
  • 博客
  • 论坛
  • 设为首页
  • 加入收藏
jztop.com网络技术
  • 首页
  • | iT新闻
  • | 操作系统
  • | 组网建网
  • | 网络安全
  • | 程序开发
  • | 办公一族
  • | 工具软件
  • | 网页制作
  • | 多媒体制作
  • | 网吧技术
  • | 服务器
  • | 专题教程
Vista | 软件评测 | 系统备份 | 优化 | 进程 | 聊天 | 病毒 | Linux | 黑客 | 防火墙 | 数据库 | Web开发 | Java | Word | 游戏 | 32位开发 | 移动开发
当前位置:首页 > 程序开发 > 数据库 > Oracle 内容正文:代码编写中的心理学与美学

代码编写中的心理学与美学

发布时间:2006-03-30 23:20:02 来源:程序员 网友评论 0 条
  本文是Charles Petzold于2005年10月20日在NYC.NET开发者小组中的演讲稿节选。Visual Studio或许是程序员最好的伴侣之一,但这些年来,它变得日益冒进、专制,控件问题也变得越来越混乱。难道我们应该投降,让Visual Studio替我们来编写代码吗?还是它正在侵蚀我们的编程智慧而不是使我们增长智慧?这篇演讲剖析了Visual Studio生成的代码,分析了它为我们造就的令人震惊的编程习惯;狂热地表达了独立编程过程中的喜悦、挫折和满足感。

  技术成瘾,信息尽在指尖的麻烦   

  在使用计算机时,键盘和鼠标或许会使我们患上重复性神经压迫障碍症(repetitive stress disorder),.. 但软件对思想的影响要远远大于身体,即便如此,这种影响也是不易察觉的。

  有些观察家在观察我们的数字化生存方式后,注意到某些应用程序使用户以一种非常严格的预先设计好的方式进行思考,而且我们总是这样谈论一种消费技术:“在拥有它之前,我们根本不知道有多么需要它。”而大多数此类技术似乎都不是为了满足某种特定的需求,只是使我们沉迷于原本从未需要过的其他东西;不是为了使我们生活得更好,只是引诱我们服下设计师提供的又一剂迷药。一旦我们尝到甜头,就被引诱了。

  20 世纪90年代初,Microsoft公司提出了一个口号“信息尽在您指尖。”理论上来讲,这听起来相当不错,而今天,有了Google、Wikipedia、Internet MovieDatabase和其他有用的网站,这个梦想基本上已经实现。

  没有Visual Studio(以下简称为VS),世界将会怎样?它使我们按照各种预先设计好的方式进行工作,举例来说,如果VS实现的功能比现在少,那么人们是否会更高兴?VS的某些特性大大提高生产力,但就我个人而言,它们看上去贬低了VS,也减少了我的编程经验。

  自从20年前的1985年11月,Windows 1.0初次登场,记录的函数调用约有400种。10年以后,Windows 95中的函数调用超过了1000种。今天我们已经作好了迎接.NETFramework 2.0正式版的准备。仅仅统计MSCORLIB.DLL和那些以System开头的程序集,就有超过5000种公共类,包含超过45000 种公共方法和15000种公共属性,这还没有计算那些派生而来以及未重写的方法和属性。有这样一位能掌握60000种方法和属性的程序员吗?我认为没有。解决方案之一当然就是专门化。

  IntelliSense

  VS试图通过IntelliSense这种特性降低类、方法和属性的大规模扩展给人们带来的问题。在防止用户出格方面,如果您将“指尖”理解为对屏幕上插入键所在位置的比喻,那么IntelliSense实际上就实现了“信息尽在指尖”这一目标。它与.NET配合得天衣无缝,这是因为VS可以使用映射从您指定为引用的实际DLL中获取所需的全部信息。

  为使IntelliSense正常运作,自下而上的编程是最佳选择。IntelliSense要求每一个类、每一个方法、每一个属性等等都必须得到正确的定义,然后才能引用。如果您没有这样做,IntelliSense将使用已定义的相应内容尝试纠正您键入的代码,这可能会导致出错。

  但这里的结论令人惊愕。要想使IntelliSense正常运作,不仅要求使用自下而上的结构编程,在每一个方法或属性中,您还必须要从开始到结束呈线性地编写代码——这简直就像使用古老的DOS行编辑器EDLIN。您必须首先定义所有的变量,然后才能使用它们。根本不能在代码中越行编写。

  我不需要再记住任何东西。IntelliSense会帮我记住。我的编程过程成了一场与IntelliSense的持久对话。因此我不认为IntelliSense能帮助我们成为更出色的程序员。它实际的目标是使我们成为效率更高的程序员,这也就意味着使我们的劳动更为廉价。

  IntelliSense是一种不可避免要出现的技术。即便Microsoft公司没有开发出它,其他人也会将它带给我们。人类从不因为可能出现不幸的结果而尽量避免追捧某些技术。

  生成的代码

  VS不仅仅试图完成我们正在键入的代码,多年以来,它一直想要为我们生成代码。例如,如果选择WindowsApplication作为新项目类型,给它命名并指定本机驱动器上的存储位置后,VS就会生成足够的代码,以使这一项目立即可编译、可运行。

  出于某种原因,我们都已经相信了这是编程的合理方式。我更喜欢自己键入预备代码,然后自己输入main函数或Main方法。我真正需要帮助的时机绝对不是开始编程时,而是在我试图结束编程时。那个时候VS又在干什么?

  VS会将我们编写的程序与一组它认为我们需要的动态链接库挂钩,而不管您的程序是否真的需要这些DLL。这些额外的引用不会造成任何实际的损害,但如果其他人查看程序,会造成一些混乱。

  在其他文件中,VS会创建一个名为Form1.cs的文件,这是源代码文件,事件处理程序将其应用于主窗体中的控件。您会在代码顶端看到一组命令,包含了程序需要的命名空间。除了WindowsForm程序标准命名空间外VS还包含了很多自创的东西,其中某些的确非常有用,但如果程序并未实际使用这些命名空间中的任何类,那它们就只不过是令人分心的噪声。

  VS还在一个以项目名称命名的命名空间内封装了其生成的所有代码。当然,我完全理解给DLL一个命名空间的价值,但是为什么要给应用程序一个命名空间呢?我就这个问题考虑了很久,但没有得到答案。

  VS还会创建一个名为Form1.Designer.cs的文件,在VS 2005的某些测试版中,这个文件甚至不会默认地显示在项目文件中。这是VS在您设计窗体时插入生成代码的文件。VS显然不希望您搞乱这个文件,出于某些很好的理由,VS希望这些生成的代码采用一种特定的格式,如果您把它搞乱了,那么VS就无法在您再次打开项目时读回这些代码。
相关文章
  • 安全攻略:抵御恶意代码 防止病毒入侵
  • 微软否认Vista代码需重新编写 传闻虚假
  • 查QQ好友开通了哪些服务 一段代码轻松搞定
  • 程序员从美学角度来看待编写的代码
  • 强制弹出广告页面+自动最小化代码
【评论】【收藏本文】【打印】【关闭】
上一篇文章:程序员建立商业意识之玩技术与利用技术
下一篇文章:函数库、组件产品的测试方法
讨论区
查看
已有 0 位对此新闻感兴趣的网友发表了看法
匿名发表
注册通行证 登陆
图文阅读推荐
Atlas快速入门之实战Atlas
Atlas快速入门之实战Atlas
.net页面间的参数传递简单实例
.net页面间的参数传递简单实例
推荐阅讯
  • 将32位代码向64位平台移植的注意事项
  • Web 2.0中AJAX技术应用详解
  • Oracle中使用自治事务保存日志表条目
  • Weblogic Portal中实现AJAX编程之架构
  • 把JBoss缓存用作POJO缓存的实战演练
  • Hibernate二级缓存攻略
  • 解决select菜单边框无法设置的问题
  • KODO访谈—走向开源的EJB 3.0持久性引擎
  • 体验Web3.0 网络操作系统Web OS尝鲜
  • 怎样使用AJAX进行WEB应用程序开发
阅读排行
  • 1..net页面间的参数传递简单实例
  • 2.VC++与Matlab混合编程之引擎操作详解
  • 3.Oracle数据库数据对象分析
  • 4.Eclipse3.2+Tomcat5.5.17+Oracle9配置
  • 5.Oracle数据库中索引的维护
  • 6.在Oracle的网络结构中解决连接问题
  • 7.Oracle数据安全面面观
  • 8.Oracle数据库的ORA-00257故障解决过程
  • 9.Oracle数据库备份与恢复的三种方法
  • 10.Oracle与SQL Server在企业应用中的比较
专题教程
  • 大话G游 专题:手机病毒揭密
  • ARP攻击防范与解决方案 路由故障处理手册
  • Picasa中文版_Picasa教程 专题:清除流氓软件
  • Firefox专题 seo搜索引擎优化专区
  • 重装Windows必知的事情 装机之必备软件大行动
病毒专杀栏
  • 杀毒软件反被病毒杀 连"救命"都不能喊
  • 金山ARP防火墙
  • 还原卡神话破灭“机器狗”病毒来势汹汹
  • cctv经济半小时:你的手机现在安全吗?
  • 新挂马方式开始流行 ARP挂马称雄局域网
  • 木马和病毒清除的通用解法
  • IP地址不再冲突 查找ARP攻击者元凶
  • 教你几招识别和防御Web网页木马
  • 分析:封杀BT只是暂时的止痛药
  • QQ爆危险漏洞,“QQ游戏邀请大盗”邀请你玩病
关于我们 | 诚聘英才 | 联系我们 | 版权声明 | 网站大事 | 网站地图 | 意见建议
CopyRight 2005-2007 Jztop.Com 版权所有 未经许可 请勿转载