title: 化繁為簡:01 資料庫篇
date: 2021-06-22
categories: Projects
keywords:


img

前言

近年來在軟體開發領域可以說是必修課程越來越多,只會寫程式的人(Coder)似乎不能再稱作程式設計師(Programmer),一些比較有制度的公司也會透過教育訓練來提升軟體品質,但是就專案類型的公司似乎很難進化,因為不論是新技術或是新架構的導入都會有很多問題要突破,例如:人員流動率、專案交期,有些專案甚至是接案後才開始找人,所以很多新東西都變成遙不可及的理想甚至是幻想,今天筆者分享一些委屈求全的經驗。

資料庫

筆者這幾年除非客戶指定,否則資料庫幾乎都使用 PostgreSQL,它在DB-Engines穩居第四,最重要的是免費的,而且功能十分齊全,對於經費有限的專案來說是不錯的選擇。
img

接下來我們針對資料庫的表單設計做出一些規範:

備份、還原

“不怕一萬、就怕萬一”,以往筆者其實都沒有在意這件事情,知道資料庫有備份還原功能,但是從來都沒有去玩過,心中都是抱著出問題時在求助於 Google 大神,但是現在這種網路發達時代,惡意的駭客入侵、勒索病毒事件層出不窮,所以如何快速還原系統就變得很重要,因為這可能會是攸關公司營運的問題。
所以對於自己系統所使用的資料庫,應該至少把備份還原的操作方式或是指令記錄在專案的說明文件內,筆者每天進辦公室第一件事就是備份資料庫,並把備份檔複製一份到 NAS 上。
img

PostgreSQL 也可透過視覺化工具 pgAdmin 來執行備份與還原,有興趣的可以參考上一篇:PostgreSQL 安裝、備份、還原

後記

不知道現在還有多少人聽過資料庫管理師(Database Administrator, 簡稱DBA),感覺起來大概只剩金融業、物流業或是電商平台這類資料增長快速的領域會有專屬的 DBA 之外,很多都是 MIS 兼任,出問題負責通知廠商,因為資料庫也都是由承接專案的廠商自行規劃,而大部分的開發商都是由負責的程式設計師自行發揮,也就導致現在開發又區分為 Code First 與 Database First,因此會使用資料庫進階功能的機會越來越少(使用的越多代表可以接手的人也就越少),對不少程式設計師來說資料庫跟 Excel 差不多,僅是用來存放資料而已。

如果你有著新鮮的肝,那就盡力讓好還要更好,努力朝理想方案前進,因為任何的偷工減料都是有相應的代價。如果需要帶領參差不齊的團隊完成專案,那麼你往往只能從一堆不好的方案中挑選可行方案,所以看開一點,換個角度想想,你的可行方案已經幫助客戶向前一小步了,雖然距離理想還很遙遠,但是至少不是停留在原地,據說,賈伯斯一開始是想要推出 iPad 的,只是因為當時的觸控技術無法符合預期,在無奈之下只能妥協先推出小尺寸的 iPhone,如今觸控技術已經十分成熟了,但是 iPhone 依然是 Apple 最大的營收來源,反過來說,如果當時強制推出 iPad,那 Apple 一樣有辦法跟現在一樣強大嗎?沒人能保證吧!