日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
PHP轉(zhuǎn)Go,框架選什么?

這是一期會(huì)引起廣泛討論的內(nèi)容,不亞于“PHP是世界上最好的語(yǔ)言”。

10年積累的成都網(wǎng)站建設(shè)、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有庫(kù)車免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

內(nèi)功心法

不管我們是否基于框架去開發(fā),不管使用什么框架去開發(fā)。

6個(gè)字的內(nèi)功心法一定要牢記:高內(nèi)聚,低耦合。

不管是單體項(xiàng)目還是微服務(wù),不管是小組件還是大功能,不管是業(yè)務(wù)還是領(lǐng)域DDD,也都遵從這個(gè)原則:

  • (模塊、功能、業(yè)務(wù)、領(lǐng)域)內(nèi)部高內(nèi)聚,
  • (模塊、功能、業(yè)務(wù)、領(lǐng)域)之間低耦合。

PHP轉(zhuǎn)Go,優(yōu)選哪個(gè)框架?

答案:GoFrame

為什么?

和PHP的Laravel簡(jiǎn)直太像了,用起來(lái)太香了,很順手。

為什么不火?

對(duì)新手不友好,有門檻。

GoFrame特點(diǎn)

優(yōu)勢(shì):

  • 模塊化
  • 高性能
  • 企業(yè)級(jí)

劣勢(shì):

  • 有學(xué)習(xí)門檻
  • 版本兼容性不好
  • 暫不支持微服務(wù)

框架選型

誰(shuí)適合用GoFrame

  • PHP轉(zhuǎn)Go(Laravel的同學(xué)會(huì)用起來(lái)很爽)
  • Java轉(zhuǎn)Go (Spring Boot的同學(xué)會(huì)用起來(lái)很爽)
  • 比較復(fù)雜的企業(yè)級(jí)單體項(xiàng)目 (很規(guī)范,維護(hù)成本低,少踩很多坑)

誰(shuí)不適合用GoFrame

  • 編程小白(容易被勸退)
  • 特別簡(jiǎn)單的項(xiàng)目用gin等輕量級(jí)框架(殺雞焉用牛刀)
  • 非常復(fù)雜的分布式微服務(wù)項(xiàng)目用go-zero等微服務(wù)框架(沒(méi)有任何一款框架是萬(wàn)能的)

GoFrame框架設(shè)計(jì)思想

這些不作為本期內(nèi)容的重點(diǎn),大家可以直接閱讀官方文檔。

我也有計(jì)劃錄制視頻,結(jié)合我們的商業(yè)項(xiàng)目,站在使用者的角度去分享使用GoFrame的感受,如何理解框架的設(shè)計(jì)思想。

  • 模塊化設(shè)計(jì)[1]

  • 統(tǒng)一框架設(shè)計(jì)[2]
  • 工程開發(fā)設(shè)計(jì)[3]
  • 全鏈路跟蹤設(shè)計(jì)[4]
  • 全錯(cuò)誤堆棧設(shè)計(jì)[5]
  • 接口化與泛型設(shè)計(jì)[6]
  • 隱式與顯式初始化[7]
  • Context相關(guān)設(shè)計(jì)[8]
  • 微服務(wù)相關(guān)設(shè)計(jì)[9]

開發(fā)流程

我梳理的 GoFrame V2最新版的開發(fā)流程

