為什麼要寫這篇呢?
新任務開發總會遇到一些麻煩的前置動作(ex. 設計DB schema 、建立table 、準備ORM 使用的entity..),這些動作雖然繁瑣,不過卻要小心仔細,否則後續錯誤就會手牽手一個個跑出來,到時候反覆修改耗費時間與心力,更讓人覺得阿雜,以前覺得有就好了拉~,現在開始注重精準這件事,這就是成長嗎?XD
今年要紀錄的套件是 typeorm-model-generator ,是他讓我可以不用在型別字裡行間掙扎、是他讓我獲得開發中悠閒喝一杯咖啡的時間、說讓我延緩老化都不為過,他的主要的功能是,直接幫你從 已經開好的DB 轉成為 專案中使用的Entity,而且關聯關係也幫你照顧到囉~
有什麼重點呢?
什麼是ORM?
ORM (Object-Relational Mapping),我的理解是 將資料庫映射為物件,讓開發者可以直接透過操作物件的方式,存取資料,且通常ORM都會支援大部分資料庫操作(ex. mysql 、postgresql),這降低專案與資料庫的耦合,不會因為更換資料庫,而需要資料提取邏輯.
如果沒有使用ORM,那麼不僅要撰寫 raw sql ,且在後續更換資料庫時,需要花時間去調整對應心資料庫的sql,但其實使用 ORM 相對的,你需要依賴ORM幫你轉的sql語法,可能比較無法做效能的調整、複雜的sql,但大部分ORM 還是有提供讓你直接下sql的選擇的
ref:
ORM介紹及ORM優點、缺點 http://blog.twbryce.com/what-is-orm/
簡單說說這個套件吧
現況這個套件狀態為維護、但不開發新功能,每週下載量(5000~6000),根據作者說法是,目前typeOrm設計還是有些問題,導致資料缺失的情況,且重大issue似乎都沒有處理,也遲遲等不到最新的更新,因此作者認為目前開發新功能已非他的最高優先.
所以我會把這件事放心裡、並注意是否有相關資料缺失的情況,但至少在現有的專案下,這依舊是一個好用的工具呢
所以咧