用線上升級平臺代碼練手,學習JAVA。飛哥建議咱們本身從頭再搭建一套,提升會大。我本身做爲一個JAVA出身的人,用了幾天時間學會PHP的經驗來看。最好,先在原來代碼基礎上改些東西。熟悉了基本語法以後再來從新搭建一套。若是原本就是一頭霧水,再加上全身心投入的時間不夠充裕的話,可能會欲速而不達。
第一步,讓原代碼跑起來。這一步宗鑑已經運行成功了。其實JAVA就學會了五分之四了。由於無論PHP仍是JAVA就是一個工具。我一個作JAVA的,作PHP的項目也不比JAVA慢。由於一個小型WEB項目架構就是:WEB容器,一個WEB框架,緩存,前端技術,底層數據庫。JAVA仍是PHP都只不過是框架的一部分,況且PHP的語法是一個大融合,比較流行的PHP框架也是基於MVC模型的,知識上徹底沒有隔閡。php
下來的源碼後臺部分沒有在pom.xml文件中規定java版本,須要本身手動把版本改爲1.7以上,或者我已經修改提交了,從新更新一下便可。如今的java項目比較講究依賴注入,控制反轉。就是比較框架性的。好比這個maven工具,還有spring mvc。要了解他們作了什麼不要先看代碼,先看配置文件。文件纔是核心,代碼就是讓文件生效的。前端
在語法上,以前公司也有作PHP的,一直不明白,他們的數據庫表名字爲何有個公共前綴,如今知道這是PHP裏規範要配的。在JAVA裏表名能夠隨便命名。在PHP裏時間戳他們會用數字存儲,由於確實在PHP的函數裏處理數字的日期會比較方便。可是在JAVA裏,咱們有Calendar,DateFormat這些專門處理日期的。通常會存成date,datetime,timestramp這些格式,以更好的利用mysql對日期的強大支持福利。其中timestramp在對日期的處理效率高,可是一張表僅容許一個timestramp。我在設計數據表的時候通常都會有一個建立時間,datetime格式,插入時將當前時間now()賦值進去,以後再也不更新。一個更新時間,timestramp格式,利用數據庫的特性,初始值是當前時間戳,在每次修改會隨當前時間戳更新。這個不是通常的觸發器,不會存在併發和性能問題。程序中更新基本無視這兩個字段。java
第二步,先從管理後臺入手。由於管理後臺有頁面,容易一邊改代碼一邊理解業務。管理後臺沒有什麼性能要求,架構也是spring mvc經典架構,不須要再新搭建一套。業務瞭解以後,接口部分併發量高,到時候能夠你們一塊兒商量新搭建一套,以提升服務器的利用率,也許還能下線幾臺服務器。mysql
管理後臺,PHP的同窗應該都能看懂。惟一一點就是路由規則的定義:在經典的web框架中,nginx這些反向代理通常只代理到目錄或者域名,剩下的規則會在一個叫web.xml的文件中找到定義。這個有點相似於thinkphp中的index.php的做用,是一個總入口。對於Spring MVC來講,web.xml裏會定義一個DispatcherServlet來處理這些路由規則。DispatcherServlet是一個JAVA類,具體作了什麼能夠看源碼。或者百度一下SpringMVC的工做原理,裏面全是在說DispatcherServlet這個類。nginx
第三步,管理後臺修改幾個頁面以後,剩下的問題已經不是JAVA的問題了。無論是改接口的架構仍是別的,能作成什麼樣子,須要的是工程師的綜合能力,和JAVA無關~~web