之前一直是独立开发,没有什么协作经验。这次接了个项目,主要是做 Web 和微信小程序的后端开发,于是找了一位前端小姐姐合作。
合作了几个月,最近前端情绪很糟糕,甚至有点“破防”。今天找我聊了很久,一顿输出。我举几个例子:
判断订单归属问题
前端在要判断某个订单是不是“我的订单”。
我主张:对比订单的wechat_id
和全局保存着当前登录用户id
对比,相等则是自己的订单。
但前端觉得这样处理复杂,为什么后端不能直接返回一个字段,比如is_self
,让她直接用这个字段判断。
我觉得,反正前端也需要if is_self
,这和if order.wechat_id == my_id
区别很大吗,而当前用户的my_id
是全局信息也很容易获取。(ps:这里内部后台不需要担心id泄漏问题)审核数据对比问题
有个场景是审核时需要显示数据的变更情况。我接口返回了原始数据和修改后的数据。
我主张:前端需要自己对比两者,不相等的就是发生了变化,然后展示出来。
但前端的诉求是,希望后端直接返回一个字段,比如has_changes
这种boolean字段表示有变化,同时再另外加个字段带上具体的变更内容。也就是说,前端更倾向于后端把所有数量准备好,拿到直接渲染。
在讲这些具体问题之前,前端还提到我没有和人协作的经验,之前自己开发习惯了“随性”,这导致她在和我合作时非常不适应,觉得“和我对接是最恼火的一次经历”。
她认为问题在于我不够考虑她的开发习惯,而她自己和很多后端合作过,没有遇到类似的问题。她的总结是:“是我的问题,她没问题。”
我的初衷很简单,在不影响数据安全性和完整性的前提下,尽量把一部分计算任务转移到前端去处理。
后端直接从数据库处理数据直出,少量应用层逻辑计算,这样能够更高效地利用后端资源,尤其是内存。这种设计原则,我在独立开发时也是这么做的。
前端对我的做法很不满意,认为不符合她的开发习惯,而她的习惯是后端返回尽量直观的数据,让前端不需要再去判断或计算。她觉得,我的处理方式很失败,完全不如她之前合作的后端。
这让我有些无所适从:
到底是我的问题,还是我们的协作方式需要调整?
后端是否真的应该尽量直出数据,让前端不需要再计算?
我甚至不好意思提,后面还有个更复杂的功能:数据大屏需要连接 WebSocket,前端需要自己在浏览器维护一个订单列表,根据服务器传来的碎片数据进行更新、校验 checksum,并自行判断是否刷新、根据分类拆分和合并数据。
现在我非常困惑,可能是我确实不太懂协作,想听听一些建议或解决方法
分享来自:
nodeseek