iT邦幫忙

2021 iThome 鐵人賽

DAY 1
0
自我挑戰組

日常任務成長紀錄系列 第 1

LibShare-typeOrmGenerator

  • 為什麼要寫這篇呢?

    新任務開發總會遇到一些麻煩的前置動作(ex. 設計DB schema 、建立table 、準備ORM 使用的entity..),這些動作雖然繁瑣,不過卻要小心仔細,否則後續錯誤就會手牽手一個個跑出來,到時候反覆修改耗費時間與心力,更讓人覺得阿雜,以前覺得有就好了拉~,現在開始注重精準這件事,這就是成長嗎?XD

    今年要紀錄的套件是 typeorm-model-generator ,是他讓我可以不用在型別字裡行間掙扎、是他讓我獲得開發中悠閒喝一杯咖啡的時間、說讓我延緩老化都不為過,他的主要的功能是,直接幫你從 已經開好的DB 轉成為 專案中使用的Entity,而且關聯關係也幫你照顧到囉~

    ref: https://www.npmjs.com/package/typeorm-model-generator

  • 有什麼重點呢?

    • 什麼是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似乎都沒有處理,也遲遲等不到最新的更新,因此作者認為目前開發新功能已非他的最高優先.
      所以我會把這件事放心裡、並注意是否有相關資料缺失的情況,但至少在現有的專案下,這依舊是一個好用的工具呢

  • 所以咧

    • 趁這這次機會了解了ORM觀念,以前看不懂,這次在了解就大概知道在做啥了
    • 開發過程中,可以花一些時間找幫助開發的小工具(省時、省心力、提高正確性),讓自己有愉快的開發生活
    • 使用套件前,可以先注意套件目前的年紀、短期更新頻繁度、issue內容、下載數量等,幫助自己評估套件的支援性、穩定性等

下一篇
DB 常見dataType 介紹
系列文
日常任務成長紀錄30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言