你在公司專案裡面看到過哪些操蛋的程式碼?

知乎發表於2016-03-31

整理自知乎的同名問答貼。題主的補充:

String result;
......
return result.toString();

算嗎?

盡情吐槽吧

Cyandev 的分享

if (m_doc->isModified() == true)
{
    for (int i = 0; i < 100; i++)
    {
        save(); //Save the document for 100 times to ensure it has been saved successfully.
    }
}

不知誰寫的,總之我都看哭了。

侯傑 的分享

enum FiveLine
{
  Gold,
  Wood,
  Water,
  Fire,
  Earth,
};

看列舉名字不知道五行(hang)是什麼鬼,看了列舉內容恍然大霧,原來是五行(xing)……

李旭東 的吐槽

<div class="div1">
    <div class="div2">
        <div class="div3">

        </div>
        <div class="div4"></div>
    </div>
</div>

…………

<div class="div27">
    <div class="div28">

    </div>
</div>

…………

<div class="div396">
    <div class="div397"></div>
</div>

…………

<div class="giveMeAFuckingClassName">
</div>

白砂糖 的分享

// 以下所有left代表右

// 以下所有right代表左

Kun Andy 的分享

public enum ColorType
{
  Green, // 綠色
  Hong, // 紅色
}
//......
this.curColortype= ColorType.Hong;
......

毫無違和感! 英語和漢語的激烈碰撞,一時愣是沒讀懂程式碼,“Hong”為何物,你看註釋才恍然大悟!犀利

可能是綠的拼音(lv) 有點像等級,所以為了防止歧義,用了Green!贊一個!

!!!!!!!!!!!!!

程式設計師很可愛,我愛程式猿大家庭!

這些蘊含智慧的代是禮物也是驚喜!

可以幫你拉這麼多贊!感謝!

!!!!!!!!!!!!!

真愛身邊的程式設計師!

愛他們

孫傳武 的分享

有次看一專案原始碼,註釋裡有個warning。

// warning: Do not make any changes here.
// I got confused why it can run successfully. 
// PLEASE Do not make any changes before you figure it out.

紳士提督不笑船 的分享

變數名

class UplaodDuiLie  // 上傳佇列

// Uplaod 非手誤,完全原文。
// 為什麼你們只吐槽 typo 而不吐槽中英文混合呢。。

myd7349 的分享

從長度上來說,完爆樓上各位的。感受下:

	if(m_Str2.Find("'")>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find(':')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('/')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}

	if(m_Str2.Find('!')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('@')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('#')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('$')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('%')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('&')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('^')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('*')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('(')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find(')')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('/')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('|')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find(':')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('[')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find(']')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
		if(m_Str2.Find('{')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}
	if(m_Str2.Find('}')>=0)
	{
		AfxMessageBox("您輸入的包含非法字元");
		m_Str2="";
		UpdateData(FALSE);
		return;
	}

哪怕不知道 RE,也該知道 FindOneOf 啊?!!!!

就是再不濟,也寫個迴圈吧。

謹遵 DRY 原則的程式設計師看到這段程式碼受到了 1024 Kg 的傷害。

當然,還有什麼:

一個執行緒回撥函式函式寫了 700 多行的事情我們就不說了。

一個小小的專案專門定義了名叫 Global.h/cpp 的檔案來放置全域性變數我們也不說了。一個小小的專案中一二百個全域性變數我們也不說了,這些全域性變數中大部分還是指標變數我們也甭說了!!!

我去哭一會去。

青苔 的分享

看見這段程式碼的時候,我拍了很久的掌

虎耳 的吐槽

曾經在一個家公司,有一次有人發現對每個請求,有個地方都會空等了一秒。

後來問老大,說,如果客戶有新要求,隨時可以把效能提高一倍以上。。。

歡迎各位猿媛們來補充咯~

相關文章