关于本书
本书力图通过解决有名的范式、讲解反模式、提供一些看上去不是那么完美但依然能在实际工作中大有用处的实践经验等方式,填补软件开发工程师专业经验之不足。本书的目标是用质疑和实践的思维模式武装你的头脑,让你懂得,除了上网搜索和动手输入之外,创造软件还需要付出其他代价。除此以外,本书还会介绍一些能让你节省时间的日常操作。总的来说,本书的目标是成为固有观点的“破局者”。
谁该读本书?
那些非科班出身、还需要加深对软件开发范式和最佳实践理解的编程新人,以及有几年经验的程序员,是本书的目标读者。本书例子使用C#和.NET,熟悉它们会对你的阅读有所帮助,但是本书会做到尽量不受编程语言和框架的影响。
本书框架:路线图
● 第1章介绍了实战程序员的概念,即具备专业经验的开发者,并阐述能帮助你成为这种人的要素。
● 第2章讨论了理论在实际软件开发中的重要性,以及你为什么应该关注数据结构和算法。
● 第3章阐述了在许多情况下,有些反模式或坏实践实际上有其用武之地,甚至在很多情形下比其他方案更为适用。
● 第4章介绍了单元测试的神秘世界。虽然看起来它在项目开始时才显得比较有用,但确实能帮你减少代码量和工作量。
● 第5章讨论了重构技术,探讨如何轻松安全地进行重构,以及何时避免重构。
● 第6章介绍了一些基本的安全概念和技术,并展示了针对最常见攻击的防御措施。
● 第7章展示了一些行之有效的优化技术,建议过早优化,并提供了一种解决性能问题的有效方法。
● 第8章介绍了使代码可扩展性更强的技术,讨论了并行机制及其对性能和响应能力的影响。
● 第9章介绍了处理缺陷和报错的最佳实践,具体表现为鼓励不处理报错,并给出了编写容错代码的技术。
关于本书代码
本书包含的大部分代码用于说明概念,所以可能缺少在实际项目中的实现细节。异步社区提供了几个项目的完整代码,你可以在本地运行它们并进行试验。其中有一个例子比较特别,因为这个例子迁移自.NET框架。对于特定项目,在非Windows操作系统的计算机上可能无法直接创建。本书对其他平台的替代解决方案文件同样放在配套资源中,因此,请放心,正常运行代码没有问题。
本书包含许多源代码的例子,有些是列出编号的代码清单,有些是普通文本。在这两种情况下,源代码都用等宽字体,这样可以将其与正文分开。有时,部分代码会被隐藏起来,以突出显示与前面步骤不同的代码,例如当一个新功能被添加到现有代码行时。在许多情况下,原始源代码已被重新格式化。我们添加了换行符并重新修改了缩进,以适应书中可用的页面空间,但在极少数情况下,即使这样做空间也不够,便在清单中使用行延续标记(➥)。此外,在文本中描述代码时,源代码中的注释通常会从代码中删除。部分代码清单有注释。