1. 程式人生 > >Java 後端工程師實習總結

Java 後端工程師實習總結

規範 nbsp 直接 並發 mys 變化 技巧 ted list

2017-9-16

8 月份開始到現在,進行了一個多月的實習,崗位是 Java Web 後端開發。這過程學到的知識著實比自學要來得多,而且也讓我意識到需要學習的知識也更加多。在這裏我會在比較大的方面總結這次實習中學習到的事情,以及之後需要努力學習的知識。


基礎

經過一個多月的項目的鍛煉,最大一點感受就是基礎的重要。這裏我指的是數據結構基礎。因為經歷過實際項目的開發,無疑我更清楚一個企業項目裏的編程是怎樣一會事,明白實際用到的技術大概是怎樣而這個過程我了解到基本的數據結構是如此重要。老實說,我感覺一個項目大部分時候做的都是重復性活動,也就是所謂的增刪查改。這個過程無非就是與數據打交道,譬如怎麽獲取數據,如何保存獲取的數據,怎樣返回前端想要的數據就是我們要做事情的核心。而這不正是數據結構的事情嗎?例如,我們要熟悉 List、Map 等結構,知道什麽場景使用那些容器來封裝數據。還有一個是算法,雖然我這一個半月中沒有用到算法,但無疑這是進階必須的,因為算法可以幫助我們更好的處理數據,而這正是後端工程師的任務——處理數據。所以數據結構跟算法是未來一定要掌握的。
另外一點需要註意的基礎地方,就是 JDK 的常用 API 的使用。我印象深刻的一件事就是 String 的使用。有一次我要判斷 String 非空,當時的做法好像只是“抄”別人的代碼,沒有深入思考的過程,後來有空閑思考,發現一個 String 判斷非空其實要註意的事情是很多的,而我們其實可以直接查看 JDK 的文檔,就會發現 JDK 裏面 String 類直接有 isEmpty() 方法供我們使用了;同樣,如果要判斷兩個字符串相等,API 直接提供了 .equal() 方法供我們使用,這裏還需要特別註意的一點就是不能用 == 來判斷兩個字符串相等!因此這個過程我學到的一點就是,養成查看官方文檔的習慣,特別是常用的 API,要做到熟記。

SQL 與數據庫 還有一個十分重要的地方是 SQL 的學習。這一塊跟數據結構是我現在認為最重要的。在上面我說過,後端的處理無非就是數據的處理,而很多時候數據需要從各種數據庫中檢索出來,這就需要用到 SQL 了。在沒有實習之前,我對 SQL 並不怎麽熟悉,好幾次的面試中也因為這樣而吃了虧。在真正的實際項目開發中,也真正感受到使用 SQL 的頻繁與重要,特別是在 Mybatis 框架中要經常編寫 SQL 語句,加深了我對 SQL 的重視。當然 SQL 語句也只是非常基礎的東西,在這上面還有數據庫要我去了解與學習,例如怎樣優化數據查詢,某些數據庫的特性等。項目使用的是 MySQL 數據庫,這也是我接下來需要加深學習的數據庫。

團隊開發 說說團隊開發。我們項目用的是 SVN,感覺挺方便,沒那麽復雜(雖然我對 git 並不熟悉)。這裏需要記錄的事情是,每次提交代碼的“規範流程”(不局限於 SVN,團隊開發都應該這樣做,以防沖突)。
  1. 每天到公司,打開項目後首先更新代碼(一般是全部),發現沖突及時解決;
  2. 寫好自己的功能,在本地跑,直到可以跑通;
  3. 現在需要更新全部代碼,防止與別人當天寫的代碼有沖突;
  4. 更新完代碼不能立刻提交,需要再次跑一下,驗證代碼更新後也沒有出錯;
  5. 再次檢查是否有更新代碼,沒有了才可以提交自己的代碼;
  6. 每天下班前檢查是否自己寫完的代碼有沒有提交的,及時提交。
這裏再說說代碼提交的“註釋規範”,沒有統一標準,我是自己網上搜索後覺得挺不錯,以後要這樣用。
  • changed(完成的任務)
  • updated(完成任務的更新)
  • added(新加入的需求)
  • fixed(修復 bug)
    • 修 issue 時可以寫:fixed #xx
    • 小改的直接用一句話說清楚
    • 大改的自己建一個 issue 說清楚情況、方案、變化,然後寫 fixed #該 issue 號

框架與流程 這個項目是用 SSM 框架的,現在我想對於這個框架的日常使用是沒問題了,這也是一大收獲,正式在企業項目中用到,對這幾個框架的認識深了很多。 再者,對一個項目的流程,如前期需求、原型實現、編碼、測試、上線也有更清晰的了解,知道是怎樣一會事。我想我算是踏入這個行業的門了。
最佳實踐 至於編程技術思想方面也同樣有很多進步。例如對一些技巧的使用,知道是怎樣一回事。好比 DTO,還有封裝前端請求數據的 Query 兩個對象的區別與用法,這些算得上是最佳實踐吧。說到最佳實踐,這次的實習也鍛煉了我遇到問題找尋原因的思想,其實這裏頭也沒有多高深的知識。 例如,遇到 bug,首先整個流程跑一次,看看這個實際功能是否能跑通,然後觀察前端傳輸的數據有沒有錯,調用的請求是否真的調用了,這些步驟都沒錯的話,看看後端 Controller 接受的數據情況,以及進一步的數據處理的情況,而這後端的觀察便可以用 debug 了(加強了我 eclipse 的 debug 能力),這個流程走下來應該可以很快定位到問題出現的地方。
上面寫的這些都是大方面的內容,其他的收獲都是一些細節的技術內容,例如文件上傳下載實現、分頁對象原理與實現、一些 jQuery 插件使用等等,就不展開講了。 那麽最後再來一個需要學習知識的粗略計劃:
  • 數據結構與算法
  • MySQL 數據庫的深入學習(學習《數據庫技術叢書·MySQL技術內幕:InnoDB存儲引擎》)
  • Java 基礎以及 JVM、多線程等知識(學習《深入理解Java虛擬機:JVM高級特性與最佳實踐》《Java並發編程實戰》)
  • 繼續深入學習 SSM 框架,也要學習 Spring Boot 框架(《Spring 實戰》以及相關視頻學習)
  • 網絡編程相關知識

Java 後端工程師實習總結