卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java web 寫JAVA后端代碼時(shí)邏輯混亂怎么辦?

寫JAVA后端代碼時(shí)邏輯混亂怎么辦?后端代碼的復(fù)雜性是通過(guò)除法和規(guī)則來(lái)解決的。首先,通過(guò)拆分項(xiàng)目,項(xiàng)目之間可以存在依賴關(guān)系,但必須是單向依賴而不是環(huán)依賴。如果存在環(huán),我們必須考慮將環(huán)依賴分解為單獨(dú)的項(xiàng)

寫JAVA后端代碼時(shí)邏輯混亂怎么辦?

后端代碼的復(fù)雜性是通過(guò)除法和規(guī)則來(lái)解決的。首先,通過(guò)拆分項(xiàng)目,項(xiàng)目之間可以存在依賴關(guān)系,但必須是單向依賴而不是環(huán)依賴。如果存在環(huán),我們必須考慮將環(huán)依賴分解為單獨(dú)的項(xiàng)目來(lái)解決環(huán)依賴。

對(duì)于項(xiàng)目中的代碼,可以通過(guò)水平拆分和垂直拆分來(lái)降低復(fù)雜性。水平層分為控制器、服務(wù)、Dao和sqlmap,垂直層分為系統(tǒng)、biz1、biz2、Bizn,但在數(shù)據(jù)通暢連接中,水平拆分和垂直拆分相結(jié)合,如下圖所示:

通過(guò)這種分層方式,代碼層是分開的,結(jié)構(gòu)清晰。對(duì)于一些跨模塊調(diào)用的接口,如同一個(gè)數(shù)據(jù)表需要在不同的模塊中操作時(shí),可以將該接口作為公共接口升級(jí)到上層cxmodule,對(duì)于一些可重用的、相對(duì)獨(dú)立的功能,可以在cxmodule中定義一個(gè)干凈的接口,業(yè)務(wù)邏輯可以通過(guò)在模塊的功能模塊中實(shí)現(xiàn)接口來(lái)實(shí)現(xiàn),而不需要使用spring的事務(wù)管理機(jī)制,從而降低代碼的復(fù)雜度。

做程序時(shí),如果某個(gè)查詢方法應(yīng)當(dāng)返回一條記錄,但是查出來(lái)多條,是拋異常好還是從多條中取第一條好?

我有10年的開發(fā)和培訓(xùn)經(jīng)驗(yàn)。在此期間,我經(jīng)歷了Java、web、Android、H5、大數(shù)據(jù)、PHP等不同的發(fā)展方向。我也是軟件培訓(xùn)公司的金牌講師。我對(duì)回答這個(gè)問(wèn)題很感興趣。

您已經(jīng)清楚地解釋了這個(gè)問(wèn)題中的要求,“一個(gè)查詢方法應(yīng)該返回一條記錄,但是可以找到多條記錄”!也就是說(shuō),您的查詢應(yīng)該只有一個(gè)結(jié)果,但此時(shí)或某個(gè)時(shí)候,會(huì)有多個(gè)結(jié)果,這意味著您的業(yè)務(wù)接口可能不滿足冪等性的要求。根據(jù)冪等設(shè)計(jì)原理,無(wú)論怎樣查找,只要參數(shù)相同,返回的結(jié)果應(yīng)該是相同的。

那么如何解決這個(gè)問(wèn)題并拋出異常呢?返回到幾個(gè)中的第一個(gè)?

我認(rèn)為這不是一個(gè)完美的解決方案。

這對(duì)某些人來(lái)說(shuō)是一個(gè)解決方案,但是問(wèn)題解決了嗎?一點(diǎn)也不!問(wèn)題仍然存在。下次觸發(fā)此條件時(shí),仍將引發(fā)異常。就像說(shuō)森林里有一只老虎。有一天,它吃人,然后你不解決老虎的問(wèn)題。你只是在森林里掛了一塊牌子,上面寫著:小心,里面有老虎!這…

事實(shí)上,這不是一個(gè)好辦法。也許只有一件東西應(yīng)該被退回。為什么要查詢多個(gè)項(xiàng)目?您是否檢查了數(shù)據(jù)庫(kù)中數(shù)據(jù)的唯一性?你不覺得每次查詢多個(gè)結(jié)果然后得到第一個(gè)數(shù)據(jù)效率很低嗎?

所以我們應(yīng)該從根本上解決問(wèn)題!為什么會(huì)產(chǎn)生多個(gè)數(shù)據(jù)?如果要手動(dòng)檢查數(shù)據(jù),則需要手動(dòng)檢查。如果要鎖定它,應(yīng)該盡最大努力確保輸入?yún)?shù)相同,結(jié)果相同!