做一個模仿個天貓官網(wǎng)的J2EE項目,來練手吧
1.?項目演示地址
后臺:http://how2j.cn/tmall/admin?
2.?學習思路
其實呢,要在網(wǎng)上找一個J2EE項目是很容易的,隨便在百度或者git搜索,都是一大把。?但是拿到這樣的搜索來的J2EE項目,其中包含了上百個java文件,jsp文件,各種配置信息,如果沒有好幾個實踐過的J2EE項目經(jīng)驗,會覺得無從看起,難以下手,最后影響學習的效果。
為了使學習的曲線變得更平滑,逐漸建立學習的信心,我為這個模仿個天貓官網(wǎng)項目制作了由淺入深的學習教程。
2.1?首先下載一個跑起來
看了演示地址之后,第一步總是要下載下來,把項目配置起來,自己也跑跑看看效果的。?如果下載出來的項目不能運行,為什么要跟著你做呢?

為了順利的演示,不僅需要項目代碼,還需要數(shù)據(jù)庫中的數(shù)據(jù),?所以提供了導入數(shù)據(jù)的SQL文件

而導入的數(shù)據(jù)量比較大,上萬條數(shù)據(jù),使用工具導入不僅慢,還有可能出錯,所以專門準備了一個命令行的方式導入,以保證導入的順利進行

配置tomcat也是比較容易出錯的環(huán)節(jié),特意準備了一個完整的server.xml,直接復制粘貼,然后啟動tomcat,就一定能夠成功配置了。

如此這般,便可以順利的自己也搭建一個模仿天貓的J2EE項目,在自己的機器上看到效果。
2.2?由淺入深,從零開始構建整個項目
在確定了這個項目確實可用的前提下,就可以開展對這個項目的學習。但是這個項目里有許多的java,jsp.xml?等等各種類型的文件,彼此之間又有著各種關聯(lián)關系,從哪里開始著手好呢??其實,從哪里著手,都不好著手,畢竟項目有著相當?shù)膹碗s度。?最好的方式,就是從零開始,由淺入深地構建出整個項目出來。
[list]
[*]從需求分析開始,明確要做哪些功能。
[*]然后分析表結構,確定什么樣的表結構,表關系,可以支撐需求中的業(yè)務功能。
[*]接著再做持久層的實體類和DAO設計
[*]最后才開始進行前后臺的功能開發(fā)
[/list]

2.3?表結構設計

表結構設計是非常重要的,如果這一步?jīng)]有做正確,將無法支持業(yè)務功能的需求,所以放在第一步來做。在這部分列出了表與表之間的關系,建表的SQL語句等等。值得一提的是,因為表比較多,為了便于理解每張表的作用,特意把表和前臺頁面截圖做了對應,從感性上理解這些表都是干什么用的。
比如這個產(chǎn)品表與產(chǎn)品頁面的截圖,這樣表的每個字段在界面上分別對應什么樣的顯示數(shù)據(jù),對于這個表有什么用,心里就會有底很多。

2.4?每個類的源代碼,細致到方法級的講解
項目里有非常多的類,如實體類,DAO類,Servlet類,F(xiàn)ilter,JSP等等,不僅每個類提供源代碼,而且每個類的每個方法有什么作用,與業(yè)務有什么關系,都有細致到方法級別的講解,?力求把代碼吃透,消化明白。

2.5?業(yè)務類與界面的對應關系
稍復雜的方法,還有與項目截圖的一一對應關系,輔助理解。

2.6?后臺第一個功能精講
在功能開發(fā)環(huán)節(jié),比如后臺功能,通常來說,大部分后臺功能是比較接近的,主要是業(yè)務數(shù)據(jù)的CRUD操作。?而做第一個的時候,不僅需要規(guī)范化,對于不熟悉的同學,也會略感吃力。?所以在講解如何做后臺第一個分類管理功能的時候,把其拆的特別細,碾碎到很小的顆粒,這樣消化起來就容易多了。

2.7?其他后臺功能
在完成了第一個后臺功能,并消化理解之后,再做其他的后臺功能就會順暢很多

2.8?前臺第一個功能精講
前臺功能與后臺功能的做法會有區(qū)別,所以與后臺功能類似的,前臺第一個功能也講得很細致,便于理解與消化

2.9?其他前臺功能
在完成了第一個前臺功能,并消化理解之后,再做其他的前臺功能就會順暢很多

2.10?視頻講解
光有文字講解有時候也無法把一些較為復雜的概念、思路表達清楚。?所以在各個關鍵點,都有視頻講解,加深理解。

3.?可運行項目
每個知識點都有當前的可運行項目下載,以確保項目一定可以運行,保障持續(xù)學習的信心。
學習一個較為復雜的項目,會有這樣的體驗:各個步驟差不多都跟著做了呀,但是為什么就是不能正確運行呢??而且花很多時間,翻來覆去的改,越改越糟糕,越改越亂,猶如進入了茂密的叢林一般,幾乎失去了方向。如果進入這樣的狀態(tài),真正可怕的是一點點丟失的學習的信心和動力,自然而然地開始懷疑項目本身是不是有問題喔,各種疑慮加上止步不前,?最后實在是學習不動了,只好放棄了。
其實之所以跑不出來,大部分原因都是因為某個細節(jié)沒有處理好。為了面對這種情況,我特意在每個學習步驟的右上角,準備當前學習進度對應的可以運行的項目。?如果自己老是搞不出來,那么就把右上角的項目下載下來,部署,運行,就跑通了。

這樣做的作用是什么呢?
[list]
[*]第1,確保了項目是可以運行的,教程沒問題,打消了項目本身就有問題的疑慮
[*]第2,此時就可以把自己寫的代碼與“標準答案”?代碼進行比較,很快就能定位自己的問題所在了。?為此還特意在對應位置,為每個源代碼提供了一個文件比較功能,?方便快速定位自己哪些?“細節(jié)”?不一樣。


[*]第3,定位到自己錯誤的地方,修改后,再回過頭去部署自己的項目,并運行通過。?這樣不僅技術上成長了,也能逐步增強了學習完整個項目的信心。[/list]
4.?可以期待的收獲
看上去這個項目也不短嘛,那么真正學完這個項目后,能夠得到什么呢?
4.1?典型業(yè)務場景的掌握
所謂的典型業(yè)務場景就是各種商業(yè)項目里,都會有類似或者接近的功能。?在這個項目里你掌握了這些業(yè)務場景的開發(fā),去工作之后,做類似的就能駕輕就熟。?那么都有哪些業(yè)務場景呢?

4.2?設計模式的掌握
設計模式的書和文章有很多,從我自己學習和工作的經(jīng)驗來看,如果一種設計模式,我只是在書上看過,卻沒有在實際工作中運用的話,那么猶如無根之樹,打一把dota就忘記了,即無法深入理解其中的原理,也不能在真正工作的時候,靈活地運用到他們。

而通過這個項目,基于實踐所運用到的項目,就會變成你真正的技能,因為這些都會是你一行一行代碼敲出來的設計模式,在面試的時候如果被問到相關問題,你也會對答如流,因為這些會是你真正“實踐過”的設計模式
5.?教程地址:http://how2j.cn/k/tmall-j2ee/tmall-j2ee-894/894.html?tid=43?
教程由個人完成,局限于個人的經(jīng)驗和視野,有諸多不足之處,請各位多多指點,謝謝。