首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训

更锋利的C#代码--编写高质量C#程序

  • 书名:更锋利的C#代码--编写高质量C#程序
  • 作者:包善东
  • 来源:清华大学出版社
  • 出版时间:2008年10月
  • ISBN:9787302179429
  • 定价:49元

看 书 评 论 收 藏打 分 购 买

图书版权归出版社和作者所有,CSDN & DearBook独家提供试读和连载
内容介绍:
一个好的程序,不仅仅是能得出正确的运行结果,而且还应在其内部保持清晰的代码逻辑和语义,否则,跟随在正常结果之后的也许是艰难的代码维护工作,对程序进行一处修改往往会牵一发而动全身,一不小心就会埋下深深的隐患。从另一个角度来说,如果每一行代码的质量都很高,那么这个软件产品也一定是高质量的。这就像ISO 9000的质量体系认证一样,与其在产品生产完成之后再进行检验,不如控制每一步生产环节的质量。.\r\n 本书由浅入深、由表及里地讲述存在于C# 编码开发中的各种质量问...

最近评论

精 彩 导 读

这是一本以C# 语言为基础,着眼于代码质量的编程指导。虽然没有砖头书的厚重,但却汇集了许许多多开发人员大量的实践经验。每个章节的内容似乎都为大家所熟悉,然而视角却完全不同,通过对那些几乎被人们忽视了的细节的精心处理,不断地提高每一行代码的质量。相信无论是C# 初学者,还是具有 .NET经验的开发人员,都能从本书中得到启发,写出质量更好的代码,开发出更加专业的程序。. 为什么要写这本书? 很多人在编程时,仅仅追求其可以运行出正确的结果。这也许与学校中长期的数学式的编程教学方式有关,教学中涉及的都是一些局部问题,即使有完整的程序,规模也非常有限,通常只考虑理想状况下算法与逻辑的正确性,很少去全面地考察它的工程质量。然而,当软件开发成为一种工业时,团队成员之间的高效合作成为首要的因素。任何一个具有一定规模的软件公司都深知:软件的工程质量往往比代码的算法效率更为重要。而现代化的质量管理并非仅仅是对产品的检验,更多的来自于过程的质量控制——用最佳的方式编写每一行代码,确保每一行代码都是高质量的。 可惜的是,涉及这方面知识的著作并不多,即使提及,也只是非常肤浅的一些关于缩进之类的书写格式上的建议。深入到代码之间的语义与逻辑关系层面,专门阐述代码质量的书可谓是凤毛麟角。难得的几部专著也大多是以C/C++ 语言为主,很多规则及其背后的理由对于C# 语言及 .NET类库设计并不适用,读者在使用C# 中的许多新特性(如索引器、事件、委托、异常等)之时也无法得到针对性的指导与帮助。本书不但紧密地结合了C# 自身的特点,给出了丰富的原则性指导并进行了详细的解释,而且更具有实用操作性。 什么样的人应该读这本书? 本书虽然遍及C# 的各种语法现象,但目的并不在于语言本身的教学,而是帮助读者发现那些影响代码质量的细节,并着手进行改进。对于初学者来说,可以配合相关的C# 教材一同阅读;对于有经验的C# 使用者来说,则可以作为一本开发过程中的手边参考。 如果您能遵照本书建议的原则进行开发,那么当别人看到您写出的代码或者发布的类库时,会相信该程序出自一位经验丰富的专业编程人员或团队,从而进一步对其产生充分的好感和信任。同时,代码阅读起来也非常易于理解,其他开发人员也能以最快的速度学习并掌握如何使用您开发的类库。因为您在编写每一行代码、定义每一个类型、设计每一个接口的时候,都从它的使用者的角度进行了充分的考虑——即使这个使用者是您自己。良好的开发习惯不仅仅是为了方便他人,大多数的时间内,更重要的是方便了开发人员自己。这就如同对函数、类这些机制的使用一样,就算离开了团队开发,我们仍然会使用函数来理清结构并重用代码。同样,我们自己在一处写下的函数或类,终究还是会被自己在程序的另一个地方使用。高质量的程序编码无疑会给自己带来极大的便利——这种便利并不是可以让你在写程序时省事偷懒,而是可以不必将大量的精力耗费在弄懂一个星期之前写好的代码逻辑之上。 如果您是开发团队中的负责人、项目经理或总设计师,但你的团队缺少统一的开发规范,那么有了本书的内容作基础,您将可以轻松地建立起团队开发的编码标准和开发守则。并且您可以使用本书中所描述的充分的理由告诉您的团队成员,它们为什么是必须的,而并非形式主义。 本书内容 本书共16章,涵盖从C# 代码风格(Coding Style)到国际化开发中的种种细节问题。第1至3章深入阐述了通用的代码书写格式与命名规范,第4至7章从面向过程的角度对开发质量准则进行了讨论,第8至10章则转向关于面向对象设计的指导原则,第11至15章针对C# 及 .NET所特有的机制进行相关讨论,第16章专门介绍了国际化应用开发时应当考虑的一些问题。由于前后章节的内容并没有严格的依赖关系,因此读者完全可以根据自己的兴趣与需要来决定阅读的顺序,而不必遵照原始章节顺序。 术语使用说明 术语的统一向来是计算机书刊的一个重要问题。同一个概念在不同时期、不同领域都可能有不同的具体表述方式。C# 是Microsoft公司专有的产品,并不像C/C++ 那样开放,术语的统一相对较为容易。然而即便如此,仍有一些“官方”术语可能令人产生混淆。 重载与重写是最容易引起误解的一对术语,它可能与其他语言中类似概念的表述存在偏差。重载(Overload)指的是多个拥有不同函数签名的同名函数,相互通过参数的个数、数据类型、顺序上的差异进行区分。而重写(Override)指的是在派生类中对基类型中的虚成员或抽象成员提供自己的实现版本。.. 属性是另一个容易引起误解的术语,事实上,它是两个不同概念在中文里的重名翻译。大多数情况下,“属性”指“Property”,即结构或类的一种成员,通过get/set访问器进行读写。而“属性”有时所指的是“Attribute”,表示所有从System.Attribute派生的类型,用于对编程元素进行描述性声明。在下面的代码中: [Serialzable] public class Employee (private string name = null; public string Name (get ( return name; ) set ( name = value; ) Name是Employee类的一个Property,而Serialzable则是用于对Employee类进行补充声明的一个Attribute。遗憾的是,官方并没有提供区分这两个概念的中文解决方案,好在Property使用的频率远远高于Attribute。如果没有特殊的说明或者上下文的提示,本书中所有的属性均指Property。 为了准确地表达术语,在本书中,所有术语在正文中被首次提及时,或者其他必要的位置,都会附带相应的英文表述,供读者参考。 排版约定 本书中包含大量的C# 代码示例,为了便于阅读,在排版时使用了类似代码加亮的方式:关键字以粗体方式显示,而伪代码则用斜体显示。注意:为了加以区别,非C# 语言的代码示例不使用代码加亮格式。 在整体上,本书还采用了带底纹与无底纹两种格式。带底纹的代码示例表示正确或推荐的做法,并附有示例编号与小标题;而无底纹的代码则表示错误或不恰当的做法,以及一般的补充说明之用。请看下面的示例: Console.WriteLine('这是不带底纹的代码示例。'); 以及, 代码示例x-x:带底纹的代码示例 Console.WriteLine('这是带底纹的代码示例。'); 关于截图的使用 书中所有Microsoft Visual Studio软件的屏幕截图的使用符合微软公司的相关许可规定。 致谢 这本书的创作过程真可谓是一场战斗,回想我写过的大大小小的程序、网站和文章,这几乎是时间跨度最大的一桩。从2006年底开始构思、进行内容和框架整理,到2007年夏天开始正式动工,再到现在整本书的完稿、出版,自己都觉得不可思议。在我看来,时间如此之长主要有两个原因。一是这本书的内容主要来源于经验的总结、归纳与提炼,并不像一般的技术教程写起来那么顺畅。很多时候,内容要点本身的整理就占据了很多时间,更不要说如何将它们表述清楚了。另一个原因是客观的,这本书开工后不久,工作就越来越忙,每天能够用于专心写书的时间越来越少。以至于到2007年底时,实际进度已经比计划慢了整整一个月。回想这半年多的时间里,多少次觉得精疲力尽难以继续,而又是在亲人和朋友们的多少次鼓励中坚持了下来。毫不夸张地说,他们对这本书的完稿起到了决定性的作用。 在此,我要感谢我的父亲包宗顺、母亲瞿忆玲、以及我的女友应筠之。他们与我朝夕相处,对我的写书工作给予了全力的支持。 我想对清华大学出版社的编辑陈冰,以及参与本书编辑出版的所有工作人员表示致意。如果没有他们对我的信任与支持、以及认真负责的工作,我就无法通过这本书来与大家分享我的经验。 感谢胡妍妍同学,她帮我指出并改正了许多语言表述上的错误,为这本书的“中文编码质量”作出了极大的贡献。我还要感谢杜文远、郑明鉴、以及从未谋面的何晓杰,他们提出了许多宝贵的意见和建议,并在本书创作最困难的阶段给予我关心与鼓励。... 包善东 2008年6月30日
line

网站简介广告服务网站地图帮助联系方式诚聘英才English问题报告

北京百联美达美数码科技有限公司  版权所有  京 ICP 证 020026 号

Copyright © 2000-2006, CSDN.NET, All Rights Reserved