從java到web前端再到php,一路走來的小總結
java的學習:
初學者對Java的學習,上來的感覺都是比較難,感覺java的東西很多,如此多的類和介面。有時還弄不懂為啥例項化出一個int空陣列為什麼陣列中預設都是0,例項化一個空字串陣列時(String),為什麼陣列每個值都預設為null。java的核心思想就是面向物件,可以把任何東西都可以看做是物件。java的三大特點繼承、封裝和多型。這些我一個初學者來說就好像是天書一樣,其實我認為初學者根本沒有必要完全理解這些東西,再說也很難會弄清楚這些問題。剛開始就一步一步的學著會使用java中的類,隨著之後的學習,漸漸地就會明白麵向物件是一種什麼樣的思想。學過C語言的,就會明白java和C語言思想的區別,一個是純的面向物件,一個是純的面向過程。學習java最重要的是會使用java中提供的很多類,Java的有些類在解決問題時會變得很方便,很好用,但對與C語言就不同了,有些演算法就需要手動用最基本的去實現,沒有必要把所有的類完全記住(這個幾乎是不太可能的,除非你非常聰明,非常牛逼),熟悉是幹什麼用的就足夠了,寫java時隨手帶一個API文件,忘了可以去查一下怎麼使用,這樣用的多了,逐漸就能記住了。學過java的同學都會有一種感受,在寫java介面的時候給非常的麻煩,一些佈局的使用,感覺每一個按鈕、標籤、文字框都需要用new關鍵詞例項化出來,這就是面向物件的特點都需要例項化物件。在學習Java時,我建議應該把執行java程式時記憶體的使用分析清楚,就是java中的堆記憶體和棧記憶體,簡單說一下:1.java中的一些基本變數和物件的引用變數都是在棧記憶體中儲存,當定義一個變數時,java就會在棧記憶體中分配一塊空間,當程式執行到超出這個變數的作用域時,java就會釋放掉棧記憶體中的空間給其他的變數使用。2.而堆記憶體,是用於存放用new關鍵詞建立的物件。當這個物件使用完後,java的自動回收機制就會將這個物件作為垃圾回收掉,給下一個new出的物件使用。當學習階段到了中上等水平式時,就會明白java中的三大特點繼承、封裝、多型的重要性,這些特性都可以讓你的程式變得高效、清晰,並且在後期容易維護。在最後說一點java中的事務的重要性,在開發是,最常見的就是給資料庫打交道,其中最常見的資料庫也就是MySQL資料庫,因為是免費,而且幾乎支援所有的開發語言(好用)。在Java操作資料庫時,並且一次操作多條sql語句時,這個時候事務的優點體現出來了,事務可以讓任何有出錯的資料回到操作之前。舉個例子,若果需要在資料庫中新增兩條資料,如果兩條資料都新增成功這是我們最想要的結果。但是 程式在執行時如果第一條成功新增到了資料庫,到了第二條突然伺服器崩潰出錯了,沒能把第二條資料新增成功,這個時候就會影響客戶的使用。一旦這個程式是用在銀行系統上該怎麼辦?這個時候事務的使用會把操作回滾到新增之前的狀態,就是說兩條資料都沒有新增成功,然後給客戶一個資訊,新增失敗。有了事務只要其中多條sql語句有任何一條出錯,那麼所有的資料都不會被執行。這樣就更加的保證資料庫的準確。
Web前端:
在之前web前端的開發的技術是指HTML、CSS和JavaScript。隨著RIA的流行和普及,Flash/Flex、Silverlight、XML和伺服器端語言也是前端開發工程師應該掌握的,隨著時代的發展,前端開發技術也演變成為現今的:html5,css3,jquery。在這裡我就簡單地說一下最常用的HTML、CSS、JavaScript和jQuery。
學習java之後再學前端的開發會變得很容易,因為在寫html標籤和佈局時是基本不涉及到複雜的邏輯,只要細心、耐心是可以學好的。其實對HTML標籤的除錯可以用瀏覽器上的檢開發員工具,來除錯一些div或其他元素的位置和大小,等除錯好之後再把這些標籤寫入程式碼中,這樣可以減少多次修改。在這裡主要說一下HTML5的新屬性。在H5中新增很多標籤的新屬性,可用於判斷使用者輸入的判斷,比如H5中對form表單的改良,可以把文字框的type屬性設定成number,time,還有email等,這些可以對使用者輸入的值自動判斷number就是隻能輸入數字,可以設定數字的範圍。time就是可以直接選擇一個日曆上的時間,email是可以對輸入的是否是郵箱地址進行判斷,等等,H5增加了好多屬性之前標籤的屬性,又增加了幾個行的標籤,如<aricle></ariticle>、<aside></aside>、<canvas></canvas>等等。現在HTML5的新標籤和新屬性越來越火了,建議大家把HTML5的標籤學會,儘量多的使用。
JavaScript,也是結合前端的一種語言,主要用於獲取前端頁面的東西,和控制一些動畫效果等,其實有些簡單的動畫效果用CSS3是完全可以實現的。JavaScript是一種動態型別、弱型別、基於原型的語言。它是以java開頭的命名,所以它的語言看起來也有點像java,就像php的框架一樣,JavaScript在實現某種效果時,因為寫得程式碼太多,不便與開發,所以jQuery的出現,讓js的語法變得很簡單,jQuery中把JavaScript的方法優化成了很簡單的語法形式,方便使用。jQuery是js的一個庫,它把js實現的一些動畫效果封裝成了一個簡簡單單的方法,只需要引入jQuery的外掛,就可以方便使用了。jQuery也把Ajax的技術用於對資料的非同步提交封裝成了一個方法,提高了開發人員的實用性。
PHP:
一個網站只有前端的靜態頁面是不夠的,就像一個死的東西,有了php才能讓使用者用瀏覽器通過伺服器來讀取資料庫中的東西進行一些操作,比如在網站上看一個人的CSDN部落格,自己發表一篇文章啊,之類的。php就是用來操作資料庫和伺服器的,這些東西HTML標籤是無法做到的。
其實,現在對網站的開發,那些程式設計師都不是用最原始的php來編寫的,目前php有很多框架,如常見的sysmfony、cakephp、fleaphp、zend、kohana、CodeIgniter、thinkPHP、Yii、qeephp,laravel等;用了這些框架對開發來說大大提高了效率,並且是結構變得如此清晰。如:拿thinkphp來說,thinkphp使用MVC的一種架構思想來寫的,踏實把給使用者展示的檢視層,操作資料庫的控制層,還有對資料庫自動驗證和完成的操作,強制分開,從而使開發人員更加容易的去開發功能。同是,thinkphp還提供了好多封裝好的類,如:分頁類,驗證碼類,上傳檔案類等。不用讓開發人員再用php去寫那些類,是開發的效率更高。在這裡我提一點,對於一些表單的提交,一定要在php中做判斷,例如輸入的名字或者數字不符合要求之類的,所言HTML5對錶單做的自動驗證,不讓使用者輸入不符合要求的格式。但是,那是在前臺,人們都可以自己修改前臺的程式碼,php的程式碼在瀏覽器中是無法看到的,所以再php中判斷就顯得很重要了。所以建議大家,在開發後端php是最重要的一點就是 “嚴謹”,要注意細節,不能出現漏洞,該有的判斷一定要有,不要偷懶,否則就會出現不必要的後果,有句話說的好叫:小心得天下,大意失荊州!
ps:本文為個人見解,有不對之處,望斧正。