PHP转Go,框架选什么?答案是:GoFrame

这是一期会引起广泛讨论的内容,不亚于“PHP 是世界上最好的语言”。

内功心法

不管我们是否基于框架去开发,不管使用什么框架去开发。

6个字的内功心法一定要牢记:高内聚,低耦合

不管是单体项目还是微服务,不管是小组件还是大功能,不管是业务还是领域 DDD,也都遵从这个原则:

(模块、功能、业务、领域)内部高内聚,

(模块、功能、业务、领域)之间低耦合。

PHP 转 Go,优选哪个框架?

答案:GoFrame

为什么?

和 PHP 的 Laravel 简直太像了,用起来太香了,很顺手。

为什么不火?

对新手不友好,有门槛。

GoFrame 特点

优势:

  • 模块化
  • 高性能
  • 企业级

劣势:

  • 有学习门槛
  • 版本兼容性不好
  • 暂不支持微服务

框架选型

谁适合用 GoFrame

  • PHP 转 Go(Laravel 的同学会用起来很爽)
  • Java 转 Go (Spring Boot 的同学会用起来很爽)
  • 比较复杂的企业级单体项目 (很规范,维护成本低,少踩很多坑)

谁不适合用 GoFrame

  • 编程小白(容易被劝退)
  • 特别简单的项目用 gin 等轻量级框架(杀鸡焉用牛刀)
  • 非常复杂的分布式微服务项目用 go-zero 等微服务框架(没有任何一款框架是万能的)

GoFrame 框架设计思想

这些不作为本期内容的重点,大家可以直接阅读官方文档。

我也有计划录制视频,结合我们的商业项目,站在使用者的角度去分享使用 GoFrame 的感受,如何理解框架的设计思想。

  • 模块化设计

PHP转Go,框架选什么?答案是:GoFrame_第1张图片

  • 统一框架设计
  • 工程开发设计
  • 全链路跟踪设计
  • 全错误堆栈设计
  • 接口化与泛型设计
  • 隐式与显式初始化
  • Context 相关设计
  • 微服务相关设计

开发流程

我梳理的 GoFrame V2 最新版的开发流程

从 0 到 1

  1. 设计表结构
  2. 使用 gf gen dao 生成对应的 dao/do/model
  3. 编写 api 层:定义业务侧数据结构,提供对外接口的输入/输出数据结构
  4. 编写 model 层:定义数据侧数据结构,提供对内的数据处理的输入/输出数据结构
  5. 编写 logic 层,自动生成 service 层代码。(通过配置 goland File Watcher 自动生成,也可以通过 gf gen service 手动执行脚本生成,建议前者)
  6. 在 service 层代码生成 RegisterXX()方法后,在对应的 logic 模块注册服务(每个模块只需要写一次)
  7. 编写 controller 层,接收/解析用户输入的参数,调用 service 层的服务。
  8. 注册路由,对外暴露接口,比如这个项目是编写 cmd.go 文件。
  9. 在 main.go 中 加入一行 _ “project-name/internal/logic” (只需写一次)
  10. 在 main.go 中加入一行 _ “github.com/gogf/gf/contrib/drivers/mysql/v2” (如果你使用的是 mysql;只需写一次)

核心步骤

  1. 编写 api 层:定义业务侧数据结构,提供对外接口的输入/输出数据结构
  2. 编写 model 层:定义数据侧数据结构,提供对内的数据处理的输入/输出数据结构
  3. 编写 logic 层,自动生成 service 层代码。(通过配置 goland File Watcher 自动生成,也可以通过 gf gen service 手动执行脚本生成,建议前者)
  4. 编写 controller 层,接收/解析用户输入的参数,调用 service 层的服务。
  5. 注册路由,对外暴露接口,比如这个项目是编写 cmd.go 文件。

总结

没有一个框架是万能的,也没有一个语言是万能的。

结合自己的需求去选择合适的框架,合适的开发语言。

不要被眼前暂时的得意或者失意“一叶障目”,结合实际情况,实事求是,拥抱变化,不断学习,才能“见泰山”。

面向“养家糊口”编程,能稳定赚钱的职业才是好职业。

题外话

在此疾速成长的科技元年,编程就像是许多人通往无限可能世界的门票。而在编程语言的明星阵容中,Python就像是那位独领风 骚的超级巨星, 以其简洁易懂的语法和强大的功能,脱颖而出,成为全球最炙手可热的编程语言之一。


Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。

​ 最后

为了帮助大家更好的学习Python,小编给大家准备了一份Python学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂,需要获取方式:点击这里【 Python全套资料】 即可获取。

CSDN大礼包:《Python开发全套学习笔记/实战项目/安装工具》免费分享

Python学习路线汇总

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。


​Python必备开发工具


精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

温馨提示:篇幅有限,已打包文件夹,获取方式:点击这里【 Python全套资料】 即可获取。

CSDN大礼包:《Python开发全套学习笔记/实战项目/安装工具》免费分享

Python学习视频600合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

​​​100道Python练习题


面试刷题


​​​
实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

Python副业兼职与全职路线
在这里插入图片描述

​​​获取方式:点击这里【 Python全套资料】 或扫描下方即可获取。

CSDN大礼包:《Python开发全套学习笔记/实战项目/安装工具》免费分享

你可能感兴趣的:(php,golang,开发语言,学习,python,爬虫,数据分析)