成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

PHP轉Go,框架選什么?

開發 后端
不管我們是否基于框架去開發,不管使用什么框架去開發。6個字的內功心法一定要牢記:高內聚,低耦合。

這是一期會引起廣泛討論的內容,不亞于“PHP是世界上最好的語言”。

內功心法

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

6個字的內功心法一定要牢記:高內聚,低耦合。

不管是單體項目還是微服務,不管是小組件還是大功能,不管是業務還是領域DDD,也都遵從這個原則:

  • (模塊、功能、業務、領域)內部高內聚,
  • (模塊、功能、業務、領域)之間低耦合。

PHP轉Go,優選哪個框架?

答案:GoFrame

為什么?

和PHP的Laravel簡直太像了,用起來太香了,很順手。

為什么不火?

對新手不友好,有門檻。

GoFrame特點

優勢:

  • 模塊化
  • 高性能
  • 企業級

劣勢:

  • 有學習門檻
  • 版本兼容性不好
  • 暫不支持微服務

框架選型

誰適合用GoFrame

  • PHP轉Go(Laravel的同學會用起來很爽)
  • Java轉Go (Spring Boot的同學會用起來很爽)
  • 比較復雜的企業級單體項目 (很規范,維護成本低,少踩很多坑)

誰不適合用GoFrame

  • 編程小白(容易被勸退)
  • 特別簡單的項目用gin等輕量級框架(殺雞焉用牛刀)
  • 非常復雜的分布式微服務項目用go-zero等微服務框架(沒有任何一款框架是萬能的)

GoFrame框架設計思想

這些不作為本期內容的重點,大家可以直接閱讀官方文檔。

我也有計劃錄制視頻,結合我們的商業項目,站在使用者的角度去分享使用GoFrame的感受,如何理解框架的設計思想。

  • 模塊化設計[1]

圖片

  • 統一框架設計[2]
  • 工程開發設計[3]
  • 全鏈路跟蹤設計[4]
  • 全錯誤堆棧設計[5]
  • 接口化與泛型設計[6]
  • 隱式與顯式初始化[7]
  • Context相關設計[8]
  • 微服務相關設計[9]

開發流程

我梳理的 GoFrame V2最新版的開發流程

從0到1

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

核心步驟

  • 編寫api層:定義業務側數據結構,提供對外接口的輸入/輸出數據結構
  • 編寫model層:定義數據側數據結構,提供對內的數據處理的輸入/輸出數據結構
  • 編寫logic層,自動生成service層代碼。(通過配置goland File Watcher自動生成,也可以通過gf gen service手動執行腳本生成,建議前者)
  • 編寫controller層,接收/解析用戶輸入的參數,調用service層的服務。
  • 注冊路由,對外暴露接口,比如這個項目是編寫cmd.go文件。

總結

沒有一個框架是萬能的,也沒有一個語言是萬能的。

結合自己的需求去選擇合適的框架,合適的開發語言。

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

面向“養家糊口”編程,能穩定賺錢的職業才是好職業。

參考資料

[1]模塊化設計: https://goframe.org/pages/viewpage.action?pageId=3672891

[2]統一框架設計: https://goframe.org/pages/viewpage.action?pageId=7290658

[3]工程開發設計: https://goframe.org/pages/viewpage.action?pageId=30740161

[4]全鏈路跟蹤設計: https://goframe.org/pages/viewpage.action?pageId=35356689

[5]全錯誤堆棧設計: https://goframe.org/pages/viewpage.action?pageId=35356691

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

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

[8]Context相關設計: https://goframe.org/pages/viewpage.action?pageId=7301813

[9]微服務相關設計: https://goframe.org/pages/viewpage.action?pageId=54100607

本文轉載自微信公眾號「 程序員升級打怪之旅」,作者「王中陽Go」,可以通過以下二維碼關注。

轉載本文請聯系「 程序員升級打怪之旅」公眾號。

責任編輯:武曉燕 來源: 程序員升職加薪之旅
相關推薦

2022-12-28 12:11:57

PHPGo框架

2012-07-27 10:01:30

前端框架前端工具

2023-02-24 07:48:20

PHPGo服務

2009-12-09 13:03:12

2023-02-26 23:36:08

PHPGo函數

2024-08-01 10:17:27

2023-02-03 09:52:10

開發者框架GoFrame

2011-07-05 17:45:07

PHP框架

2024-10-24 08:00:00

Web開發編程語言框架

2024-06-14 08:00:46

2015-10-13 14:08:38

Laravel PHP框架

2009-08-04 10:39:58

2016-10-28 17:39:47

phpgolangcoroutine

2020-02-18 13:55:57

Python 開發編程語言

2020-11-24 09:50:22

大數據語言go

2009-12-09 13:41:50

PHP Zend框架

2021-10-12 18:32:17

Go框架測試

2018-12-04 14:00:41

協程編程模式PHP

2009-06-25 14:51:15

開源PHP框架

2009-02-01 09:29:44

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91免费入口 | 午夜爽爽爽男女免费观看影院 | 国产日韩亚洲欧美 | 国产成人99久久亚洲综合精品 | 亚洲视频免费在线观看 | 久久999 | 91xxx在线观看 | 欧美一区二区免费 | 中文一区 | 日韩最新网址 | 亚洲国产一区二区在线 | 国产视频久 | 国产精品观看 | 国产在线观看一区二区三区 | 国产成人啪免费观看软件 | 成人欧美一区二区三区黑人孕妇 | 五月天天丁香婷婷在线中 | 爱爱视频在线观看 | 欧美一级片在线观看 | 久久精品 | 亚洲h在线观看 | 欧美亚洲综合久久 | 天天精品综合 | 97在线观看 | 午夜在线视频一区二区三区 | 在线天堂免费中文字幕视频 | 伊人伊成久久人综合网站 | 精品亚洲国产成av人片传媒 | 国产精品激情小视频 | 国内自拍偷拍 | 成人影院在线视频 | 999精彩视频| 一区二区三区高清在线观看 | 国产成人免费视频网站高清观看视频 | 夜夜爽99久久国产综合精品女不卡 | 男人天堂av网站 | 狠狠操婷婷 | 伊色综合久久之综合久久 | 久久久www成人免费精品 | 国产成人一区二区三区 | 国产一区二区日韩 |