top of page

​壹、工作內容

​    一、工作詳述

 我在日月光是屬於IT部門裡面的Central OA組,主要的工作是負責開發Ap系統。藉由正職和user開會

 討論,將user需要的功能和表單介面都談好,寫成spec檔,再回來把整個流程講述給我們聽,我們再

 照著spec檔的內容去完成整個系統,要在規定的期限內寫好、並且交由正職去做測試,確定沒有問題之

 後,才能交出去給user測試。寫一支Ap需要做的事情很多,我們主要是利用MVC架構來開發Ap。開發每支Ap所需做的主要就是:

(1) 拉 flow:

 flow會影響整個流程的運作,所以要先了解並排出關卡流程,像是關卡是否需要簽核、表單會呈現的

 按鈕、在指定的關卡上表單的狀態會是什麼,在哪個關卡會需要發送mail通知、會通知哪個簽核等。

flow.PNG

 

(2) 創建資料庫:

 用來存取表單、參數的內容,我們將每份表單和子表單的欄位都加入到創建的資料庫,有了這些資料

 庫,程式在執行時可以根據表單的欄位,去對應到我們在資料庫加入的欄位名稱,將欄位內容存入到資

 料庫裡。程式也可以去抓取資料庫裡存取的資料,在程式裡進行核對,看資料是否錯誤或是有重複,也

 可以藉由抓出資料庫裡面的資料,來呈現在表單、portal這些UI的介面上。

資料庫.PNG

(3) 參數設定 :

 如果表單欄位需要放入參數資料,則需要在參數設定加入資料,若參數資料量過大,則需要另外

 寫程式,做成一個portal頁可以將資料用檔案的方式上傳、存入。

參數設定.PNG

(4) 寫前端 UI :

 利用 html 、css和JavaScript來做系統的UI介面。a.做出表單、b.彈跳視窗等網頁的UI介面 ,還有

 像是顯示出來的按鈕控建、圖片這些也會用到。

(a)表單的UI介面

UI.PNG

(b)必填欄位為空時,會跳出視窗提醒

必填欄位卡控.PNG

(5) 後端程式:

利用javascript 和html做介面外,用MVA和 c# 來撰寫整個系統的後端運作。​像是程式經由排程去讀取檔案、表單資料,創建到資料庫裡,也會從資料庫撈出資料,作各種判斷比對查看資料是否有重複,將資料匯出...等等多項功能。

   

(a) Portal 的 Request 頁 ,當表單資料成功存入資料庫後,程式會資料庫裡撈資料,將每筆資料顯示在Request頁上,上排 有放搜尋的控鍵,可以藉由輸入關鍵字,找出需要的該筆表單。

QasPortal.png
1.PNG

    (b)Portal 的 Report頁 ,根據上面設定的條件,程式會去做判斷,並將資料庫裡相對應的

   表單,匯出成excel或csv檔。

Report.PNG
2.PNG
匯出excel.PNG

​    二、實習期間完成的進度

 

                           目前已完成了三支系統。

擷取.PNG

​貳、學習

​    一、 技術層面

 

(1) k2 拉 Flow

  在run整個系統時,會根據寫好的flow去執行整個流程,如果沒有寫完整的話,就會發生跑出

  的不是自己要的流程或是有錯誤,所以在接到新的專案的時候,通常第一步就是先flow,確

  定沒有問題再佈上去,除了讓自己更了解整個運作流程,在之後寫好程式run 來的時候也不會

  發生流程有問題的情形。

   (2) MVC 架構

