0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

JavaWeb后端開發(fā)工程師的實習(xí)總結(jié)

工程師人生 ? 來源:工程師吳畏 ? 2019-07-09 16:49 ? 次閱讀

8 月份開始到現(xiàn)在,進(jìn)行了一個多月的實習(xí),崗位是 Java Web 后端開發(fā)。這過程學(xué)到的知識著實比自學(xué)要來得多,而且也讓我意識到需要學(xué)習(xí)的知識也更加多。在這里我會在比較大的方面總結(jié)這次實習(xí)中學(xué)習(xí)到的事情,以及之后需要努力學(xué)習(xí)的知識。

基礎(chǔ)

經(jīng)過一個多月的項目的鍛煉,最大一點(diǎn)感受就是基礎(chǔ)的重要。這里我指的是數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)。因為經(jīng)歷過實際項目的開發(fā),無疑令我更清楚一個企業(yè)項目里的編程是怎樣一會事,明白實際用到的技術(shù)大概是怎樣,而這個過程讓我知道基本的數(shù)據(jù)結(jié)構(gòu)是如此重要。老實說,我感覺一個項目大部分時候做的都是重復(fù)性活動,也就是所謂的增刪查改。這個過程無非就是與數(shù)據(jù)打交道,譬如怎么獲取數(shù)據(jù),如何保存獲取的數(shù)據(jù),怎樣返回前端想要的數(shù)據(jù)就是我們要做事情的核心。而這不正是數(shù)據(jù)結(jié)構(gòu)的事情嗎?例如,我們要熟悉 List、Map 等結(jié)構(gòu),知道什么場景使用那些容器來封裝數(shù)據(jù)。還有一個是算法,雖然我這一個半月中沒有用到算法,但無疑這是進(jìn)階必須的,因為算法可以幫助我們更好的處理數(shù)據(jù),而這正是后端工程師的任務(wù)——處理數(shù)據(jù)。所以數(shù)據(jù)結(jié)構(gòu)跟算法是未來一定要掌握的。

另外一點(diǎn)需要注意的基礎(chǔ)地方,就是 JDK 的常用 API 的使用。我印象深刻的一件事就是 String 的使用。有一次我要判斷 String 非空,當(dāng)時的做法好像只是“抄”別人的代碼,沒有深入思考的過程,后來有空閑思考,發(fā)現(xiàn)一個 String 判斷非空其實要注意的事情是很多的,而我們其實可以直接查看 JDK 的文檔,就會發(fā)現(xiàn) JDK 里面 String 類直接有 isEmpty() 方法供我們使用了;同樣,如果要判斷兩個字符串相等,API 文檔直接提供了 .equal() 方法供我們使用,這里還需要特別注意的一點(diǎn)就是不能用 == 來判斷兩個字符串相等!因此這個過程我學(xué)到的一點(diǎn)就是,養(yǎng)成查看官方文檔的習(xí)慣,特別是常用的 API,要做到熟記。

SQL 與數(shù)據(jù)庫

還有一個十分重要的地方是 SQL 的學(xué)習(xí)。這一塊跟數(shù)據(jù)結(jié)構(gòu)是我現(xiàn)在認(rèn)為最重要的。在上面我說過,后端的處理無非就是數(shù)據(jù)的處理,而很多時候數(shù)據(jù)需要從各種數(shù)據(jù)庫中檢索出來,這就需要用到 SQL 了。在沒有實習(xí)之前,我對 SQL 并不怎么熟悉,好幾次的面試中也因為這樣而吃了虧。在真正的實際項目開發(fā)中,也真正感受到使用 SQL 的頻繁與重要,特別是在 Mybatis 框架中要經(jīng)常編寫 SQL 語句,加深了我對 SQL 的重視。當(dāng)然 SQL 語句也只是非?;A(chǔ)的東西,在這上面還有數(shù)據(jù)庫要我去了解與學(xué)習(xí),例如怎樣優(yōu)化數(shù)據(jù)查詢,某些數(shù)據(jù)庫的特性等。項目使用的是 MySQL 數(shù)據(jù)庫,這也是我接下來需要加深學(xué)習(xí)的數(shù)據(jù)庫。

團(tuán)隊開發(fā)

