译者序,第一篇
姚文杰 凯捷咨询数字化团队架构师
编写好代码
“如何编写一段好代码”,我经常被问到这样的问题。写了这么多年代码,我心中仍然没有一个标准答案。但是,我清楚的知道,什么样的代码是被人诟病的烂代码:只能自己看懂甚至过段时间自己都看不懂的命名、牵一发而毁全身的神秘逻辑、读起来就像行走于盗梦空间一样的各种嵌套,如此等等。它们的产生一般都有一个共同原因:即我们习惯着眼于现在而非未来。实现眼前的功能是大部分开发工作的第一要务,但是面向未来的思考往往能成就好的代码。
在我的职业生涯中,接触过不少编程语言,回顾这些经历和经验,我发现语言或者工具并不是影响一个项目能否成功的关键,更在于开发者的意识。
意识,包含编码习惯、设计风格、基于未来的思考等等,这些都深刻影响着这段代码的命运。这段代码可能平淡无奇,可能被人赞叹,也可能遭人唾弃。但是没错,它的优劣完全由创造者 ——我们来掌握。本书虽然基于Python,却道出了很多编码过程中值得学习和应用的实践。换句话说,它不是在教我们如何用Python做完一个功能,而是在讲述如何做好一个复杂项目的故事和经验。
Python的进退
“人生苦短,我用Python”,活跃在各大Python社区的这句名言,道出了Python语言很多优点。作为一门动态解释性语言,Python简洁、优雅、容易上手,一直是众多编程爱好者喜爱的编程语言之一。但是往往也是因为这些“优点”,很多开发者都容易在Python的大型项目中“放飞自我”,如果我们仅仅关注于利用Python提供的方便工具或者丰富的库来快速实现功能,不注重代码本身的质量和可维护性,随着时间的推移,这些本来写起来顺风顺水的代码在将来会变成一堆别人不想触碰的“垃圾山”。这也是业界对Python诟病最大的地方,因为它和其他同为强类型的语言(比如Java 、C#)相比,缺乏了太多限制,这就让它显得更加脆弱,编写小型的工具或者库可能表现不明显,一旦Python用于大型的工程项目,很多人都会望而却步。这也是为什么我们很难看到Python大规模应用到国内很多企业和大型项目中的原因。
然而,这并不意味着Python不够强大,换句话说,Python作为灵活的强类型语言也可以长久健壮的存活在大型复杂项目中。本书在使用Python3的条件下,论证了这一观点,并基于代码实践从各个角度来告诉大家如何编写面向未来的Python代码,以及如何优雅、合理地实现代码的健壮性。
关于本书内容
本次非常有幸与另外三位同事凌锐、周伟、凌云一起翻译本书,内容以四个部分分享了如何编写健壮Python代码:
1. 类型注释,其类型检查如何在保证健壮性的工作中扮演重要角色
2. 自定义类型,用面向对象的思维,增加代码的健壮性
3. 可扩展性,借助一些设计思想和常见架构,进一步提升代码质量
4. 安全网,用静态检查和测试完善整个代码的安全网
读者得以从四个不同的角度,了解各种Python技巧。借助其中的例子,也可以培养软件从业者编写良好代码(不只是Python)的意识。
作为一名接触Python语言、OOP以及敏捷技术实践多年的架构师、开发者,我个人也从中学习到了很多Python的技巧和建议。希望阅读此书的读者都能有所收获,并能够将其中一些做法或者思想应用到自己的职业生涯或者编码工作中。
共勉与致谢
“时人不识凌云木, 直待凌云始道高”,这些保证/增强代码健壮性的做法往往在一开始并不会彰显它的魅力,但只要你坚持做正确的事情,它的作用和影响便一定会在日后慢慢凸显。
“不积跬步,无以至千里”,希望大家不仅在编程过程中,而且在自己的学习生活过程中,同样能够保持追求完美、持续改进,从日常中积累,从细微处成长,早日实现自己工作和生活中的每一个目标。与君共勉!
感谢家人、朋友对我繁忙项目之余翻译工作的无条件支持,你们的陪伴和鼓励一直是我前行的动力。
最后再次感谢各位的阅读。翻译过程难免有差漏,欢迎大家多提宝贵意见和反馈,以助于本书译本的后期改善。
译者手记,第一篇
周伟 凯捷咨询数字化团队资深项目经理
市场上讲Python编程的书籍很多,许多开发人员只接触了Python语言的表面,而没有深入学习编写Python的所有工具和技巧。通过本书,你将学会如何更好地使用Python;你将接触到许多使得Python整洁并可维护的方法;你未来的维护者也将会喜爱并使用你写出的每段代码,因为它是预先“精心设计”的。本书不只是编程的参考书,更是便于和公司或组织内的开发人员一起探讨如何最好地应用这些编程原则的指南。
这本书的翻译工作从21年7月到22年3月历时9个多月的时间,期间因为承接了规模庞大而复杂的项目以及在客户现场工作等原因导致翻译工作只能持续而缓慢的进行,感谢几位伙伴的理解和支持。此外,我的儿子也在学习Python的课程,也希望借翻译此书的过程加深对于Python的理解并能和儿子共同学习。感谢我的妻子对于我翻译工作的支持,并把此书作为一周年的生日礼物送给我的女儿。
最后,祝读者们享受Python的编程实践之旅!
译者手记,第二篇
梁凌锐 凯捷咨询数字化团队敏捷咨询顾问
我们都知道Python是一门语法简单、设计优雅的语言,“低门槛”和“易用”这两个特点造就了它活跃的生态,进而使它拥有了大量库和语法糖,是编程零基础选手快速入门的不二之选。
但与此同时,作为Python语言的使用者和软件交付咨询师,我深知我们不能因为手里有把好的砍柴刀就对危机四伏的软件世界掉以轻心甚至洋洋得意。软件工程所要应对的根本问题并不会凭空消失,很庆幸有Patrick Viafore这样务实的技术作者能深入浅出地给软件从业者分享写出好代码的原则、方法与工具,因此这本书也同样适用于使用其他编程语言的读者。
非常感谢能有机会阅读并翻译这本好书,书中关于类型和测试的解读让我格外印象深刻,这些思考一定会对我的职业生涯产生深远的影响。希望读完本书的你和我一样,能在今后的工作中更畅快地感叹:“人生苦短,我用Python”。开卷有益,谢谢阅读。
译者手记,第三篇
杨凌云 凯捷咨询北方测试团队负责人
Python是一门简单易学并且功能非常强大的编程语言,所以即使你是编程新手,也可以通过自学很快上手。但是随着软件系统变得越来越复杂,仅仅接触到python的表面是远远不够的,否则软件系统会因为膨胀而变得脆弱。因此,深入学习编写健壮Python的所有工具和技巧是非常重要的。本书适用于有一定经验的读者,也涵盖许多高级Python主题,但目的不仅仅是为了让读者会使用这些特性,而是基于这些特性去讨论你的选择会对代码的可维护性产生哪些影响。
非常荣幸能够有机会翻译这本书,也感谢凯捷龙腾生刘小雪、张婕对我们的支持,在我繁忙的时候共同承担了很多校对工作。“读万卷书,行万里路”,希望大家的编程之旅更加精彩。
网友评论