python 后端出身.
第一次写 go web. 然后照着网上的开源项目抄. 我觉得 controller service Model 三层还是可以的. 毕竟业务扔到 Service 里面逻辑更清晰一些.
然后和 Java 同事请教了一下. 令我困惑的是:
- 类似验证密码的操作, 也要放到 Service 里面取做. 之前 django 的写法就是
user_instance.check_passwork(request.Post['password'])
这样不行吗? 为什么一定要
1. get password from DB
2. checkpassword with request
- Service 里面不要出现 SQL. 也就是说, 所有的查询都要用 Dao 转一手. 譬如我要查询一个用户是否存在. 如果用 Gorm 的话
DB.Where(map[string]interface{}{"user_id":666}).Count(&count)
这句话必须放在 DAO 层, 而不是直接在 Service 里写? 感觉好麻烦啊.
我的问题是:
- GO 可以更灵活吗? 更灵活一些是套路吗? 在开源项目中 / 实际商业项目中有成功案例吗?
- Java 分这么多层是 JavaEE 带进来的还是 Spring 带进来的? 还是谁带进来的? 没人提出过异议吗?
谢谢