好煩啊,我真的不想寫增刪改查了!

大家好,我是程序員魚皮。

很想吐槽:我真的不想寫增刪改查這種重復代碼了!

大學剛做項目的時候,就在寫增刪改查,萬萬沒想到 7 年后,還在和增刪改查打交道。因為增刪改查是任何項目的基礎功能,每次帶朋友們做新項目時,為了照顧更多同學,我都會帶大家把增刪改查的代碼再編寫并講解一遍。

不開玩笑地說,我絕對有資格在簡歷上寫 “自己精通增刪改查的編寫” 了!

相信很多已經在工作中的小伙伴,80% 甚至更多的時間也在天天寫增刪改查這種重復代碼,也會因此感到煩惱。那大家有沒有思考過:如何提高寫增刪改查的效率?讓自己有更多時間進步(愉快摸魚)呢?

其實有很多種方法,魚皮分享下自己的提效小操作,看看朋友們有沒有實踐過~

如何提高增刪改查的編寫效率?

方法 1、復制粘貼

復制粘貼前人的代碼是一種最簡單直接的方法,估計大多數開發者在實際工作中都是這么干的。

但這種方式存在的問題也很明顯,如果對復制的代碼本身不夠理解,很有可能出現細節錯誤。而且不同數據表的字段和校驗規則是不同的,往往復制后的代碼還要經過大量的人工修改。

還有很多 “小迷糊”,經常復制完代碼后忘了修改一些變量名稱和注釋,出現類似下面代碼的名場面:

// 帖子接口
class UserController {
}

方法 2、使用模板

一般新項目都是要基于模板開發的,而不是每次都重復編寫一大堆的通用代碼。比如我之前給編程導航同學編寫的 Spring Boot 后端萬用模板,內置了用戶注冊、賬號密碼登錄、公眾號登錄等通用能力。基于這種模板二次開發,能夠大大提高開發效率,也有助于開發同學遵循一致的規范。

模板支持的功能

然而,使用模板也存在一些風險,如果模板本身有功能存在漏洞,那么所有基于這個模板開發的項目可能都會存在風險。而且別人的模板也不是萬能的,建議還是根據自己的開發經驗,自己沉淀和維護一套模板。對團隊來說,沉淀模板是必須要做的事。

方法 3、AI 工具

利用 AI 工具來生成增刪改查的代碼是一種新興的方法。只需要甩給 AI 要生成代碼的表結構,然后精準地編寫要生成的代碼要求,就可以讓 AI 快速生成了。

這種方式的優點是非常靈活,能幫開發者提供一些靈感;缺點就是對編寫 prompt(提示詞)的要求會比較高,而且生成后的代碼還是得仔細檢查一遍的。

方法 4、超級抽象

這是一種更高級別的代碼復用方法。通過設計 通用的 數據模型和操作接口,實現用一套代碼滿足多種不同業務場景下的增刪改查操作。

舉個例子,如果有帖子、評論、回答等多個資源需要支持用戶收藏功能,系統規模不大的情況下,不需要編寫 3 張不同的收藏表、并分別編寫增刪改查代碼。而是可以設計 1 張通用的收藏表,通過 type 字段來區分不同類型的資源,從而實現統一的收藏操作。

像點贊、消息通知、日志、數據收集等業務場景,都可以采用這種方式,通過極致的復用完成快速開發。

但也要注意,千萬不要把區別較大的功能強行合并到一起,反而會增加開發者的理解成本;而且如果系統數據量較大,分開維護表更有利于系統的性能和穩定性。

方法 5、代碼生成器

這也是非常典型的一種提高增刪改查效率的方法。后端可以使用 MyBatis X 插件來生成數據模型和數據訪問層的 Mapper 代碼,前端可以用 OpenAPI 工具生成請求函數和 TS 類型代碼等。

不過用別人的生成器難免會出現無法滿足需求的情況,生成后的代碼一般還是要自己再修改一下的。

所以,我建議可以使用模板引擎技術,自己開發一套更靈活、更適合自己業務的代碼生成器。

