Welcome to GSS
壹、 工作內容
工作詳述
JIRA 單問題處理
前輩會先從自己的案子或詢問其他同事手上的案子挑出我能做的,在開 JIRA 單需 求單轉給我,需求單上則會有客製的工作資訊,上面的區塊是寫公司名、JIRA 單號及需 求單的名稱,右邊的區塊會有誰負責處理這張單子,還有到期日的資訊,下面的區塊則 是在說明需求內容,或是會有需求內容的文件。
每天還需要在這裡登記工時,當完成這份需求單時會按 Workflow 紀錄處理的狀況, 像是修改的哪些檔案,還有處理內容的邏輯。

新人訓練
實習期間完成之進度
資料庫語言
在 join 表格的部分,在公司是禁用逗點去 join 表格的,將來程式會有幾百 行,若持續用逗點去 join 表格,要花非常多的時間才能看出表格之間關係,也很 容易漏寫 Table 關係,還有就是逗點無法寫出 left join 和 right join 的關係。
還有當要新增、修改及刪除時,在使用這些功能時很有可能需要更動很多個 Table,可以包 TRANSACTION 防止資料錯誤,因為有新增和修改的功能,若沒有包 TRANSACTION,當修改的資料若因有誤而沒有修改成功,新增卻成功了,那就無法達 成我們想到的兩個功能同時都有做到,而包了 TRANSACTION 就能解決這個問題,它 會先檢查裡面的功能,當某一個功能沒有成功,另外一個功能也不會去改到資料庫 的資料,當都沒有問題時,才會去做新增跟修改的動作
Front End Basic
在學校只有碰到 html 和一些些的 javascript,而在這個課程中也學到了如何 使用 jQuery 和 kendo,還有可以將資料存放到 localstorage 裡。
.Net MVC
在學校時都是以前端後端的方式分開教學,而在這個課程中讓我了解將前端和 後端串在一起運作的,在撰寫的時候相較於其他單元也較不容易,因為要分成 Model、Controller 及 View 去寫,而撰寫的主題為圖書維護系統。
Front End Advanced
這堂課是需要將.Net MVC 的.net Razor 換成純的 Html 語法,再透過 jQuery ajax 的方式去呼叫 controller。 其中我覺得最特別的是將新增、修改及明細畫面合併,已縮減重複的程式,可以透過去設定網址傳遞的參數,在判斷是哪個參數後用 ajax 呼叫 controller,以 下圖為例就是要撈出要修改的那筆圖書資料。
Back End
這堂課分成兩部分,第一個是必須將 Front End Advanced 作業 Model 的 Class 抽離到其他專案,還有針對 Service/Dao 內的 Class 抽離出 Interface,還有將 Spring.NET 實作 IOC/DI,第二部分則是要想可以做什麼單元測試。
部門接案
我在的部門為 HRSBU,也就是人力資源部門,主要的工作是為其他公司客製化 功能,修改的內容為公司已開發的人力資源系統網頁及 RADAR,人力資源系統是專 門為各個公司處理員工的資料,像是基本資料、薪資、出缺勤狀況、勞健保等,主 要修改新增的程式分為下列四項:
新增、修改及刪除欄位
在部門剛開始接的工作大部分都是新增、刪除欄位等,還沒做之前會覺得只要 在 SQL 下一個新增欄位的指令和增加畫面的控制項就好,但其實在一支程式裡會包 含很多功能,像是查詢、新增、修改和刪除等,除了需要新增欄位到資料庫和新增 控制項之外,還得撰寫撈出那個欄位的明細,將欄位的值輸入進資料庫等,而像是 查詢的資料會寫在 SP 裡,需要讀懂 Table 的關係才能加上那個欄位,並不是只是加 個欄位那個簡單,因為通常都會關聯到其他程式的運作。
列印報表
列印報表的部分可以分成很多種,像是以每個部門做區分,去計算員工認證證 照的數量所產生出來的報表,或是像列印員工在職證明書。 以員工在職證明書為例,下方是套印範本,標籤會對上在 SP 撈出的欄位名稱, 這樣在列印的時候就可以直接從資料庫撈出資料,放到正確的位置上,不用手 動一個一個輸入,減少錯誤率。
通知信排程
以員工證照認證到期通知為例,需撰寫一支 SP 掛排程執行,若是在到期日往前 60 天需寄信,SP 的內容首先需要先撈出證照剩下剛好 60 天就過期的員工資料,在 去處理如果那個員工同為主管時,就要往上撈一層的主管,接著再去處理 Mail 的內 容格式,像是若是有多個員工都在同一天剩 60 天證照過期,且又是同一個主管,這 樣就要在同一天記非常多的信給主管,對主管來說會非常的不方便,所以通常會合 成一個表格只寄出一封信,列出有哪些員工證照在 60 天就過期了,處理好在寫入欲 寄發通知的 e-mail 至實體檔就完成了。
大批資料匯入
這支程式的功能主要是讓客戶能方便將員工的資料大批匯入,不用一筆一筆輸 入進資料庫,還能使用 excel 先輸入好員工資料在統一匯入。 客戶能下載 excel 範本下來,資料類型可能會分為很多種,像是履歷資料、履歷 個人基本資料、任用資料、薪資、學歷、經歷、證照、考核及訓練等九種,填入員 工的資料後,在將資料上傳,會先檢核資料的正確性,例如必填欄位是否空白或輸 入的代號是否為代碼檔裡的資料等,若資料錯誤則會出現錯誤訊息,確認無誤後再 執行另一支 SP 將資料大批匯入資料庫。
薪資轉存媒體檔案
這支功能主要會產生出薪資的檔案,而每家公司產生每家銀行的媒體格式都不一樣,而我主要是會依照客戶的需求修改格式內容。
這支功能主要會會產生出薪資文字檔,撈資料的時候,程式會先判斷銀行別為哪家銀行,再帶出那家銀行的媒體格式資料。
Debug
有很多案子是客戶在操作產品遇到的問題,有些是之前的工程師在撰寫時,程式邏輯有Bug,但客戶可能那時候沒有測到這個問題,或是產品本身設計有漏洞,當我接到這類型的單子時,需要先去了解這支功能撰寫的程式邏輯,以及客戶測試到的問題是什麼,進而去推論出導致問題的部分。
當寫好一支程式時,都需要去測試有可能發生的問題,測試沒問題後就需要寫測試 報告,測試報告則是為了給客戶確認程式寫好的結果是不是他們想要的,免得他們程式 看完了才發現不是自己想要的,而浪費了寶貴的時間。
都弄好後就會將建置好的程式放到特定的資料夾,讓前輩方面更新給客戶,接著再 把修改過的程式上傳到 git 或 svn,弄好後就能去填寫 JIRA 已完成。
資安課程
在科技蓬勃發展的世代,資訊安全是越來越重要,公司有幫我們安排上資安的相關 課程,有智慧財產權及個資法的課程,上完後需做測驗,需考到 80 以上才算通過,沒通 過則需補考。
而我在的部門是專門在維護員工的基本資料,所以在資訊安全的部分也非常重要, 像是在作測試報告時,個人隱私資料的部分就需做遮罩,絕對不能去透漏客戶的資料。
月會
在每個月都會舉辦一次月會,主管會請學長姐做 PPT 報告,內容為在部門學到的技 術和工具,或是分享學長姐的經驗談。
在技術和工具方面,除了在自己部門所學的,也能去了解其他的技術及工具,因為 就程式語言舉例,就可以分成非常多種語言,將來不一定會只寫現在所學的語言,所以 能多接觸了解會比較好,工具也是如此。
在學長姐分享經驗談的方面,學長姐可能會分享一邊準備考研究所,一邊上班的話 需如何分配自己的時間,或是實習生轉正職時會有什麼樣的事情轉變,我在這個部分也 學到了很多,因為我們可能會發生到的問題,學長姐也都經歷過,所以能從他們的經驗 談去學習,調適自己的心態、工作方式及時間安排。
產品課程
對於工程師來說,若要撰寫程式,最先要做的事就是了解產品,而在人資部門裡,每兩週的週三就會開一次會,專門教學產品的邏輯及 操作,並且講解完後前輩會指派作業,並且在下一次上課的時候驗收大家做的作業。
舉例: 若公司現在要將一名員工換部門,並且調本薪加獎金,要如何操作系統?並且在更新完後發現員工更改資料有誤,要如何操作?
在操作過程中就有遇到當反更新後,再重新建一筆資料時會出現資料已重複的問題,原因是反更新並不會刪除原本的資料,所以可以直接去修改錯誤的部分就好。
還有像在進行反更新後,薪資其實不會還原回去,需手動還原,這些問題若是沒有親自操作就不會知道,在實際操作過後,能了解到自己對哪些部分還不熟悉,針對問題去尋找解答,更能加深印象。

