Re: [閒聊] 各種神人的code
小弟也來分享一個好了, 現在是寫MFC.
前陣子剛接了一位離職前輩的code, 他人很好, 可是每次看他的code都很崩潰...
因為大概都像這樣:
int Int_DBI_gcNumber_Part1_temp_temp;
int Int_DBI_gcNumber_Part1_temp_AK1 ;
int Int_DBI_gcNumber_Part1_temp_232 ;
CString CString_DBI_MJ456_Serial_Number1;
CString CString_DBI_MJ456_Serial_Number1_temp;
CString CString_DBI_MJ456_Serial_Number1_Remove_Part;
// ...
...下略10~20行, 大概都是這種宣告.
然後用起來時↓
Int_First_DBI_gcNumber_Part1_temp = Int_First_DBI_gcNumber
+ Int_First_DBI_gcNumber_Part1_HighPart;
Int_First_DBI_gcNumber_Part1_temp_temp = Int_First_DBI_gcNumber_temp
+ Int_DBI_gcNumber_Part1_temp_AK1;
if(StPlatformFirmwareUPG->MBS1.bCheckForXXXFlag)
{
m_stGGC.ch = m_Overall_Test_Functions_NW_Counter++;
ResetEvent(EventSpecialTesterLock);
(Int_First_DBI_gcNumber_Part1_temp_temp &= 0x002F1C) ?
(ConnectToServer(m_stGGC) : connect(m_stGGC));
WaitForSigleObject(EventSpecialTesterLock, 3000, NULL);
........
//一堆看起來很像的參數做很多事 其中有部分沒作用
........
}
else
{
m_stGGC.ch = m_Overall_Test_Functions_NW_Counter--;
ResetEvent(EventSpecialTesterLock);
(Int_First_DBI_gcNumber_Part1_temp_temp &= 0x002F1C) ?
(ConnectToServer(m_stGGC) : connect(m_stGGC));
WaitForSigleObject(EventSpecialTesterLock, 3000, NULL);
........
//一堆看起來很像的參數做很多事 其中有部分沒作用
........
}
諸如此類
上面為了PTT閱讀方便, 所以一行太長的我在這邊換行 (原code沒有)
所以偶爾會出現三四個變數就讓往右的拉bar跑出來, 還要拉兩三個頁面的情況.
另外如果寫在if裡的不是bool, 那就會有 if, else if, else if, else if...
大概8個吧, 運氣好的話.
然後看到的變數如果差個temp啦、part啦、什麼阿哩阿喳的
那它們的差別大概是:
1. 全域變數 (偶爾前面會加 m_ 記得的話)
2. 宣告在這function裡的變數
3. 宣告在某個大括弧的暫存空間
4. 傳進這個function裡的13個變數之一
5. 宣告完了忘了用, 所以再宣告一個名子看起來很像的
喔, 還有那個Int_XXX什麼開頭的, 可能是個char[]
但是全都長的一樣, 只差在某個可能在頭, 可能在中央, 可能在尾的關鍵字
就這麼寫了二三十頁...
寫在某個timer, 或文字輸入方塊之類的OnChange事件裡...
結果就是, 使用時有一定機率crash......
...||orz
另外他還有個好習慣: 會把new的陣列集中在function尾端delete[]
所以理所當然的, 當然會遺落一些...或一半
......然後寫在return之後.
..﹨(╯▽╰)∕
他真的是個好人, 但他讓我好難過...
--
→
03/03 23:18,
03/03 23:18
推
03/03 23:18,
03/03 23:18
推
03/03 23:19,
03/03 23:19
→
03/03 23:19,
03/03 23:19
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.6.114
※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1410548837.A.0A9.html
推
09/13 03:49, , 1F
09/13 03:49, 1F
→
09/13 11:00, , 2F
09/13 11:00, 2F
→
09/13 14:21, , 3F
09/13 14:21, 3F
推
09/13 15:27, , 4F
09/13 15:27, 4F
→
09/13 15:30, , 5F
09/13 15:30, 5F
→
09/13 15:35, , 6F
09/13 15:35, 6F
→
09/13 17:48, , 7F
09/13 17:48, 7F
推
09/14 11:25, , 8F
09/14 11:25, 8F
討論串 (同標題文章)