第三十四章 辭職前
所以在提交懸賞之後,葉新晨就再一次的趕緊睡覺了。
當然,隨之而來的就是葉新晨的存款再一次的增加了十個達不溜。
而另一邊,S市,羽然科技公司。
錢志海就利用這個功能,便通知相關項目組,讓他們在自己的項目開頭import DebugTools。
剛好有個測試任務。
所以沒一會兒,他們就排查到了因為這個功能而意外收穫的另外一個輔助庫的BUG。
錢志海等幾人大眼瞪小眼。
尤其是李明,用目瞪口呆都不為過,「這個功能怎麼像個利器一樣啊,我們沒有找他,他都額外的給我們發現了輔助庫另外的漏洞。」
錢志海也是心中一動,他非常的想把這個葉子給拉到他們的公司來,這妥妥的都是大公司精英級別的程式設計師啊!
他們這個小公司雖然發展的也還行,但是也僅僅是還行罷了,如果能夠讓葉子加入他們,錢志海相信他們的公司絕對能夠再創一個新高!
但是……
像葉子這樣的大神,工資肯定是很高的,就比如那些大公司裡面的精英程式設計師,十萬都是保底,而且還有獎金分紅,而他錢志海能拿出什麼來籠絡葉子大神呢?
不說其他的,就光一個月薪十萬,錢志海就拿不出手,也不是說出不起,只是公司還有其他方方面面也要打點,這十萬一拿,他們的現金流就更加的不便了。
所以,想要邀請葉子大神,錢志海也就只能在心裏面想一想,不過他還是看了一眼自己的這幾個骨幹程式設計師,「天外有天,人外有人,我們還需要努力啊。不過現在既然發現了這個BUG,那就趕緊給它解決吧。」
幾個人頓時開始來修復漏洞,首先拿到調用棧信息之後,一會兒時間就很容易的追查到了根源。
錢志海一行人看著這個,都是有些面面相覷。
「怎麼是這個……」
這是當年羽然科技公司實現時的疏忽:在某個函數中,他們聲明了一個局部變量,這個變量和同一命名空間的另一個變量名字極為相似,但命名風格(首字母是否大寫之類)和其他代碼不太一致。
當時他們是為了規避不同作用域的命名衝突才這樣命名的。
但到了後面,他們仍然習慣性的用了「正常」的命名,也可能是選錯了編輯器自動提示選項。
這就相當於丟開局部變量,用了命名空間的外部變量;但從上下文看,這裡就不應該碰外部那個同名變量。
用偽碼表示大概是這樣:
class OneClass {
packageNameItems = null;
....
void funName1(arg){
//initial packageNameItems
packageNameItems = arg;
//other...
}
string funName2(){
PackageNameItems = extractPureInfo(packageNameItems);
//do sth
....
result = getItemFrom(packageNameItems, itemName)//1
//do sth
....
return result
}
}
從那裡分析,在//1處,本應該是從已經解包過的PackageNameItems中,取它的第N項;但這裡誤傳入了解包前的packageNameItems。
似乎輸入文本可能會發生幾種情況,當然多數情況不需要進一步處理,直接用外部那個變量就行,此時兩個變量內容一致,不會觸發bug;但少數情況下,外部那個變量需要進一步處理,這才能提取到正確的內容。
這種情況下,兩個變量內容不同,誤用了前一個變量就讀不到正確數據了。
這是個極為隱蔽的邏輯錯誤。
其實和變量作用域相關的故障都很隱蔽。
李明拿著整個調用鏈的詳細記錄,也是看了好幾遍才發覺這兩個變量的名字似乎有些意思,這才沿著這條線追查下去……
總之,意外的輸出信息弄得他們一臉懵逼,因為這時候根本就不應該有這種信息,也幸好檢查條件設的比較窄,只有正常返回可通過,其他一概拋異常崩掉——於是這個異常就被葉新晨的debug工具抓到,自動記錄了調用棧信息。
所以說為什麼之前錢志海等幾人會驚訝,因為這個功能給他們抓到了一個BUG。
還好這是個極為簡單的bug,只需把最後那次訪問時,首字符小寫的變量名改成大寫,故障就不再復發。
其實就這麼簡單個首字符大小寫搞錯、誤訪問了外部變量的BUG,羽然科技公司在黑土平台上的懸賞單也是掛了有兩三年了,前前後後換了很多人經手,但就是沒人能抓到它。
最終,這個簡單又奇葩的bug竟然被葉子大神的一個功能給抓住了。
不得不說這真的是意外之喜。
「真想見識見識葉子這樣的大神是什麼樣的……」
………
八月三十一號。
這也是這個月的最後一天,葉新晨在公司之後,他今天沒有像以往那樣給自己的組員開會,他直接的就去往了主管自己的主管辦公室裡面。
他的主管是正是他的上一任組長張國強,所以他們之間的關係還算比較融洽,畢竟當時的葉新晨在他們組裡可是業績排名前三的,自然不會受到張國強的批評之類的。
「你要辭職?」張國強看著今天一大早就來跟他說今天要辭職的葉新晨,也是頭疼的拍了拍自己的腦袋,「辭職都得提前最起碼半個月啊,你這也太突然了吧?」
「張哥,我下個月就要回老家結婚了,而且女方家在C市,到時候我要兩頭跑,請假半個月都是打底的啊。」葉新晨一臉真誠的說道,「大概率都可能會請一個月假。」
「一個月……」張國強也是皺了皺眉頭,「一個月公司肯定不會批下來的,哪怕半個月都不會給你批,時間太久了。而且,為什麼要這麼急著結婚呢?可以往後延一個月啊,這樣子我就可以正常的給你打報告上去了。」
「哎,為什麼這麼急,我也不想的啊,主要那不是因為女朋友已經有了嗎……」
張國強愣了一下,然後半晌道,「那恭喜啊。」
葉新晨則是看著張國強,苦笑著道,「哎,所以我才來先找張哥,畢竟結婚後也肯定需要錢,我要是一聲不吭的離職,下個月恐怕發下來的工資只有一半。」
「嗯,公司的確會這樣。」張國強最後看了一眼葉新晨,嘆了口氣,然後拿出一張紙,「行吧,你就正常的寫一份報告好了,也是你正好趕上公司要提拔主管和組長,到時候我再說我忘了有你的辭職報告沒打上去,你今天應該可以正常離職。」
「那謝謝張哥。」
當然,隨之而來的就是葉新晨的存款再一次的增加了十個達不溜。
而另一邊,S市,羽然科技公司。
錢志海就利用這個功能,便通知相關項目組,讓他們在自己的項目開頭import DebugTools。
剛好有個測試任務。
所以沒一會兒,他們就排查到了因為這個功能而意外收穫的另外一個輔助庫的BUG。
錢志海等幾人大眼瞪小眼。
尤其是李明,用目瞪口呆都不為過,「這個功能怎麼像個利器一樣啊,我們沒有找他,他都額外的給我們發現了輔助庫另外的漏洞。」
錢志海也是心中一動,他非常的想把這個葉子給拉到他們的公司來,這妥妥的都是大公司精英級別的程式設計師啊!
他們這個小公司雖然發展的也還行,但是也僅僅是還行罷了,如果能夠讓葉子加入他們,錢志海相信他們的公司絕對能夠再創一個新高!
但是……
像葉子這樣的大神,工資肯定是很高的,就比如那些大公司裡面的精英程式設計師,十萬都是保底,而且還有獎金分紅,而他錢志海能拿出什麼來籠絡葉子大神呢?
不說其他的,就光一個月薪十萬,錢志海就拿不出手,也不是說出不起,只是公司還有其他方方面面也要打點,這十萬一拿,他們的現金流就更加的不便了。
所以,想要邀請葉子大神,錢志海也就只能在心裏面想一想,不過他還是看了一眼自己的這幾個骨幹程式設計師,「天外有天,人外有人,我們還需要努力啊。不過現在既然發現了這個BUG,那就趕緊給它解決吧。」
幾個人頓時開始來修復漏洞,首先拿到調用棧信息之後,一會兒時間就很容易的追查到了根源。
錢志海一行人看著這個,都是有些面面相覷。
「怎麼是這個……」
這是當年羽然科技公司實現時的疏忽:在某個函數中,他們聲明了一個局部變量,這個變量和同一命名空間的另一個變量名字極為相似,但命名風格(首字母是否大寫之類)和其他代碼不太一致。
當時他們是為了規避不同作用域的命名衝突才這樣命名的。
但到了後面,他們仍然習慣性的用了「正常」的命名,也可能是選錯了編輯器自動提示選項。
這就相當於丟開局部變量,用了命名空間的外部變量;但從上下文看,這裡就不應該碰外部那個同名變量。
用偽碼表示大概是這樣:
class OneClass {
packageNameItems = null;
....
void funName1(arg){
//initial packageNameItems
packageNameItems = arg;
//other...
}
string funName2(){
PackageNameItems = extractPureInfo(packageNameItems);
//do sth
....
result = getItemFrom(packageNameItems, itemName)//1
//do sth
....
return result
}
}
從那裡分析,在//1處,本應該是從已經解包過的PackageNameItems中,取它的第N項;但這裡誤傳入了解包前的packageNameItems。
似乎輸入文本可能會發生幾種情況,當然多數情況不需要進一步處理,直接用外部那個變量就行,此時兩個變量內容一致,不會觸發bug;但少數情況下,外部那個變量需要進一步處理,這才能提取到正確的內容。
這種情況下,兩個變量內容不同,誤用了前一個變量就讀不到正確數據了。
這是個極為隱蔽的邏輯錯誤。
其實和變量作用域相關的故障都很隱蔽。
李明拿著整個調用鏈的詳細記錄,也是看了好幾遍才發覺這兩個變量的名字似乎有些意思,這才沿著這條線追查下去……
總之,意外的輸出信息弄得他們一臉懵逼,因為這時候根本就不應該有這種信息,也幸好檢查條件設的比較窄,只有正常返回可通過,其他一概拋異常崩掉——於是這個異常就被葉新晨的debug工具抓到,自動記錄了調用棧信息。
所以說為什麼之前錢志海等幾人會驚訝,因為這個功能給他們抓到了一個BUG。
還好這是個極為簡單的bug,只需把最後那次訪問時,首字符小寫的變量名改成大寫,故障就不再復發。
其實就這麼簡單個首字符大小寫搞錯、誤訪問了外部變量的BUG,羽然科技公司在黑土平台上的懸賞單也是掛了有兩三年了,前前後後換了很多人經手,但就是沒人能抓到它。
最終,這個簡單又奇葩的bug竟然被葉子大神的一個功能給抓住了。
不得不說這真的是意外之喜。
「真想見識見識葉子這樣的大神是什麼樣的……」
………
八月三十一號。
這也是這個月的最後一天,葉新晨在公司之後,他今天沒有像以往那樣給自己的組員開會,他直接的就去往了主管自己的主管辦公室裡面。
他的主管是正是他的上一任組長張國強,所以他們之間的關係還算比較融洽,畢竟當時的葉新晨在他們組裡可是業績排名前三的,自然不會受到張國強的批評之類的。
「你要辭職?」張國強看著今天一大早就來跟他說今天要辭職的葉新晨,也是頭疼的拍了拍自己的腦袋,「辭職都得提前最起碼半個月啊,你這也太突然了吧?」
「張哥,我下個月就要回老家結婚了,而且女方家在C市,到時候我要兩頭跑,請假半個月都是打底的啊。」葉新晨一臉真誠的說道,「大概率都可能會請一個月假。」
「一個月……」張國強也是皺了皺眉頭,「一個月公司肯定不會批下來的,哪怕半個月都不會給你批,時間太久了。而且,為什麼要這麼急著結婚呢?可以往後延一個月啊,這樣子我就可以正常的給你打報告上去了。」
「哎,為什麼這麼急,我也不想的啊,主要那不是因為女朋友已經有了嗎……」
張國強愣了一下,然後半晌道,「那恭喜啊。」
葉新晨則是看著張國強,苦笑著道,「哎,所以我才來先找張哥,畢竟結婚後也肯定需要錢,我要是一聲不吭的離職,下個月恐怕發下來的工資只有一半。」
「嗯,公司的確會這樣。」張國強最後看了一眼葉新晨,嘆了口氣,然後拿出一張紙,「行吧,你就正常的寫一份報告好了,也是你正好趕上公司要提拔主管和組長,到時候我再說我忘了有你的辭職報告沒打上去,你今天應該可以正常離職。」
「那謝謝張哥。」