真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java寫業(yè)務(wù)代碼思路,如何寫業(yè)務(wù)代碼

如何寫好業(yè)務(wù)代碼

煙囪式開發(fā)模式:

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供桐廬網(wǎng)站建設(shè)、桐廬做網(wǎng)站、桐廬網(wǎng)站設(shè)計(jì)、桐廬網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、桐廬企業(yè)網(wǎng)站模板建站服務(wù),十年桐廬做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

上述開發(fā)模式有幾個(gè)弊端:

這樣開發(fā)模式的優(yōu)勢(shì):

業(yè)務(wù)代碼集中在業(yè)務(wù)層 service,專注于業(yè)務(wù)對(duì)象 bo 的封裝以及業(yè)務(wù)對(duì)象給展示層 vo的轉(zhuǎn)換,封裝復(fù)用邏輯,可以減少大量重復(fù)的代碼,后期維護(hù)便捷的多。

數(shù)據(jù)庫(kù)改動(dòng)只設(shè)計(jì)dao層,快速響應(yīng)各個(gè)業(yè)務(wù)。

業(yè)務(wù)代碼如何拒絕 all in one

以上的controller代碼最突出的缺點(diǎn)就是代碼完全無(wú)法復(fù)用,完全沒(méi)有使用到面向?qū)ο蠓庋b,集成,多態(tài)的特性。業(yè)務(wù)開發(fā)中,一般都是權(quán)限校驗(yàn),參數(shù)校驗(yàn),業(yè)務(wù)判斷,業(yè)務(wù)對(duì)象轉(zhuǎn)換數(shù)據(jù)庫(kù)操作。

我的做法是業(yè)務(wù)抽象,把公共代碼進(jìn)行抽取,通過(guò)配置的形式的方式調(diào)用,使業(yè)務(wù)代碼可以以可插拔的方式選擇指定的權(quán)限校驗(yàn),參數(shù)校驗(yàn)。簡(jiǎn)單來(lái)說(shuō),就是善用AOP面向切面編程的思想,示例如下:

使用aop對(duì)權(quán)限校驗(yàn)邏輯進(jìn)行抽取,能夠通過(guò)注解的方式指定哪些controller需要進(jìn)行權(quán)限校驗(yàn)。對(duì)用戶進(jìn)行數(shù)據(jù)過(guò)濾時(shí),使用controller的攔截器獲取該用戶擁有的各類權(quán)限,并把用戶數(shù)據(jù)保存在上下文threadloal中,并且通過(guò)配置對(duì)指定url進(jìn)行攔截。在業(yè)務(wù)層,從上下文拿到用戶權(quán)限數(shù)據(jù)做各類數(shù)據(jù)業(yè)務(wù)過(guò)濾,通過(guò)aop實(shí)現(xiàn)各類攔截業(yè)務(wù)的指定調(diào)用。

使用java validtion對(duì)通用的字段,例如電話號(hào)碼,身份證,進(jìn)行擴(kuò)展,詳細(xì)可以參考,如何使用validation校驗(yàn)參數(shù)?,在項(xiàng)目中其他類似校驗(yàn)進(jìn)行復(fù)用。

業(yè)務(wù)判斷:使用設(shè)計(jì)模式對(duì)不同類型的業(yè)務(wù)開發(fā)進(jìn)行封裝,集成,多態(tài)擴(kuò)展;這樣在后期的擴(kuò)展中可以基于開發(fā)封閉原則,針對(duì)新的業(yè)務(wù)擴(kuò)展子類即可。

業(yè)務(wù)開發(fā)過(guò)程中,依照阿里巴巴研發(fā)規(guī)范的要求,存在DO(數(shù)據(jù)庫(kù)表結(jié)構(gòu)一致的對(duì)象),BO(業(yè)務(wù)對(duì)象),DTO(數(shù)據(jù)傳輸對(duì)象),VO(顯示層對(duì)象),Query(查詢對(duì)象)。

使用MapStruct,可以靈活的控制的不同屬性值之間的轉(zhuǎn)換規(guī)格,比org.springframework.beans.BeanUtils.copyProperties()方法更加靈活。

例如,公共字段,生成日期,創(chuàng)建人,修改時(shí)間,修改人使用插件的形式進(jìn)行封裝,在mybatis-plus中使用MetaObjectHandler,在執(zhí)行sql之前完成統(tǒng)一字段值的填充。

項(xiàng)目如何做好代碼注釋?

在業(yè)務(wù)中特別是狀態(tài)的值,在對(duì)外發(fā)布api的vo對(duì)象中,加上狀態(tài)枚舉值的注釋,并且使用@link 注解,可以直接連接到枚舉類,讓開發(fā)者一目了然。

對(duì)于java項(xiàng)目,我雖然知道業(yè)務(wù)邏輯但是還是不知道怎么寫出代碼 ,原因在哪 ?

其實(shí)你已經(jīng)很好了,我認(rèn)為寫程序首先要有自己的思路,其次才是看你真正掌握的技能...比如一艘船如果有足夠大的馬力,但是缺少正確的方向..那樣子會(huì)裝上暗礁的,所以在編程方面業(yè)務(wù)邏輯是很重要的,接下來(lái)只要有一般的技能基礎(chǔ)就可以了;

就拿你說(shuō)的修改密碼來(lái)說(shuō)吧:第一步:我首先要知道要修改人的ID,然后才能按照一定的方法修改數(shù)據(jù)庫(kù)中的表:一個(gè)update user set user_password=“要修改的密碼” where user_id=“指定修改人的ID” 再加上一定的連接數(shù)據(jù)庫(kù)的方法..程序員修改密碼的目的就達(dá)到了...加油!

JAVA 開發(fā)一個(gè)比較好的邏輯流程,或者說(shuō)開發(fā)思路和寫代碼的順序

寫代碼的順序最好和實(shí)際操作的邏輯一樣,先做什么后做什么,這樣能最大程度的保證邏輯不會(huì)出什么問(wèn)題。前提是你要熟悉業(yè)務(wù)邏輯。

還有開發(fā)的時(shí)候不要局限于一個(gè)方法的實(shí)現(xiàn)代碼邏輯,先從整體上把方法都寫出來(lái),比如這個(gè)方法要做什么,只管寫一個(gè)方法就行,具體怎么做可以在框架都搭完了再寫,更好的就是全部用接口,接口全部寫好了之后再寫實(shí)現(xiàn)類,這樣更好。

還有一個(gè)方法里面的代碼最好不要太長(zhǎng),最好不要超過(guò)一個(gè)屏幕,不然看起來(lái)很累的,可以把一個(gè)方法分成好幾個(gè)方法來(lái)寫,那樣BUG也會(huì)減少很多,邏輯性強(qiáng)。還有就是最好不要循環(huán)嵌套,嵌套個(gè)兩三層后出問(wèn)題就麻煩了,如果一定要嵌套就分出去一個(gè)方法就好。

還有就是要多集成,能通用的方法就通用寫掉,寫成工具類,如果有框架了,多多熟悉原本就有的工具類,都自己寫的話代碼多不說(shuō),還很容易出錯(cuò),要學(xué)會(huì)活用別人的代碼。

最后:多多交流,自己蒙頭寫只能一事無(wú)成。

最最后:手打真累...


網(wǎng)站題目:java寫業(yè)務(wù)代碼思路,如何寫業(yè)務(wù)代碼
網(wǎng)站地址:http://weahome.cn/article/hddjge.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部