|
1. 談談我對程序的理解
作為程序員你對程序是如何理解的?寫這篇文章的時候,我認真思考了下,發現我對程序的理解不是和教科書一樣的,我每次聽到程序二字我想到的只有兩個東西:代碼和數據,而每次寫程序的時候也就是寫代碼操作數據的過程。
做程序開發和做菜很像,數據就是食材,代碼就是廚藝,做出的軟件就是一道菜了,至于這個菜好不好吃,到底是看食材還是看廚藝了?呵呵,當我拋出這個問題的時候,我的第一反應是菜不好吃當然是手藝不好了,不知道其他童鞋是不是這么想的。認真想下,一道好菜一般都是二者必須兼備,當然不排除某一項突出也可以達到同樣的效果,但這種情況畢竟不是大眾化,而是屬于少數精英的,做軟件也是如此,代碼與數據是不可偏廢的。這里我要提的是數據。
根據我的經驗和知識(分類標準我一直想不太好,所以說是自己的經驗和知識),我把數據分為兩類:落地數據和不落地數據。
- 落地數據:就是被持久化的數據,這種數據一般放在硬盤或是其他的持久化存儲設備里,例如:圖片、系統日志、在頁面上顯示的數據以及保存在關系數據庫里的數據等等,落地數據一定會有一個固定的載體,他們不會瞬時消失的。
- 不落地數據:一般指存儲在內存或者是網絡傳輸里的數據,這些數據是瞬時,使用完畢就會消失,例如:我們在瀏覽器發送給服務器的請求;從數據庫讀取出來的一直到頁面展示前的數據等等。
寫過程序的人都知道,程序里對這兩種類型數據操作是有很大的不同的。
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知識庫:鍵值對在架構設計里的應用,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。