從0到1

  • 設(shè)計(jì)表結(jié)構(gòu)
  • 使用gf gen dao 生成對(duì)應(yīng)的 dao/do/model
  • 編寫api層:定義業(yè)務(wù)側(cè)數(shù)據(jù)結(jié)構(gòu),提供對(duì)外接口的輸入/輸出數(shù)據(jù)結(jié)構(gòu)
  • 編寫model層:定義數(shù)據(jù)側(cè)數(shù)據(jù)結(jié)構(gòu),提供對(duì)內(nèi)的數(shù)據(jù)處理的輸入/輸出數(shù)據(jù)結(jié)構(gòu)
  • 編寫logic層,自動(dòng)生成service層代碼。(通過(guò)配置goland File Watcher自動(dòng)生成,也可以通過(guò)gf gen service手動(dòng)執(zhí)行腳本生成,建議前者)
  • 在service層代碼生成RegisterXX()方法后,在對(duì)應(yīng)的logic模塊注冊(cè)服務(wù)(每個(gè)模塊只需要寫一次)
  • 編寫controller層,接收/解析用戶輸入的參數(shù),調(diào)用service層的服務(wù)。
  • 注冊(cè)路由,對(duì)外暴露接口,比如這個(gè)項(xiàng)目是編寫cmd.go文件。
  • 在main.go中 加入一行 _ "project-name/internal/logic" (只需寫一次)
  • 在main.go中加入一行 _ "github.com/gogf/gf/contrib/drivers/mysql/v2" (如果你使用的是mysql;只需寫一次)

核心步驟

  • 編寫api層:定義業(yè)務(wù)側(cè)數(shù)據(jù)結(jié)構(gòu),提供對(duì)外接口的輸入/輸出數(shù)據(jù)結(jié)構(gòu)
  • 編寫model層:定義數(shù)據(jù)側(cè)數(shù)據(jù)結(jié)構(gòu),提供對(duì)內(nèi)的數(shù)據(jù)處理的輸入/輸出數(shù)據(jù)結(jié)構(gòu)
  • 編寫logic層,自動(dòng)生成service層代碼。(通過(guò)配置goland File Watcher自動(dòng)生成,也可以通過(guò)gf gen service手動(dòng)執(zhí)行腳本生成,建議前者)
  • 編寫controller層,接收/解析用戶輸入的參數(shù),調(diào)用service層的服務(wù)。
  • 注冊(cè)路由,對(duì)外暴露接口,比如這個(gè)項(xiàng)目是編寫cmd.go文件。

總結(jié)

沒(méi)有一個(gè)框架是萬(wàn)能的,也沒(méi)有一個(gè)語(yǔ)言是萬(wàn)能的。

結(jié)合自己的需求去選擇合適的框架,合適的開發(fā)語(yǔ)言。

不要被眼前暫時(shí)的得意或者失意“一葉障目”,結(jié)合實(shí)際情況,實(shí)事求是,擁抱變化,不斷學(xué)習(xí),才能“見泰山”。

面向“養(yǎng)家糊口”編程,能穩(wěn)定賺錢的職業(yè)才是好職業(yè)。

參考資料

[1]模塊化設(shè)計(jì): https://goframe.org/pages/viewpage.action?pageId=3672891

[2]統(tǒng)一框架設(shè)計(jì): https://goframe.org/pages/viewpage.action?pageId=7290658

[3]工程開發(fā)設(shè)計(jì): https://goframe.org/pages/viewpage.action?pageId=30740161

[4]全鏈路跟蹤設(shè)計(jì): https://goframe.org/pages/viewpage.action?pageId=35356689

[5]全錯(cuò)誤堆棧設(shè)計(jì): https://goframe.org/pages/viewpage.action?pageId=35356691

[6]接口化與泛型設(shè)計(jì): https://goframe.org/pages/viewpage.action?pageId=35356693

[7]隱式與顯式初始化: https://goframe.org/pages/viewpage.action?pageId=6357066

[8]Context相關(guān)設(shè)計(jì): https://goframe.org/pages/viewpage.action?pageId=7301813

[9]微服務(wù)相關(guān)設(shè)計(jì): https://goframe.org/pages/viewpage.action?pageId=54100607

本文轉(zhuǎn)載自微信公眾號(hào)「 程序員升級(jí)打怪之旅」,作者「王中陽(yáng)Go」,可以通過(guò)以下二維碼關(guān)注。

轉(zhuǎn)載本文請(qǐng)聯(lián)系「 程序員升級(jí)打怪之旅」公眾號(hào)。


網(wǎng)頁(yè)題目:PHP轉(zhuǎn)Go,框架選什么?
當(dāng)前鏈接:http://www.5511xx.com/article/coggsge.html