代码改变世界

那些语法

2014-12-23 10:18  郭志通  阅读(239)  评论(0编辑  收藏  举报

常见的一些语言

markdown

我们这些非前端程序员在写HTML代码的时候要花费不少的时间,很多时候咱写HTML并不是为了很美观,只是为了整洁一点。可以在下面的地址进行体验:

http://mahua.jser.me/

用markdown并不只是能生成HTML,还能生成PDF等,可见它的目的并不是取代HTML,而是简化了一些简单格式文件的编写,下面来看一些简单语法进行体会,生成列表的语法:

* RED
* GREEN
* BLUE

这样写的代码和最后展示的效果非常接近,如果你要用HTML的代码来写的话需要.....

<ol>
<li>RED</li>
<li>GREEN</li>
<li>BLUE</li>
</ol>

另外table、title、image等都有对应的语法,可以看这里。但是在markdown中很多地方是根据缩进来控制的,这就是非常讨厌的地方了,在因为缩进错误导致显示混论,可能要看半天才能知道。在用python的时候也很不喜欢这一点。

dot

已经有了很多的画图工具,比如visio已经非常强大,你可以做很多的图。但是有没有想过在有些时候我们需要自动生成图片,比如在程序执行的时候就能自动生成流程图。这个想法不错吧,但是你用visio能干这个事情吗?最直观的是用一个描述文件来搞。那么问题来了,这个描述文件用什么来写:

没有什么逻辑在里面,java/c/c++这种就算了
用xml/json描述貌似是可以的,但是用起来太麻烦

那么dot语言来了,来看一个例子,要生成下面的图片:

配置文件变得非常简单:

graph graphname {
a -- b -- c;
b -- d;
}

用dot这样的语法来编辑/生成图片将是已经很简单的事情,而且想这种语法的TEXT文件也不是什么难事,在这里看到一个不错的dot手册。

sql

在数据存取上感觉sql设计的已经非常好了,基本上可以分成几段:

动作  来源   条件

就算不懂sql的人在看到select count(*) from stable也知道大概是什么意思的吧。用XML/JAVA实现相同的功能完全是没有问题的,但是为什么要建立更多的语言?

组件化编程

在用Velocity、Java开发应用的时候有很多代码都是重复写的:

  1. 页面上的输入框、表格等重用性很高。
  2. 在数据分析处理中min/max/sum等功能的重用性非常高。

那么组件化编程的任务其实就是将这些组件搭建起来变成一个可以运行的功能,而不是在外面系统看来是一个组件化的仓库,下面依次来看在过程中会遇到的一些问题。

应用接入

在这里一般会有两种方案:

  1. 从服务端将需要使用的配置信息拉到应用上,然后在应用上使用引擎进行执行;
  2. 在每次请求时将参数也传递给服务端,然后服务端执行渲染,最终将结果传给应用端;

第一种方式最灵活,而且对服务端的压力是最小的,但是最大的限制在于跨平台执行:对于用不同语言实现的应用端需要提供不同的SDK(这个感觉是比较蛋疼)。第二种方式每次请求都需要服务端和应用端进行交互,这样接入的应用越多服务端需要的机器也就越多。整体的流程如下:

如果每次请求都访问服务、解析,这一趟下来时间也肯定会消耗不少,那么将配置信息解析的结果进行缓存是非常必要的。还有就是一个组件可能由其他的组件组合而成,那么此时的流程如下:

在编辑组件的时候就可以分析出来他们之间的依赖关系,所以获取关联组件的操作还是很轻量的。

一些细节

在做这种类型的设计时,可以预见之后的功能会非常复杂,刚开始只需要清晰的框架、规范。这里我们看一些细节:

  1. 如何访问应用中的接口。
  2. 如何局部刷新。
  3. 输入和输出分别是什么。

 

 

 

 

 

 

 

 

 

 

 

 

 

----- updating -----