比如魚皮給后端萬用模板補充了代碼生成器功能,使用 FreeMarker 模板引擎技術實現,定制了 Controller、Service、數據包裝類的代碼模板。用戶只需要指定幾個參數,就可以在指定位置生成代碼了~ 昨天 AI 答題應用平臺的開發中,就是用了這個代碼生成器,幾分鐘寫好一套功能。

可以在代碼小抄閱讀生成器的核心實現代碼:https://www.codecopy.cn/post/edkpo4 。之前我從 0 到 1 直播帶大家開發過一個 代碼生成器共享平臺 ,感興趣的同學也可以學習下,保證能把代碼生成玩得很熟練~

方法 6、云服務

這種方式也比較新穎了,利用某些云服務提供的現成的數據庫和操作數據庫的接口,都不需要自己去編寫增刪改查了!

比如我之前用過的騰訊云開發 Cloudbase,開通服務后,只要在平臺上建號數據表,就能自動得到數據管理頁面,可以直接通過 HTTP 請求或 SDK 實現增刪改查,尤其適合前端同學使用。

但這種方式的缺點也很明顯,靈活性相對差了一些,而且會產生一些額外的費用。

所以還是那句話,沒有最好的技術,只有最適合自身需求和業務場景的技術。


以上就是本期分享,也歡迎朋友們留言分享自己的好方法。

可訪問我的 Github:https://github.com/liyupi ,了解更多技術和項目內容。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/13057.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13057.shtml
英文地址,請注明出處:http://en.pswp.cn/web/13057.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

性能測試工具—jmeter的基礎使用

1.Jmeter三個重要組件 1.1線程組的介紹: 特點: 模擬用戶,支持多用戶操作多個線程組可以串行執行,也可以并行執行 線程組的分類: setup線程組:前置處理,初始化普通線程組:編寫…

springboot+vue+mybatis物業管理系統+PPT+論文+講解+售后

快速發展的社會中,人們的生活水平都在提高,生活節奏也在逐漸加快。為了節省時間和提高工作效率,越來越多的人選擇利用互聯網進行線上打理各種事務,通過線上物業管理系統也就相繼涌現。與此同時,人們開始接受方便的生活…

Swift頁面的跳轉和返回

之前一直使用的OC,現在也有不少人使用Swift,我也嘗試一下,寫一個簡單又基礎的功能:頁面的跳轉和返回。這里將顯示幾個swift文件的代碼。 文件Common.swift的代碼: // // Common.swift // MySwiftProject // // Cre…

怎樣讓貓給啥吃啥?生骨肉凍干拌糧哪有貓咪不吃的!

隨著科學養貓的普及,生骨肉凍干喂養越來越受歡迎,生骨肉凍干喂養對貓的好處很多,它符合貓咪的天性,可以提供全面的營養,保持牙齒和牙齦的健康,還有助于維持健康的消化系統。然而,許多貓主人在選…

考研操作系統-1.計算機系統概述

目錄 操作系統功能 操作系統的發展與分類 操作系統的運行環境 操作系統的體系結構 王道考研操作系統-1.計算機系統概述 操作系統 是指控制和管理整個計算機系統的硬件和軟件資源,合理地組織調度計算機的工作和資源的分配;提供給用戶和軟件方便的接…

PHP類和對象概念及用法

類和對象的關系 可以將類看成為一件模具,倒入不同的材料(屬性和方法),這些材料用于構建獨特的對象 類的基本組成部分 屬性:類中的變量,用于儲存數據 方法:類中的函數,用于操作和訪問類的屬性 類及其屬性和方法的創建…

GDPU 競賽技能實踐 天碼行空 期末小測

