作者ricky469rick (瑞奇西老猴猎奇)
看板ToS
标题Re: [问题] 为什麽可以有这麽多bug?
时间Tue Jul 28 11:47:15 2020
原文吃掉
小弟不才
只是个废柴软体工程师
其实这问题没有这麽难理解
很多公司在小时候只是随意做做设计
可能当初没想到会做到这麽大
所以在很多地方都会做的很粗糙
软体工程有很重要的两个核心观念
重复使用性(reusability) 多重继承性(multiple inheritance)
简单来说就是一段程式码重复使用
正常来说有规模的软体公司都会遵照这两个概念
毕竟一样的功能却写好几段程式码会造成你的程式肥大
(虽然神魔本来就很肥了)
那神魔究竟错在哪了呢?
回到一开始的草创期粗糙
当一个功能重复使用或被继承的时候
最底层的那个功能(原始码)如果防护没有做好
多方引用 就会造成可能A物件动到B物件的东西
举例来说你饮料放冰箱被室友偷喝 然後你打开冰箱就崩溃了
或是A物件用完了没有移除他 造成你RAM爆开
可以想像成出门忘了关冷气 电费就爆了
一般来说闪退就是这个原因
最後我想说的是神魔其实有在改善他们的程式码
他们开始试着用软体工程的思维来写程式
看看希腊二技能的某个效果
其实我一直很纳闷只转个几颗是有屁用 为什麽不全转
但後来再仔细看看是不是哪里似曾相似?
https://i.imgur.com/pk4CljE.png
我猜现在很多技能改成 I II III 叙述
其实就是分别把这些弄成单一物件 然後大家互相引用
这样方便玩家阅读 也方便自己内部工程师了解同事们有做了哪些东西
以後要用的时候就可以直接引用(照抄)
对 然後可能某个功能底层防护没做好就爆了
比如最近的夏玛西跟雪未来就是类似的东西
那你可能会问为什麽有些技能明明一样
有时候A出事 B却没事
因为这是两个不同的人写的 B不知道有这A功能 所以就自己写了一个
以前bug没这麽严重反而是因为每个人只要负责自己的
自己的爆了就爆了 不会影响其他人 爆了我就修好我自己的
但也因此造成程式会很肥
大概4john
但我最不能理解的是为什麽都没有SOP验证...
因为软体公司至少发布版本前都要经过基本的SOP确认...
为什麽神魔没有 我就不知道了
--
https://i.imgur.com/SNtREeN.jpg https://i.imgur.com/ha2iHAQ.png
https://i.imgur.com/bdxUjnh.png https://i.imgur.com/ZLzSnT7.jpg
https://i.imgur.com/gir9v4q.png https://i.imgur.com/BdczzrL.png
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.192.69.188 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/ToS/M.1595908047.A.2FA.html
※ 编辑: ricky469rick (123.192.69.188 台湾), 07/28/2020 11:51:39
1F:推 shift5810: 有验证啊 广大的玩家帮他们 07/28 11:52
2F:推 gozira: 优质好文 推 07/28 11:57
3F:推 sakurajoker7: 我有问题 工程师都抽几只夏娃 07/28 12:00
4F:→ corlos: 全世界开发都只管自己写的吧,根本没co-work 07/28 12:10
5F:→ corlos: 一堆低能PG遇到问题只会先怪网路有没有问题、硬体不够? 07/28 12:11
其实不是合作问题 而是正常来说都会去引用
因为当功能越来越复杂的时候为了赶时间就不可能全部自己来
会去看看底层是不是有人做过类似的事情就直接拿来用
比如说"心转自身"这件事情 不可能每次遇到就重写一次
是看 "喔喔~这边有一个心转自身的程式码/物件我复制/引用起来"
以往可能是直接复制来的居多然後稍作修改
越做越大之後变成要用引用的来增加程式码的可读性
6F:→ justin1002: 影响 07/28 12:13
改了
7F:→ reallove: 是 所以有些讨论都会提到某技能的基底是哪个技能 07/28 12:13
※ 编辑: ricky469rick (123.192.69.188 台湾), 07/28/2020 12:19:50
8F:→ arabeske: 时至今日,看起来资料结构/程式架构有问题 07/28 12:20
9F:推 DrPaper: 我的意思就这样阿 07/28 12:44
10F:→ DrPaper: 所以我才觉得很莫名奇妙 07/28 12:45
11F:→ ricky469rick: 并不是改改图片改数值 没有这麽简单 07/28 12:46
你的意思应该差很多吧...
并不是改改数值改改图片就好了
就讲个常见的例子 某A功能要读取B图片
建立了B图片的指标
然而今天又多了某C功能 他发现A有读取这B图片的功能
於是就引用了
但A功能当初可能写死 他用完图片後为了怕B图片站记忆体
就删除了B图片的指标
结果平行方面的C功能要抓这B图片时就爆开了
这问题就在於C功能没有做好防护抓不到B要怎麽办
那当然可能一开始C跟A都相安无事
然後时间久了又多了DEFG功能一路继承引用 然後某个功能碰到了就爆了
※ 编辑: ricky469rick (123.192.69.188 台湾), 07/28/2020 12:51:20
12F:→ DrPaper: 就是改引用的物件 代码 文字 不是吗? 07/28 12:48
13F:推 Garyisdog: 就是以前的技术债 慢慢的开始引爆了 07/28 13:26
14F:→ ricky469rick: yes 07/28 13:27
15F:推 ClownT: 神魔的测试规划很诡异 说不定根本不重视 一堆验证一下就能 07/28 13:30
16F:→ ClownT: 出来的低级bug 07/28 13:30
17F:推 smonke: 推~神魔程式码其实很多都是新手才会犯的低级错误 07/28 13:53
18F:→ smonke: 像变身系统会重复判定的bug...实在是..=_=a 07/28 13:57
19F:推 gungraveop: 专业推 07/28 14:09
20F:推 peter0726: 写过大程式就知道出 bug 难免,尤其神魔这种叠床架屋的 07/28 14:16
21F:→ peter0726: 系统。 但是连当次新增的脚色bug都抓不出来就真的是MH 07/28 14:16
22F:→ peter0726: 的锅 07/28 14:17
真的是这样
我们公司自己的产品也是因为久了结构慢慢撑不住
但至少新版本丢给客户前会经过验证机台SOP流程跑过
把大问题都先挡下来 客户拿到後顶多发生些小问题再修正
至於神魔这种直接把满是肉眼可见的问题版本丢出来...
※ 编辑: ricky469rick (123.192.69.188 台湾), 07/28/2020 14:27:36
23F:→ goodboy98: 中资! 07/28 14:32
24F:推 calsifer: 身为同行 说的没错 推 07/28 14:39
25F:推 peter0726: 系统早期建构的复杂度、工程师自身的经验、注解完整度 07/28 14:55
26F:→ peter0726: 还有工程师人员流动程度还有PM废物程度(误) 都会影响 07/28 14:57
27F:→ peter0726: bug 出现机会,偏偏看起来MH都很糟 07/28 14:59
28F:推 carllace: MH开了测试服…测出了BUG一样开给玩家享受… 07/28 15:15
29F:推 goldstorm: 同行推 07/28 15:16
30F:推 herson8852: MH的问题是每次改版都像是没测试过就丢出来的样子 07/28 15:22
31F:推 joeboy: 因为他不是软体公司 07/28 15:42
32F:推 Satansblessi: 专业推 MH的资结要好好重新审视啦 07/28 15:56
33F:→ carllace: 本来预计3-5年就要收的游戏,只是梦醒了,门关了,只能 07/28 16:14
34F:→ carllace: 小心不让塔倒了 07/28 16:14
35F:推 drajan: 其实就是技术债欠太多...MH也不打算处理 放给它烂 07/28 16:34
36F:推 asdf403: 原原po继续刷存 07/28 16:35
37F:推 bingreen: MH的测试服就是玩家,马的 07/28 17:26
38F:推 a91544: 推优文 07/28 18:53
39F:推 PTTEnzo: 可怜PG要帮前人除虫 07/28 18:53
40F:→ pippen2002: 你 是不是厉害的小海豹?? 07/28 19:08
41F:推 a3225737: MH没想到可以撑七年吧xddddddddd 07/28 20:04
42F:→ poke001: 这个现在要处理可能整个系统要打掉重练才有办法XD 07/28 20:35
43F:→ poke001: 这种线上游戏 更新的东西越叠越多情况下 後面出BUG的状况 07/28 20:37
44F:→ poke001: 只会越来越严重而已 07/28 20:37
45F:推 OyAlbert: 没想到能撑7年+1,之前大概想炒短线一波收,结果误打误 07/28 21:28
46F:→ OyAlbert: 撞走到今天还拿了好几次他妈的金赏XDD 07/28 21:28
47F:推 smonke: 还真的是误打误撞...MH之後自制的游戏没一个成功的 07/29 02:19
48F:→ qgk17: 十万个为什麽的提交答案还会消失 懒的回答了 07/29 04:21