别人开发的框架,各位使用后,会为了开发习惯而再写代码进行封装么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
tctc4869
V2EX    程序员

别人开发的框架,各位使用后,会为了开发习惯而再写代码进行封装么?

  tctc4869 2021 年 1 月 1 日 3683 次点击
这是一个创建于 1836 天前的主题,其中的信息可能已经有所发展或是发生改变。

有一些第三方框架很不错,但是对于提供的 api 方法。自己感觉并不是很喜欢,于是想自己编写代码,对其进行再一次封装,以适应自己的开发习惯。

有些开发人员觉得,这样做是有点太过了,浪费时间,毕竟是别人的开发东西。但是如果不这样的话,一些重复性的操作,第三方框架的 api 没有提供复用方法,自己就得多写点代码。

各位觉得呢。

17 条回复    2021-01-03 15:26:20 +08:00
hugo54
    1
hugo54  
   2021 年 1 月 1 日
最好的办法是给对方提 issue 或者 pr 吧
tctc4869
    2
tctc4869  
OP
   2021 年 1 月 1 日
@hugo54 这个得看框架提供者
tctc4869
    3
tctc4869  
OP
   2021 年 1 月 1 日
@tctc4869 不对,是框架开发的作者
codeforyou
    4
codeforyou  
   2021 年 1 月 1 日
fork 后自己维护一个版本,将你这个版本的特点列在 README 里面,自然会有人跟你一样,并且 star
vamayoumo
    5
vamayoumo  
   2021 年 1 月 1 日   2
偏工具性质的库我觉得在自己的项目中都应该包裹一层,一个是便于自己调用,另一个是考虑接入库的接口可能出现的变动,还有方便以后替换实现方案;但是如果本身就是指导你如何实现某种架构的库,很难做到自己再封装一次。
3t
    6
3t  
   2021 年 1 月 1 日
看框架的轻重,轻的像 gin 和 flask 想怎么改怎么改,重的框架 django 这种就是拿来就用,轻度包一下也行,改的话一起维护的人会很痛苦,毕竟上一周的代码不知道是不是自己写的(狗头
tumaowolf
    7
tumaowolf  
   2021 年 1 月 1 日
部分易读的工具会,大部分不会
tctc4869
    8
tctc4869  
OP
   2021 年 1 月 1 日
@vamayoumo 适配器模式?重构的话,主要还是针对框架内的某个类型的"get"与"set"的方法进行再一次包裹,但是如果内部有子对象的,就不太好弄了
tctc4869
    9
tctc4869  
OP
   2021 年 1 月 1 日
@tctc4869 说错了,应该是装饰器模式或适配器模式?包裹的的话,主要还是针对框架内的某个类型的"get"与"set"的方法进行再一次包裹,但是如果类的内部有子对象属性的,包裹就有点就不太好弄了
Building
    10
Building  
   2021 年 1 月 1 日 via iPhone
看情况,有时会再写一个中间层,所有调用都通过这个中间层,这样第三方库换了也不会牵涉到项目核心代码。
tctc4869
    11
tctc4869  
OP
   2021 年 1 月 1 日
@Building
@vamayoumo
@tumaowolf

写这种中间层,实现以便于扩展,可替换性,增强开发效率,一遍会用到什么设计?我想到的是设计模式里的装饰器模式,加上语言自带的接口,抽象类,泛型。除了装饰器模式,还有其他的么
nicevar
    12
nicevar  
   2021 年 1 月 2 日
看公司还是个人项目,个人项目可能会抽象一层,有一天要切换的时候很快,公司项目的话按规范来,否则每个人都写自己的一套,项目非常乱,特别是早期人手框架的年代,一个项目经手多了就没法看
agdhole
    13
agdhole  
   2021 年 1 月 2 日 via iPhone
会,而且内部会根据业务来造一个框架上的框架
oneend
    14
oneend  
   2021 年 1 月 2 日
根据第三方框架 自己把一些自己需要的功能的调用的方式封装下, 这不是很正常的吗?
jones2000
    15
jones2000  
   2021 年 1 月 2 日
扣有用的代码, 其他都不要。
imycc
    16
imycc  
   2021 年 1 月 2 日 via iPhone
根据需要自己会固定套一层,用于做通用的错误处理,认证,日志等等。
感觉最理想的还是框架把业务无关的事情给做了,保留足够的接口方便拓展和定制,然后性能不要差。
pkupyx
    17
pkupyx  
   2021 年 1 月 3 日
看什么程度的三方框架,大框架的话,软件工程的目的先搞清楚,该改习惯的不是人家而是你。。。
如果是常见的网络封装默认报错 UI 是另外一回事。
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     949 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 25ms UTC 18:49 PVG 02:49 LAX 10:49 JFK 13:49
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86