同样的功能,你是倾向于框架 API,还是自己重写代码?

2015-06-26 22:05:36 +08:00
 w88975

开发项目中,用到某框架,该框架刚刚beta不久,主要教程来自官方文档,民间极少有教程.
需要实现一个功能,框架有提供一个很接近的API.
经尝试很多次后,发现失败(原因在于并不知道这个API能达到需要的效果,官方文档给的用例比较少,也没有其他地方可以查阅)

抛弃框架的API进行开发,用自己的代码实现,其实利用框架和自己写代码,逻辑是一样的,代码甚至90%都相同.

但是codeview过不了,上司要求,能用框架提供的API就必须得用,我很是无奈,甚至觉得,假如后来知道了该框架不能完成所要的需求的话,就在这上面浪费了不少时间.有点吃力不讨好的感觉.

不知道各位猿们怎么看?

项目是开源项目.

3869 次点击
所在节点    程序员
19 条回复
Septembers
2015-06-26 22:22:22 +08:00
如果框架本身官方接受Pull Request的话
可以考虑重构目标API提交Pull Request
(但是如果这样做的话 需要考虑通用性问题
w88975
2015-06-26 22:50:04 +08:00
@Septembers 框架接受Pull Request,但是我的问题不在于是否修改框架,而是这两点之间的抉择问题.
w88975
2015-06-26 22:52:04 +08:00
@Septembers 如果框架本身能够很轻松的解决问题,那么一定选择框架提供的API,但是在框架不确定的情况下,是否可以先出一个版本,后期再进行迭代?
而且还是这种使用框架API与自己重构的成本基本上相同的情况下,如果选择框架,能很好的踩完需要踩的坑,但是浪费了时间.
Septembers
2015-06-26 23:07:57 +08:00
@w88975 麻烦透露下编程语言
kongkongyzt
2015-06-26 23:08:59 +08:00
我只是好奇为啥要用一个beta不久的框架。。。
w88975
2015-06-26 23:20:00 +08:00
@Septembers polymer
w88975
2015-06-26 23:21:47 +08:00
@kongkongyzt 搞错了 是release
neoblackcap
2015-06-26 23:24:09 +08:00
@w88975 既然接受pull request的话,你写得又比框架的好,那么你去发个pull request将你的版本合并进去,然后不久光明正大地使用了吗?
iskyzh
2015-06-26 23:32:24 +08:00
@w88975 = = 这个框架好像很熟悉的样子……
我看 Polymer 做出来的网页效果很好,虽然没有学过,但我倾向于根据自己的需求读官方文档,如果官方文档里没有,或者自己的需求超出了框架能做的,我会考虑再使用一些更加底层的方式写代码。
本人对前端的美观比较在意,所以肯定不会选择自己写,那么就先用 Polymer 做,实在没法用 jQuery 获取 Polymer 创建的 DOM 对象,然后进行操作……
= = Google Material Design 有一个 Bootstrap 主题…… https://github.com/FezVrasta/bootstrap-material-design , 如果是为了做出 Material Design 的界面效果而使用 Polymer,不如寻找其他可以显示 Material Design 的代码。
iwege
2015-06-26 23:47:05 +08:00
先修改自用,觉得可以就和官方讨论,不然就自己维护一套。
或者用这个为一个base class 然后extend你自己的API。
以前JQM不支持的tablet的时候就这么搞过。
w88975
2015-06-27 00:02:05 +08:00
@iskyzh 并不是UI方面,而是在JS框架方面,基本上没有用到polymer提供的控件,控件都是自己重新基于polymer做的.


@neoblackcap 首先是不至于为了一个很少见的需求去提pr,我最大的问题在于,如果框架提供的API仅仅能满足一点点需求,并且开发周期大于自己重新造轮子,这种情况下,是继续踩坑还是自己造轮子解决.
dallaslu
2015-06-27 00:07:24 +08:00
工期紧、框架完成度高并稳定,则用框架。
88250
2015-06-27 00:10:06 +08:00
开源项目注重的是持续
w88975
2015-06-27 00:10:09 +08:00
@dallaslu 工期确实紧,但用框架需要踩很多坑,需要花时间去了解,反而比较浪费时间.
w88975
2015-06-27 00:10:54 +08:00
@88250 持续是肯定的,我想的是初期版本可以暂时自己实现,后期迭代的时候,如果能用框架则用框架.
Septembers
2015-06-27 00:17:31 +08:00
@w88975
1.
你可以考虑自己做个 组件库,打包成一个project,单独维护
然后在项目中引入该 组件库
2.
目标API不满足又不希望提交poll request/issue
可以通过monkey patching的方法解决
(代价是API与文档描述行为不符合既定预期,
(从而造成维护困难
3.
开始你说公司不允许不使用API也就意味着,你没有对基础框架的调整权限。
realpg
2015-06-27 01:17:46 +08:00
选择一个可以充分扩展的框架……开源社区维护的可以贡献代码的就更好了
jjx
2015-06-27 09:22:51 +08:00
在可能的情况下尽量使用现有的框架,当然框架要符合成熟,开源, 社区好的条件,这样能享受很多人的智慧, 如果什么都是自己实现, 最后结局通常是重写, 特别是换人的时候
secondwtq
2015-06-27 12:44:51 +08:00
Polymer 感觉确实有坑... 特别是推开官方组件库从头重做的...

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

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

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

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

© 2021 V2EX