快速业务通道

半静态语言–原理和价值分析 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22

半静态语言–原理和价值分析

时间:2010-12-30 infoq 何坤

引言

动态类型语言在企业开发和互联网领域应用广泛,如Ruby ,Velocity, Python等。动态类型语言在运行时进行类型推断,以解释方式执行,修改即生效,开发灵活性高;而静态类型语言(如:Java,C/C+/C++) 在执行前做类型检查,需要编译运行,对于互联网前端开发不够灵活。

因此,许多大型互联网站选择 Freemarker, Velocity这样的动态模板语言作为页面开发语言,在一定程度上满足了前端敏捷开发的需求。

然而,对于大型电子商务网站,不仅具有一般互联网需求频繁变更的特点,更显著特点则是业务繁多,业务模型和业务关系复杂。因此,在此类应用开发中,Velocity 的开发也遇到了一些的问题。

前端模板开发问题

降低软件质量

Velocity是弱类型动态语言,运行时才能检查出类型错误。由于动态类型等特点,有的错误在遇到特定参数时,才能激发执行路径,软件质量不能很好的保证。

测试成本高

由于无法像静态语言一样,在运行前进行类型检查,因此软件的测试周期长,测试成本高。

开发不敏捷

缺乏一些敏捷开发功能如IDE内实时验证、代码提示、代码重构等。虽然能修改即生效,但对于企业级开发,效率较低。

维护性差

对于一个大型系统,在重构业务模型(Java Model)或代码时, 无法知道哪些Velocity模板会受到影响;常常需要花费大量时间搜索相关模板,然后修改、测试。例如:笔者所在公司的一个基础产品升级,由于受影响模板众多,重构复杂,项目评估达上千人日。

这些动态语言天生的缺点在企业级和大型网站应用中非常突出,严重的影响了开发质量和开发效率。因此,在技术上亟待一种新的高质量、高效率的开发技术。

静态语言的优势

综合考虑后,我们发现动态类型语言(Dynamic Language)“解释执行方式和修改即生效”的最大优点仍是不能舍弃的。必须从问题出发,找到一条平滑的线路来解决问题。

遇到上述问题时,我们不由自主的会赞美Java的优点:

静态语法和静态类型实时检查。

如果赋值类型不匹配,方法不存在,参数类型错误等信息能马上在IDE中显示;

代码提示:

调用属性,方法时能代码提示,开发非常高效;

代码热链接:

通过变量和类名热链接到对应的Java类;

代码重构:

修改一个Java类时,受影响的Java代码会被实时重新验证,马上会显示红色的错误; 更强大的是重构,对Java类,方法敏性重命名,会自动修改所有相关代码中对它的引用。

Java等静态类型语言的这些优势就是解决问题的方向。那为什么动态语言不能做到这些呢? 原因在于动态语言的根本特点是变量无类型(即弱类型特点),类型在运行时推断,这使得它无法在开发阶段进行类型检查。

那如何将动态语言和静态语言的优点结合呢?答案就是半静态语言。

半静态语言(Semi-Static Language)

半静态语言–原理和价值分析(2)

时间:2010-12-30 infoq 何坤

4.1 定义

半静态语言,严格说应该是静态化类型的动态语言(Statically Typed Dynamic Language)。它是这样一种语言:以静态方式开发,以解释方式执行;通过变量显式声明或隐式声明,运行前可对变量类型进行推断和验证。

静态语言,动态语言和半静态语言的特点对比分析如下:

语言类型 优点 缺点 举例 适用场景
Static Language 强类型,运行前类型检查,程序健壮 对Java等支持反射的语言,可实现代码提示,重构等敏捷开发特性 需编译运行,发布慢 无法快速响应需求变化 Java C/C++ 企业级后端开发 大型互联网后端开发
Dynamic Language 灵活性高,修改即生效 快速响应需求变化 弱类型,运行时类型检查,程序不健壮,测试成本高 PHP Ruby Velocity 业务简单的小型互联网前端开发
Semi-Static Laguange 开发时(Devtime)强类型,程序健壮 运行时(Runtime)弱类型,修改即生效,快速响应需求变化 业务复杂的企业级开发和大型互联网前端开发

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号