1. 除法(原題) 👨?🏫 實驗二:1.簡單枚舉 輸入正整數n,按從小到大的順序輸出所有形如abcde/fghij n的表達式,其中a~j恰好為數字0~9的一個排列(可以有前導0&a…

復雜json解析(其中有一個key的value是json格式的字符串)

app上報的參數如下: {"clientId": "8517895440514039afcf6d3e5d7832ae","dua": "SNDOCKCJPH90_GA&VN900042418&BN0&VCXiaomi&MOM2012K11AC&RL1080_2239&CHIDunknown_unknown&LCID&RV&OSAndroid13&…

邦注科技 即熱式節能模溫機的原理及應用介紹

模溫機是一種用于控制模具溫度的設備,它在各種工業領域中發揮著重要作用,特別是在塑料加工行業中。以下是關于模溫機的原理及應用的詳細介紹: 原理 模溫機的工作原理主要是通過加熱和冷卻功能,維持模具溫度在一個恒定的范圍內。…

Hadoop 3.4.0 項目實戰

1環境基于 上一篇搭建 高可用分布式集群 2 官方提供MapReduce程序 #評估圓周率 cd /data/hadoop/share/hadoop/mapreduce/ hadoop jar hadoop-mapreduce-examples-3.4.0.jar pi 2 6 3 實例項目分析1 #預分析的文件如,如單詞統計 # #上傳文件到hdfs hdfs …

SOLIDWORKS 2024云服務新功能

一、簡單的分享一下,在線觀看,輕松標記 在達索系統SOLIDWORKS 2024云服務中,您只需在達索系統SOLIDWORKS中點擊按鈕,就可以將當前的設計分享給其他人,無論是客戶、供應商還是團隊內部成員。共享的用戶只要打開瀏覽器里…

Python中的exec()函數,動態執行代碼的利器

簡介 在Python編程中,exec()函數是一個強大的工具,它允許你執行存儲在字符串或對象中的Python代碼。這種動態執行代碼的能力為腳本編寫、自動化測試、以及快速原型開發提供了極大的便利。 exec()函數的基本用法 exec()函數可以執行作為字符串輸入的Py…

一本專業130+總分400+上海交通大學819考研經驗上交電子信息與通信工程上岸,真題,大綱,參考書。

今年專業課819信號系統與信號處理130,總分400,復試表現中規中矩(初試分數查到才開始復習復試,希望大家汲取教訓,初試考完就可以錄取開始準備復試),交大初試比重很高,良心學校&#x…

LeetCode58.最后一個單詞的長度

題目鏈接: 58. 最后一個單詞的長度 - 力扣(LeetCode) 分析:普通的模擬題,只要有基本的算法思想就可以掌握。 算法思路:要統計最后一個單詞的長度,所以我們只要找到最后一個單詞出現的起始和終…

ASP.NET在線畢業論文提交系統的設計與實現

摘 要 本設計就很好的解決了上面的問題,它不但能實現畢業生論文的在線提交;還能給教師一定的權限,以在線的方式對自己指導的學生的論文進行審核;并且管理員還可以方便的將每個學生的論文信息按統一的論文排版本格式導出成word文…

高并發-線程池面試

文章目錄 高并發-線程池2024心得好的博客必會面試題為什么使用線程池線程池的實現原理線程池的拒絕策略阻塞隊列已滿,在提交任務會發生什么問題threadlocal原理和使用多線程配置 高并發-線程池2024 心得 面試都是圍繞著三高展開,高并發,高可…

洗衣洗鞋店做小程序有什么優勢?

互聯網洗衣洗鞋小程序閃亮登場,想知道這款小程序有何魅力嗎? 如今,眾多商家紛紛推出預約上門洗鞋服務,💁?♀?并傾力打造洗鞋小程序,旨在拓展線上銷售渠道。🌟那么,這款洗鞋小程序究…

Oracle數據庫的CURRENT SCN

數據庫的CURRENT SCN是Oracle當前最大的SCN,可以通過多種方法獲取該SCN: 1、直接從內存中獲取。由于當前最大SCN存儲在fixed sga中,因此可以通過Oracle debug工具DUMP kcsgscn結構體獲取內存中的最大SCN。在下面的程序中,BA371為1…

網絡配置的加密存儲

隨著數據泄露事件的增加,擾亂了公司的正常工作周期,企業遭受了損失。事實上,數據泄露可以通過存儲加密來控制,存儲加密是防止黑客對網絡數據庫造成嚴重破壞的最有效方法之一。在網絡配置管理器中,存儲加密可用于存儲設…

SpringBoot解析MyBatis預編譯SQL

pom.xml <profile><!-- 開發環境 --><id>dev</id><activation><!-- 默認激活 --><activeByDefault>true</activeByDefault></activation><properties><spring.profiles.active>dev</spring.profiles.ac…