一个bug引发的人生感悟
文章目錄
- 問題現(xiàn)象
- 原因分析
- 節(jié)目id和節(jié)目路徑映射關(guān)系
- uuid數(shù)據(jù)
- 流程分析
- 發(fā)包機(jī)
- 解決辦法
- 感悟
問題現(xiàn)象
發(fā)包機(jī) 結(jié)果csv文件,不同progid指向同一視頻路徑問題
原因分析
節(jié)目id和節(jié)目路徑映射關(guān)系
設(shè)計(jì)上,使用uuid作為節(jié)目id,然后與節(jié)目路徑生成一一映射,保存在std::map<std::string,std::string>中,所以理論上不會出現(xiàn)多對一。
uuid數(shù)據(jù)
UUID是一個16字節(jié)的二進(jìn)制數(shù)據(jù),通過uuid_unparse()將UUID裝換成可讀的字符串(36字節(jié))。例如,“00a14a12-a6c2-4484-93f4-c6bcd58efa70”。注意:UUID的二進(jìn)制原始數(shù)據(jù) 和 轉(zhuǎn)換后的可讀字符串。
流程分析
發(fā)包機(jī)
發(fā)包機(jī)對progid的處理可以概括為
步驟1:建立progid-視頻路徑的映射表
步驟2:接收收包機(jī)的progid,從映射表中找到progid對應(yīng)視頻路徑
步驟1:映射表創(chuàng)建的實(shí)現(xiàn)
std::map<std::string, std::string> progid_filename;char ac_str[64] = {0}; char uuid[16] = {0}; uuid_generate((unsigned char*)uuid); // 問題就出現(xiàn)在這一句 // 將uuid的二進(jìn)制數(shù)據(jù)作為映射表的progid progid_filename.insert(std::pair<std::string, std::string>(uuid, file_name));將UUID的二進(jìn)制數(shù)據(jù)裝成std::string,會出現(xiàn)數(shù)據(jù)異常,UUID中的二進(jìn)制數(shù)據(jù)被當(dāng)作字符串處理,由于二進(jìn)制數(shù)的隨機(jī)性,就可能會導(dǎo)致string(uuid)數(shù)據(jù)的隨機(jī)性。如下圖所示:
解決辦法
std::map<std::string, std::string> progid_filename;char ac_str[64] = {0}; char uuid[16] = {0}; uuid_generate((unsigned char*)uuid); // 將uuid的unparse后的字符串作用映射表的progid uuid_unparse((const unsigned char*)uuid, ac_str); progid_filename.insert(std::pair<std::string, std::string>(ac_str, file_name));感悟
雖然問題解決了,但是在定位這個問題的過程中,花費(fèi)了大概5小時的時間。這是自己內(nèi)心不可接受的地方,復(fù)盤了一下自己定位問題的過程,雖然最開始就是先從源頭開始查找問題原因,檢查步驟1中創(chuàng)建的映射表是否正確,雖說思路是對的,但是在具體執(zhí)行過程中出現(xiàn)了一些偏差,導(dǎo)致得到了步驟1的結(jié)果是正確的錯誤結(jié)論,使得將自己的查找重心放到其他地方,而南轅北轍,浪費(fèi)了時間。在和小輝輝(我同事)分享這個事情的經(jīng)過時,他說到:你就是懶唄。看似無心的一句話,卻引起了我的反思,的確,就是因?yàn)閼?#xff0c;懶得再寫幾行調(diào)試代碼,沒有將創(chuàng)建完的映射表,直接打印看看。如果這樣的話,可能5分鐘就能定位到問題了,效率提高60倍,難道不香么!
定位bug是一個綜合性的梳理過程,憑借著自己的知識、技能、經(jīng)驗(yàn),驗(yàn)證每一個步驟的正確性,如果某一個步驟的結(jié)論誤認(rèn)為正確,會導(dǎo)致后面步驟的驗(yàn)證全是白費(fèi),一定要遵從客觀規(guī)律。而這個過程,我似乎也能讀到人性,讀到人生,我是覺得,人的一生一直伴隨著和自己的內(nèi)心深處的惰性做抗?fàn)?#xff0c;人生的每一個階段就是一個步驟,如果因?yàn)閼卸杌蛘咄?#xff0c;不能驗(yàn)證好每一個步驟,可能就需要花費(fèi)60倍甚至更大的代價來彌補(bǔ),然而,時光一去不復(fù)返。
技術(shù)是一面人性的照妖鏡,在它面前,你就是你,來不得半點(diǎn)虛假。
總結(jié)
以上是生活随笔為你收集整理的一个bug引发的人生感悟的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 姣婆遇着姿粉客~
- 下一篇: 学栈和队列时的人生感悟