【译】《Clean C#》
本文是《Clean C#》一书译文的序言,阅读译文请移步至:《Clean C#》译文。
《Clean C#》的副标题是Readable,Maintainable,Pleasurable,本书旨在提供一些编写具有良好可读性与可维护性代码的建议。虽然书名中带有C#字眼,但书中提供的经验绝不仅限于C#,也可用于其他语言。
书中内容涉及到:命名方式、异常处理、代码基本设计原则、单元测试及代码排版等多个方面内容。
该译文不是对原著进行一字一句的翻译,而是根据自己的理解,对原著的语言进行了重新编排以便更符合汉语表述习惯。此外,还对书中内容进行了一定程度的修订(增、删及内容顺序的调整),如,在每个章节的结尾会加入一段总结,文末也可能会添加一些扩展阅读文章链接。
书中的示例代码,如果命名空间名称以Dirty结尾,表示是这段代码是待优化代码;而命名空间名称以Clean结尾,则表示这段代码已按照书中的观点进行优化。
namespace CleanCSharp.Errors.Dirty
{
// 待优化
} namespace CleanCSharp.Errors.Clean
{
// 已优化
}
由于本人水平有限,译文中难免有错误之处,望各位多多指教。
本书的翻译未经作者授权,仅作学习用途,转载务必保留原书及作者信息。原书封面及作者信息如下:
雪飞鸿 · 写于2018-10-22
【译】《Clean C#》的更多相关文章
- 译《Time, Clocks, and the Ordering of Events in a Distributed System》
Motivation <Time, Clocks, and the Ordering of Events in a Distributed System>大概是在分布式领域被引用的最多的一 ...
- Note: Time clocks and the ordering of events in a distributed system
http://research.microsoft.com/en-us/um/people/lamport/pubs/time-clocks.pdf 分布式系统的时钟同步是一个非常困难的问题,this ...
- Time, Clocks, and the Ordering of Events in a Distributed System
作者:Leslie Lamport(非常厉害的老头了) 在使用消息进行通信的分布式系统中,使用物理时钟对不同process进行时间同步与事件排序是非常困难的.一是因为不同process的时钟有差异,另 ...
- 【SaltStack官方版】—— Events&Reactor系统—EVENT SYSTEM
Events&Reactor系统 EVENT SYSTEM The Salt Event System is used to fire off events enabling third pa ...
- Method and apparatus for providing total and partial store ordering for a memory in multi-processor system
An improved memory model and implementation is disclosed. The memory model includes a Total Store Or ...
- mysqldump: Couldn't execute 'show events': Cannot proceed because system tables used by Event Schedu
最近将老版本的mysql 实例倒入 percona 5.5.30,使用的是线上的全备,结果将mysql 库下的表也倒入了,这下可悲剧了,备份报错. 没办法,将mysql库下的数据倒出来,清空,再倒入p ...
- Paxos Made Simple(译)
The Paxos algorithm, when presented in plain English, is very simple. 我叫Leslie Lamport,我最屌. 1. 简介 用于 ...
- Paxos Made Simple
Paxos一致性算法——分布式系统中的经典算法,论文本身也有一段有趣的故事.一致性问题是分布式系统的根本问题之一,在论文中,作者一步步的加强最初一致性问题(2.1节提出的问题)的约束条件,最终导出了一 ...
- 《Paxos Made Simple》翻译
1 Introduction 可能是因为之前的描述对大多数读者来说太过Greek了,Paxos作为一种实现容错的分布式系统的算法被认为是难以理解的.但事实上,它可能是最简单,最显而易见的分布式算法了. ...
- 分布式系统(Distributed System)资料
这个资料关于分布式系统资料,作者写的太好了.拿过来以备用 网址:https://github.com/ty4z2008/Qix/blob/master/ds.md 希望转载的朋友,你可以不用联系我.但 ...
随机推荐
- 开机后Android应用自动启动
一.需求 在应用开发过程中,有客户提出在设备开机后自动启动应用. 二.实现方法 实现方案:安卓系统每次开机的时候都会发送一个广播,监听这个广播,广播事件触发启动应用程序. 监听音频广播而不是启动广播, ...
- Visual Studio 2017 集成Crystal Report为ASP.NET MVC呈现报表
最近项目需要实现报表功能,平衡各方面的因素,还是使用Crystal Report(水晶报表) 下载较新版本: http://downloads.businessobjects.com/akdlm/cr ...
- [转]Kaldi语音识别
转:http://ftli.farbox.com/post/kaldizhong-wen-shi-bie Kaldi语音识别 1.声学建模单元的选择 1.1对声学建模单元加入位置信息 2.输入特征 3 ...
- java责任链模式及项目实际运用
1.前言 上次我们认识了java责任链模式的设计,那么接下来将给大家展示责任链模式项目中的实际运用.如何快速搭建责任链模式的项目中运用. 2.简单技术准备 我们要在项目中使用借助这样的几个知识的组合运 ...
- ubuntu18.04安装mongoDB
STEP 1: 在终端输入GPK码 $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334B ...
- ScrollView嵌套子View的getDrawingCache为空的解决方法
ScrollView嵌套子View的getDrawingCache为空的解决方法 问题 将组件的显示布局改为可以滚动的,然后用ScrollView作为了View的父类,发现View的getDrawin ...
- Spark基础-scala学习(四、函数式编程)
函数式编程 将函数赋值给变量 匿名函数 高阶函数 高级函数的类型推断 scala的常用高阶函数 闭包 sam转换 currying函数 return 将函数赋值给变量 scala中的函数是一等公民,可 ...
- numpy中的norm用法
np.linalg.norm() computes the norm of a NumPy array according to an order, ord, which specifies the ...
- python2程序移植python3的一些注意事项
1 queue: python2: import Queue python3: import queue 2 queue size: python2: cache = Queue.Queue(maxs ...
- SVN密码找回 完美方案
问题背景 SVN(Subversion)版本管理工具.本文以Windows操作系统下使用SVN的场景. 长时间不使用SVN,可能会出现忘记了SVN密码的尴尬局面.那么,该如何找回SV密码呢? 处理思路 ...