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

代码有性能问题,程序员说只管实现功能,你怎么看?

  •  
  •   dinggk · 2022-07-19 18:42:23 +08:00 · 4263 次点击
    这是一个创建于 865 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近单位买了一套 php+VUE 的软件,然后请对方进行二开,增加用户的公司信息。原先的代码中,用户登录即获取到用户信息并存入 state 。但是二开时,程序员不是在登录后即去获取用户公司信息,而是在详情页面和会员信息页面分别加入了用 api 获取数据的代码,且没有存入 state ,造成每次访问详情页和会员信息页都要重复发送不必要的请求。跟程序员探讨这个问题,程序员说只管实现功能就行了,我们前期调研中没有提到代码性能问题,他们不负责。请问大家怎么看?

    44 条回复    2022-07-22 14:10:25 +08:00
    wenbinwu
        1
    wenbinwu  
       2022-07-19 18:44:28 +08:00
    加钱让人家搞。
    需有也没提,这种东西人家实现也没问题
    gam2046
        2
    gam2046  
       2022-07-19 18:50:35 +08:00
    给没给钱

    已经给钱,对方牛,你没辙
    还没给钱,你牛,对方没辙

    ---

    对方是有点无赖,但你这 show case 的时候也有点小疏忽
    westoy
        3
    westoy  
       2022-07-19 18:55:10 +08:00
    他们那个方案挺好的, 你的改进方案我反而觉得是过度优化, 性能提升也未必有多少, 反而还带来一个脏数据清理的问题。 如果期间源数据改了, 你是打算怎么通知操作人员? 再搞一个长链接 broadcast 到所有操作人员机器上去清理脏数据? 如果考虑到这个长链接本身是不稳定有可能会崩掉的, 你还得去维护针对不同操作人员的不同的通知队列.......
    dinggk
        4
    dinggk  
    OP
       2022-07-19 18:56:40 +08:00
    @westoy 刷新页面就好啊。
    dinggk
        5
    dinggk  
    OP
       2022-07-19 18:58:16 +08:00
    @westoy 而且这个数据 99%不会变化
    zhangleshiye
        6
    zhangleshiye  
       2022-07-19 18:58:23 +08:00
    没什么问题 ,没有缓存即时更新,要是有问题也是改代码麻烦。 真到了关注性能的时候,估计赚的钱也够重写代码了。。
    darkengine
        7
    darkengine  
       2022-07-19 19:03:21 +08:00
    你们预估项目的 QPS 是多少,不高的话这么搞没问题
    renmu123
        8
    renmu123  
       2022-07-19 19:06:23 +08:00 via Android
    只能说是实现方式不同吧,起码他避免了脏数据,扯不到性能。实在在意就用甲方身份压一压他
    karloku
        9
    karloku  
       2022-07-19 19:09:23 +08:00
    有性能需求的话在采购时把性能指标提好(页面加载时间, QPS 之类的), 然后根据需求把价格谈好. 没有提出性能需求那就是只要能用, 只管实现功能.
    paradoxs
        10
    paradoxs  
       2022-07-19 19:14:45 +08:00
    合同里面如果没写,那肯定不管。
    fe619742721
        11
    fe619742721  
       2022-07-19 19:20:54 +08:00   ❤️ 14
    这压根就到不了性能问题这个范畴,顶多就是你看他写法不顺眼
    对乙方来说,懂点技术的甲方是最难缠的,烦的要死又不加钱

    对甲方来说,你都选择外包了,技术啥的,睁一只眼闭一只眼吧,太较真了自己也难受
    dcsuibian
        12
    dcsuibian  
       2022-07-19 20:29:04 +08:00
    计算机:我可以 用户:不,你不行
    现在随便开个网站都是上百个请求,光 xhr 也有几十个。你把计算机的速度想得太弱鸡了。

    最重要的是这个请求发的合情合理,预先缓存容易有一致性问题。你打开 youtube 点下用户头像看看他发不发请求。
    billzhuang
        13
    billzhuang  
       2022-07-19 21:37:22 +08:00
    这种系统都要外包二次开发,说明 OP 公司对软件本身也没啥要求。
    Jooooooooo
        14
    Jooooooooo  
       2022-07-19 21:41:35 +08:00
    加钱可破.
    nightwitch
        15
    nightwitch  
       2022-07-19 21:42:10 +08:00 via Android
    外包的实现甲方就不要去微操了。
    Rache1
        16
    Rache1  
       2022-07-19 21:44:55 +08:00   ❤️ 3
    不怕不懂,也不怕全懂,就怕这种半懂的
    lscho
        17
    lscho  
       2022-07-19 21:51:33 +08:00 via iPhone   ❤️ 2
    这种甲方就是我最讨厌的甲方类型。。。多发个请求都要管,而且人家这请求发的也还算合理。
    zhuweiyou
        18
    zhuweiyou  
       2022-07-19 21:55:02 +08:00
    这个多余请求一点问题都没有
    roundgis
        19
    roundgis  
       2022-07-19 21:57:25 +08:00 via Android
    對性能沒影響就行了

    你一個單位難道有幾千 qps 不成?
    T0m008
        20
    T0m008  
       2022-07-19 22:07:43 +08:00
    之前没提到肯定不管,之后加钱肯定可以优化
    kappa
        21
    kappa  
       2022-07-19 22:08:55 +08:00   ❤️ 1
    > 刷新页面就好啊。
    > 而且这个数据 99%不会变化

    有经验的来看看,平常产品经理提需求是不是都这么说的
    ShuA1
        22
    ShuA1  
       2022-07-19 22:11:49 +08:00
    自己反向代理加一层这个 api 的 cache
    ytmsdy
        23
    ytmsdy  
       2022-07-19 22:58:21 +08:00
    So what ?!你应用的访问量会以为这点没优化,导致整个程序奔溃么?
    如果会,要求改也是合情合理。如果不会,那就睁一只眼闭一只眼吧,又不是不能用对吧?
    luob
        24
    luob  
       2022-07-19 23:09:50 +08:00
    改个逻辑当然不是什么问题,举手之劳而已,我认为对方主要是担心明天你会不会又有了新的要求

    代码有格式问题,缩进都是两个空格,要求用 4 个空格但是我们前期调研中没有提到空格问题,他们不负责。请问大家怎么看?
    变量名起得不够优雅,我要求一个一个查词典把名字改了但是我们前期调研中没有提到变量名问题,他们不负责。请问大家怎么看?
    听说 php 不是世界上最好的语言了,想让程序员换 java 但是我们前期调研中没有提到语言问题,他们不负责。请问大家怎么看?

    你如何让别人相信你不会继续提出这三个问题,如果你能证明,那显然这个问题是非常好解决的。如果你没办法保证,一旦开了这个口子,就准备扯皮到 2077 年吧
    microxiaoxiao
        25
    microxiaoxiao  
       2022-07-19 23:54:13 +08:00
    看描述也不算性能问题,是你觉得那样更优雅的感觉或者错觉。
    ericls
        26
    ericls  
       2022-07-19 23:58:22 +08:00 via iPhone
    性能问题都是商业模式问题
    fpure
        27
    fpure  
       2022-07-20 00:00:56 +08:00
    缓存需要考虑一致性的问题,反而麻烦
    MEIerer
        28
    MEIerer  
       2022-07-20 00:02:48 +08:00 via Android
    前期没有这个性能要求的话,人家不考虑就不考虑呗
    liprais
        29
    liprais  
       2022-07-20 00:19:08 +08:00 via iPhone
    这实现毫无问题,有性能瓶颈也不会是这
    ryougifujino
        30
    ryougifujino  
       2022-07-20 00:58:30 +08:00
    別人的这个实现方式根本就没问题。
    yedanten
        31
    yedanten  
       2022-07-20 01:05:48 +08:00 via Android
    前期没谈实现细节,现在东西做完了来说,确实你不占理,如果实现了之前谈好的效果,这时候突然有要求其他的东西,无论是大的需求变更还是小的实现方式,这不就是最恶心的甲方做法嘛,鬼知道后续还有没有新的需求变化。
    charlie21
        32
    charlie21  
       2022-07-20 01:11:50 +08:00 via iPhone
    你遇到骗子公司了

    在这一单过后再也不与之合作

    二次开发公司有的是,不需要在这一棵树上吊死
    realpg
        33
    realpg  
       2022-07-20 01:21:36 +08:00
    世界加钱可及

    你评估一下你们给的钱是不是要求对方写个高性能系统
    外包的性能需求就算合同没明确,也初步双方进行一个约定
    如果没约定,那就是功能实现,不一个请求卡半天就好

    没有约定的,如果一个请求卡一秒,复杂数据库请求卡两秒,那有点说不过去

    而你这个案例,我觉得你花的价码应该不是高性能选手的价

    高手写代码自带优化,不需要刻意设计,自然而然就代入性能问题.

    下次找贵的公司,给钱超过市场价二倍,1 万 QPS 起步
    ericgui
        34
    ericgui  
       2022-07-20 01:26:07 +08:00
    你别想多了

    99%的项目在倒闭之前不需要考虑性能问题

    剩下 1%,在融资到 A 轮之前,也不需要考虑性能问题。
    janus77
        35
    janus77  
       2022-07-20 01:30:43 +08:00 via iPhone
    有个段子,项目经理要求这里 sleep3 秒以便后期让客户加钱优化性能.jpg
    这种事现实中并不是不会发生的
    wangkun025
        36
    wangkun025  
       2022-07-20 01:38:35 +08:00
    弱弱支持下对方。
    akira
        37
    akira  
       2022-07-20 02:01:52 +08:00
    1. 性能问题的话,需要有明确的指标的呀, 例如因为多了这 2 个 API 接口调用,导致页面加载多了几秒,服务器在多少用户的情况下,CPU 、内存、数据库分别负荷高了多少 。 如果实施什么方案 预计实施方案后对应指标可以优化到多少。

    2. 外包开发是需要提前做约定的。这个性能问题在约定的范围内么,如果不在的话,是否有书面形式的需求变更要求并有相关甲方负责人签字。 都没有 人家凭啥给你做。
    akira
        38
    akira  
       2022-07-20 02:04:51 +08:00
    以后找外包,记得写上技术指标要求,例如所有页面的响应时间必须小于多少秒,必须支持多少并发
    yogogo
        39
    yogogo  
       2022-07-20 07:50:38 +08:00
    得加钱
    zr8657
        40
    zr8657  
       2022-07-20 09:05:37 +08:00
    你不说价格和乙方出了多少人大伙能怎么看?
    乙方公司是不是靠关系拿到的项目、项目体量多大、项目大体金额等等这些才是核心因素,而不是这几个该死的接口
    wu67
        41
    wu67  
       2022-07-20 11:51:08 +08:00   ❤️ 1
    讲真, 你管人家怎么实现啊...你要关注的是这个页面的响应时间、从跳转到 load 完页面的时间, 这才叫性能问题. 同理如果他多调的接口卡了页面多久多久, 能让你明显感知到, 那才叫性能问题, 如果感知不到明显差距, 那你不是瞎操心么
    gulullu
        42
    gulullu  
       2022-07-20 14:28:31 +08:00
    难缠的甲方。
    m319
        43
    m319  
       2022-07-21 11:19:37 +08:00
    性能问题应当由程序员负责处理,但你这个案例里这么点开销在规模不是特别大的情况下对性能的影响微乎其微,这东西改起来还麻烦,这种费时费力又收效甚微的事情是没人乐意干的
    ThreeK
        44
    ThreeK  
       2022-07-22 14:10:25 +08:00
    老哥就发个请求啊,这你管啥,谁不烦事 B 啊。百度、google 就一个输入框你看看有多少请求。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1450 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:27 · PVG 01:27 · LAX 09:27 · JFK 12:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.