· · M是Model,封裝了應用程式中資料的存取且提供可重複使用的函式庫,像是資料庫存取抽象

   化、郵件的傳送、資料的驗證...等。  

 · V是View ,是用來呈現從Model取得的資料與蒐集使用者互動資料的網頁,寫View需要用到

   的技術有HTML、CSS、JavaScript 。 

 · C是Controller,蒐集使用者在View元件裡面所輸入的資料,並決定由哪一支程式去進行資料

   的處理。

 

   在開發系統時,需要寫很多的程式,前端、後端甚至還需要連接資料庫,如果全部都寫在一

   起,除了大又雜亂之外,也大大降低了可讀性,所以將這些區分成三塊,介面View、函式庫

   Model和讓程式進行資料處理的Controller。

  (3) Debug 下中斷點技巧

  開發系統的過程需要做很多事,也很複雜,不可能寫出來就是完整、沒有錯誤的,所以在寫

  的過程中, 常常會遇到問題,而且程式通常都很長,如果要從裡面找錯誤,直接看根本看不出

  來,所以必須要下中點找錯,但中斷點也不是下越多越好。

  一開始不是很熟悉的時候就會下很多,所以在找錯的時候就會時間,現在比較熟悉就會知

  道,應該先下在抓資料或是連接Controller的地方,因為常常會錯在這方,也可以從錯誤

  息,去一層一層地看有沒有抓到資料,或是哪個地方沒有跑進去,藉由下中斷我可以清楚且

  較有思路的去找出錯誤。

​    二、 非技術層面

 

(1) 筆記紀錄

  從一開始進公司上課,就有很多之前沒接觸過的技術,再加上開始寫表單,一次比一次複

  雜,難度也不斷的增加,面對龐大的資料量和新的問題,是不可能完全記在腦中的。而我在

  學校上課時也有隨時記筆記的習慣,只是之前都是用先截圖,再加筆記上去。

  但在上班之後,我學到了用onenote來做筆記,可以分類成不同的的筆記本,每個筆記本

  也可以新增很多的節,把每個專案分成一個筆記本,新學到的語法、專案的基本環境操作步

  驟和要注意的地方都記錄起來。在寫專案的當下,一定是記憶猶新的,但是在寫了很多專案

  後,要再回顧之前的做修改的話,就未必會記得當初的想法是什麼,所以隨時把新的、不熟

  的東西記起來,之後再遇到就可以參考之前的筆記,也不會一直重複問一樣的問題。

(2) 安排進度

在接到一個新專案之後,會給一個deadline,必須在這個時限內做好整個系統,並且佈上qas再請正職測試,確定沒問題之後,才會將這個系統交給user去做測試。通常已經和user說好的deadline是不能延長的,所以要自己安排好每天或是每周必須完成的進度,還有紀錄哪些部分已經完成了,好去安排下周的新進度,這樣也能讓自己在期限內完成,甚至提早交件給user。

(3) 溝通技巧

我們實習生接到的專案,都是透過正職和user開會溝通,將user需要做出的介面、功能寫成spec檔,再來和我們解釋流程,並照著spec檔去作出系統表單。

因為不是直接和user溝通,所以可能會有些地方不是很清楚,這時候就需要去詢問正職,就算是在spec上已經擬定好的介面,也有可能和user想顯示的方式有所出入,如果照著自己的想法去做,最後正職測試時,有可能會想改成別的方式,所以遇到類似的問題,一定要好好地問清楚,不然等測試之後再花時間去做修改,會蠻浪費時間的,也會延後自己的進度。

​參、自我評估和心得感想

 一開始進公司對環境很陌生,也太不了解工作內容。在教育訓練開始的時候,因為是和別的部門的人一起上課,所以我對於自己在實際操作還有練習上很多問題,而感到不知所措,有點跟不上大家,讓我感到有點自悲,也不知道自己能不能勝任這份工作。

 

正式拿到第一份專案後,我根據在課程作的筆記,將資料庫做連接,並且慢慢的將表單UI的樣子呈現出來,感覺到自己有把上課上到的學起來,也慢慢找回了自信,最後也成功完成了第一份專案。雖然在寫的過程中,難免會遇到自己不會的,而花很多的心力在寫一個地方,但是儘管如此,我也不會因此而喪氣,反而因為學到了新的語法而感到開心。

 

能夠進日月光實習真的很幸運,在這裡我可以學到很多寫程式、做專案的技巧,從一開始不太了解,到現在能大致聽懂user的需求,加上主管同事人都很好,雖然他們都很忙,但是在我有問題時,都會停下手邊的工作,很有耐心地教我。

 

