PTT評價

Re: [問題] 為什麼可以有這麼多bug?

看板ToS標題Re: [問題] 為什麼可以有這麼多bug?作者
ricky469rick
(瑞奇西老猴獵奇)
時間推噓24 推:24 噓:0 →:24

原文吃掉

小弟不才

只是個廢柴軟體工程師

其實這問題沒有這麼難理解

很多公司在小時候只是隨意做做設計

可能當初沒想到會做到這麼大

所以在很多地方都會做的很粗糙


軟體工程有很重要的兩個核心觀念

重複使用性(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 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.69.188 (臺灣)
PTT 網址
※ 編輯: ricky469rick (123.192.69.188 臺灣), 07/28/2020 11:51:39

shift581007/28 11:52有驗證啊 廣大的玩家幫他們

gozira07/28 11:57優質好文 推

sakurajoker707/28 12:00我有問題 工程師都抽幾隻夏娃

corlos07/28 12:10全世界開發都只管自己寫的吧,根本沒co-work

corlos07/28 12:11一堆低能PG遇到問題只會先怪網路有沒有問題、硬體不夠?

其實不是合作問題 而是正常來說都會去引用 因為當功能越來越複雜的時候為了趕時間就不可能全部自己來 會去看看底層是不是有人做過類似的事情就直接拿來用 比如說"心轉自身"這件事情 不可能每次遇到就重寫一次 是看 "喔喔~這邊有一個心轉自身的程式碼/物件我複製/引用起來" 以往可能是直接複製來的居多然後稍作修改 越做越大之後變成要用引用的來增加程式碼的可讀性

justin100207/28 12:13影響

改了

reallove07/28 12:13是 所以有些討論都會提到某技能的基底是哪個技能

※ 編輯: ricky469rick (123.192.69.188 臺灣), 07/28/2020 12:19:50

arabeske07/28 12:20時至今日,看起來資料結構/程式架構有問題

DrPaper07/28 12:44我的意思就這樣阿

DrPaper07/28 12:45所以我才覺得很莫名奇妙

ricky469rick07/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

DrPaper07/28 12:48就是改引用的物件 代碼 文字 不是嗎?

Garyisdog07/28 13:26就是以前的技術債 慢慢的開始引爆了

ricky469rick07/28 13:27yes

ClownT07/28 13:30神魔的測試規劃很詭異 說不定根本不重視 一堆驗證一下就能

ClownT07/28 13:30出來的低級bug

smonke07/28 13:53推~神魔程式碼其實很多都是新手才會犯的低級錯誤

smonke07/28 13:57像變身系統會重複判定的bug...實在是..=_=a

gungraveop07/28 14:09專業推

peter072607/28 14:16寫過大程式就知道出 bug 難免,尤其神魔這種疊床架屋的

peter072607/28 14:16系統。 但是連當次新增的腳色bug都抓不出來就真的是MH

peter072607/28 14:17的鍋

真的是這樣 我們公司自己的產品也是因為久了結構慢慢撐不住 但至少新版本丟給客戶前會經過驗證機台SOP流程跑過 把大問題都先擋下來 客戶拿到後頂多發生些小問題再修正 至於神魔這種直接把滿是肉眼可見的問題版本丟出來...

※ 編輯: ricky469rick (123.192.69.188 臺灣), 07/28/2020 14:27:36

goodboy9807/28 14:32中資!

calsifer07/28 14:39身為同行 說的沒錯 推

peter072607/28 14:55系統早期建構的複雜度、工程師自身的經驗、註解完整度

peter072607/28 14:57還有工程師人員流動程度還有PM廢物程度(誤) 都會影響

peter072607/28 14:59bug 出現機會,偏偏看起來MH都很糟

carllace07/28 15:15MH開了測試服…測出了BUG一樣開給玩家享受…

goldstorm07/28 15:16同行推

herson885207/28 15:22MH的問題是每次改版都像是沒測試過就丟出來的樣子

joeboy07/28 15:42因為他不是軟體公司

Satansblessi07/28 15:56專業推 MH的資結要好好重新審視啦

carllace07/28 16:14本來預計3-5年就要收的遊戲,只是夢醒了,門關了,只能

carllace07/28 16:14小心不讓塔倒了

drajan07/28 16:34其實就是技術債欠太多...MH也不打算處理 放給它爛

asdf40307/28 16:35原原po繼續刷存

bingreen07/28 17:26MH的測試服就是玩家,馬的

a9154407/28 18:53推優文

PTTEnzo07/28 18:53可憐PG要幫前人除蟲

pippen200207/28 19:08你 是不是厲害的小海豹??

a322573707/28 20:04MH沒想到可以撐七年吧xddddddddd

poke00107/28 20:35這個現在要處理可能整個系統要打掉重練才有辦法XD

poke00107/28 20:37這種線上遊戲 更新的東西越疊越多情況下 後面出BUG的狀況

poke00107/28 20:37只會越來越嚴重而已

OyAlbert07/28 21:28沒想到能撐7年+1,之前大概想炒短線一波收,結果誤打誤

OyAlbert07/28 21:28撞走到今天還拿了好幾次他媽的金賞XDD

smonke07/29 02:19還真的是誤打誤撞...MH之後自製的遊戲沒一個成功的

qgk1707/29 04:21十萬個為什麼的提交答案還會消失 懶的回答了