返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • 正版 Julia设计模式 汤姆 邝 软件质量目标 模块 包和数据类型 技术要求 函数 接口 委托模式 可维护性
  • 新商品上架
    • 作者: 汤姆·邝(Tom著
    • 出版社: 机械工业出版社
    • 出版时间:2021-08
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    句字图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

    商品参数
    • 作者: 汤姆·邝(Tom著
    • 出版社:机械工业出版社
    • 出版时间:2021-08
    • 开本:16开
    • ISBN:9787664014706
    • 版权提供:机械工业出版社

      商品基本信息

    商品名称:

      Julia设计模式

    作     者:

      [美]汤姆·邝(Tom Kwong)

    市 场 价:

      129.00元

    ISBN  号:

      9787111689492

    页     数:

      372

    出 版 社:

      机械工业出版社


     

      目录

      序言
    前言
    作者简介
    审校者简介
    第一部分 从设计模式开始
    第1章 设计模式和相关原则 2
    1.1 设计模式的历史 2
    1.1.1 设计模式的兴起 3
    1.1.2 关于GoF模式的更多思考 3
    1.1.3 在本书中我们如何描述设计模式 4
    1.2 软件设计原则 4
    1.2.1 SOLID原则 5
    1.2.2 DRY原则 6
    1.2.3 KISS原则 6
    1.2.4 POLA原则 7
    1.2.5 YAGNI原则 7
    1.2.6 POLP原则 8
    1.3 软件质量目标 8
    1.3.1 可重用性 8
    1.3.2 性能 9
    1.3.3 可维护性 10
    1.3.4 安全性 11
    1.4 小结 11
    1.5 问题 12
    第二部分 Julia基础
    第2章 模块、包和数据类型 14
    2.1 技术要求 14
    2.2 程序开发中不断增长的痛点 15
    2.2.1 数据科学项目 15
    2.2.2 企业应用程序 15
    2.2.3 适应增长 16
    2.3 使用命名空间、模块和包 16
    2.3.1 理解命名空间 17
    2.3.2 创建模块和包 17
    2.3.3 创建子模块 23
    2.3.4 在模块中管理文件 24
    2.4 管理包的依赖关系 24
    2.4.1 理解语义版本控制方案 24
    2.4.2 指定Julia包的依赖关系 25
    2.4.3 避免循环依赖 28
    2.5 设计抽象类型和具体类型 29
    2.5.1 设计抽象类型 29
    2.5.2 设计具体类型 33
    2.5.3 使用类型运算符 37
    2.5.4 抽象类型和具体类型的差异 39
    2.6 使用参数化类型 39
    2.6.1 使用参数化复合类型 40
    2.6.2 使用参数化抽象类型 42
    2.7 数据类型转换 43
    2.7.1 执行简单的数据类型转换 44
    2.7.2 注意有损转换 44
    2.7.3 理解数字类型转换 45
    2.7.4 重温自动转换规则 45
    2.7.5 理解函数分派规则 47
    2.8 小结 48
    2.9 问题 49
    第3章 设计函数和接口 50
    3.1 技术要求 50
    3.2 设计函数 51
    3.2.1 用例——太空战争游戏 51
    3.2.2 定义函数 51
    3.2.3 注释函数参数 52
    3.2.4 使用可选参数 55
    3.2.5 使用关键字参数 57
    3.2.6 接受可变数量的参数 58
    3.2.7 splatting参数 59
    3.2.8 第一类实体函数 60
    3.2.9 开发匿名函数 61
    3.2.10 使用do语法 62
    3.3 理解多重分派 63
    3.3.1 什么是分派 63
    3.3.2 匹配最窄类型 64
    3.3.3 分派多个参数 65
    3.3.4 分派过程中可能存在的歧义 67
    3.3.5 歧义检测 68
    3.3.6 理解动态分派 70
    3.4 利用参数化方法 71
    3.4.1 使用类型参数 71
    3.4.2 使用类型参数替换抽象类型 72
    3.4.3 在使用参数时强制类型一致性 73
    3.4.4 从方法签名中提取类型信息 74
    3.5 使用接口 75
    3.5.1 设计和开发接口 75
    3.5.2 处理软契约 79
    3.5.3 使用特质 80
    3.6 小结 81
    3.7 问题 81
    第4章 宏和元编程 82
    4.1 技术要求 83
    4.2 理解元编程的需求 83
    4.2.1 使用@time宏测量性能 83
    4.2.2 循环展开 84
    4.3 使用表达式 86
    4.3.1 试用解析器 86
    4.3.2 手动构造表达式对象 88
    4.3.3 尝试更复杂的表达式 90
    4.3.4 计算表达式 93
    4.3.5 在表达式中插入变量 94
    4.3.6 对符号使用QuoteNode 95
    4.3.7 在嵌套表达式中插值 96
    4.4 开发宏 97
    4.4.1 什么是宏 97
    4.4.2 编写第一个宏 98
    4.4.3 传递字面量参数 98
    4.4.4 传递表达式参数 99
    4.4.5 理解宏扩展过程 100
    4.4.6 操作表达式 101
    4.4.7 理解卫生宏 104
    4.4.8 开发非标准字符串字面量 105
    4.5 使用生成函数 107
    4.5.1 定义生成函数 108
    4.5.2 检查生成函数参数 109
    4.6 小结 110
    4.7 问题 110
    第三部分 实现设计模式
    第5章 可重用模式 114
    5.1 技术要求 114
    5.2 委托模式 114
    5.2.1 在银行用例中应用委托模式 115
    5.2.2 现实生活中的例子 119
    5.2.3 注意事项 120
    5.3 Holy Traits模式 120
    5.3.1 重温个人资产管理用例 121
    5.3.2 实现Holy Traits模式 122
    5.3.3 重温一些常见用法 126
    5.3.4 使用SimpleTraits.jl包 129
    5.4 参数化类型模式 130
    5.4.1 在股票交易应用程序中使用删除文本参数化类型 132
    5.4.2 现实生活中的例子 135
    5.5 小结 138
    5.6 问题 139
    第6章 性能模式 140
    6.1 技术要求 141
    6.2 全局常量模式 141
    6.2.1 使用全局变量对性能进行基准测试 141
    6.2.2 享受全局常量的速度 143
    6.2.3 使用类型信息注释变量 143
    6.2.4 理解常量为何有助于性能 144
    6.2.5 将全局变量作为函数参数传递 145
    6.2.6 将变量隐藏在全局常量中 145
    6.2.7 现实生活中的例子 146
    6.2.8 注意事项 147
    6.3 数组结构模式 147
    6.3.1 使用业务领域模型 148
    6.3.2 使用不同的数据布局提高性能 150
    6.3.3 注意事项 155
    6.4 共享数组模式 155
    6.4.1 风险管理用例介绍 156
    6.4.2 准备示例数据 157
    6.4.3 高性能解决方案概述 158
    6.4.4 在共享数组中填充数据 159
    6.4.5 直接在共享数组上分析数据 161
    6.4.6 理解并行处理的开销 163
    6.4.7 配置共享内存使用情况 164
    6.4.8 确保工作进程可以访问代码和数据 166
    6.4.9 避免并行进程之间的竞态 167
    6.4.10 使用共享数组的约束 167
    6.5 记忆模式 168
    6.5.1 斐波那契函数介绍 168
    6.5.2 改善斐波那契函数的性能 169
    6.5.3 自动化构造记忆缓存 171
    6.5.4 理解泛型函数的约束 172
    6.5.5 支持具有多个参数的函数 173
    6.5.6 处理参数中的可变数据类型 174
    6.5.7 使用宏来记忆泛型函数 176
    6.5.8 现实生活中的例子 177
    6.5.9 注意事项 178
    6.5.10 使用Caching.jl包 178
    6.6 闸函数模式 180
    6.6.1 识别类型不稳定的函数 181
    6.6.2 理解性能影响 182
    6.6.3 开发闸函数 183
    6.6.4 处理类型不稳定的输出变量 183
    6.6.5 使用@inferred宏 186
    6.7 小结 187
    6.8 问题 187
    第7章 可维护性模式 188
    7.1 技术要求 188
    7.2 子模块模式 189
    7.2.1 理解何时需要子模块 189
    7.2.2 理解传入耦合与传出耦合 190
    7.2.3 管理子模块 191
    7.2.4 在模块和子模块之间引用符号和函数 191
    7.2.5 删除双向耦合 193
    7.2.6 考虑拆分为顶层模块 195
    7.2.7 理解使用子模块的反论点 195
    7.3 关键字定义模式 195
    7.3.1 重温结构定义和构造函数 196
    7.3.2 在构造函数中使用关键字参数 196
    7.3.3 使用@kwdef宏简化代码 197
    7.4 代码生成模式 198
    7.4.1 文件日志记录器用例介绍 199
    7.4.2 函数定义的代码生成 201
    7.4.3 调试代码生成 202
    7.4.4 考虑代码生成以外的选项 204
    7.5 领域特定语言模式 205
    7.5.1 L系统介绍 206
    7.5.2 为L系统设计DSL 207
    7.5.3 重温L系统核心逻辑 208
    7.5.4 实现L系统的DSL 210
    7.6 小结 215
    7.7 问题 215
    第8章 鲁棒性模式 216
    8.1 技术要求 217
    8.2 访问器模式 217
    8.2.1 识别对象的隐式接口 217
    8.2.2 实现getter函数 218
    8.2.3 实现setter函数 219
    8.2.4 禁止直接访问字段 220
    8.3 属性模式 220
    8.3.1 延迟文件加载器介绍 220
    8.3.2 理解用于字段访问的点符号 222
    8.3.3 实现读取访问和延迟加载 223
    8.3.4 控制对对象字段的写入访问 226
    8.3.5 报告可访问字段 227
    8.4 let块模式 228
    8.4.1 网络爬虫用例介绍 228
    8.4.2 使用闭包将私有变量和函数隐藏起来 230
    8.4.3 限制长脚本或函数的变量范围 232
    8.5 异常处理模式 233
    8.5.1 捕捉和处理异常 233
    8.5.2 处理各种类型的异常 233
    8.5.3 在顶层处理异常 235
    8.5.4 跟随栈帧 236
    8.5.5 理解异常处理对性能的影响 238
    8.5.6 重试操作 239
    8.5.7 异常时选用nothing 241
    8.6 小结 242
    8.7 问题 243
    第9章 其他模式 244
    9.1 技术要求 244
    9.2 单例类型分派模式 245
    9.2.1 开发命令处理器 245
    9.2.2 理解单例类型 245
    9.2.3 使用Val参数化数据类型 246
    9.2.4 使用单例类型进行动态分派 247
    9.2.5 理解分派的性能优势 249
    9.3 打桩/模拟模式 251
    9.3.1 什么是测试替身 251
    9.3.2 信贷审批用例介绍 252
    9.3.3 使用打桩执行状态验证 253
    9.3.4 使用Mocking包实现打桩 255
    9.3.5 将多个打桩应用于同一函数 256
    9.3.6 使用模拟执行行为验证 257
    9.4 函数管道模式 259
    9.4.1 Hacker News分析用例介绍 260
    9.4.2 理解函数管道 264
    9.4.3 设计可组合函数 265
    9.4.4 为平均得分函数开发函数管道 266
    9.4.5 在函数管道中实现条件逻辑 269
    9.4.6 沿函数管道进行广播 270
    9.4.7 有关使用函数管道的注意事项 271
    9.5 小结 272
    9.6 问题 272
    第10章 反模式 273
    10.1 技术要求 273
    10.2 海盗反模式 274
    10.2.1 I类海盗—重新定义函数 274
    10.2.2 II类海盗—不用自己的类型扩展 275
    10.2.3 III类海盗—用自己的类型扩展,但目的不同 277
    10.3 窄参数类型反模式 279
    10.3.1 考虑参数类型的多种选项 279
    10.3.2 评估性能 284
    10.4 非具体字段类型反模式 285
    10.4.1 理解复合数据类型的内存布局 285
    10.4.2 设计复合类型时要考虑具体类型 287
    10.4.3 比较具体字段类型和非具体字段类型的性能 288
    10.5 小结 289
    10.6 问题 289
    第11章 传统的面向对象模式 290
    11.1 技术要求 290
    11.2 创建型模式 291
    11.2.1 工厂方法模式 291
    11.2.2 抽象工厂模式 292
    11.2.3 单例模式 294
    11.2.4 建造者模式 296
    11.2.5 原型模式 297
    11.3 行为型模式 298
    11.3.1 责任链模式 298
    11.3.2 中介者模式 300
    11.3.3 备忘录模式 302
    11.3.4 观察者模式 304
    11.3.5 状态模式 305
    11.3.6 策略模式 306
    11.3.7 模板方法模式 308
    11.3.8 命令模式、解释器模式、迭代器模式和访问者模式 310
    11.4 结构型模式 310
    11.4.1 适配器模式 310
    11.4.2 组合模式 313
    11.4.3 享元模式 314
    11.4.4 桥接模式、装饰器模式和外观模式 316
    11.5 小结 316
    11.6 问题 317
    第四部分 进阶主题
    第12章 继承与变体 320
    12.1 技术要求 320
    12.2 实现继承和行为子类型化 321
    12.2.1 理解实现继承 321
    12.2.2 理解行为子类型化 323
    12.2.3 正方形–矩形问题 324
    12.2.4 脆弱的基类问题 326
    12.2.5 重温鸭子类型 327
    12.3 协变、不变和逆变 328
    12.3.1 理解不同种类的变体 328
    12.3.2 参数化类型是不变的 328
    12.3.3 方法参数是协变的 331
    12.3.4 剖析函数类型 331
    12.3.5 确定函数类型的变体 333
    12.3.6 实现自己的函数类型分派 335
    12.4 再谈参数化方法 336
    12.4.1 指定类型变量 337
    12.4.2 匹配类型变量 337
    12.4.3 理解对角线规则 338
    12.4.4 对角线规则的例外 339
    12.4.5 类型变量的可用性 339
    12.5 小结 340
    12.6 问题 341
    问题答案 342


      内容简介

    本书兼顾Julia编程语言的优势和不足,全面介绍了Julia编程语言,介绍了模式所依赖的编程语言特性,同时涵盖了一些高级的内容。全书分为四部分,第1部分介绍设计模式,第二部分就少Julia基础,第三部分介绍设计模式实现,第四部分介绍一些进阶主题。


    1
    • 商品详情
    • 内容简介

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购