lichao 发布于 02月05, 2012

作用域 和 封装

不知道大家是不是经常会混淆 作用域 和 封装, 这两个概念。

作用域,是指一个名字,它可以被直接使用的范围,,作用域可以被局部的定义体遮蔽。

而封装,是限定一个成员的可访问范围,是oop提到的三个基础思想(oop三大基础思想:继承,封装,多态)。

阅读全文 »

lichao 发布于 01月02, 2012

侵入式前端框架设想

是从gui说起还是从鼠标键盘说起呢。

总之,界面上的元素,及这些元素对鼠标和键盘动作做出的反馈,,由此开始了一个事件处理的流程。

而事件处理函数里,,是不该包含业务知识的吧,因为这是UI层,,UI层及事件的职责,,仅仅是负责UI的绘制,调整,当然在浏览器dhtml编程中通过操纵dom来实现,但这不重要,,重要的是UI层只做这些工作。。于是,我们有了一个UI类,,可以把jQuery包含进来,作为操纵dom的工具。

阅读全文 »

lichao 发布于 12月28, 2011

软件系统的大比例结构

一 layered architecture

分层式程序结构,要求程序根据功能,划分多个层次。

1 层次

分层式建构方式,将系统划分为 表现层,应用层,领域层,基础设施层。

阅读全文 »

lichao 发布于 12月25, 2011

项目开发过程中的四种语言工具

总结一下项目开发中所使用的语言工具吧,,虽然大家限于紧张的人力或排期,无法实现理想的开发模式,,但必须朝着理想的方向去努力,否则项目会因复杂度(业务复杂度及技术复杂度必须得到分解),最终导致混乱。

阅读全文 »

lichao 发布于 12月22, 2011

linux下的正则表达式表现形式及好用工具sed与awk

每次学新的一门编程语言,或者学习什么工具之类的时候,总是会有一章的内容在介绍正则表达式。

所以正则的基础就不详细介绍了(表示字符范围的转义通配符,闭包及正闭包区间,分组模式等等),只是介绍一些正则在linux下的特殊扩展形式吧。

还有就是接受正则形式的模式串的各种工具,比如linux下的两把牛刀:sed 和 awk。

阅读全文 »

lichao 发布于 12月12, 2011

shell-script是编程语言么

什么是编程?

编程=数据结构+算法

这里的编程,指的是学校教科书上的编程,确实只有数据结构和算法。

数据结构有顺序表链式表哈希表,有树和图,这些都是信息的结构,,而算法是利用语言提供的控制流,描述求解的过程。

在实际的软件项目中呢?

我们体会到的是:
编程=语言+库(类库,函数库)

编程语言,规定了流程控制的语法,,信息结构体的定义语法,,流程控制的语法实现了算法,,而信息的结构体的定义语法,实现了数据结构。

库,是既有代码以函数或类的形式封装起来。。而库的作用有两种,一个是某些函数进行运算,比如math库封装了数学运算的细节,另一个,是对底层系统api的调用,,操作系统提供的api也可以视为库,,但最好还是和库这个概念分开,,因为操作系统提供api是语言无关的(规定了的只是调用约定和数据格式),而类库与函数库是和语言相关的(如c的标准库,在不同的操作系统平台上,就封装了不同的底层os提供的api,但在库的表面,却提供了一致性,屏蔽了底层os的api的差异性)

而回过头来,评述shell是编程语言么?

shell支持变量和控制流语句,但shell所依赖的不是函数库,而是依赖bash内置的命令,alias别名,还有PATH规定的目录里的可执行文件,,shell依赖这些,而不是依赖一个函数库封装起来的底层os向外部暴露的各种功能api,,但因为bash所能掉调用的工具非常全面强大,,使整个bash所能调用到的命令,也就相当于一个丰富的shell的函数库了。

shell是可以称为编程语言的,bash就是这门语言的解释器,if..elif..else..fi for..in..do..done等等就是控制流,,bash丰富的命令和linux丰富的工具就是库。

阅读全文 »