很慶幸自己選擇了校外實習,在大三前我對於未來很迷茫,甚至不知道自己能做什麼,即便認真的讀書拚名次,也不知道在職場上是否真的用的到我所學到的技術。開始實習之後,我對於工作更加了解,也比別人先步入了職場學習,在我很多朋友到現在還沒有目標,對於未來還是未知時,我已經有了對未來的目標和方向。

​肆、對系上的建議

(1) 面試

系上幫我們找了不少公司,這次甚至有更多的選擇,在第一階段我也很順利的全部通過,但因為系上沒有對面試做太多的說明,因此我並不知道面試當天是要自己去排隊等待的。​直到當天聽工作人員憑自己的經驗,說有些公司太久或太多人,有可能面試不到時,我真的很慌,因為有些公司只面試早上,有些突然通知到十一點就要先離開,甚至有公司提早收工跑去威尼斯吃飯一直不回來,工作人員沒有聯絡電話,通知不到人,讓只剩那間沒面試的學生,在外面站著乾等了將近一小時。

我覺得這些都是可以事前先和公司規定或是通知的,希望之後的面試程序上能有所改善,提供學弟妹更良好的面試環境。

(2) 學術

 希望兩班的程式課程能統一,並且能學習多一點的程式語言,像是加上java的選修,讓每個人都有學習的機會,尤其java是現在普遍會在業界使用的程式語言,開設相關課程,能讓學弟妹更有程式的基礎,未來的工作如果有涉及到程式設計也會比較好上手。

​===========================================================================

​壹、暑期工作內容

​    一、工作詳述

 暑期的工作和之前的差不多,也有接觸到新的功能,像是更加複雜的流程、寫列印表單的功能、批次簽核等等,這些都是我在暑期工作中新接觸到的,也增進了我寫程式的能力。

​流程:

以往寫的流程都是在簽核時,表單如果被user 拒絕,流程會跑回最初開單者那關,重頭跑簽核流程。

但這次寫的流程變成,拒絕後雖然也會跑回開單者那關,但當送出表單之後,下一關會跑到被user拒絕時的關卡。

​所以要另外寫json存取被拒絕的關卡,當開單者重送單時,讓程式判斷並跑到被拒絕的關卡做簽核。

​Next Step 就是判斷當重送單之後,接下來會往哪走。

Flow-redacted.jpg

列印功能:

簽核過程中,當按下列印按鈕,會顯示列印的UI。

表單UI2.jpg

列印畫面 : 點選列印按鈕,會開啟列印功能

列印UI-redacted.jpg

開啟列印功能 :

​點擊右上角的列印按鈕,即開啟列印功能。

列印-redacted.jpg

批次簽核功能:

以往簽核都是,開啟表單,點選表單內的簽核紐,一張一張進行簽核。

這次新接觸到批次簽核的功能,讓user在portal頁就可以多張表單同時簽核,加速簽核流程。

批次簽核UI-redacted.jpg

​開始批次簽核 : 勾選表單,點擊批次簽核,跳出簽核視窗,就可以開始做簽核了。

批次簽核(簽核)-redacted.png

​    二、暑期實習期間完成的進度

 

                          暑期共接到四支系統,已完成三支。

暑期完秤進度-redacted.jpg

​貳、學習心得感想

 從進公司到現在也有半年的時間了,一開始真的很多問題,只要是沒寫過得常常都會有錯,時不時就會去問學長姐,但隨著寫的系統越來越多,發生問題也可以自己找出解決辦法,遇到沒寫過的地方,也可以從參考其他人寫的程式中,自己寫出來。當然畢竟歷練不夠,還是會有解決不了的問題需要請教正職、學長姐,但相較於之前,現在問問題的次數很明顯減少了很多,對於自己在這段期間有所成長感到很開心,在之後工作上也要加把勁,希望能像學長姐一樣厲害。

 

bottom of page