首页 » Web前端 » phpmicro技巧_我用gozero开拓了第一个线上项目

phpmicro技巧_我用gozero开拓了第一个线上项目

访客 2024-11-20 0

扫一扫用手机浏览

文章目录 [+]

​ 刚入门了互联网的我,心里是真的喜悦。
不过,重复的东西做多了,总是少不了厌倦。
每天都是写php,都是那些增编削查,都是修正数据表,增加字段,增加临时表。
真的,开始腻了。
“听说最新公司在用新的编程措辞golang”,我,想去试试。
但,我不敢,心里有对自己和对golang的疑惑,因此我不是第一个去拜师的。
当golang在公司盛行了两个月,我的leader让我去用一下golang。
终于,我师出有名了。
浅尝了一周的golang之后,我!

创造!

golang是有指针的,这不是大学熟习的C++那样的指针吗golang是编译措辞,原来客户真个“打包、打包”,原来是这么一回事golang是可以做定时器的,换用php该怎么搞啊?很麻烦的吧。
golang不用写分号,不用写括号,看起来很大略啊,性能又很好啊!
golang原生支持web做事,原来不用nginx也可以起一个web做事啊.......还有很多很多喜好golang

​ 考试测验了golang之后,我创造我喜好上了golang了。

phpmicro技巧_我用gozero开拓了第一个线上项目

golang严谨

​ golang中不提倡多余的变量。
gopher都知道,golang变量不该用,直接会报编译缺点!
这让我刮目相看!
在我看来,是把严谨提升了一个阶段,只要你是gopher,就会强制你变得严谨。
golang变量这个属性,秉承了golang的设计理念,严谨这个理念贯穿了golang的各处。

phpmicro技巧_我用gozero开拓了第一个线上项目
(图片来自网络侵删)

​ 曾经有一个CTO跟我说,定义的每一个变量、每一个字段,都该当有它的浸染。
多余的代码,多余的变量,多余的字段,除了误导别人,弄脏代码,别无他用。
我,表示绝对赞许!

golang性能好

​ 单单靠golang的大略、严谨,当然上不了程序员的舞台。
可恨的是,golang性能还很好!
比C++要差点,但是就web运用的并发、资源占用来说,比java、python、php、nodejs都是要精良的。
详细数据大家上网一搜比比皆是。
一个语法大略、性能又好、入门只需一周的措辞,反正我是入坑了。

​ 有段韶光,我太热爱golang了导致认为golang可以做任何事情。
不过逐步,我理性了。
做web运用,首选golang。
做数据剖析、爬虫、图片处理还是python吧。
但假如有人说用java去写web后台,cms类型还好,假如面向市场用户的,spring boot那套,spring cloud那套,我以为,远远远远远远远比不上用golang干系的框架,java还是去做那些单体运用吧。

golang轻量

​ golang还有其余一个属性,便是“轻”,有多轻?比拟一下java的jvm那套容器,你就知道有多轻了。
几行代码就能实现一个原生web做事了,docker这个跨时期的产物便是golang写的。
etcd这个分布式基石也是golang写的,云原生这个跨时期的名词,很多组件都是golang贡献的。
“微做事”这个口试必问的名词,golang可以对它做最好的诠释。

go-zero一见如故

​ 后来我进入了一家直播公司,刚好碰着了公司的颠簸,让我有了停下来自省的韶光。
其间,喜好走走github,稍有目的去逛一下golang的开源项目。
比如gin,iris,go-micro,go-zero,sentinel-golang,gin-vue-admin等等等啦。
一开始,go-zero并不是特殊吸引我,可能是博客/github布局不足亮眼吧。
但是,当我哪天沉下来看go-zero的文档,开始敲起第一个goctl的命令,我彷佛,彷佛!
已经停不下来。

​ go-zero,用起来,真的很舒畅!

​ 我刚在游戏平台公司演习转正的时候,也是可以带一两个演习生的。
当时我就有个想法,“如何让员工都敲出规范、高效的代码”。
当时想了下用go-template,但是由于学艺未精,推进不下去。
时隔几年,当我打仗到go-zero的goctl后,创造,居然有大佬实现了当年我的想法!
虽然我技能不大行,但是梦想还是要有的,go-zero对我来说太亲切了。
搞!
肝!

​ 一周韶光,过完了go-zero的github文档以及语雀文档,中途也自己练手了几个demo。
可真是越敲越舒畅。
迫不及待地用想找个实际项目投入生产!
果真不久有个机会来了,公司想做一个大略的app做投放调研,许可重新搭建一个新的后台web项目,我!
go-zero!
义不容辞,开干。
又花了两周韶光,写完了一个后台web做事,里面有下面板块

