階段性學習總結
此次項目還有不到一周就完結了。因此對自己做的前兩個項目的學習做一下總結。
先說下這兩個項目都是怎麽寫出來的。首先,大體上了解一下項目原型,因為我是一個初學者,所以也就只能從最籠統的角度知道這個項目是幹什麽的,每一部分大體上的功能。至於具體的實現,由於經驗的缺乏在動手之前基本上是大腦空白。所以這兩個項目都是在一知半解的情況下開始著手寫的。什麽?不知道從哪兒下手?不用急!copy會嗎?等你了解完項目的時候老程序員已經寫了一部分了,先照著他們的代碼復制粘貼然後再改改,寫著寫著突然就明白了這次項目用到的框架數據庫。兩個項目寫完後才發現是大同小異。比如說前端展示模板,一個是themeleaf,一個是freemarker。數據庫一個是oracle一個是mysql,都是用的Jquery和bootstrap組合以及後臺基本差不多。雖然技術不同,但是實現的功能差不多,操作上也並非神來之筆,總之是大同小異,便於直接上手操作。項目的一些共性功能,比如說文件的上傳和下載、流程的運行、導出excel、生成二維碼等,前兩個是老程序員寫成了共性方法,我等小菜直接調用即可,但是第二個項目需要自己寫導出excel功能時,內心慌的一匹,上網各種找,但是發現寫的都不全,看了一頁又一頁,沒有一個是一條龍服務到家的,根本沒有一點思路。後來經項目組組長點播後,隨便找一個帖子,十分鐘就給寫出來了。寫完後真實信心倍增,生龍活虎哈哈。之後,越寫越快,在理解項目需求後,三下五除二就把一些功能一口氣寫完了。就這樣,我的內心目前來說不再慌得一匹。
接下來,基於這兩個項目經驗,說說我的學習方法論吧。首先先定位,我是一個java後臺程序員。那麽就應該把精力多放在後臺相關的技術上,雖然這兩個項目在後臺上花的時間不太多。前端內容,包括html、css、javascript(項目中用的jquery),各種框架諸如bootstrap、vue、freemarker、themeleaf等基本上不同的項目用的都不太一樣,所以就可以找共性。比如,freemarker和themeleaf抽點空閑時間掌握一個就夠了。像html、css、jquery可以慢慢隨著項目在項目中慢慢掌握,實在不會可以去bootstrap裏copy嘛,copy一遍熟悉兩遍就會了。至於原生js,我覺得要好好掌握一下,這是真功夫,學好了可以提高寫代碼的效率,不把時間浪費在無意義的調試上,因為就不會出很多低級錯誤。其他前端內容,等用到的時候去查一下就可以。總結一下,涉及到前端內容要好好學一下原生js。
開始後臺的戲碼了。先說一個比較囧的事,前些天寫了一個功能,是查詢消費記錄的需要從後臺查數據展示到頁面,自己造了8條數據,要多張表查詢,結果寫完頁面刷新得等將近十秒才刷新出來,沒錯,才八條數據!用時十秒!想想看800條數據吧,估計能把操作人員給折磨死。。。於是,我把項目組組長叫了過來,他三下五除二解決了,結果查那幾條數據不到一秒,我滴個神,要不要這麽虐,之前自認為沒有辦法優化的程序竟然優化的這麽直接,而且行數由原來的十幾行變成了兩行,所以這就是sql優化帶來的巨大好處。所以,騷年,技術有待提高呀。
個人認為,代碼的質量和多種因素有關。第一、最基本的,代碼的規範,包括縮進、命名、註釋、代碼的結構,可讀性等這些最基本的規約,都是衡量一個人代碼能力的重要指標,也是最基礎的部分。第二、Java基礎,再就是諸如反射、線程安全等最基礎的概念性的東西。第三、數據結構,雖然目前用的很少,但是通過刷leetcode一段時間後,發現能提高把思想轉換為代碼的能力以及閱讀底層源碼的能力,當然了,英語水平會有很大提升。第四、和數據庫相關操作,如上面說的sql優化,這部分接下來著重攻堅,因為這很有助於提高效率,避免寫出垃圾代碼。
綜上,就是這段時間總結的實戰經驗,不積跬步無以至千裏,目前先把這四部分給學好了,打下堅實的基礎。我知道後面還有諸如閱讀spring源碼這些必要的知識,但現在還是三個月小白一枚,項目架構是架構師的事情,近幾個月先不涉獵或者少許了解。主要打堅實的基礎,逐一攻破,達到精通水準。話說回來,掌握這些基礎知識對於一般的項目都夠用了哈哈哈哈。與此同時,我希望通過學習這些養成一些共性的學習能力,比如說英語水平(自認為還不錯,大二過六級哈哈)、閱讀源碼的水平等等,養成這些能力在以後的學習中才能越學越快,越學越輕松。
共勉哦!
階段性學習總結