說說團(tuán)隊開發(fā)。我們項目用的是 SVN,感覺挺方便,沒那么復(fù)雜(雖然我對 git 并不熟悉)。這里需要記錄的事情是,每次提交代碼的“規(guī)范流程”(不局限于 SVN,團(tuán)隊開發(fā)都應(yīng)該這樣做,以防沖突)。

每天到公司,打開項目后首先更新代碼(一般是全部),發(fā)現(xiàn)沖突及時解決;

寫好自己的功能,在本地跑,直到可以跑通;

現(xiàn)在需要更新全部代碼,防止與別人當(dāng)天寫的代碼有沖突;

更新完代碼不能立刻提交,需要再次跑一下,驗證代碼更新后也沒有出錯;

再次檢查是否有更新代碼,沒有了才可以提交自己的代碼;

每天下班前檢查是否自己寫完的代碼有沒有提交的,及時提交。

這里再說說代碼提交的“注釋規(guī)范”,沒有統(tǒng)一標(biāo)準(zhǔn),我是自己網(wǎng)上搜索后覺得挺不錯,以后要這樣用。

changed(完成的任務(wù))

updated(完成任務(wù)的更新)

added(新加入的需求)

fixed(修復(fù) bug)

修 issue 時可以寫:fixed #xx

小改的直接用一句話說清楚

大改的自己建一個 issue 說清楚情況、方案、變化,然后寫 fixed #該 issue 號

框架與流程

這個項目是用 SSM 框架的,現(xiàn)在我想對于這個框架的日常使用是沒問題了,這也是一大收獲,正式在企業(yè)項目中用到,對這幾個框架的認(rèn)識深了很多。

再者,對一個項目的流程,如前期需求、原型實現(xiàn)、編碼、測試、上線也有更清晰的了解,知道是怎樣一會事。我想我算是踏入這個行業(yè)的門了。

最佳實踐

至于編程技術(shù)思想方面也同樣有很多進(jìn)步。例如對一些技巧的使用,知道是怎樣一回事。好比 DTO,還有封裝前端請求數(shù)據(jù)的 Query 兩個對象的區(qū)別與用法,這些算得上是最佳實踐吧。說到最佳實踐,這次的實習(xí)也鍛煉了我遇到問題找尋原因的思想,其實這里頭也沒有多高深的知識。

例如,遇到 bug,首先整個流程跑一次,看看這個實際功能是否能跑通,然后觀察前端傳輸?shù)臄?shù)據(jù)有沒有錯,調(diào)用的請求是否真的調(diào)用了,這些步驟都沒錯的話,看看后端 Controller 接受的數(shù)據(jù)情況,以及進(jìn)一步的數(shù)據(jù)處理的情況,而這后端的觀察便可以用 debug 了(加強(qiáng)了我 eclipse 的 debug 能力),這個流程走下來應(yīng)該可以很快定位到問題出現(xiàn)的地方。

上面寫的這些都是大方面的內(nèi)容,其他的收獲都是一些細(xì)節(jié)的技術(shù)內(nèi)容,例如文件上傳下載實現(xiàn)、分頁對象原理與實現(xiàn)、一些 jQuery 插件使用等等,就不展開講了。

那么最后再來一個需要學(xué)習(xí)知識的粗略計劃:

數(shù)據(jù)結(jié)構(gòu)與算法

MySQL 數(shù)據(jù)庫的深入學(xué)習(xí)(學(xué)習(xí)《數(shù)據(jù)庫技術(shù)叢書·MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎》)

Java 基礎(chǔ)以及 JVM、多線程等知識(學(xué)習(xí)《深入理解Java虛擬機(jī):JVM高級特性與最佳實踐》《Java并發(fā)編程實戰(zhàn)》)

繼續(xù)深入學(xué)習(xí) SSM 框架,也要學(xué)習(xí) Spring Boot 框架(《Spring 實戰(zhàn)》以及相關(guān)視頻學(xué)習(xí))

網(wǎng)絡(luò)編程相關(guān)知識

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Web
    Web
    +關(guān)注

    關(guān)注

    2

    文章

    1253

    瀏覽量

    69057
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2943

    瀏覽量

    104102
  • 開發(fā)工程師
    +關(guān)注

    關(guān)注

    1

    文章

    90

    瀏覽量

    14917
