DSL在中国IT行业一直被忽视和严重低估。 它是处理复杂性的强大工具。 虽然很多人已经使用过一些类似的方法,但是他们缺乏清晰的DSL设计指导,使得系统晦涩难懂。 比如一直为人诟病的Java企业级开发软件类图书列表,充满了千奇百怪的配置,其中很多其实都是野生的DSL。 本书可以被视为讨论语言设计的手册或指南。 总的来说,每个渴望成为顶级工程师的人都需要阅读本书。
简要目录
第一部分 叙述
第 1 章 入门示例 2
第 2 章 使用 DSL 21
第 3 章实现 DSL 34
第 4 章实现内部 DSL 53
第 5 章实现外部 DSL 71
第 6 章内部和外部 DSL 之间的选择 83
第 7 章替代计算模型 89
第 8 章代码生成 95
第 9 章 语言工作台 102
第 2 部分 常见主题
第 10 章 DSL 亮点 114
第11章语义模型123
第12章符号表127
第13章上下文变量135
第14章建筑建造者139
第15章宏观142
第16章通知150
第 3 部分 外部 DSL 主题
第17章定界符定向翻译156
第18章语法导向翻译171
第19章巴科斯-诺尔范式(BNF)179
第20章 基于正则表达式表的词法分析器(Regex Table Lexer)188
第21章递归下降解析器193
第22章解析器组合器202
第23章 解析器生成器(Parser Generator)214
第24章树的构建224
第25章嵌入式翻译239
第26章嵌入式解释244
第27章外国法典247
第28章替代代币化255
第29章 嵌套运算符表达式(Nested Operator expression)262
第30章换行符267
第31章外部DSL收集271
第 4 部分 内部 DSL 主题
第32章表达式生成器276
第33章功能序列283
第34章嵌套函数287
第35章方法链300
第36章对象作用域310
第37章关闭320
第38章嵌套闭包325
第39章文字清单336
第40章文字图338
第41章动态接收344
第42章注释359
第43章解析树操作367
第44章类符号表377
第45章文字润色385
第46章文字扩展389
第 5 部分 替代计算模型
第47章自适应模型394
第48章决策表400
第49章依赖网络408
第50章生产规则系统414
第51章状态机426
第 6 部分代码生成
第52章变形金刚一代430
第53章 基于模板的代码生成(Templated Generation)435
第54章埋葬助手442
第55章模型感知生成448
第56章模范无知一代458
第57章代沟461
模式列表 468
备忘单 470
第二本书
重构以改进现有代码的设计(第二平装本)
简而言之,重构是在不改变外部行为的情况下对代码进行有条理的改进。 20多年前,正是《重构:改进现有代码的设计》第一版的出版,才最终让重构走出了编程专家的小圈子,成为了很多人日常开发工作中不可或缺的一部分。普通程序员。 。 如今,Martin Fowler 的《重构:改进现有代码的设计》已成为全世界经验丰富的程序员手中的有力工具。 它可以用来改进现有代码的设计,提高软件的可维护性,并使现有代码更容易理解并为其注入新的生命。
这个备受期待的第二版是第一版的全面修订版,以反映编程世界中发生的许多变化。 第二版引入了更具凝聚力的重构列表,并用 Javascript 重写了代码示例。 此外,第二版还新增了与函数式编程相关的重构示例,旨在教会读者如何在无类环境下进行重构。
新版沿用了第一版的结构,依次解释了什么是重构、为什么需要重构、如何通过“坏味道”识别需要重构的代码以及如何在实践中成功实施重构(无)无论使用什么)编程语言)。
● 了解重构的过程和重构的基本原理;
● 快速有效地应用各种重构技术软件类图书列表,提高程序的表达性和可维护性;
● 识别代码中的“坏味道”,表明哪些地方需要重构;
● 深入理解各种重构技术,每种技术包括四个部分:解释、动机、实践和示例;
● 构建强大的测试来支持重构工作;
● 了解重构过程中的权衡以及重构的挑战。
豆瓣评分9.2