工作當中扮演的角色
我認為我目前扮演的角色為輔佐者,由於前輩會先跟客戶商量問題單內容,談好價錢和 內容後再開 JIRA 單,再由前輩先判斷哪些案子是我能做的,再指派給我,並且大概說明問 題單的內容,若覺得內容有點問題,也會先詢問過前輩,前輩也覺得有問題的話,就會再去 詢問客戶,而有不會的部分,也會去詢問前輩能怎麼做,或是怎麼做比較好,在完成問題單 時,前輩會去測試程式的正確性,在告訴我有哪些地方需要再修改,改完後才會將程式更新 到客戶的公司那裡,所以我目前還無法負責這一整套流程,只負責客製修改程式的部分,在 修改時也還需要多多請教前輩。
貳、學習
一、語言
SQL
Stored Procedure 預存程序(SP)
是在資料庫儲存複雜程式,以便外部程式呼叫的 資料庫物件,可以視為資料庫的一種函式或子程式。
User Defined Function 使用者定義的函式(UDF)
可讓您使用其他 SQL 運算式或 JavaScript 建立函式,這些函式會接受輸入資料欄並執行各項動作,再以資料值 的形式傳回這些動作的結果。
FOR XML PATH:
可以將多筆資料合併為一筆顯示,在工作中也經常需要用到這 個語法。
CODTABLE Table:
這個 Table 是用來儲存參數,像是可以分成假別會有很多個代 碼,分別為不同個假別,這樣在系統上才不用寫死資料,還可以直接使用在其他 需要使用到假別的程式裡,如果客戶突然停用某個假別代碼,可以直接將那個代 碼加入條件篩掉資料,也不用每個地方都去改。