键值对在架构设计里的应用

  1. 谈谈我对程序的理解

  作为程序员你对程序是如何理解的?写这篇文章的时候,我认真思考了下,发现我对程序的理解不是和教科书一样的,我每次听到程序二字我想到的只有两个东西:代码和数据,而每次写程序的时候也就是写代码操作数据的过程。

  做程序开发和做菜很像,数据就是食材,代码就是厨艺,做出的软件就是一道菜了,至于这个菜好不好吃,到底是看食材还是看厨艺了?呵呵,当我抛出这个问题的时候,我的第一反应是菜不好吃当然是手艺不好了,不知道其他童鞋是不是这么想的。认真想下,一道好菜一般都是二者必须兼备,当然不排除某一项突出也可以达到同样的效果,但这种情况毕竟不是大众化,而是属于少数精英的,做软件也是如此,代码与数据是不可偏废的。这里我要提的是数据。

  根据我的经验和知识(分类标准我一直想不太好,所以说是自己的经验和知识),我把数据分为两类:落地数据和不落地数据。

  1. 落地数据:就是被持久化的数据,这种数据一般放在硬盘或是其他的持久化存储设备里,例如:图片、系统日志、在页面上显示的数据以及保存在关系数据库里的数据等等,落地数据一定会有一个固定的载体,他们不会瞬时消失的。
  2. 不落地数据:一般指存储在内存或者是网络传输里的数据,这些数据是瞬时,使用完毕就会消失,例如:我们在浏览器发送给服务器的请求;从数据库读取出来的一直到页面展示前的数据等等。

  写过程序的人都知道,程序里对这两种类型数据操作是有很大的不同的。

  2. 由Java EE的MVC设计模式谈起

  Java一个很重要的贡献就是推出了MVC设计模式,MVC其实应该按VCM顺序读最好。V及View,主要是前台展示的页面;C及Controller,控制层主要作用是接受前台页面数据,根据数据的不同调用后台不同的业务模型,同时业务模型处理好的数据也要发送到Controller,Controller再分配给相应的前台页面;M及Model,模型层专门负责操作业务模型。下图很好的表达了MVC的理念:

  随着MVC模式的发展,现在流行的架构:View(视图层)+ Controller(也叫Action,控制层)+ Service(业务模型层)+ DAO(数据访问对象层)+ 数据库的多层结构,如下图:

  红线是用户的请求;蓝线是服务器应用户的请求。红色和蓝线也代表各层数据传输的流向。

  不管是传统的MVC模式还是现在流行的多层架构,各个逻辑层传输的数据都是不落地数据。

  在Java项目里,一般我们都是传输JavaBean,而这些JavaBean都是程序员根据实际业务需求自己定义的,例如下面一个典型的JavaBean:

public class User {    
private String name = "";
private String sex = "";
private String age = "";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}

it知识库键值对在架构设计里的应用,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。