0
点赞
收藏
分享

微信扫一扫

每日一书丨这是一本演示如何在实际应用中利用设计模式的书

晚熟的猫 2022-01-18 阅读 46

Julia是一个为开发出高性能应用程序而设计的高级编程语言,旨在提高开发人员的生产力。其动态特性可以让你快速做一个小规模的测试,然后移植到大的应用程序中。

它的内省工具可以通过分析高级代码如何翻译成低级代码及机器码来实现性能优化。它的元编程更能帮助高级开发人员为特定领域的使用建立自定义的语法。它的多重分派和泛型方法功能使得开发人员可以轻松地在已有的方法上扩展新功能。

鉴于以上优点,Julia是可以在许多行业广泛使用的优秀程序开发语言。

现如今学习和应用设计模式是软件工程的一个重要方面。设计模式对于软件工程就像水对于生命一样—你的生存不能没有水。你还不信?你问一下人事经理就会发现许多职位公告都有设计模式,同样面试中也会有设计模式相关的问题。“设计模式是软件开发的重要组成部分”已经成为一个每个人都得知道的常识。

设计模式是开发可重用和可维护代码的基本技术。它提供了一套经过验证的解决方案,使开发人员可以快速解决软件开发中的问题。下面推荐一本演示如何在实际应用中利用设计模式的书《 Julia设计模式》,本书满足了期望编写高效代码、提升系统性能以及设计出易维护软件的Julia开发人员的需求。

图片
《 Julia设计模式》
作者:[美]汤姆·邝(Tom Kwong) 
译者:方明 
Julia之父亲笔作序推荐
汇集Julia核心开发人员和用户的优良设计模式
阐释设计高质量Julia应用程序的实践

本书首先概述应用程序设计中的设计模式和最佳实践。你将了解Julia的一些基本的功能,例如模块、数据类型、函数、接口和元编程。然后,你将掌握用于构建大型应用程序的现代Julia设计模式,重点在于性能、可重用性、鲁棒性和可维护性。本书还介绍了反模式以及如何避免开发中的常见错误和陷阱。你将学习如何在Julia中以不同方式更有效地实现传统的面向对象的设计模式。本书包含各种用例和示例,例如Julia开发专家如何在其开源包中使用设计模式。

从本书中你将学到改善软件设计、可扩展性和可重用性的方法,并能够有效地使用设计模式来应对软件开发中的常见挑战。

本书的首要目标是规范这些被充分证明过的设计模式,以便于Julia开发者社区吸收和利用。

读者对象

本书的目标读者是那些想为大型应用程序编写符合Julia语言特性的代码的初中级Julia开发人员。本书不是一本基础书籍,所以希望你有一定的编程基础。如果你对面向对象编程范式很熟悉,会发现本书非常有用,它会告诉你如何采用不同的方法解决同一个问题,而Julia的方式常常是更好的。

本书提及的许多设计模式广泛适用于所有领域和使用场景。不管你是数据科学家、研究员、系统开发人员还是企业软件开发者,都会因在你的项目中使用这些设计模式而获益。

本书结构

第1章介绍设计模式的历史和如何利用设计模式开发应用程序。它包含了一些适用于任何编程语言和编程范式的工业级软件设计原则。

第2章探讨如何规划大型程序及如何管理其依赖关系,其中解释了如何开发新的数据类型和表示层级关系

第3章解释函数是如何定义的以及多重分派是如何运行的,还讨论了参数化方法和接口。针对这些方法和接口,不同的函数可以基于预定契约彼此正确地工作。

第4章介绍宏和元编程以及如何将源代码转换成另外一种形式,还描述了一些高效开发和调试宏的技巧

第5章介绍与代码重用相关的设计模式,包含通过组合实现代码重用的委托模式、更正式的Holy Traits模式,以及从参数化的数据结构创建新类型的参数化类型模式。

第6章介绍与提高系统性能相关的设计模式,包含更好的类型稳定的全局常量模式、通过数据重排达到最佳布局的数组结构模式、通过并行计算优化内存的共享数组模式、缓存前面计算结果的记忆模式,以及通过函数特化提升性能的闸函数模式。

第7章介绍与代码可维护性相关的设计模式,包含便于管理大型代码库的子模块模式、便于创建数据类型的关键字定义模式、用较少代码定义许多相似函数的代码生成模式,以及为特殊领域创建新的语法规则的领域特定语言模式。

第8章介绍帮助你编写更加安全的代码的设计模式,包含为字段提供标准访问权限的访问器模式、控制字段的访问的属性模式、限制变量范围的let块模式,以及处理错误的异常处理模式。

第9章介绍前面提到的几类模式之外的设计模式,包含动态分派的单例类型分派模式、构建独立测试的打桩/模拟模式,以及建立线性数据处理流水线的函数管道模式。

第10章介绍需要避免的设计模式。最主要的反模式就是海盗反模式,例如为数据类型定义和扩展那些不属于你的函数,还包含降低系统性能的窄参数类型反模式和分散的非具体字段类型反模式。

第11章介绍GoF的Design Patterns: Elements of Reusable Object-Oriented Software中描述的设计模式,还探讨在Julia中如何简化或以不同方式实现这些设计模式。

第12章探讨Julia如何支持继承,以及为什么在Julia中继承会被设计为和主流面向对象编程语言中的完全不同。然后讨论类型变体(关于多重分派使用的数据类型之间的子类型关系的重要概念)。

示例代码免费下载

本书的代码在Github的https://github.com/PacktPublishing/Hands-on-Design-Patterns-and-Best-Practices-with-Julia中。任何修改都会更新到Github的代码仓库中。

声明:本文转自"华章计算机”公众号

举报

相关推荐

0 条评论