1
LoNeFong 2020-04-14 10:45:23 +08:00
如非必要,就不要换
|
2
lhx2008 2020-04-14 10:46:19 +08:00
ORM 和 JSON 这块这块很麻烦,laravel 太随便了,怎么写都行。
转的意义不大,看管事的人怎么背锅了 |
3
b821025551b 2020-04-14 10:49:18 +08:00 1
pv 不超过 100 ?还没测试环境压力大,你折腾它干嘛?
|
4
zjsxwc 2020-04-14 10:51:56 +08:00
如果只是因为 “我司的产品是私有化部署给客户的, PHP 由于是动态语言, 天生加密性不好”
可以用 zephir 把 php 代码变成 二进制 so 拓展,提供给别人 |
5
ArJun 2020-04-14 10:54:48 +08:00 1
https://xueyuanjun.com/ 这位大佬也是 laravel 转 go
|
6
lniwn 2020-04-14 11:01:55 +08:00
你这种需求,如果非要转 go,可能还得再看下 mongo 。
|
7
Rwing 2020-04-14 11:04:07 +08:00
考虑利用 db 支持的 json 类型,直接存到 json 类型里
|
8
Mohanson 2020-04-14 11:10:38 +08:00
"net/http"
|
9
yc8332 2020-04-14 11:24:08 +08:00 1
如果只是代码加密问题,都给他搞成二进制不就好了。缓存 opcache,不需要给代码的。只要有代码文件名就行了。
|
10
airplayxcom 2020-04-14 11:26:25 +08:00
这么说吧 开发成本与维护成本 你选哪一个
|
11
hantsy 2020-04-14 11:36:14 +08:00 3
转 GO,编程体验就像回到了 PHP 4 。
|
12
hantsy 2020-04-14 11:37:27 +08:00
laravel 你为什么要用弱类型,PHP 完全可以按强类型 OOP 那一套来写程序。
|
13
dilu 2020-04-14 11:46:10 +08:00
讲道理,如果不是性能 如果不是安全和方便部署,go 在 web 开发这里没有一毛钱的优势
不要为了转而转 |
14
skyworker OP @lniwn mongo 就算了, 当年赶时髦尝试过 egg js + mongo 的搭配, 简直是巨坑, 老老实实换成了 laravel + mysql 5.7
|
15
skyworker OP @zjsxwc zephir 研究过, 不过目前的 php 逻辑是在 laravel 的 app, 目前还没 google 到类似案例
|
16
skyworker OP @yc8332 目前还没有完美的 PHP 加密方案, 不信你去 taobao 搜索 "PHP 解密", 任何当前的 PHP 加密都能 1 块钱解密
|
17
Rwing 2020-04-14 12:06:30 +08:00
题外话,考虑一下 c#
|
19
skyworker OP @Rwing .net core 起一段时间看过, 不过毕竟 MS 整天虎头蛇尾, 绑定到 MS 的战略上, 很有可能当炮灰
|
23
JohnSmith 2020-04-14 12:35:03 +08:00 via Android
找有经验的 golang 大牛带队
|
24
noobsheldon 2020-04-14 13:04:22 +08:00
霸天虎变形就行了 /doge
|
25
loading 2020-04-14 13:30:22 +08:00 via Android
goframe,了解一下。
|
26
buffzty 2020-04-14 13:46:41 +08:00
我也是尝试用 go 写 api. 总体来说,没有泛型很难受. 其他的还好.
安全性变高,灵活度变低,复杂度变高 1: ```go d := &AddUserData{} if err := c.ShouldBindJSON(d); err != nil { app.ValidError(err) return } user := &models.User{ Account: d.Account, Gender: d.Gender, Name: d.Name, Age: d.Age, Level: d.Level, } if err := models.Add(user); err != nil { app.ErrorMsg(err.Error()) return } app.Success() ``` 2: json 注解中加入 sql:"TYPE:json" 类型是先 Value 和 Scan 接口 3: db.Model(&user).Updates(map[string]interface{}{"name": "hello", "age": 18,}) 或 db.Model(&user).Updates(User{Name: "hello", Age: 18}) |
28
tairan2006 2020-04-14 13:50:34 +08:00
你这不如转 Java,go 写 curd 没啥优势的
|
29
lvsemi1 2020-04-14 13:57:05 +08:00
你的这些需求 go 并没有解决啊
那既然大家都是高仿,不妨试试 goby on grails |
30
ben1024 2020-04-14 14:02:35 +08:00
一些 socket 服务用 go,其他业务用 PHP 一起使用不影响
|
31
gochat 2020-04-14 14:05:54 +08:00
只想说一句:动态一时爽,重构火葬场,你说的那些优势某种意义上来说就是劣势,系统最终只会变的更糟,最终不可维护。
|
32
charlie21 2020-04-14 14:10:12 +08:00
laravel 转 golang ...
|
33
Rekkles 2020-04-14 14:19:00 +08:00
等于是好好的现代化工厂不要,非要自己组装个小厂开始造车。
|
34
skyworker OP @tairan2006 java 的啰嗦实在恶心, 不打算用 java
|
35
buffzty 2020-04-14 14:28:21 +08:00
@skyworker 不至于.我觉得 go 多了百分之二十代码左右 这百分之 20 都是为了 orm 获取列表 写接口写的.等泛型有了 我觉得基本没什么差距了,或者 go 的代码更少些
|
36
tairan2006 2020-04-14 15:00:33 +08:00
@skyworker 代码量差不多…go 没有 oop/泛型,有时候抽象业务代码有点麻烦,等 go2 出来倒是可以考虑。
直接上 Java11 的话,代码量应该比 go 还少一点。go 的优势在无痛并发上,你们用不上的话,没必要上。 |
38
skyworker OP @yanzixuan 一块钱是夸张的说法, 他们是按文件数量收费的. 你传一个 200 个 php 的压缩包, 人家收 200 块钱这样子. PHP 解密有专门的工具, 文件夹丢进去,就全部解密了
|
39
skyworker OP 讨论到这里, 看来转 go 没啥意义了, go 的唯一的优势 和 带来的缺点比, 不算什么
|
40
buffzty 2020-04-14 16:17:47 +08:00
为什么要转 go 啊, 哪个程序员不会几个语言啊 一起写不就行了吗
|
41
yc8332 2020-04-14 17:07:39 +08:00
@skyworker 不是加密代码。是只提供 opcache 就能运行了,和 java 的 class 文件一下。。编译过的。
|
42
lepig 2020-04-14 17:16:19 +08:00
先说一下。现阶段用 golang 就别用什么 orm 了,go-sql-driver/mysql 库已经足够用。 如果你用 laravel orm 的使用体验来体验 golang 呵呵
|
43
xcstream 2020-04-14 18:10:49 +08:00
实时通信和常驻数据的可以考虑其他语言。其他 php 足够了
|
44
lygmqkl 2020-04-14 20:08:56 +08:00
说句不太好听的, 选 laravel 就是选择了快餐化倾向,go 基本属于回到 php3/4 的时代,你们绝 B 接受不了。 在 go 上就别想那么轻松了,两个并不一样,laravel 是为了“快”,放弃了很多,go 更严谨。
注重点并不一样,可能开发成本你们最终也无法接受。。。 |
45
chinvo 2020-04-14 20:12:55 +08:00 via iPhone
request->all 直接传递给 ORM 可能导致未授权写入
比如你有个字段只有管理员能写 或者你后期增加了类似的字段但是早期代码没改全导致有的接口没能对新增字段做过滤 |
46
liuhan907 2020-04-14 21:09:41 +08:00 via Android
|
47
bobomaster 2020-04-14 21:22:39 +08:00
Swoole Compiler 加服务器授权,商派就是这么干的
|
48
lybcyd 2020-04-15 09:09:02 +08:00
@chinvo laravel 的 model 有专门的属性来规避这个问题,可以只允许指定 field 来进行批量赋值,也可以反向设置指定 field 不能批量赋值
|
49
skyworker OP @lygmqkl 我个人认为, go 的"快"其实没什么意义, 带来的代码量膨胀才是成本.
并且在这个 CPU 和内存低廉的时代, 即使 PHP 的代码比 go 多了 50ms, api 用 token, 增加服务器,然后用 load balance 就 OK 了. 并且真的的大项目, 系统的瓶颈也在数据库这里, 而不在编程语言中. |
50
skyworker OP 就像前几年被前端封为神器, 希望插入后端工作的各种 js web 框架, 原本 js 中引以为傲的 async 功能, 当做后端语言的话, 简直就是坑, 反正我是恨不得禁用了 async
|
51
skyworker OP @chinvo 企业 ERP 系统, 各种 form 中字段多如牛毛(几十个 /上百个), 并且客户会随时提出变化,增加或减少 form 中字段(少 10 个字段 /多 20 个字段), 因为内部系统, 所以暂不考虑 hacker 攻击的问题, 先应付客户的需求变化再说.
|
53
HanSonJ 2020-04-15 10:41:34 +08:00
|
54
skyworker OP |
55
skyworker OP @bobomaster 同理, swoole 也一样 https://www.zhaoyuanma.com/article/48.html
|
56
skyworker OP @HanSonJ 这篇资料更详尽一些: https://www.anquanke.com/post/id/176767
|
58
nicoljiang 2020-04-15 12:23:43 +08:00
心理上真的好排斥 laravel 党过早地来 go
毕竟威力大到能把整个 PHP 生态带偏~ |
59
nicoljiang 2020-04-15 12:24:32 +08:00
为啥不去 Java 或者 .Net 啊??
Go 还小,不要伤害他。 |
60
sunshinev 2020-05-06 15:24:23 +08:00
我也是从 php 转向 的 golang,第一次先学习了 gin 、beego 之类的,觉得 go 本身不需要使用框架,本身已经足够强大了。所以开始学习 grpc 和 protobuf,搞了一个 http://chat.osinger.com 的项目, 然后一个月内开发了一个 go-sword 后台管理界面系统生成工具,https://sunshinev.github.io/go-sword-home 。目前觉得 go 满足了之前对 java 、php 、c#的优点集合~~哈哈
|