任何計算機語言都是工具,都是用來解決問題。全部的現代編程語言都有相同之處,基本類型值(string number boolean......),引用類型值(數組,對象,函數,類),語句(if,switch,while,do while......),甚至有的內置函數名都是差很少的,不一樣的地方是其基本語法,然而基本語法就是那麼幾樣。
好比js和php聲明函數的方式差很少,都是經過function關鍵字來聲明函數,不過php在類中有訪問控制關鍵字(public pravite protected ),java在類中就不須要function關鍵字,規定必須返回一種類型值,若是不返回值,則有void關鍵字:public void int_number(){
//邏輯代碼
}
public int int_number(){
//邏輯代碼
return 520;//返回的整型值
}
js的內置數組函數(方法),pop,push,unshift,shift,reverse,filter,均可以在php中找到,功能類似語法不一樣。
什麼叫工程化思惟,不侷限一門計算機語言(你能用的工具能夠有不少),掌握計算機語言的相同之處,不一樣之處(語法),就能夠在各類編程語言之間遊刃有餘,現代編程語言解決問題的思路差很少,處理字符串,處理數組,循環,模塊化,解決任何問題都逃不出這幾樣,工程化的思惟能夠用在任何現代編程語言上。在編程時,線性思惟是最不推薦的風格,處理一些小項目還能夠,由於這些小項目能夠依靠一我的完成,能夠想到哪寫到哪,而且不會出錯。而大型項目中代碼量是沒法預估的,若是是面向過程,出了bug,或是某行代碼的改善或是功能的添加,每每要改一大片,工做量無疑是增大了許多倍。
工程化的思惟能夠在項目起手的階段大體構建出整個框架,而後逐步的去添加功能。
好比寫一個頁面,這些頁面都是由各類不一樣的控件組成的,js能夠這樣寫:
(function(){
function Page1(a,b,c){
this.controller_1=function(){
//邏輯代碼
return this;
};
this.controller_2=function(){
//邏輯代碼
return this;
};
this.controller_3=function(){
//邏輯代碼
return this;
};
}
return new Page1(a,b,c)//傳入按鈕,div。
})().controller_1().controller_2().controller_3();
這樣就能夠隨意的添加功能,一步步把這個頁面搭建出來。你要搭建的對象固然也能夠是虛擬的,好比一個處理數據的php的類:
class Data{
static function fetch_data(){
//邏輯代碼
return "/result/";
}
static function handling_data(){
$result_data=self::function fetch_data();
//邏輯代碼
return "/result/";
}
function output_data(){
$output_data=self::handling_data();
//邏輯代碼
echo "/result/";
}
}
$newObj=new Data();
$newObj->output_data();
這樣就能夠一步步搭建處理數據的虛擬對象。工程化的思惟能夠快速的解決問題,從面到點,而不是從點到線。php