概述:
每年壽險公司都須將保戶的相關資料送件至中央管理的機構作保存備存,以便國家主計處的統計還有,相關理賠資料的國家備份,以保障國家人民的保險讓中央可以記錄與統計。因壽險公司保戶的資料須比照相關規格與要求,且規格與要求是會有所變動的,如未符合相關規範規程做調整,壽險公司會被註記,註記過多會受到中央的一些指導調整或懲罰,而送報件資料隨便都是幾千萬或幾億筆,有藉於此,所以需要開發相關的修正作業修正系統以規範化和批量化的調整相關資料已符合需求填報文件。
整體專案說明:
受保護的內容: [專案成就]送報件資料修正輔助系統(專案🔒)
簡介:
.成效:
- 資料修正流程正確性規劃
- 減少原本所需人力。
- 使用背景作業雙系統的模式,讓操作者,可以不盯著網站。
- 資料修正統一性規畫設計。
- 險種規則修正模式統一化。
.擔任規劃者、小組長,主導使用新技術,進行設計、規劃、前後端、資料庫,完成專案
.專案主要內容:
1. 千萬筆資料修正輔助與修正預覽
2. 產送報件報告書
3. 權限架構開發
4. 錯誤記錄、Log管理
註:專案內容多屬公司機密,僅截取重要資訊
使用技術:
Front End
HTML5、 CSS3、jQuery 、Bootstrap4、RWD
Back End
C#.NET:
.Net core 3.1 MVC
Razor Page、PartialView、ComponentView、DI(依賴注入)、Linq、ViewModel、EntityFrameWork Core、Dapper、Identitiy、Athorization、Filter
Database
MSSQL:
資料庫規劃 主鍵、外鍵、Join、View檢視表、Try-catch、transation
撰寫Stored Procedure(預存程序)、Function(函式)
資料庫定序、Agent、效能調校、DeadLock處理、
版控、雲部屬、資安
Git:
Git Diff、Git產生差異報告書,利用html呈現、Git只複製出 差異檔 做更新
其他、工具
軟體開發工具:VisualStudio、VisualStudio Code
開發工具外掛:ReSharp
開發流程圖製作:Draw.io
辦公室應用類:Word、Excel
過程經歷:
技術挑戰:新技術.Net core
.NetCore的物件WindowsIdentity,一個模擬微軟系統使用者操作的物件,在Framwork時代此物件在做跨網域(網路上的芳鄰)時,都可以很順利的去使用,而使用.NetCore在做此動作的時候,除了寫法改變以外還問題連連,一直無法好好模擬,最後放棄轉彎,同事找到一個可以替換的套件,直接套上,成功!
.NetCore的語系是萬國碼unicode,而微軟系統的電腦預設繁中語系是Big-5,所以在進行文件和檔案操作的時候,輸出的檔案都變成亂碼,後來使用套件多做一層修正完成。
.NetCore 在做權限管理的時候,我使用RBAC(基於角色的權限)的權限管理方式並需要連結資料庫去判斷是否可以執行該Action,我一直找不到相對應的教學,自己也卡了好幾天,好幾夜,最後發文在FB相關社團詢問,下方廣大的大神丟了一些連結與教學!!東拼西湊下解決了我的問題!👍超讚👍現在回首看看其實不難 哈
…等 以上只大致列出讓我困擾比較久的。
技術挑戰:Git版本更新報告書、差異更新
產生可視化報告書,使用Git撰寫相關程式,代替過去公司都是一一人為核對的痛苦更新狀況→[Git]🔒Git diff產生程式異動對照可視化報告書 真的幫公司超大。
差異更新,查了很多種方式,也搜尋到相關的內容知識,終於找到了產生差異檔案的方式,代替過去公司都是人為一一核對的狀況→[Git]使用 TortoiseGit 只匯出在特定版本中新增或修改過的檔案
技術挑戰:前端、Jquery的相關套件 DataTables..等
用Jquery套件 DataTables 大量使用去代替.NetFramework的gridview→ [FrontEnd]HTML -DataTables元件-基礎使用 除了此基礎以外,還有官方網站的各種功能,解決了很多非常特殊的需求,尤其是那個欄內搜尋功能
封裝AJAX Fetch,盡量統一標準化相關的使用與標頭
技術挑戰: 資安 AppScan弱掃、Fortify原馬掃
超昂貴的Fortify原馬掃之前我們使用免費的SonarQube和Resharp進行相關掃描 大幅減少掃描出來的狀況。
昂貴的AppScan弱掃,一一處理,大致上網路上找得到相關處理方式
偽造跨網站攻擊(中)和HttpOnly(低)兩項資安問題會有發生互衝,但其實也不算甚麼問題,透過解釋進行處理。.net core自帶的ai_session、ai_user裡個cookie會造成弱掃誤判為登出之後未使階段作業失效(高)。透過解釋進行處理。
專案挑戰:新技術.Net core
本專案算是以公司的角度發展上第一次開始用.Net Core 3.1 MVC,原本公司的底層都是使用.Net Framework 4.7 WebForm,而公司的教育訓練則是以公司所設計的底層作為學習開發,對我來說也算是第一次使用C#完整做一個收費專案,所以在此專案上開始使用.Net Core Mvc,對於我或是我的組員、公司都是一定程度上的挑戰,也很開心公司也有意願讓我帶領下去使用.Net Core。
用新技術意味著需要學習,在帶組員學習的過程中,自己必須要先行學會並應用,而在此專案的時空背景情況下,市面上與網路上其實是非常少關於.NetCore的相關中文教學,所以相關資訊都是從對岸或是外國帶進來,後來在決定使用此技術框架以前,我就已經準備好了(下班時間) 很多線上課程、範本專案、自己整理的一些專案庫、故意去認識一些講座上的朋友,以便後續使用,而課程也都是自己也整體閱讀學習過,在需要的時候在立刻打開查看並使用。
專案挑戰:使用Git
公司使用SVN多年,公司本身並沒有轉換至使用git,主要是因為我覺得Git的生態圈已經相對的成熟,且相對應教學已經相當完善,所以直接投入專案並使用,讓同事直接實做使用此技術,中途同事也因為操作不當造成專案部分蓋錯損毀,但是都在可承受範圍內,讓同事組員可以真正將此習慣融入實做中並理解git flow 和gitlab flow。
專案挑戰:承辦人多、各部門各司其職
甲方公司是台灣知名大的金控公司,每個承辦人各司其職,然後一開會就是20~40人對我們2-4個工程師瘋狂詢問和提出需求、懷疑、挑戰、抱怨😩、砲火猛烈、凹你..等,開會時間長且滿喜歡開會,白天上班開會幾乎一整天,就直接壓隔天更新好並上版☹,身為乙方說實話,很多的苦水都只能吞下去,搞得我們六日和下班時間都在趕專案,後來解決此狀況的方法是 配置1至2個產值較低的組員去兼一點PM角色(因為很多時候價金是會被凹到未包含PM的錢),專門與這一群人開會並紀錄下相關問題,不熟的地方就說要與資深專職的再討論,遇到一些問題就說會再跟該開發的工程師討論,現在這邊先記錄下問題點,而其他的工程師,趁這段期間盡快的完成專案內容,並且在旁聽(有滿多時候是線上會議)到相關問題的時候,也盡快的進行修正,明確分工作業內容、更妥善的運用時間,避免造成產值高的工程師開發時間被占用。