V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ahhtree
V2EX  ›  职场话题

后端老鸟耍不要脸

  •  
  •   ahhtree · 2023-11-21 06:16:45 +08:00 · 19690 次点击
    这是一个创建于 366 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我和他矛盾爆发直接原因:

    1 、接口没有统一返回值;

    2 、前后端分离的项目,token 过期他直接重定向到首页而没有任何提示信息;

    3 、token 错误显示跨域错误,我怀疑压根没处理这种情况。

    和他争辩,说不过了就以修改时间不确定拖着。

    背景:

    1 、非互联网公司,公司开发就两个人,我和他,我不懂 Java ;

    2 、没有架构师、产品、设计人员,组织架构、开发流程很不完善;

    3 、leader 人不错,能力很强,但是不懂代码;

    4 、我前端一年经验,他后端 5 年经验。

    我对于他的看法:

    1 、他对 sql 优化确实有点东西,但他擅长 mysql ,公司用的 PostgreSQL ;

    2 、逃避复杂的东西(算法、后端架构系统性设计);

    3 、和稀泥,脸皮厚;

    请问各位 v2 大佬:

    1 、碰到这种人你们怎么和他打交道?我是见都不想见到;

    2 、业务场景:一张表中 1000 万多的数据,每次查询需要扫描全表逐个计算过滤,拿到通过的数据,前端分页展示。对于该业务场景各位如何进行查询?

    第 1 条附言  ·  2023-11-21 07:11:13 +08:00
    对于第二个问题:我的职业发展规划是全栈工程师,我认为思考这个问题对于我的职业发展有益;
    我在现公司唯一一次加班是因为 response-body 为空的问题无法解决(可参见我上一篇帖子),加班 20 分钟。其他时候都是准时下班。
    第 2 条附言  ·  2023-11-21 14:36:22 +08:00
    诸位说的都太对啦,不管是针对问题的回复还是针对我本人的回复都太对啦!我丝毫没有反驳的余地。
    第 3 条附言  ·  2023-11-21 18:27:02 +08:00
    关于我上个帖子里面的那句话,我的本意是“我的年龄越大见到的傻 x 越多”,我觉得和“年龄越大越。。。”是不一样的;

    如果有人觉得我冒犯了他......😜[中指]
    157 条回复    2023-11-23 09:24:13 +08:00
    1  2  
    c2const
        101
    c2const  
       2023-11-21 11:29:51 +08:00
    小润出公司,大润出大陆 :)
    lopda
        102
    lopda  
       2023-11-21 11:31:53 +08:00
    @wtfedc #91 完全赞同。慢慢的还是要找个深入的方向。
    cosiner
        103
    cosiner  
       2023-11-21 11:33:51 +08:00
    我选择后端的方案, 简单明了, 你的方案复杂, 而且感觉并没有什么优势, 你的方案 redis 只是另一个 ID 和信息的存储, 而不是作为计算结果缓存的, 这样反而在维护性上处于劣势( 一个 pg 内部函数相比 redis 部署+复杂计算代码+redis 调用 )
    changepll
        104
    changepll  
       2023-11-21 11:38:06 +08:00
    一年级新秀, 大有可为
    IamUNICODE
        105
    IamUNICODE  
       2023-11-21 11:39:30 +08:00
    @oppoic 好家伙,这帖子我记得
    xiaoHuaJia
        106
    xiaoHuaJia  
       2023-11-21 11:43:02 +08:00
    @doanything 我也好奇 哈哈哈
    koloonps
        107
    koloonps  
       2023-11-21 11:44:26 +08:00
    @katsusan 想做全栈呗
    xylxAdai
        108
    xylxAdai  
       2023-11-21 11:44:51 +08:00
    “我的职业发展规划是全栈工程师”,“我不懂 Java ”。那就快去学 java 啊,光规划不做是吧?
    你觉得他写的代码性能不好,直接上去帮他改了不就完事了吗,你好我好大家好。
    接口规范你觉得不行,你就自己写好规范文档,找 ld 一起沟通让他对齐,给他时间让他干,他不干你 ld 也不管,你闲着蛋疼去管别人啊?早点跑路。
    zhaoxiaolei
        109
    zhaoxiaolei  
       2023-11-21 11:47:21 +08:00
    感觉你俩人生阶段就不同,对工作的态度也不同。
    你刚开始工作,干劲满满,那个后端同事工作五年以上了,已经是职场老油条了,你认为你工作态度更认真(我也认可),更客观,但最后很有可能是那个后端同事能够长久地在这家公司干下去。遇事别冲动,多妥协,多合作。
    xiaoHuaJia
        110
    xiaoHuaJia  
       2023-11-21 11:47:57 +08:00
    你行你上,我就是懒就是不想动,我巴不得我全做事我摸鱼搞自己项目
    xwayway
        111
    xwayway  
       2023-11-21 11:49:11 +08:00
    既然你定位是前端,为啥对后端的事指手画脚,你让他吐出你要的数据就行了,为啥要干涉他用哪种方案呢?
    codersdp1
        112
    codersdp1  
       2023-11-21 11:51:50 +08:00
    质疑他,理解他,成为他
    43n5Z6GyW39943pj
        113
    43n5Z6GyW39943pj  
       2023-11-21 11:55:54 +08:00
    统一响应有必要,其他的就别多嘴了
    StrangerA
        114
    StrangerA  
       2023-11-21 11:58:54 +08:00   ❤️ 1
    想太多,做太少。

    工作上建议只做好自己手上该做的,其他事情别管。多余的精力用来做自己想做的项目。原因很简单,你换位思考一下有同事对你负责的工作指手画脚乃至人身攻击你是什么感觉。

    目标是全栈又不会 java 的话,花点精力学习下 java 和数据库吧。完事了就知道人家这么做的原因了。
    potatowish
        115
    potatowish  
       2023-11-21 11:59:23 +08:00 via iPhone
    @doanything 能啊,和前后端分不分离没关系,分离只是把页面这部分移出来了,一般只提供接口,但是还是跳转页面,甚至直接返回一个页面
    opentrade
        116
    opentrade  
       2023-11-21 12:07:38 +08:00
    两个人还分前端后端
    amon
        117
    amon  
       2023-11-21 12:14:10 +08:00   ❤️ 6
    如果这个 5 年后端对着你说:
    1. 我们的前端开发效率目前存在瓶颈,能不能实现模板化组件化、开发公司内部专用的技术框架,这样后续开发直接复用框架组件,只需实现核心逻辑即可。
    2. 这套框架,结合 Beact 和 vne 框架的优点,完美无缝兼容 PC+H5+App+小程序+鸿蒙
    3. 进一步,这套框架能支持非开发人员也能快速搭建自己的系统和模块,成为一个低代码平台
    4. 这套框架组件,成熟稳定后,考虑提交到开源社区,反哺社会
    5. 方案我就提在这里了,Leader 你们看着办。虽然我不懂前端,但我想成为一个全栈 /doge
    6. 最后,职场环境傻 x 很多,话越多傻 x 越多 /doge
    collen
        118
    collen  
       2023-11-21 12:18:23 +08:00
    套用前几天对小仙女说的话,当你在除开一件事之外莫名的讨厌一个人的时候,那你肯定和他是同类,他把你身上有,但是不愿意放大的属性,在人群中表现出来,你越来越讨厌他,你以后就会成为他,本质上现在的他就是以后的你
    fyxtc
        119
    fyxtc  
       2023-11-21 12:46:26 +08:00
    在职场,能力配不上脾气的时候:
    1.虚心一点
    2.六字真言
    break
        120
    break  
       2023-11-21 13:00:08 +08:00
    "一张表中 1000 万多的数据,每次查询需要扫描全表逐个计算过滤,拿到通过的数据,前端分页展示"

    这是什么业务场景。。。用户能看到的数据才多少,怎么可能每次查询都需要 1000 万条筛选。对于场景无用的“垃圾数据”先排除啊,没必要每次参与。区间、分类、人群总有可以缩小所需数据范围的地方吧
    Frankcox
        121
    Frankcox  
       2023-11-21 13:00:25 +08:00
    @oppoic #96 这个贴原来也是 OP 发的,很难让我不怀疑这个 OP 是故意编造争议贴捞币
    liuguang
        122
    liuguang  
       2023-11-21 13:14:18 +08:00
    五年经验那是有真技术的,好好学学,别只会抱怨人家。
    huoshanhui
        123
    huoshanhui  
       2023-11-21 13:14:20 +08:00
    以和为贵,人情世故。要么改变环境,要么改变自己。
    希望 OP 把心态调整好。理想主义我是赞成的,但要结合实际环境。
    TofuBazinga
        124
    TofuBazinga  
       2023-11-21 13:54:54 +08:00 via Android
    其他问题没法下定论,第二个问题后端做的没问题
    tutustream
        125
    tutustream  
       2023-11-21 14:03:11 +08:00
    @oppoic 这个贴有印象,当时就感觉 op 太自以为是了
    TestFlight
        126
    TestFlight  
       2023-11-21 14:07:46 +08:00
    @ahhtree #6 你这是在自以为是地抢别人饭碗呀,而且也否定了你的 Leader 的决策,很容易让人反感😅
    alsas
        127
    alsas  
       2023-11-21 14:10:50 +08:00
    一千万的表就要上 redis 了???
    ewBuyVmLZMZE
        128
    ewBuyVmLZMZE  
       2023-11-21 14:11:13 +08:00
    少抱怨,多做事,你觉得你的方案行,那你就做出来试试看。纸上得来终觉浅,绝知此事要躬行。
    技术没有绝对的对错,只有对比。另你的经验确实尚浅,小公司也很难接触到真正有挑战的东西,如果学历尚可,确实可以多学点东西挑战大厂。
    TateLiao
        129
    TateLiao  
       2023-11-21 14:11:34 +08:00
    跳槽,你在等什么
    richardZhao
        130
    richardZhao  
       2023-11-21 14:20:02 +08:00
    @oppoic #9 嗷 是这位啊!有印象了,不好的印象
    nekoneko
        131
    nekoneko  
       2023-11-21 15:18:31 +08:00
    @ahhtree #11 前端分个毛线的页, 直接上 graphQL 算了
    blankmiss
        132
    blankmiss  
       2023-11-21 15:35:43 +08:00
    为了用 redis 而用 redis ? 这种情况下为什么要用 redis 我不太懂
    rahuahua
        133
    rahuahua  
       2023-11-21 15:38:38 +08:00
    @lrh3321 你指望一个一年前端能懂扩容、维护成本、后台架构这些?他们知道个 redis 都觉得精通后端了
    zhuoyue100
        134
    zhuoyue100  
       2023-11-21 16:19:57 +08:00
    多干几年就好了
    maomaosang
        135
    maomaosang  
       2023-11-21 16:28:51 +08:00   ❤️ 2
    看完前四行字我血压已经高了,看到 3 楼和 23 楼的那么多点赞,一度怀疑我是不是看错内容了,于是又读了 3 遍,并且把帖子分享到了几个程序员好友的群里。得到的回复是 “v 站就是阿猫阿狗工程师太多” “可能点赞的大部分都是后端吧,不喜欢被前端教做事”
    我觉得如果有机会调查一下这个帖子里点赞和回帖站后端的人的身份、开发语言,一定很有意思——他们应该大多数都是厚颜无耻的 Java 程序员。

    我的观点是:123 是后端问题,被人发现了就承认错误,严重的尽快改,不严重的可以商量着日后改。自己造的孽自己心里应该有逼数。应该知道廉耻。应该夹着尾巴做人。扫表的问题,如果上面对性能有要求,那就全是后端的事情,前端给到建议,即使在后端看来不靠谱也没什么关系,在团队里就是应该自由的表达建议。如果上面对性能没有要求,对自己(参与的产品)严格要求也没什么不好,如果不对,其它相关人士忽略就是。

    最后表明一下我的身份,十年后端,大部分时候在写 PHP ,也写过简单的安卓应用,在主流市场上架运营并且维护了 4 年,没有系统的学过 Java for Web 。
    请楼主坚持己见,高标准严要求,自己不会的也可以认真学习,不要被一群菜鸡搞到怀疑自己的人生。
    whp1473
        136
    whp1473  
       2023-11-21 16:29:02 +08:00
    不要越界,提出建议,由别人决定是否采纳,或者你向领导说你全权负责,权责统一。第一个 token 问题,肯定要有统一错误码的。第二个查询问题,后端的方案好一些。如果数据量比这个量级还大,可以提前计算到一列里,如果不能提前就定时统计,然后查询 T+1 数据,如果 T+1 也不行,就上 Hive Spark 做分布式计算。但后面的方式都是成本。
    chairuosen
        137
    chairuosen  
       2023-11-21 17:31:50 +08:00
    123 都是后端问题
    ljrdxs
        138
    ljrdxs  
       2023-11-21 17:43:32 +08:00
    个人作为前端转后端的,如果做后端,确实会按照 OP 意思改。OP 的意见,直接原因 1-3 全是合理要求。
    但 1000 万条数据那个,好像返回给你时,不是 1000 万?
    那你没理由管吧?他怎么写 SQL ,是他的事。
    或者,干脆不用 SPA ,直接用 jQuery+MVC 。

    有些震惊,支持后端的比重过高。
    utf16
        139
    utf16  
       2023-11-21 17:43:54 +08:00
    人生嘛 各种情况都要经历 敢于做自己 锤炼自己的技术能力唯我独大 慢慢的你就发现 所谓的编程技术根本不是技术 重要的是一些软实力和关系
    xuxu5112
        140
    xuxu5112  
       2023-11-21 17:58:07 +08:00
    前后端的分界线就是接口吧,至于接口怎么实现,感觉不能乱说话,除非你们私交好到一定的程度可以聊一聊实现,否则就关注好自己吧。
    wxm
        141
    wxm  
       2023-11-21 18:25:22 +08:00
    看到了几个没有人力投入来改的 bug 或者跟你预想不一致的逻辑就开始觉得自己行了
    rabbbit
        142
    rabbbit  
       2023-11-21 18:34:44 +08:00
    提供一个解决办法,避免冲突两全其美,就是学 Java 。
    主要的学习内容就是 Java 、Spring 、Spring Boot 、Redis 、MySQL
    剩下的什么 MyBatis 、Netty 之类的看你们项目里有什么学什么。
    Spring 增删改查其实没什么难度,难的都是算法、架构设计、并发、复杂业务这种。
    然后缺啥接口、接口设计有啥问题但对方拒绝修改的自己加一个就是了,但是切记不要不打招呼未经允许修改别人的代码。
    这样做有的时候工作效率往往会更高,因为省掉了和后端对接口参数 、Debug 的时间。
    而且年终总结里还多了很多可以写的东西。
    rabbbit
        143
    rabbbit  
       2023-11-21 18:37:35 +08:00
    这样对方多了更多的摸鱼时间,又学到了后端知识,两全其美。
    然后慢慢的参与进来,有新需求时给自己分一些表和接口的设计、开发工作,这样就算有后端的经验了,以后面试是加分项。
    rabbbit
        144
    rabbbit  
       2023-11-21 18:40:54 +08:00
    最后,大量数据的查询还是看具体场景吧。
    不过多数情况下,我不认为把这么多数据在需要存数据库的情况下还塞到 Redis 里是个好主意。
    Baoni
        145
    Baoni  
       2023-11-21 18:57:32 +08:00
    原来是辣个 op ,什么破感悟就当真理送给别人。结果自己不到四个月就已经要坚持不住了吗?
    rabbbit
        146
    rabbbit  
       2023-11-21 19:01:34 +08:00
    忘了补一句,有的时候代码质量、代码、乃至项目其实都不重言,不要太看重这个,不拖欠工资的公司就是好公司。
    fkdtz
        147
    fkdtz  
       2023-11-21 21:21:41 +08:00
    哈哈哈哈哈
    别的不知道,就感觉内心戏挺多的
    怎么说呢,感觉特别像网络短剧里面的人物
    哈哈哈哈哈
    lesismal
        148
    lesismal  
       2023-11-21 22:05:12 +08:00
    第二个问题,考虑下每条数据有更新时、按你们的规则计算一下该数据对应的结果值,如果线上业务频率不高、直接原表加字段、频率高则新表 id 关联。
    新功能先跑一轮任务把每个字段按照当前值计算出来存入新的字段、为了避免线上业务与任务并发冲突、该任务执行时建议停服、或者有更新的相应接口暂停访问。

    这样就可以避免每次全表、需要时一条 sql 查结果字段即可,如果规则比较复杂、一个结果字段不够、可以多加几个字段
    ZC3746
        149
    ZC3746  
       2023-11-22 05:15:06 +08:00
    @fyxtc 不懂就问,六字真言是什么?
    luguhu
        150
    luguhu  
       2023-11-22 07:43:27 +08:00 via iPhone
    @ZC3746 #149 要么忍,要么滚
    qping
        151
    qping  
       2023-11-22 09:26:27 +08:00
    @ahhtree #1 放在数据库还是放在 redis ,都没有什么区别,只是存储的形式不同,内存可能更快,但是磁盘也不一定不能满足需求。

    如果能够满足要求,就不要考虑用更复杂的方式优化。
    OceanBreeze
        152
    OceanBreeze  
       2023-11-22 13:55:41 +08:00
    有个问题不大理解。

    前后端分离的项目,后端 api 怎么做到重定向?
    456789
        153
    456789  
       2023-11-22 14:49:33 +08:00 via Android
    token 过期直接重定向首页不对么
    z1829909
        154
    z1829909  
       2023-11-22 16:44:39 +08:00
    才 1000w, 还是 pg, 压根不用优化.
    多线程计算写 redis, 你怎么保证每个线程的计算结果是成功的, 20 线程, 其中一个挂了你咋去重试组装数据, 徒增复杂度.
    引入 redis, 就需要额外处理缓存不一致, 失效时间, redis 可用性这些问题.
    z1829909
        155
    z1829909  
       2023-11-22 16:51:54 +08:00
    而且就单纯说你这个方案, id 和关键信息放到 redis, 意思是你如果要对所有数据排序, 需要把 1000w 个 key 都取出来吗. 虽然 redis 数据在内存中, 但是你获取数据走的网络 io, 平白无故多了 1000w 次开销.
    有时候有人会有个错觉, 就是 redis 总是比 db 快, 你也要看场景. db 天生擅长这种关系型的数据计算排序, redis 适合 kv 类型的, 强行使用会很尴尬.
    qfdk
        156
    qfdk  
       2023-11-22 22:36:04 +08:00 via iPhone
    小心他急了 反手 thymeleaf 把你活都抢了
    ZC3746
        157
    ZC3746  
       364 天前
    @luguhu 谢谢指点。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1381 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:33 · PVG 01:33 · LAX 09:33 · JFK 12:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.