新 Idea PHP 转 GO 福音

2019-07-26 13:16:19 +08:00
 xiangdong1987

最近两周一直在做公司的 Go 项目,从 PHP 转 Go 是一个不算那么痛苦的精力,今天就来讲讲这两周的体会吧。

背景

过程

对于一个被 PHP 养成的一个懒汉来说,初期真的是痛苦无比,但是慢慢的我发现,其实 Go 的设计模式就是为了在规范和速度上取一个平衡,开始我是一点一点写的,后来发现各种的包可以大大缩短我们早轮子的时间,轮子小还可以自己改,所以我就萌生了一个想法。自己做一个脚手架,自动代码生成。做为一个懒散的程序员这就是福音。

优化

结果

总结

感觉 go 真的真的很不错,在快速和规范中有一个舒适的平衡点。后续加上 docker,在弄个 k8s 稳稳的后端,前端的事就叫前端去做吧!业余时间快乐的玩耍。还有欢迎提各种 pr 集思广益。

8015 次点击
所在节点    Go 编程语言
70 条回复
ztxcccc
2019-07-26 13:17:42 +08:00
“随着长时间的维护,发现了 php 这种野路子开发快,但是规范上真的差” —— 人或者管理有问题
xiangdong1987
2019-07-26 13:22:02 +08:00
@ztxcccc #1 项目时间拉到 3-5 年,一波一波人来人去真的不是说能管理的的好的,毕竟人的水平是稂莠不齐的,真的很难规范。毕竟 php 就是以快速灵活号称的,对于一些发展长远的公司来说,都是会摒弃的。太多的大公司越来越不待见 php 了
Binks
2019-07-26 13:25:18 +08:00
"数据类型的定义要求
资源业务的抽象
单元测试的编写"
这些跟语言没关系吧
ben1024
2019-07-26 13:26:33 +08:00
项目的规范受影响方面太多,这一方面弱类型语言也确实比强类型差
人员频繁变动和个人开发者的水平,需求合理性,项目紧急性等。。。
xiangdong1987
2019-07-26 13:31:04 +08:00
@Binks #3 完全有关系 php 你就不会定义一个结构体,Go 里面你不定义好结构体就不能玩了 你可以用下体会体会,感觉从语言的设计路上他们就是有天然的区别的,比如 php 就是想让你懒,想让你随性,想让你慢慢的爱上他,最后你发现这就是溺爱啊,我觉得 php 设计者真的太坏了
agdhole
2019-07-26 13:31:22 +08:00
福音:转 dotnet core
nigelvon
2019-07-26 13:32:52 +08:00
服务端用 PHP 和 Node.js 都有同一个问题,不同水平的人写出来的东西相差太多。不像 JAVA 这种强类型语言容易形成团队规范,更容易协作。
如果团队水平够的话,PHP、Node.js 都可以写出漂亮易于维护并高效的工程。
xiangdong1987
2019-07-26 13:38:29 +08:00
@nigelvon #7 是这个道理,就像我写 php 的时候我是万万不会写单元测试的,以你为我太懒了,但是在 Go 里你代码不写单元测试,你线上完全不能改,只能硬抗这个 bug,不得已我也开始写单元测试了,写了发现也太好了吧,直接 ide 运行监测,只要单元测试都过关,整个程序也不会出什么问题,这就是语言层面带来的一些好处,真的感触挺深
askfilm
2019-07-26 13:40:36 +08:00
随着长时间的维护,发现了 go 这种野路子在快速和规范中舒适平衡点,越来越不平衡了同时也不舒适了
xiangdong1987
2019-07-26 13:43:38 +08:00
@askfilm #9 哈哈 比 PHP 强点
skiy
2019-07-26 13:43:41 +08:00
居然不用 go mod. 新项目很少不用 go mod 的了吧?
laojiaqing
2019-07-26 13:56:26 +08:00
@xiangdong1987 为什么 go 不写单元测试线上不能改啊?
Felldeadbird
2019-07-26 13:58:18 +08:00
说到底楼主是喜欢上 GO 了,即使明明是管理问题,全懒在 PHP 身上了。
abcbuzhiming
2019-07-26 13:58:24 +08:00
@ztxcccc 少扯淡,任何问题从根源上说都可以说是人的问题,但是人是会利用工具的生物,工具好坏能决定生产效率,语言是工具的一种
victor
2019-07-26 14:04:01 +08:00
@abcbuzhiming 同样的工具(语言)有的团队用得好,有的团队用的差。不是人的问题是谁的问题?
alexmy
2019-07-26 14:11:11 +08:00
easyGin 现在不是有 go module 管理包了吗,我看你把整个 vendor 都传上去了。
haohappy
2019-07-26 14:14:05 +08:00
楼主怎么没提性能 是提升不大吗
iyaozhen
2019-07-26 14:14:44 +08:00
呵呵,抛开历史包袱,用啥都是爽。写了 3-5 年,换了几波人再来说。你看过 10 几年的项目就知道了,什么语言都是扯,一坨坨的代码乱的不行。

[是在 Go 里你代码不写单元测试,你线上完全不能改]为啥不能改?是不敢改吧,PHP 也有单测呀,改完单测都过了,上线心不慌(这个和语言有啥关系)。现在哪个语言没单测,哪个语言不能 IDE 运行检测?

你可能是需要企业级业务框架,给你规定的死死的只能这样搞,这个哪个语言都有
lifeintools
2019-07-26 14:15:25 +08:00
我也理解不了这种莫名其妙对 PHP 的吐槽。 就你这个 GO 的项目,只要管理不到位 代码质量一样。。
N1ceHua
2019-07-26 14:26:04 +08:00
PHP 野路子?用了 Go 就规范了?主观客观原因可以分析下嘛?请问 LZ 对自己的 PHP 学的是什么样的深度可以做个总结嘛?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/586409

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX