[導(dǎo)讀]在Facebook網(wǎng)站上有一個(gè)名為“Il Programmatore di Merda”(“ The Shitty Programmer”,中文俗譯為“粑粑程序猿”)的社區(qū)。我經(jīng)常上去瀏覽,這個(gè)網(wǎng)站經(jīng)常分享一些寫的爛的代碼和有關(guān)編程的話題。這不,今天我就看到一段令人難以置信的爛代碼,有圖有真相~
在Facebook網(wǎng)站上有一個(gè)名為“Il Programmatore di Merda”(“ The Shitty Programmer”,中文俗譯為“粑粑程序猿”)的社區(qū)。我經(jīng)常上去瀏覽,這個(gè)網(wǎng)站經(jīng)常分享一些寫的爛的代碼和有關(guān)編程的話題。這不,今天我就看到一段令人難以置信的爛代碼,有圖有真相:
本周最爛代碼
請(qǐng)各位仔細(xì)查看,上面的代碼錯(cuò)誤太多,我一時(shí)不知該從哪兒說起。
如果你是一個(gè)初級(jí)開發(fā)工程師,本篇文章會(huì)幫你理解上述代碼中存在的一些嚴(yán)重的bug,希望各位同學(xué)引以為鑒。
我將上面的代碼摘錄下來,以便后面一起來討論。代碼如下:
<script>function authenticateUser(username, password) {var accounts = apiService.sql("SELECT * FROM users");for (var i = 0; i < accounts.length; i++) {var account = accounts [i];if (account.username === username &&account.password === password){return true;}}if ("true" === "true") {return false;}}$('#login').click(function() {var username = $("#username").val();var password = $("#password").val();var authenticated = authenticateUser(username, password);if (authenticated === true) {$.cookie('loggedin', 'yes', { expires: 1 });} else if (authenticated === false) {$("error_message").show(LogInFailed);}});script>
把代碼復(fù)制完的一時(shí)之間,我竟不知道從何說起了。上述錯(cuò)誤大致分為 3 類:
安全問題
基本編程概念問題
代碼格式化問題
我們非常確定以下代碼能夠在客戶端運(yùn)行,因?yàn)樗呀?jīng)包含在兩個(gè)
換一批
延伸閱讀





