码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • PHP转Go,框架选什么?


    文章目录

    • 内功心法
    • PHP转Go,优选哪个框架?
      • 为什么?
      • 为什么不火?
    • GoFrame特点
      • 优势:
      • 劣势:
    • 框架选型
      • 谁适合用GoFrame
      • 谁不适合用GoFrame
    • GoFrame框架设计思想
    • 开发流程
      • 从0到1
      • 核心步骤
    • 总结
    • 视频
    • 一起学习

    这是一期会引起广泛讨论的内容,不亚于“PHP是世界上最好的语言”。
    在这里插入图片描述

    内功心法

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

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

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

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

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

    PHP转Go,优选哪个框架?

    答案:GoFrame

    为什么?

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

    为什么不火?

    对新手不友好,有门槛。

    GoFrame特点

    优势:

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

    劣势:

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

    框架选型

    谁适合用GoFrame

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

    谁不适合用GoFrame

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

    GoFrame框架设计思想

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

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

    • 模块化设计

    • 统一框架设计
    • 工程开发设计
    • 全链路跟踪设计
    • 全错误堆栈设计
    • 接口化与泛型设计
    • 隐式与显式初始化
    • 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文件。

    总结

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

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

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

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

    视频

    这期内容也录制了视频,视频更精彩,欢迎观看:B站视频链接

    一起学习

    欢迎在CSDN私信我,如果没能及时回复,欢迎扫下方公众号关注我:

  • 相关阅读:
    【Azure 应用服务】NodeJS Express + MSAL 实现API应用Token认证(AAD OAuth2 idToken)的认证实验 -- passport.authenticate()
    【附源码】Python计算机毕业设计汽车租赁管理系统
    Java 线程安全(二)-- synchronized
    2. Java并发编程-互斥锁、死锁
    java数据结构与算法刷题-----LeetCode304:二维区域和检索 - 矩阵不可变
    2.Node- 回调函数的用法
    PyTorch搭建基于图神经网络(GCN)的天气推荐系统(附源码和数据集)
    Python 周期任务神器,太实用了
    python读取文件并处理转化为list然后输出
    useRef 与 createRef 区别
  • 原文地址:https://blog.csdn.net/w425772719/article/details/128079845
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号