工作上比较蛋疼的一些地方 —— 组员之间的工作对接

2015-04-28 15:25:49 +08:00
 dbfox
自身是web程序员,工作中发现一些问题
但是公司没有良好的技术氛围,
很难去解释一些技术问题,
去解释的时候,非web人员未必听得懂,反而会让他们觉得在推诿

事例:

有一个PC客户端项目,需要调用 web api ,返回数据格式是 json
web 程序员 去实现数据调用的 api
C++程序员 去实现 PC客户端,需要调用到 api
客户端频繁的修改,不断的出新版本,需求也在不断的修改



问题来了:

PC客户端有一个软件列表页,软件有用户评分,满分10分,
PC端根据API提供的JSON数据,会给分数大于8.5的软件图标上加一个“推荐”的标记


今天,新增了一些需求,需要在这个软件列表页上面增加一些广告
WEB程序员新写了一个广告 API,交付给PC端程序员,

需求是:要把广告搞成和“推荐”的软件一样,看起来是一个软件,有“推荐”的标记,实际是一个广告,点击会自动下载安装。

由于是广告,API 中是没有评分这个字段的

但是,PC客户端程序员想让加一个评分,让评分默认值是9分,这样他好把广告都设置成“推荐”的标记。

客户端为了实现这么一个小功能,API 需要跟着做调整,WEB程序员觉得这样做并不妥。

WEB程序员觉得API在设计的时候,尽可能灵活简约、有意义,无论客户端怎么变API不用变,尽量避免一次性API。

各位v友怎么看?


如图:
3402 次点击
所在节点    职场话题
12 条回复
owei
2015-04-28 15:40:39 +08:00
web端做没有什么问题呀?数据源在你这里,你肯定要满足需求的,而且你可以动态调整给端的数据呀,再加一个后台管理,呦呦,让他们玩去
sumhat
2015-04-28 15:45:23 +08:00
这要看 PC 端知道什么数据了,如果 PC 端知道那是广告,直接把分数改成 9 就行了;如果 PC 端不区分广告和非广告,就需要在服务器端修改。
dikcen
2015-04-28 16:30:31 +08:00
只有我认为这样做广告很不好么?
dbfox
2015-04-28 17:02:25 +08:00
@dikcen 我也觉得不好,不过我不能决定方向
mcfog
2015-04-28 17:25:47 +08:00
开发何苦为难开发

这种情况明显应该去咬产品汪啊

列表和广告混在一起节操掉一地啊
列表还要去除已在广告中出现过的entry简直没法实现啊
汪汪汪喵喵喵啊

去和PC端的战友较个什么劲呢
Ghoul2005
2015-04-28 17:35:13 +08:00
这是一个典型的分工问题,客户端开发希望这个功能由web开发实现,而web开发希望功能由客户端开发实现,两边的理由都有道理,就是为了自己这边的逻辑更简单,更易于维护。

这种情况建议上升到更高层次领导去决策,你们应该有一个类似技术主管的人,这两边的人都归他管,由他决策。

客观一点,决定逻辑归属哪个模块,主要考虑开发和维护成本,哪边成本低哪边做。
dbfox
2015-04-28 19:52:31 +08:00
@mcfog

公司产品高于一切,某种程度上,产品经理说了算,说实话这种情况挺悲哀的,

算了不说了,活在一个旋涡中,没辙,谁硬听谁的。
dbfox
2015-04-28 19:53:04 +08:00
@Ghoul2005 呵呵,我们没有,各据一方
vivisidea
2015-04-28 22:51:17 +08:00
@dbfox

就这个需求来说,个人觉得确实是web这边做比较合适的,理由就一个,灵活

如果下回产品说改个排序规则什么的,在客户端做的话就要重新发布客户端
在web这边实现只要改下输出逻辑就行了
RemRain
2015-04-28 22:59:27 +08:00
建议放到 web 端来实现,使 web 变重,客户端变轻。理由很简单,web 升级总是比客户端容易、更迅速、更灵活,web 的版本可以统一;而客户端每次升级都很伤,降低用户体验不说,每次更新总有人会不升级,或者升级失败。

实际上 web 应该控制更多的业务逻辑,而客户端只管展示。就拿 LZ 这个例子来说,客户端只应该添加一种类型,web 直接在原有接口上插入数据即可,这样 web 可以灵活控制广告投放的数量、位置等。万一产品改了,需要显示更多广告、或者要在正常的列表中中插入广告的话,也是接口一改就完事,不用客户端做什么。

如果新增一个接口,让客户端单独实现的话,试想一下会带来哪些问题:
1. 显示位置和数量固定,没法灵活调整
2. 两个接口加载耗时不一样,可能导致一块先加载出来了,另一块还是空白
3. 单个界面需要加载太多的接口
4. 有人没升级,广告出不来
dbfox
2015-04-28 23:54:21 +08:00
@RemRain
@vivisidea

我不赞同放web
比如广告形式变了,新版本不要广告了,同时要不影响老版本

按照你们说的需要客户端每个请求都加上版本号

web接收版本号进行判断返回数据,

如果长期这种下去,

web端程序要做很多版本兼容的api

web端会变得超级臃肿 ,代码估计没法看了
jackyliudm
2015-04-29 09:29:14 +08:00
从逻辑上来说,广告里面加个用户评分没有实际意义. 这是典型的为了编程方便来更改需求, 不可取.

不过你们的API确实需要重新设计, 从需求上来看, 这种广告类似于原生广告, 广告APP和非广告APP应该混在一起显示,而不是所有广告APP都放在最上面显示. 因为都放在最上面显示,几次之后用户就知道这是广告了...

你们应该重新设计一个API, 返回所有APP. 其中广告APP应该返回类似于推荐样式,推荐图标的字段; 其他APP返回用户评分.

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

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

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

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

© 2021 V2EX