這是我第一份正式軟體工程師工作。
在 QA engineer 的岡位上,我可以看到軟體開發的不同環節,得到從更宏觀的角度分析問題的機會。這幾個月的經驗,我深刻體會到開發流程、開發規範對於軟體研發有多重要,也確信自己要往一個專業的開發人員發展。
在宏燁資訊,我主要負責開發自動化測試工具,以及代理商品的安裝與升級等工作。除此之外,我也參與公司新政策的制定會議,幫助主管擬定新的專案管理制度草案。
該專案需要以舊有的測試腳本函式庫為基礎,製作更方便的工具,目標是讓只具有手動測試能力的使用者能透過該產品製作自動化測試腳本,以及提高撰寫自動化測試腳本的效率。
我在開發過程中,嘗試實作 MVC 架構,並在幾次介面更換的過程中體驗到 MVC 架構的優勢。
該專案需要以舊有的測試腳本函式庫為基礎,製作更方便的工具。目標是讓只具有手動測試能力的使用者能透過該產品製作自動化測試腳本,以及增加自動化測試腳本的撰寫效率。
致力於拓展與合作藝術家的合作,提升數位創作課程的師資陣容以 flask 架構實作 MVC 設計,達到前後端分離的效果。該架構以 Jinja2 實作 View ,用來呈現視覺介面;以python 實作 Control 與 Model ,用來與資料酷溝通與進行資料運算 。我將開發分為三個階段,分別是:1.工具優化;2.功能實作;3.功能擴展。
以物件導向的方式改寫,讓每個測試行為可以被獨立呼叫運行。並將函式庫中的函式區分出資料輸入、資料輸出、資料運算三種類型。
使用 jinja2 製作 View 樣板,增加開發速度與品質。以測試函式庫為基礎,製作 Model ,供 Control 呼叫,進行前後端互動。
引入資料庫取代與本地檔案互動的模式,將腳本檔案與使用者設定儲存於資料庫。替未來擴展至 web server 、cloud 等形式打下基礎。
通過這個專案,我進行了完整的全端實作,包括前端設計 View ,後端設計 Control 、Model 、建立資料庫。我在實作過程了解 MVC 架構的設計概念以及前後端分離的優勢。在過程中,我學習並應用了 flask 、Jinja2 、jQuery 、Boostrap 5、 MySQL 等技術,提升了我在開發架構、規劃和執行能力等方面的實力
該商品的安裝作業需要在 VM 之間建立連線關係,實作 AP 與 DB 角色;升級作業需要應用網域、 SSL 憑證等知識。
為了瞭解憑證在 Windoes 中是如何運作,我使用 OpenSSL 產生萬用 SSL ,並嘗試利用公司的 DNS ,在內網中建立一個有加密保護的連線網址。
藉著承接這項業務的機會,我精進自己對於網路連線運作的知識,對 DNS 運作與 SSL 憑證的信任機制有更多的了解。
我在公司擬定新的專案管理政策時提供工時預估與衡量 KPI 的意見。我提出權力階層的概念,認為考量到對業務的熟悉程度,工時應該交由最接近基層的組長來決定; 一段時間之後取得不同任務的平均工時,就有計算 KPI 的標準。
在這個架構中,主管管理組長、組長管理組員。小組成員的 KPI 總和影響組長的KPI 、部門的 KPI 總和影響主管的 KPI。這會讓不同層級的人員專注於自己階層應該處理的問題,避免事事躬親的狀況出現。
我所設想的制度可能還過於粗糙,但我相信隨著我對軟體公司運作有更多的了解,我會越能夠將政治系所學的專業應用在工作的每個環節中。