手把手带你写一个 Web 框架
叶剑峰
腾讯高级工程师,前滴滴技术专家
22731 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
特别放送 (1讲)
手把手带你写一个 Web 框架
15
15
1.0x
00:00/00:00
登录|注册

19|提效(上):实现调试模式加速开发效率

ErrorHandler
ModifyResponse
Director
monitorBackend
rebuildBackend
restartBackend
restartFrontend
startProxy
newProxyReverseProxy
ReverseProxy
monitorBackend
rebuildBackend
restartBackend
restartFrontend
startProxy
newProxyReverseProxy
newProxy
devAllCommand
devFrontendCommand
devBackendCommand
Proxy类的设计
反向代理
前后端同时调试
后端调试模式
前端调试模式
Proxy
devCommand
实现技术难点分析
调试模式设计
思考题
小结
proxy 类的设计
command 设计
方案思考和设计
提效(上):实现调试模式加速开发效率

该思维导图由 AI 生成,仅供参考

你好,我是轩脉刃。
上一节课我们把前端 Vue 融合进 hade 框架中,让框架能直接通过命令行启动包含前端和后端的一个应用,今天继续思考优化。
在使用 Vue 的时候,你一定使用过 npm run dev 这个命令,为前端开启调试模式,在这个模式下,只要你修改了 src 下的文件,编译器就会自动重新编译,并且更新浏览器页面上的渲染。这种调试模式,为开发者提高了不少开发效率。
那这种调试模式能否应用到 Golang 后端,让前后端都开启这种调试模式,来进一步提升我们开发应用的效率呢?接下来两节课,我们就来尝试实现这种调试模式。

方案思考和设计

先来思考下调试模式应该怎么设计?因为分为前端和后端,关于 Vue 前端,既然已经有了 npm run dev 这种调试模式,自然可以直接使用这种方式,要改的主要就是后端。
对于后端 Golang 代码,Golang 本身并没有提供任何调试模式的方式进行代码调试,只能先通过 go build 编译出二进制文件,通过运行二进制文件再启动服务。那我们如何实现刚才的想法,一旦修改代码源文件,就能重新编译运行呢?
相信你一定很快想到了之前实现过配置文件的热更新。在第 16 章开发配置服务的时候,我们使用了 fsnotify 库,来对配置目录下的所有文件进行变更监听,一旦修改了配置目录下的文件,就重新更新内存中的配置文件 map。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何通过调试模式来加速前端和后端开发效率。作者首先思考了调试模式的设计,针对前端使用Vue的`npm run dev`命令进行调试,而对于后端Golang代码,则需要实现监听文件变更并重新编译运行的功能。作者提出了在前后端服务前面设计一个反向代理proxy服务的方案,通过net/http/httputil包中的ReverseProxy数据结构实现反向代理。在实现技术难点分析中,作者详细介绍了ReverseProxy的关键字段和函数的使用方法,并提出了如何根据请求进入后端或前端的规则进行分发的思路。最后,作者给出了实现网关服务逻辑的代码示例。整体而言,本文深入浅出地介绍了如何通过调试模式和反向代理来提高前后端开发效率,对于需要提升开发效率的开发者具有一定的参考价值。文章内容涉及了调试模式的设计和实现,以及反向代理的应用,对于开发者来说具有一定的实用性和技术参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你写一个 Web 框架》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • 宙斯
    需要对newProxyReverseProxy做改造,在newProxyReverseProxy里再定义一个前端director,且对请求地址做检查,若匹配有js后缀的,则直接使用前端的director。

    作者回复: 是的,匹配js后缀,css后缀等

    2021-12-13
    2
  • 牛玉富
    这个功能亮了,这才是架构师干的事😀
    2022-01-13
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部