我和他矛盾爆发直接原因:
1 、接口没有统一返回值;
2 、前后端分离的项目,token 过期他直接重定向到首页而没有任何提示信息;
3 、token 错误显示跨域错误,我怀疑压根没处理这种情况。
和他争辩,说不过了就以修改时间不确定拖着。
背景:
1 、非互联网公司,公司开发就两个人,我和他,我不懂 Java ;
2 、没有架构师、产品、设计人员,组织架构、开发流程很不完善;
3 、leader 人不错,能力很强,但是不懂代码;
4 、我前端一年经验,他后端 5 年经验。
我对于他的看法:
1 、他对 sql 优化确实有点东西,但他擅长 mysql ,公司用的 PostgreSQL ;
2 、逃避复杂的东西(算法、后端架构系统性设计);
3 、和稀泥,脸皮厚;
请问各位 v2 大佬:
1 、碰到这种人你们怎么和他打交道?我是见都不想见到;
2 、业务场景:一张表中 1000 万多的数据,每次查询需要扫描全表逐个计算过滤,拿到通过的数据,前端分页展示。对于该业务场景各位如何进行查询?
101
c2const 2023-11-21 11:29:51 +08:00
小润出公司,大润出大陆 :)
|
103
cosiner 2023-11-21 11:33:51 +08:00
我选择后端的方案, 简单明了, 你的方案复杂, 而且感觉并没有什么优势, 你的方案 redis 只是另一个 ID 和信息的存储, 而不是作为计算结果缓存的, 这样反而在维护性上处于劣势( 一个 pg 内部函数相比 redis 部署+复杂计算代码+redis 调用 )
|
104
changepll 2023-11-21 11:38:06 +08:00
一年级新秀, 大有可为
|
105
IamUNICODE 2023-11-21 11:39:30 +08:00
@oppoic 好家伙,这帖子我记得
|
106
xiaoHuaJia 2023-11-21 11:43:02 +08:00
@doanything 我也好奇 哈哈哈
|
108
xylxAdai 2023-11-21 11:44:51 +08:00
“我的职业发展规划是全栈工程师”,“我不懂 Java ”。那就快去学 java 啊,光规划不做是吧?
你觉得他写的代码性能不好,直接上去帮他改了不就完事了吗,你好我好大家好。 接口规范你觉得不行,你就自己写好规范文档,找 ld 一起沟通让他对齐,给他时间让他干,他不干你 ld 也不管,你闲着蛋疼去管别人啊?早点跑路。 |
109
zhaoxiaolei 2023-11-21 11:47:21 +08:00
感觉你俩人生阶段就不同,对工作的态度也不同。
你刚开始工作,干劲满满,那个后端同事工作五年以上了,已经是职场老油条了,你认为你工作态度更认真(我也认可),更客观,但最后很有可能是那个后端同事能够长久地在这家公司干下去。遇事别冲动,多妥协,多合作。 |
110
xiaoHuaJia 2023-11-21 11:47:57 +08:00
你行你上,我就是懒就是不想动,我巴不得我全做事我摸鱼搞自己项目
|
111
xwayway 2023-11-21 11:49:11 +08:00
既然你定位是前端,为啥对后端的事指手画脚,你让他吐出你要的数据就行了,为啥要干涉他用哪种方案呢?
|
112
codersdp1 2023-11-21 11:51:50 +08:00
质疑他,理解他,成为他
|
113
43n5Z6GyW39943pj 2023-11-21 11:55:54 +08:00
统一响应有必要,其他的就别多嘴了
|
114
StrangerA 2023-11-21 11:58:54 +08:00 1
想太多,做太少。
工作上建议只做好自己手上该做的,其他事情别管。多余的精力用来做自己想做的项目。原因很简单,你换位思考一下有同事对你负责的工作指手画脚乃至人身攻击你是什么感觉。 目标是全栈又不会 java 的话,花点精力学习下 java 和数据库吧。完事了就知道人家这么做的原因了。 |
115
potatowish 2023-11-21 11:59:23 +08:00 via iPhone
@doanything 能啊,和前后端分不分离没关系,分离只是把页面这部分移出来了,一般只提供接口,但是还是跳转页面,甚至直接返回一个页面
|
116
opentrade 2023-11-21 12:07:38 +08:00
两个人还分前端后端
|
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 |
118
collen 2023-11-21 12:18:23 +08:00
套用前几天对小仙女说的话,当你在除开一件事之外莫名的讨厌一个人的时候,那你肯定和他是同类,他把你身上有,但是不愿意放大的属性,在人群中表现出来,你越来越讨厌他,你以后就会成为他,本质上现在的他就是以后的你
|
119
fyxtc 2023-11-21 12:46:26 +08:00
在职场,能力配不上脾气的时候:
1.虚心一点 2.六字真言 |
120
break 2023-11-21 13:00:08 +08:00
"一张表中 1000 万多的数据,每次查询需要扫描全表逐个计算过滤,拿到通过的数据,前端分页展示"
这是什么业务场景。。。用户能看到的数据才多少,怎么可能每次查询都需要 1000 万条筛选。对于场景无用的“垃圾数据”先排除啊,没必要每次参与。区间、分类、人群总有可以缩小所需数据范围的地方吧 |
122
liuguang 2023-11-21 13:14:18 +08:00
五年经验那是有真技术的,好好学学,别只会抱怨人家。
|
123
huoshanhui 2023-11-21 13:14:20 +08:00
以和为贵,人情世故。要么改变环境,要么改变自己。
希望 OP 把心态调整好。理想主义我是赞成的,但要结合实际环境。 |
124
TofuBazinga 2023-11-21 13:54:54 +08:00 via Android
其他问题没法下定论,第二个问题后端做的没问题
|
125
tutustream 2023-11-21 14:03:11 +08:00
@oppoic 这个贴有印象,当时就感觉 op 太自以为是了
|
126
TestFlight 2023-11-21 14:07:46 +08:00
@ahhtree #6 你这是在自以为是地抢别人饭碗呀,而且也否定了你的 Leader 的决策,很容易让人反感😅
|
127
alsas 2023-11-21 14:10:50 +08:00
一千万的表就要上 redis 了???
|
128
ewBuyVmLZMZE 2023-11-21 14:11:13 +08:00
少抱怨,多做事,你觉得你的方案行,那你就做出来试试看。纸上得来终觉浅,绝知此事要躬行。
技术没有绝对的对错,只有对比。另你的经验确实尚浅,小公司也很难接触到真正有挑战的东西,如果学历尚可,确实可以多学点东西挑战大厂。 |
129
TateLiao 2023-11-21 14:11:34 +08:00
跳槽,你在等什么
|
130
richardZhao 2023-11-21 14:20:02 +08:00
@oppoic #9 嗷 是这位啊!有印象了,不好的印象
|
132
blankmiss 2023-11-21 15:35:43 +08:00
为了用 redis 而用 redis ? 这种情况下为什么要用 redis 我不太懂
|
134
zhuoyue100 2023-11-21 16:19:57 +08:00
多干几年就好了
|
135
maomaosang 2023-11-21 16:28:51 +08:00 2
看完前四行字我血压已经高了,看到 3 楼和 23 楼的那么多点赞,一度怀疑我是不是看错内容了,于是又读了 3 遍,并且把帖子分享到了几个程序员好友的群里。得到的回复是 “v 站就是阿猫阿狗工程师太多” “可能点赞的大部分都是后端吧,不喜欢被前端教做事”
我觉得如果有机会调查一下这个帖子里点赞和回帖站后端的人的身份、开发语言,一定很有意思——他们应该大多数都是厚颜无耻的 Java 程序员。 我的观点是:123 是后端问题,被人发现了就承认错误,严重的尽快改,不严重的可以商量着日后改。自己造的孽自己心里应该有逼数。应该知道廉耻。应该夹着尾巴做人。扫表的问题,如果上面对性能有要求,那就全是后端的事情,前端给到建议,即使在后端看来不靠谱也没什么关系,在团队里就是应该自由的表达建议。如果上面对性能没有要求,对自己(参与的产品)严格要求也没什么不好,如果不对,其它相关人士忽略就是。 最后表明一下我的身份,十年后端,大部分时候在写 PHP ,也写过简单的安卓应用,在主流市场上架运营并且维护了 4 年,没有系统的学过 Java for Web 。 请楼主坚持己见,高标准严要求,自己不会的也可以认真学习,不要被一群菜鸡搞到怀疑自己的人生。 |
136
whp1473 2023-11-21 16:29:02 +08:00
不要越界,提出建议,由别人决定是否采纳,或者你向领导说你全权负责,权责统一。第一个 token 问题,肯定要有统一错误码的。第二个查询问题,后端的方案好一些。如果数据量比这个量级还大,可以提前计算到一列里,如果不能提前就定时统计,然后查询 T+1 数据,如果 T+1 也不行,就上 Hive Spark 做分布式计算。但后面的方式都是成本。
|
137
chairuosen 2023-11-21 17:31:50 +08:00
123 都是后端问题
|
138
ljrdxs 2023-11-21 17:43:32 +08:00
个人作为前端转后端的,如果做后端,确实会按照 OP 意思改。OP 的意见,直接原因 1-3 全是合理要求。
但 1000 万条数据那个,好像返回给你时,不是 1000 万? 那你没理由管吧?他怎么写 SQL ,是他的事。 或者,干脆不用 SPA ,直接用 jQuery+MVC 。 有些震惊,支持后端的比重过高。 |
139
utf16 2023-11-21 17:43:54 +08:00
人生嘛 各种情况都要经历 敢于做自己 锤炼自己的技术能力唯我独大 慢慢的你就发现 所谓的编程技术根本不是技术 重要的是一些软实力和关系
|
140
xuxu5112 2023-11-21 17:58:07 +08:00
前后端的分界线就是接口吧,至于接口怎么实现,感觉不能乱说话,除非你们私交好到一定的程度可以聊一聊实现,否则就关注好自己吧。
|
141
wxm 2023-11-21 18:25:22 +08:00
看到了几个没有人力投入来改的 bug 或者跟你预想不一致的逻辑就开始觉得自己行了
|
142
rabbbit 2023-11-21 18:34:44 +08:00
提供一个解决办法,避免冲突两全其美,就是学 Java 。
主要的学习内容就是 Java 、Spring 、Spring Boot 、Redis 、MySQL 剩下的什么 MyBatis 、Netty 之类的看你们项目里有什么学什么。 Spring 增删改查其实没什么难度,难的都是算法、架构设计、并发、复杂业务这种。 然后缺啥接口、接口设计有啥问题但对方拒绝修改的自己加一个就是了,但是切记不要不打招呼未经允许修改别人的代码。 这样做有的时候工作效率往往会更高,因为省掉了和后端对接口参数 、Debug 的时间。 而且年终总结里还多了很多可以写的东西。 |
143
rabbbit 2023-11-21 18:37:35 +08:00
这样对方多了更多的摸鱼时间,又学到了后端知识,两全其美。
然后慢慢的参与进来,有新需求时给自己分一些表和接口的设计、开发工作,这样就算有后端的经验了,以后面试是加分项。 |
144
rabbbit 2023-11-21 18:40:54 +08:00
最后,大量数据的查询还是看具体场景吧。
不过多数情况下,我不认为把这么多数据在需要存数据库的情况下还塞到 Redis 里是个好主意。 |
145
Baoni 2023-11-21 18:57:32 +08:00
原来是辣个 op ,什么破感悟就当真理送给别人。结果自己不到四个月就已经要坚持不住了吗?
|
146
rabbbit 2023-11-21 19:01:34 +08:00
忘了补一句,有的时候代码质量、代码、乃至项目其实都不重言,不要太看重这个,不拖欠工资的公司就是好公司。
|
147
fkdtz 2023-11-21 21:21:41 +08:00
哈哈哈哈哈
别的不知道,就感觉内心戏挺多的 怎么说呢,感觉特别像网络短剧里面的人物 哈哈哈哈哈 |
148
lesismal 2023-11-21 22:05:12 +08:00
第二个问题,考虑下每条数据有更新时、按你们的规则计算一下该数据对应的结果值,如果线上业务频率不高、直接原表加字段、频率高则新表 id 关联。
新功能先跑一轮任务把每个字段按照当前值计算出来存入新的字段、为了避免线上业务与任务并发冲突、该任务执行时建议停服、或者有更新的相应接口暂停访问。 这样就可以避免每次全表、需要时一条 sql 查结果字段即可,如果规则比较复杂、一个结果字段不够、可以多加几个字段 |
151
qping 2023-11-22 09:26:27 +08:00
|
152
OceanBreeze 2023-11-22 13:55:41 +08:00
有个问题不大理解。
前后端分离的项目,后端 api 怎么做到重定向? |
153
456789 2023-11-22 14:49:33 +08:00 via Android
token 过期直接重定向首页不对么
|
154
z1829909 2023-11-22 16:44:39 +08:00
才 1000w, 还是 pg, 压根不用优化.
多线程计算写 redis, 你怎么保证每个线程的计算结果是成功的, 20 线程, 其中一个挂了你咋去重试组装数据, 徒增复杂度. 引入 redis, 就需要额外处理缓存不一致, 失效时间, redis 可用性这些问题. |
155
z1829909 2023-11-22 16:51:54 +08:00
而且就单纯说你这个方案, id 和关键信息放到 redis, 意思是你如果要对所有数据排序, 需要把 1000w 个 key 都取出来吗. 虽然 redis 数据在内存中, 但是你获取数据走的网络 io, 平白无故多了 1000w 次开销.
有时候有人会有个错觉, 就是 redis 总是比 db 快, 你也要看场景. db 天生擅长这种关系型的数据计算排序, redis 适合 kv 类型的, 强行使用会很尴尬. |
156
qfdk 2023-11-22 22:36:04 +08:00 via iPhone
小心他急了 反手 thymeleaf 把你活都抢了
|