V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tctc4869
V2EX  ›  程序员

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

  •  
  •   tctc4869 · 2021-01-01 17:58:24 +08:00 · 3250 次点击
    这是一个创建于 1430 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    各位觉得呢。

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

    写这种中间层,实现以便于扩展,可替换性,增强开发效率,一遍会用到什么设计?我想到的是设计模式里的装饰器模式,加上语言自带的接口,抽象类,泛型。除了装饰器模式,还有其他的么
    nicevar
        12
    nicevar  
       2021-01-02 10:50:03 +08:00
    看公司还是个人项目,个人项目可能会抽象一层,有一天要切换的时候很快,公司项目的话按规范来,否则每个人都写自己的一套,项目非常乱,特别是早期人手框架的年代,一个项目经手多了就没法看
    agdhole
        13
    agdhole  
       2021-01-02 11:53:48 +08:00 via iPhone
    会,而且内部会根据业务来造一个框架上的框架
    oneend
        14
    oneend  
       2021-01-02 12:25:46 +08:00
    根据第三方框架 自己把一些自己需要的功能的调用的方式封装下, 这不是很正常的吗?
    jones2000
        15
    jones2000  
       2021-01-02 12:48:14 +08:00
    扣有用的代码, 其他都不要。
    imycc
        16
    imycc  
       2021-01-02 17:53:16 +08:00 via iPhone
    根据需要自己会固定套一层,用于做通用的错误处理,认证,日志等等。
    感觉最理想的还是框架把业务无关的事情给做了,保留足够的接口方便拓展和定制,然后性能不要差。
    pkupyx
        17
    pkupyx  
       2021-01-03 15:26:20 +08:00
    看什么程度的三方框架,大框架的话,软件工程的目的先搞清楚,该改习惯的不是人家而是你。。。
    如果是常见的网络封装默认报错 UI 是另外一回事。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2586 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:53 · PVG 18:53 · LAX 02:53 · JFK 05:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.