回答:軟件項(xiàng)目本身會(huì)有很多分類。在IT傳統(tǒng)項(xiàng)目/內(nèi)部系統(tǒng)中,往往仍有很多項(xiàng)目采用復(fù)雜邏輯寫入sql或存儲過程的做法。當(dāng)然并不代表這個(gè)做法是最佳的。還是先拋出結(jié)論。單單從技術(shù)角度講,是絕不應(yīng)該將復(fù)雜邏輯寫入sql的。如果題主對原因不敢興趣,看到這里就可以了。下面我會(huì)簡單解釋下這么做的一些原因。首先,先說說傳統(tǒng)IT服務(wù)類項(xiàng)目。類似,電信,政企,銀行,XXX管理系統(tǒng),XXX運(yùn)維系統(tǒng)。這類項(xiàng)目往往是國企,事業(yè)單...
回答:目前大部分研發(fā)團(tuán)隊(duì)都要求業(yè)務(wù)邏輯用代碼來實(shí)現(xiàn),SQL操作往往都是基本操作。用SQL來表現(xiàn)業(yè)務(wù)邏輯,也就是通過存儲過程的方式來表現(xiàn)業(yè)務(wù)邏輯是比較傳統(tǒng)的開發(fā)方案。在C/S時(shí)代很多邏輯的實(shí)現(xiàn)都是通過SQL來實(shí)現(xiàn)的,主要原因是業(yè)務(wù)規(guī)模和部署方式?jīng)Q定的。早期的C/S編程時(shí)代往往都是非分布式環(huán)境下的開發(fā),而且大多數(shù)情況下并不需要考慮移植性問題,此時(shí)采用SQL來完成業(yè)務(wù)邏輯是比較方便的處理方式。采用存儲過程來完...
... 詳細(xì)說明 基本的程序流程如上圖所示,從1到8。若業(yè)務(wù)邏輯比較簡單,可以直接跳過Service層,由Controller層直接調(diào)用Repository層。 各層次之間可以通過依賴注入聯(lián)系起來。 業(yè)務(wù)邏輯主要分布在Service層和Model層。Service層負(fù)責(zé)工作...
...法錯(cuò)誤示范二 def test: pass #語法錯(cuò)誤示范三 print(haha 2.邏輯錯(cuò)誤(邏輯錯(cuò)誤) #用戶輸入不完整(比如輸入為空)或者輸入非法(輸入不是數(shù)字) num=input(>>: ) int(num) #無法完成計(jì)算 res1=1/0 res2=1+str 什么是異常 異常就是程序運(yùn)行時(shí)...
...對象思想、敏捷開發(fā)論等。 追問程序本質(zhì)。 布爾代數(shù)的邏輯體系 布爾代數(shù)起源于數(shù)學(xué)領(lǐng)域,是一個(gè)用于集合運(yùn)算和邏輯運(yùn)算的公式:〈B,∨,∧,? 〉。其中B為一個(gè)非空集合,∨,∧為定義在B上的兩個(gè)二元運(yùn)算,?為定義在B...
...被 http-error 中間件捕捉到; 錯(cuò)誤會(huì)被中間件的錯(cuò)誤處理邏輯捕捉到,并進(jìn)行處理; 錯(cuò)誤處理邏輯根據(jù)錯(cuò)誤碼狀態(tài),調(diào)用渲染頁面邏輯; 渲染頁面邏輯渲染出對應(yīng)的錯(cuò)誤頁面。 可以看到,關(guān)鍵點(diǎn)就是捕捉錯(cuò)誤,以及實(shí)現(xiàn)錯(cuò)誤處...
...對象 let pro = new Promise(function(resolve, reject){ // 異步處理邏輯 // 處理完畢之后調(diào)用resolve或者reject }) promise對象跟其他普通對象的創(chuàng)建方法一樣,只需要new一個(gè)新的對象即可,接受一個(gè)函數(shù)作為參數(shù),并且該函數(shù)中的參數(shù)分別...
...下是白盒的,對代碼風(fēng)格和規(guī)則、程序設(shè)計(jì)和結(jié)構(gòu)、業(yè)務(wù)邏輯等進(jìn)行靜態(tài)測試,及早的發(fā)現(xiàn)和解決不易顯現(xiàn)的錯(cuò)誤。(2)集成測試:通過測試發(fā)現(xiàn)與模塊接口有關(guān)的問題。目標(biāo)是把通過了單元測試的模塊拿來,構(gòu)造一個(gè)在設(shè)計(jì)...
...理就顯得多余了。 繼續(xù)改進(jìn) 用函數(shù)表達(dá)式改善 try-catch 邏輯 當(dāng)然還有改進(jìn)的空間,比如 try {} 塊中的代碼比較長,會(huì)造成閱讀不太方便,try-catch 的邏輯有被切斷的感覺。這種情況下可以使用函數(shù)表達(dá)式來改善 async function asy...
...try finally來做clean up的工作。 10. 不要使用異常來控制程序邏輯流程 我們總是不經(jīng)意間這么做了,這樣使得代碼變更丑陋,使得正常業(yè)務(wù)邏輯和錯(cuò)誤處理混淆不清;而且也可能會(huì)帶來性能問題,因?yàn)楫惓J莻€(gè)比較重的操作。 11. 及...
...個(gè)流程里,數(shù)據(jù)結(jié)構(gòu)是確定的(事先約定),數(shù)據(jù)的處理邏輯是相同的(展示給用戶),如果在業(yè)務(wù)代碼代碼中重復(fù)的catch(e) { 展示給用戶 },就非常的不優(yōu)雅。本著Dont repeat myself(懶)的原則,需要對接口錯(cuò)誤進(jìn)行統(tǒng)一處理。...
...常 public void method() { try { // 代碼段① [正常業(yè)務(wù)邏輯代碼,此處不會(huì)產(chǎn)生異常] } catch (Exception e) { // 代碼段② [對異常處理的代碼段] } // 代碼段③ [正常業(yè)務(wù)邏輯代碼] } 運(yùn)行結(jié)果: 代碼段① 代碼段...
...步函數(shù)會(huì)很多。 首先想到的是把 try catch,以及 catch 后的邏輯抽取出來。 const handle = async (fn: any) => { try { return await fn(); } catch(e) { // do sth console.log(e, e.messagee); } } async function m...
...單例模式) 三、事件處理的松耦合處理 1、隔離應(yīng)用層邏輯 //不好的寫法 function handleClick(event){ var popup = document.getElementById(popup); popup.style.left = event.clientX + px; popup.style.top = event.clientY + p...
...一個(gè)很小的新功能都需要改動(dòng)很多地方,還對之前的代碼邏輯產(chǎn)生不小的影響。這使得我不得不對現(xiàn)有的項(xiàng)目進(jìn)行思考。 怎么樣才能把項(xiàng)目做的好一點(diǎn)或者更好?首先,在老板看來,他肯定希望今天提的需求可以立馬就上線。...
ChatGPT和Sora等AI大模型應(yīng)用,將AI大模型和算力需求的熱度不斷帶上新的臺階。哪里可以獲得...
大模型的訓(xùn)練用4090是不合適的,但推理(inference/serving)用4090不能說合適,...
圖示為GPU性能排行榜,我們可以看到所有GPU的原始相關(guān)性能圖表。同時(shí)根據(jù)訓(xùn)練、推理能力由高到低做了...