收藏 人收藏

    評論

    相關(guān)推薦

    求LORA技術(shù)開發(fā)工程師合作

    求LORA技術(shù)開發(fā)工程師合作
    發(fā)表于 09-02 10:21

    正是拼的年紀(jì)|65歲電子工程師上班VLOG #65歲退休 #電子工程師 #搞笑 #上班vlog

    電子工程師
    安泰小課堂
    發(fā)布于 :2024年07月25日 11:31:02

    找STM32硬件開發(fā)兼職工程師

    上海做傳感器的公司,找STM32硬件開發(fā)兼職工程師,會硬件開發(fā),嵌入式軟件開發(fā),可項目外包。有意聯(lián)系:15900460170
    發(fā)表于 06-22 19:12

    嵌入式軟件工程師如何提升自己?

    的發(fā)展打下堅實的基礎(chǔ)。 2.掌握專業(yè)技能 除了基礎(chǔ)知識外,嵌入式軟件工程師還需要掌握專業(yè)的技能。這包括熟練掌握嵌入式系統(tǒng)的開發(fā)工具、硬件平臺和軟件開發(fā)流程。建議通過參加培訓(xùn)課程、實習(xí)經(jīng)
    發(fā)表于 06-12 11:20

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    嵌入式軟件工程師和硬件工程師的區(qū)別? 嵌入式軟件工程師 嵌入式軟件工程師是軟件開發(fā)領(lǐng)域中的一種專業(yè)工程師
    發(fā)表于 05-16 11:00

    大廠電子工程師常見面試題#電子工程師 #硬件工程師 #電路知識 #面試題

    電子工程師電路
    安泰小課堂
    發(fā)布于 :2024年04月30日 17:33:15

    javaweb從入門到實戰(zhàn)

    JavaWeb是一門使用Java語言開發(fā)Web應(yīng)用程序的技術(shù),它廣泛應(yīng)用于各種網(wǎng)站和在線應(yīng)用程序的開發(fā)。對于想要學(xué)習(xí)和使用JavaWeb技術(shù)的開發(fā)
    的頭像 發(fā)表于 12-03 11:44 ?1358次閱讀

    javaweb和springboot的關(guān)系

    JavaWeb和Spring Boot是Java開發(fā)中常用的兩種技術(shù)框架。它們可以說是關(guān)系緊密的,因為Spring Boot是基于JavaWeb開發(fā)框架,而
    的頭像 發(fā)表于 11-16 10:52 ?6397次閱讀

    javaweb是前端還是后端

    JavaWeb既可以是前端,也可以是后端JavaWeb前端主要是指使用Java語言開發(fā)的用于構(gòu)建Web前端應(yīng)用程序的技術(shù)框架和工具。它主要負(fù)責(zé)用戶界面的展示以及與用戶之間的交互。
    的頭像 發(fā)表于 11-16 10:51 ?2379次閱讀

    javaweb和java有什么區(qū)別

    對象、一次編寫多處運(yùn)行等特點(diǎn)。Java語言可以用于開發(fā)各種類型的應(yīng)用程序,包括桌面應(yīng)用、移動應(yīng)用和Web應(yīng)用等。 Javaweb則是基于Java技術(shù)開發(fā)的Web應(yīng)用程序。它是一種基于Java的Web
    的頭像 發(fā)表于 11-16 10:49 ?2996次閱讀

    FPGA工程師需要具備哪些技能?

    、設(shè)計思路 FPGA芯片是開發(fā)高速數(shù)字電路設(shè)計的理想解決方案之一。FPGA芯片基于HDL的設(shè)計方法允許工程師使用高級語言進(jìn)行設(shè)計。因此,F(xiàn)PGA工程師需要具備設(shè)計思路能力,包括分析需求、制定設(shè)計方案、梳理
    發(fā)表于 11-09 11:03

    工程師筆記——MM32F0040使用總結(jié)

    工程師筆記——MM32F0040使用總結(jié)
    的頭像 發(fā)表于 10-26 18:09 ?431次閱讀
    <b class='flag-5'>工程師</b>筆記——MM32F0040使用<b class='flag-5'>總結(jié)</b>

    招聘數(shù)字后端工程師

    招聘數(shù)字后端工程師,北京、天津、西安、蘇州、成都、無錫
    發(fā)表于 10-26 15:11