Re: [問題] 為什麼可以有這麼多bug?
原文吃掉
小弟不才
只是個廢柴軟體工程師
其實這問題沒有這麼難理解
很多公司在小時候只是隨意做做設計
可能當初沒想到會做到這麼大
所以在很多地方都會做的很粗糙
軟體工程有很重要的兩個核心觀念
重複使用性(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






--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.69.188 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/ToS/M.1595908047.A.2FA.html
※ 編輯: ricky469rick (123.192.69.188 臺灣), 07/28/2020 11:51:39
推
07/28 11:52,
5年前
, 1F
07/28 11:52, 1F
推
07/28 11:57,
5年前
, 2F
07/28 11:57, 2F
推
07/28 12:00,
5年前
, 3F
07/28 12:00, 3F
→
07/28 12:10,
5年前
, 4F
07/28 12:10, 4F
→
07/28 12:11,
5年前
, 5F
07/28 12:11, 5F
其實不是合作問題 而是正常來說都會去引用
因為當功能越來越複雜的時候為了趕時間就不可能全部自己來
會去看看底層是不是有人做過類似的事情就直接拿來用
比如說"心轉自身"這件事情 不可能每次遇到就重寫一次
是看 "喔喔~這邊有一個心轉自身的程式碼/物件我複製/引用起來"
以往可能是直接複製來的居多然後稍作修改
越做越大之後變成要用引用的來增加程式碼的可讀性
→
07/28 12:13,
5年前
, 6F
07/28 12:13, 6F
改了
→
07/28 12:13,
5年前
, 7F
07/28 12:13, 7F
※ 編輯: ricky469rick (123.192.69.188 臺灣), 07/28/2020 12:19:50
→
07/28 12:20,
5年前
, 8F
07/28 12:20, 8F
推
07/28 12:44,
5年前
, 9F
07/28 12:44, 9F
→
07/28 12:45,
5年前
, 10F
07/28 12:45, 10F
→
07/28 12:46,
5年前
, 11F
07/28 12:46, 11F
你的意思應該差很多吧...
並不是改改數值改改圖片就好了
就講個常見的例子 某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
→
07/28 12:48,
5年前
, 12F
07/28 12:48, 12F
推
07/28 13:26,
5年前
, 13F
07/28 13:26, 13F
→
07/28 13:27,
5年前
, 14F
07/28 13:27, 14F
推
07/28 13:30,
5年前
, 15F
07/28 13:30, 15F
→
07/28 13:30,
5年前
, 16F
07/28 13:30, 16F
推
07/28 13:53,
5年前
, 17F
07/28 13:53, 17F
→
07/28 13:57,
5年前
, 18F
07/28 13:57, 18F
推
07/28 14:09,
5年前
, 19F
07/28 14:09, 19F
推
07/28 14:16,
5年前
, 20F
07/28 14:16, 20F
→
07/28 14:16,
5年前
, 21F
07/28 14:16, 21F
→
07/28 14:17,
5年前
, 22F
07/28 14:17, 22F
真的是這樣
我們公司自己的產品也是因為久了結構慢慢撐不住
但至少新版本丟給客戶前會經過驗證機台SOP流程跑過
把大問題都先擋下來 客戶拿到後頂多發生些小問題再修正
至於神魔這種直接把滿是肉眼可見的問題版本丟出來...
※ 編輯: ricky469rick (123.192.69.188 臺灣), 07/28/2020 14:27:36
→
07/28 14:32,
5年前
, 23F
07/28 14:32, 23F
推
07/28 14:39,
5年前
, 24F
07/28 14:39, 24F
推
07/28 14:55,
5年前
, 25F
07/28 14:55, 25F
→
07/28 14:57,
5年前
, 26F
07/28 14:57, 26F
→
07/28 14:59,
5年前
, 27F
07/28 14:59, 27F
推
07/28 15:15,
5年前
, 28F
07/28 15:15, 28F
推
07/28 15:16,
5年前
, 29F
07/28 15:16, 29F
推
07/28 15:22,
5年前
, 30F
07/28 15:22, 30F
推
07/28 15:42,
5年前
, 31F
07/28 15:42, 31F
推
07/28 15:56,
5年前
, 32F
07/28 15:56, 32F
→
07/28 16:14,
5年前
, 33F
07/28 16:14, 33F
→
07/28 16:14,
5年前
, 34F
07/28 16:14, 34F
推
07/28 16:34,
5年前
, 35F
07/28 16:34, 35F
推
07/28 16:35,
5年前
, 36F
07/28 16:35, 36F
推
07/28 17:26,
5年前
, 37F
07/28 17:26, 37F
推
07/28 18:53,
5年前
, 38F
07/28 18:53, 38F
推
07/28 18:53,
5年前
, 39F
07/28 18:53, 39F
→
07/28 19:08,
5年前
, 40F
07/28 19:08, 40F
推
07/28 20:04,
5年前
, 41F
07/28 20:04, 41F
→
07/28 20:35,
5年前
, 42F
07/28 20:35, 42F
→
07/28 20:37,
5年前
, 43F
07/28 20:37, 43F
→
07/28 20:37,
5年前
, 44F
07/28 20:37, 44F
推
07/28 21:28,
5年前
, 45F
07/28 21:28, 45F
→
07/28 21:28,
5年前
, 46F
07/28 21:28, 46F
推
07/29 02:19,
5年前
, 47F
07/29 02:19, 47F
→
07/29 04:21,
5年前
, 48F
07/29 04:21, 48F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
問題
-9
48