用户板块咨询板块报告板块支付板块广告板块

截个图看看我的项目构造,由于还是公司项目,暂时不会开源啦,不过凡是go-zeroer都能看懂

大略解释一下:

api目录,便是http1.1的web做事,跟前端对接rpc目录,rpc做事,基本和api逐一对应enum目录,列举目录,里面存放的是各种各样的列举值,我把它提到一等公民了model目录,数据库model,目前都是用goctl根据mysql天生的modelutils目录,这里紧张存放我的一些小工具包,例如int/string/time的一些操作,参考了下go-zero的命名方法,子目录一样平常会以x结尾,例如intx,timex,stringx等等worker目录,紧张是做一些消费者模型的消费者,例如kafka的消费者,google订阅关照的消费者等等ws目录,存放websocket干系的做事,例如私聊

感谢下go-zero,让我对项目的组织构造有了一个大略的标准。
worker、ws等做事,以前的项目构造都凌乱无章,目前都是参考go-zero天生api的目录构造了:

main.go入口etc存放配置,internal内部目录config:配置handler:处理器logic:逻辑处理types:中间类型go-zero理念

​ “工具大于约定和文档”,这,便是go-zero的理念。
我,表示极度赞许!

​ go-zero的最大特点,便是goctl。
goctl是什么?便是能根据协议文档,天生代码的一个神器。
例如

定了a.proto文件,goctl rpc proto a.proto -dir . 即可天生rpc做事

定了b.sql文件,goctl model mysql ddl -c -src b.sql -dir . 即可天生模板model文件

定了c.api文件(go-zero出品),goctl api go -api ad-api.api -dir . 即可天生api文件

再合营上golang的jb IDE,代码提醒,代码格式化,一个go-zero的生态,就出来了。
一个字:舒畅!

go-zero小工具

​ 除了goctl神器,其余一个让我拜服的点是,go-zero的一些小工具。

流数据处理利器:fx。
听说java8的lambda很炫酷,go-zero也有了!
fx.Filter().Sort().Head() ,让数组的繁芜处理变得大略mapReduce降落做事相应韶光:mr.Finish(), mr.Map().Reduce(), 跟并发处理waitGroup说拜拜!
etcd做事创造的集成:p2c的算法创造做事,免却了开拓们点对点或nginx的转发做事,安装一个etcd就完事了jwt集成api:轻松拥有一个jwt的后台做事集成Prometheus:轻松拥有一个带监控的golang后台做事等等等

二次感谢go-zero,还有很多小工具,等待我去看源码,韶光轮/调度器等等啦。
go-zero有点像我学习的导师一样。

go-zero拓展

​ go-zero为小白如我的gopher们,供应了一个功能完备、性能可不雅观、开拓迅速的web框架。
然而,它不像其他框架那样约束着我,我还是能里面做很多发挥的。
虽然不是大牛级别的发挥,但是,个性化操作还是支持的:

model层,完备可以接入gorm代替掉内置的sqlx,虽然就没了大佬辛劳做的缓存击穿等防护的功能。
当然也可以两者并存。
rpc层,不必约定要api层去调用。
例如我上面截图的worker/ws层去调用完备没问题。
api层自己天生的middleware,可以抽离出到公共目录,那就可以多个api目录利用同一个middlerware了。
等等等啦

go-zero 很轻量、很便捷、很博学。
里面蕴藏的着很多知识以及理念。
目前我只是用了皮毛,go-zero的k8s支配,目前我没开始接入。
连续努力努力学习啦!

再次感谢https://www.yuque.com/tal-tech/go-zero/yaoehb go-zero语雀文档https://github.com/tal-tech/go-zero go-zero源码

项目地址:https://github.com/tal-tech/go-zero

标签:

相关文章

介绍百度码,技术革新背后的智慧之光

随着科技的飞速发展,互联网技术已经成为我们生活中不可或缺的一部分。而在这个信息爆炸的时代,如何快速、准确地获取信息,成为了人们关注...

Web前端 2025-01-03 阅读1 评论0

介绍皮箱密码,开启神秘之门的钥匙

皮箱,作为日常生活中常见的收纳工具,承载着我们的珍贵物品。面对紧闭的皮箱,许多人却束手无策。如何才能轻松打开皮箱呢?本文将为您揭秘...

Web前端 2025-01-03 阅读1 评论0

介绍盗号器,网络安全的隐忧与应对步骤

随着互联网的快速发展,网络安全问题日益突出。盗号器作为一种非法工具,对网民的个人信息安全构成了严重威胁。本文将深入剖析盗号器的原理...

Web前端 2025-01-03 阅读1 评论0