工作環境
板橋TPKC辦公室
目前工作的環境是在板橋TPKC辦公室(新北市板橋區遠東路66號),五月前則是在遠傳創新樓(新北市板橋區四川路334號),現在的辦公室附近的交通很便利,就在捷運板南線亞東醫院站附近5分鐘路程。進出公司採取刷卡制度,公司的同事也很照顧我們實習生,辦公環境採取一人一桌,很寬敞的辦公空間,整體是很友善的一個環境。
實習間完成之進度
在遠傳到現在已經快十個月了,大致上也熟悉的差不多了,對於JAVA還有遠傳使用的框架,雖然不能說精通,但至少可以跟上進度了,目前因為部門改名的關係,主管有來跟我們說工作上的變動,從原本的開發Fetnet、Estore前後端改成開發app的功能,但本質上還是一樣的,但礙於台灣目前Covid-19疫情的關係,被迫只能遠端上班,這對於我而言是一個更大的挑戰,公司的電腦因為VPN的關係沒有連公司網路就不能使用,所以只能將開發環境安裝在我個人的電腦上,這剛好也是一個複習的機會,從下載eclipse到安裝資料庫再到Import整包程式,剛進來遠傳的我需要兩三天才能做完,現在我兩三個小時就可以解決了。而目前我們在做的進度是遠傳心生活app的一個權限管理的api,從前端的畫面到後端的程式,基本上都是自己寫自己修改的,並在進度完成時,跟主管進行進度報告。
實習間完成之進度
SA&SD文件
製作SA/SD文件,在製作SA&SD文件之前,我基本上是對這兩個東西僅限於在”系統分析與設計”課堂上有聽過並有印象,所以在製作前也是先GOOGLE了很多範例來參考而在製作時,原本我是將程式內全部的功能都集中在一張圖表裡面顯示,之後主管有提醒了我,像我這樣做一張很大的圖,對於要看我圖表來寫程式的工程師或者User都是一大負擔,所以才將大圖分割成諸如上圖的小圖,每張都是一個A4大小,並完整呈現各種功能。
實習間完成之進度
權限管理
目前大致上製作完成,主要是讓管理者能夠對每個有帳號的使用者進行權限的CRUD管理,並由資料庫裡的權限資料來判斷使用者能看到的前端畫面,雖然前端上看起來只是三個頁面,但實際上卻用到了超過十隻以上的程式,字面上的意思可能不覺得很難,實際做起來還是有一定的難度,首先要提供一個能輸入必填資料的create頁面,再來需要由controller引導將資料寫入資料庫,也因寫入資料庫不是只有寫入單一個table,而是寫到多個table並透過mapping的方式將權限組合起來,且要將群組、功能、帳號管理這三個功能都有相對應的作用,這也讓我們在剛開始撰寫時吃了蠻多閉門羹。
學習
Spring Boot
spring boot是一個框架,繼承了spring框架的優秀特性,嵌入式Tomcat、Jetty,不用部屬war包,隨時自動的配置spring及第三方的Library,原本需要寫Set Bean的地方變成只要加@Autowired就能方便使用,使用spring boot框架簡化了眾多框架中所需繁瑣的配置文件。
資料庫架構(hibernate、mybatis)
-
hibernate需要三個配置檔,第一個是cfg.xml 專門在放SQL的配置檔,如IP位置、USERNAME、PASSWORD等等配置,第二個是hbm.xml, 在這裡可以控制是要使用哪一個資料庫的table,當資料庫很大時,table可能會有很多個,這時候如果要全部都讓hibernate讀取進來,可能也需要很多的時間,所以可以在這個xml配置檔中限定只讀取某一個table,第三個pojo檔也是最重要的。
-
mybatis的架構則是透過mapper跟dao,先在配置檔中輸入要使用的table,透過Mapper進行CRUD,DAO層則是獲得SqlSession,執行Sql語句。
Thymeleaf&Velocity
-
Velocity是一款基於Java的模板引擎,允許使用模板語言來引用Java,與jsp相似,需要在Spring Mvc的配置文件中新增Velocity的配置,就可以透過新增VM檔並使用變數"$"字號來取代,並丟到前端網站。
-
因為Thymeleaf使用了自然的模板技術,意味著Thymeleaf的模板語法並不會破壞文檔結構,模板依舊是有效的xml檔。
Java
-
有物件導向、跨平台、相容性高等等優點,使用Java撰寫的程式,只要做少量的修改,甚至幾乎不須修改,就能在不同的平台如MacOs、Linux做使用,而且Java的應用範圍廣,沒有侷限在特定區域,不論是網站、應用程式、GUI、伺服器,通通可以使用Java撰寫而成。
自我評估及心得
實習到現在,為期一年的實習生活漸漸的也到了接近尾聲,我想當初我選擇校外實習是一個正確的決定,能夠像這樣在求學時期就能在公司企業中學習,學到的不僅是知識而已,學校內學的程式設計和資料庫雖然只是基礎而已,但卻非常重要。在公司內並沒有老師可以讓你問答案,在公司最好的老師除了同事外,就是GOOGLE了,雖然常常在上面搜尋到錯誤的答案,但這也是訓練自己找解決辦法的一個方式,透過GOOGLE找答案,找到的答案再用自己能夠記憶的方式來記憶。在實習期間,我做了一些筆記,把一些曾經被卡住或者比較困難的程式紀錄起來,這樣就算未來離開遠傳,也還是可以記住每一個在這裡學到的不管是框架還是前後端的知識,對於我未來一定會有很大的幫助,將問過同事前輩們的問題解法也記起來,畢竟如果重複提問相同的問題,對他們來說也是一種負擔。
經過這段時間吸收知識收穫蠻多的,雖然還有很多不足的地方,但確實讓我學到很多,也包括了一些跟人相處的方式、跟人虛心求教的方式,畢竟在公司我們就是最菜的那一批,裡面每一位同事都有他專長的地方,當我遇到一些前端的問題想請教,我就會去問負責前端的前輩,遇到程式撰寫後端上的問題,我就會去問負責後端的前輩,公司並不像我原先所想的那麼沒有人情味,我們部門在實習生來之前的年齡層就差距蠻大了,但並沒有因為年齡的差距而有大人看小孩的想法,大家都是在同個部門上班的人,需要的時候都會互相幫助,我想這也就是我所追求的職場生活吧。
對系上的建議
-
JAVA的課程,有大多數的公司都使用JAVA這個程式語言來開發,所以如果學校能開一門這樣的課,對於將來要實習的學弟妹們肯定是會有很大的幫助。在疫情這樣肆虐的情況下,當疫情在北部肆虐時,系上盡力的幫我們爭取遠距上班或者暫停上班的機會。很感謝系上有這個機會讓大三生可以實習,無論是校內實習還是校外實習肯定都會有很大的收穫,希望能夠持續的辦下去,這是不管讀多久的課本或上多久的課都沒辦法學到的寶貴經驗。