新聞中心
這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)GoFrame教程:GoFrame工程開發(fā)設(shè)計(jì)-結(jié)構(gòu)化編程設(shè)計(jì)
一、基本介紹
結(jié)構(gòu)化編程,簡(jiǎn)單來理解,就是通過定義結(jié)構(gòu)體傳遞和返回參數(shù)。

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的興賓網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
我們建議在必要的場(chǎng)景下使用結(jié)構(gòu)化定義來管理輸出/輸出,尤其是在?controller?和?service?兩層的代碼設(shè)計(jì)中。
1、controller非結(jié)構(gòu)化痛點(diǎn)
- 難以確定接口輸入/輸出數(shù)據(jù)結(jié)構(gòu),大多數(shù)的場(chǎng)景是在代碼中硬編碼參數(shù)接收名稱,易把名稱寫錯(cuò)造成不可預(yù)料的問題
- 接口參數(shù)往往只定義一個(gè)?
HttpRequest/HttpContext?對(duì)象指針,執(zhí)行結(jié)果直接寫入到對(duì)象,難以確定接口是否成功/失敗 - 參數(shù)接收、校驗(yàn)、轉(zhuǎn)換處理工作繁瑣
- 接口文檔生成以及維護(hù)極為困難
2、service非結(jié)構(gòu)化痛點(diǎn)
- 當(dāng)方法參數(shù)較多的時(shí),定義丑陋,使用別扭
- 當(dāng)方法參數(shù)數(shù)量、類型不太確定時(shí),任意的參數(shù)變化都是非兼容的,會(huì)引起較高的修改成本
- 方法參數(shù)注釋不簡(jiǎn)便,以至于絕大部分業(yè)務(wù)項(xiàng)目都不會(huì)有方法參數(shù)注釋
二、結(jié)構(gòu)化編程
1、controller結(jié)構(gòu)化改進(jìn)
結(jié)構(gòu)化優(yōu)點(diǎn):
- 通過結(jié)構(gòu)化管理接口輸入/輸出參數(shù),參數(shù)接收不再需要硬編碼參數(shù)名稱,降低維護(hù)成本,避免參數(shù)名稱硬編碼錯(cuò)誤問題
- 可以做到自動(dòng)化的參數(shù)接收、轉(zhuǎn)換、校驗(yàn),提高生產(chǎn)力
- 使得接口管理能夠像普通的函數(shù)管理那么方便,通過返回?
error?來判斷接口處理結(jié)果,并可以規(guī)范化統(tǒng)一錯(cuò)誤機(jī)制 - 使得自動(dòng)化的接口文檔生成變?yōu)榱丝赡?,并保障了接口結(jié)構(gòu)定義和接口文檔同步維護(hù)
結(jié)構(gòu)化示例:
結(jié)構(gòu)定義:
方法使用:
2、service結(jié)構(gòu)化改進(jìn)
結(jié)構(gòu)化優(yōu)點(diǎn):
- 當(dāng)方法參數(shù)較多的時(shí),通過結(jié)構(gòu)體優(yōu)雅管理參數(shù)
- 當(dāng)方法參數(shù)數(shù)量、類型不太確定時(shí),參數(shù)的增加對(duì)方法調(diào)用來說都是兼容性的
- 對(duì)結(jié)構(gòu)體屬性的注釋描述更加便捷,提高代碼維護(hù)質(zhì)量
結(jié)構(gòu)化示例:
三、注意事項(xiàng)
- ?
service?層的方法在使用結(jié)構(gòu)化管理輸入/輸出參數(shù)時(shí),結(jié)構(gòu)體中任意參數(shù)都將會(huì)被看做非必需參數(shù)。因此需要根據(jù)業(yè)務(wù)場(chǎng)景合理評(píng)估可行性。
當(dāng)前名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrame工程開發(fā)設(shè)計(jì)-結(jié)構(gòu)化編程設(shè)計(jì)
網(wǎng)站地址:http://www.dlmjj.cn/article/cdsdcid.html


咨詢
建站咨詢
