搜书网 本次搜索耗时 0.015 秒,为您找到 232 个相关结果.
  • 3.1 探索DSL集成

    3.1 探索DSL集成 为什么关心DSL集成 3.1 探索DSL集成 DSL是一种优美的抽象,它也毫不例外地需要与应用程序架构中的其他组件集成。在一般的使用场景中,DSL所建模的制品属于应用程序中易变的部分,比如业务规则和配置参数。所以DSL和应用程序主体要能够以不同的步调各自独立地演变,同时它们又能够与工作流无缝地结合,这两点都是非常重要的设计要...
  • 程序员的性格

    程序员的性格 【发布日期 2013年6月6日】 今天的话题来自一封读者来信,他在邮件里写了大概2000多字,其中一大部分描述了自己的经历,我觉得非常精彩,写过汇编写过C,玩过Flex,做过web(HTML5+CSS+JS),还用过Scala和OC,经历过创业人生,整个技术历程也足够丰富,可能比很多技术人员丰富。这样一个典型的程序员遇到的问题是什么呢?如...
  • 7.3 语法分析器的分类

    7.3 语法分析器的分类 7.3.1 简单的自顶向下语法分析器 1. LL(1)递归下降分析器 2. LL(k)递归下降分析器 7.3.2 高级的自顶向下语法分析器 1. 递归下降回溯分析器 2. 带中间结果记忆的分析器 3. 语义谓词分析器 7.3.3 自底向上语法分析器 1. 算符优先分析器 2. LR(k)分析器 3. LR分析器的...
  • 9.4 DSL的成长和演化

    9.4 DSL的成长和演化 9.4.1 DSL的版本化 9.4.2 DSL平稳演化的最佳实践 1.隐式上下文模式更能适应版本演化 2.用自动代换解决向后兼容 3.门面式的DSL设计可以解决诸多版本化问题 4.遵从优秀抽象设计的各项原则 9.4 DSL的成长和演化 我们在应用开发实践中大都使用过DSL。它的主要用途是对系统中频繁改变...
  • 2.4 选择DSL的实现方式

    2.4 选择DSL的实现方式 1. 重用现有设施 2. 充分利用现有的知识 3. 外部DSL的学习曲线 4. 恰当的表现力水平 5. 组合性 2.4 选择DSL的实现方式 程序员随时都要面对许多选择,无论设计方针、编程范式,还是具体到某个实现的惯用法,都等待我们作决策。怎样选择才会有好的DSL,怎样选择才会有好的抽象,以及怎样选择才能满足领...
  • 1.5 DSL的分类

    1.5 DSL的分类 1.5.1 内部DSL 1.5.2 外部DSL 1.5.3 非文本DSL 1.5 DSL的分类 DSL用领域语言来表达。领域的内涵越丰富,DSL的表现力就应当越强。对于领域用户来说,DSL帮助他理解领域的来龙去脉,至于开发者怎么实现其底层模型,这一点并不重要,只要DSL脚本能提供他对领域抽象的一致访问就行了。 最常见的分...
  • 遗留系统与修改代码

    遗留系统与修改代码 尽管维基百科上对遗留系统的定义是: 一种旧的方法、旧的技术、旧的计算机系统或应用程序。 但是实际上,当你看到某个网站宣称用新的框架来替换旧的框架的时候,你应该知晓他们原有的系统是遗留系统。人们已经不想在上面工作了,很多代码也不知道是干什么的,也没有人想去深究——毕竟不是自己的代码。判断是否是遗留代码的条件很简单,维护成本是否比开...
  • Java的挑战与展望

    Java的挑战与展望 Java的挑战与展望 从Java语言出现到现在的16年间,在Java语言本身发展演化的同时,整个软件开发行业也在发生着巨大的变化。新的软件开发思想和程序设计语言层出不穷。虽然Java语言一直是最流行的程序设计语言之一,但它也面临着来自其他编程语言的冲击。这其中主要是互联网应用发展所带来的动态语言的影响。 Java是静态强类型语...
  • 8.4.2 MLlib的数据存储

    8.4.2 MLlib的数据存储 8.4.2 MLlib的数据存储 MLlib支持存储在本地的向量和矩阵,也提供分布式的矩阵(底层实现是一个或多个RDD)。[1] 在目前发布版本的实现中,本地的向量和矩阵数据模型提供公共服务接口,基础的线性代数操作是基于Breeze和jblas库的。在MLlib监督学习中的一个训练样例叫做“标记向量”(labeled...
  • 3.4 处理错误和异常

    3.4 处理错误和异常 3.4.1 给异常命名 3.4.2 处理输入错误 1. 当类型系统不可用时 2. 语法解析器的功用 3.4.3 处理异常的业务状态 3.4 处理错误和异常 给用户看到友好的错误报告,其重要性绝不低于提高DSL语法的表现力。因为DSL是一种应用范围受限的语言,错误消息也应该适应其应用范围,用领域语言去表达。DSL环境内...