国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一位非計(jì)算機(jī)專業(yè)程序員的21個(gè)嵌套回調(diào)

開發(fā) 前端
我要悲哀地告訴你們,下面還有165行類似的東西,另外配套的JavaScript代碼也是一樣重疊起來(lái)的,它就是個(gè)平行四邊形。

大約21個(gè)月之前,那時(shí)候我還不知道什么是回調(diào)(callback),我建立了我的***個(gè)網(wǎng)頁(yè)。為了紀(jì)念這21個(gè)嵌套的回調(diào),我覺(jué)得現(xiàn)在是回顧這個(gè)網(wǎng)頁(yè)的時(shí)候了。

在那時(shí)我有個(gè)可能有點(diǎn)老套的習(xí)慣,就是在人文課程或者家庭旅游的時(shí)候在筆記本上信手涂鴉一番。在某次暑期旅行中我創(chuàng)作了一組我自己覺(jué)得超酷的三角形圖案。于是我覺(jué)得把它做成電子版是在那個(gè)夏天值得下功夫的事情。我還憧憬著這套東西讓我在Tumblr上的形象顯得超酷無(wú)比。

我開始找了些計(jì)算機(jī)專業(yè)的朋友們,問(wèn)他們是否可以給我指點(diǎn)一下方向。我得到的大把的答復(fù)可以總結(jié)為“google一下”,潛臺(tái)詞就是:“如果你google完了還不知道咋弄,你就是低能兒。”

“我想在我的網(wǎng)頁(yè)上做個(gè)三角形…不過(guò)Google看起來(lái)沒(méi)給我什么好的答案。”

“不,你要用‘CSS triangle’ 作為關(guān)鍵字去Google。看見了沒(méi)?這很簡(jiǎn)單。”

“不好意思…CSS和三角形有什么關(guān)系?”

對(duì)話記錄通常到此嘎然而止,或者是到“CSS就是你用來(lái)修飾你的HTML的東西。”

(從這些交流過(guò)程中我總結(jié)出一個(gè)結(jié)論:程序猿們總是在比著看誰(shuí)能把最多的事情稱為“簡(jiǎn)單的”)

每次對(duì)話完之后,我都覺(jué)得自己真是***的廢物。不過(guò)我后來(lái)發(fā)現(xiàn)了如何用一個(gè)div(那玩意代表啥東西?)和幾行CSS來(lái)做出一個(gè)三角形形狀,還有一些具有很酷的變換顏色效果的網(wǎng)站,可以復(fù)制下來(lái)做我的三角形圖案。

I我知道你現(xiàn)在肯定很好奇我(這么一個(gè)編程小白)是怎么拼湊出這些來(lái)的。

好吧,這里就是我的HTML的概貌:

  1. <div id="row1"> 
  2.   <div class="btri"></div> 
  3.   <div class="tri"></div> 
  4.   <div class="tri"></div> 
  5.   <div class="tri"></div> 
  6.   <div class="emp"></div> 
  7.   <div class="tri"></div> 
  8.   <div class="tri"></div> 
  9. </div> 
  10. <div id="row2"> 
  11.   <div class="tri"></div> 
  12.   <div class="tri"></div> 
  13.   <div class="tri"></div> 
  14.   <div class="tri"></div> 
  15.   <div class="tri"></div> 
  16.    
  17.   ... 

我要悲哀地告訴你們,下面還有165行類似的東西,另外配套的JavaScript代碼也是一樣重疊起來(lái)的,它就是個(gè)平行四邊形。

我后來(lái)又知道了有一種叫jQuery的東西,我可以用它的“API”里某個(gè)叫“animate”的東西來(lái)逐步改變我的三角形的各種屬性。我發(fā)現(xiàn)如果我調(diào)用一次$(‘#something’).animate({ ‘opacity’: ’0′ })就會(huì)讓一個(gè)三角形消失。在我的頭腦中覺(jué)得,如果我想讓我的20行三角形一個(gè)個(gè)地消失,我需要把這樣的代碼寫上20遍,這是符合邏輯的。

通過(guò)拷貝和粘貼內(nèi)容到JavaScript文件里的起始位置的方式,我還“ imported | 導(dǎo)入”了jQuery。我曾經(jīng)在其他的網(wǎng)頁(yè)上看見它在不同的文件里,但我決定不管是否合理,也要把我所有的JavaScript都放到一個(gè)文件里。

如果我打算自欺欺人,我可以說(shuō)我選擇了***化的編程方式:用最難的風(fēng)格。

  1. $(".disappear").click(function(){  
  2.   $("#row20").animate({ "opacity""0" },  
  3.     100,  
  4.     function(){$("#row19").animate({ "opacity""0" },  
  5.       100,  
  6.       function(){$("#row18").animate({ "opacity""0" },  
  7.         100,  
  8.         function(){$("#row17").animate({ "opacity""0" },  
  9.           100,  
  10.           function(){$("#row16").animate({ "opacity""0" },  
  11.             100,  
  12.             function(){$("#row15").animate({ "opacity""0" },  
  13.               100,  
  14.               function(){$("#row14").animate({ "opacity""0" },  
  15.                 100,  
  16.                 function(){$("#row13").animate({ "opacity""0" },  
  17.                   100,  
  18.                   function(){$("#row12").animate({ "opacity""0" },  
  19.                     100,  
  20.                     function(){$("#row11").animate({ "opacity""0" },  
  21.                       100,  
  22.                       function(){$("#row10").animate({ "opacity""0" },  
  23.                         100,  
  24.                         function(){$("#row9").animate({ "opacity""0" },  
  25.                           100,  
  26.                           function(){$("#row8").animate({ "opacity""0" },  
  27.                             100,  
  28.                             function(){$("#row7").animate({ "opacity""0" },  
  29.                               100,  
  30.                               function(){$("#row6").animate({ "opacity""0" },  
  31.                                 100,  
  32.                                 function(){$("#row5").animate({ "opacity""0" },  
  33.                                   100,  
  34.                                   function(){$("#row4").animate({ "opacity""0" },  
  35.                                     100,  
  36.                                     function(){$("#row3").animate({ "opacity""0" },  
  37.                                       100,  
  38.                                       function(){$("#row2").animate({ "opacity""0" },  
  39.                                         100,  
  40.                                         function(){$("#row1").animate({ "opacity""0" },  
  41.                                           100)})})})})})})})})})})})})})})})})} 

你可以在這里看到完整的源代碼最終產(chǎn)品

(我甚至經(jīng)歷了對(duì)齊每一個(gè)回調(diào)方法的縮進(jìn)的麻煩,這在Windows Notepad上可是不容小覷的絕技)

注意以上JavaScript的結(jié)尾是一套壯觀的 )})})})})})})})})})})})})})})})})})})})。當(dāng)看到那些三角形按我的意圖消失又出現(xiàn)時(shí),我真是太高興了。代碼本身就像壯觀的ASCII瀑布,或者是高級(jí)西班牙語(yǔ)課本里常見的印加文化的灌溉系統(tǒng)。這些代碼是有效的,我在Google上也沒(méi)看到誰(shuí)說(shuō)這些代碼錯(cuò)的一塌糊涂,或者說(shuō)任何看到我代碼的程序員都會(huì)永遠(yuǎn)禁止我和我的子孫接近互聯(lián)網(wǎng)。

等到有個(gè)真正的軟件工程師來(lái)看我的三角形代碼的時(shí)候,我已經(jīng)看過(guò)足夠多有關(guān)SICP(計(jì)算機(jī)程序的構(gòu)造和解釋)材料并意識(shí)到我的代碼既恐怖又可怕。“不過(guò),初學(xué)者總是會(huì)犯這樣的錯(cuò)誤,對(duì)吧?”我窘迫地試探著問(wèn)道。

“不,程序猿是不會(huì)干這種事的。”他倒不是挖苦的口氣。我當(dāng)時(shí)就想把話題引到分子和細(xì)胞生物學(xué)上去。不過(guò)他隨后又補(bǔ)充說(shuō):“沒(méi)有哪個(gè)程序猿會(huì)寫出這樣的代碼,因?yàn)樗麄兏揪蜎](méi)有那個(gè)耐心。”

不管他的第二段話是不是肺腑之言,我對(duì)整個(gè)事情的感覺(jué)好了一些。

不管怎樣,后來(lái)我還是羞愧地把我的三角形刨坑埋了。隨著時(shí)間一天天一月月地過(guò)去,它們最終成為愚昧的起步之旅。“嗨,你這倆鐘頭都花在調(diào)試你的 CoffeeScript代碼里的空白字符問(wèn)題了?想當(dāng)年我花了一天時(shí)間來(lái)寫21個(gè)嵌套的回調(diào)和200行相同的HTML。”這個(gè)故事通常會(huì)產(chǎn)生一種自我調(diào)侃的搞笑效果。

我認(rèn)識(shí)到,自三角形項(xiàng)目以來(lái),我寫的每一行代碼都只會(huì)讓我在“google一下”、調(diào)試代碼,和五花八門的編程主題等方面更強(qiáng),而這都是因?yàn)槲矣H身去經(jīng)歷了每一個(gè)看似愚蠢的項(xiàng)目。

上個(gè)星期我花了點(diǎn)時(shí)間快速重寫了我的三角形。你可以在這里看到它,在響應(yīng)性和動(dòng)態(tài)生成效果上令人自豪,這些是我在當(dāng)年毫無(wú)概念的(當(dāng)然了,我也只能犧牲了老版本里明顯的優(yōu)點(diǎn))。我保持了最初的設(shè)計(jì)精髓,即用div生成三角形,用jQuery來(lái)做動(dòng)畫效果。

既然我快要離開安全、綠樹環(huán)抱的伯克利的圍墻,進(jìn)入真實(shí)的世界(也希望使我過(guò)去對(duì)代碼的犯罪記錄安息),我希望給初出茅廬的發(fā)明家和害羞的創(chuàng)作者,留下我的三角形中一到三個(gè)角作為遺產(chǎn)。

編程很難。絕不要因?yàn)槟悴蝗缒闩赃叺娜松朴?ldquo;去Google一下”就心情沮喪。絕不要讓那些言必稱黑客馬拉松的假行家忽悠你,讓你放棄做出下一個(gè)貓咪的微博或者公共廁所點(diǎn)評(píng)網(wǎng)的機(jī)會(huì)。就算是最蠢的點(diǎn)子(例如嘗試做多邊形消失和重現(xiàn)的動(dòng)畫)都會(huì)幫助你作為一個(gè)程序猿不斷提高。學(xué)習(xí)編程很大程度上是學(xué)會(huì)如何學(xué)習(xí),而***的學(xué)習(xí)方法就是去動(dòng)手做。

歸根結(jié)底,成為一個(gè)稱職的程序猿和你贏了多少次黑客馬拉松或者你能想出多少新奇的點(diǎn)子無(wú)關(guān),而是和執(zhí)行力、關(guān)注細(xì)節(jié)、全心投入、對(duì)于創(chuàng)造和突破的熱情有關(guān)。

如果你在對(duì)你的代碼感到羞愧,我允許你嘲笑一次我那三角形項(xiàng)目里的21個(gè)嵌套回調(diào)。

原文鏈接:http://blog.jobbole.com/37863/

責(zé)任編輯:張偉 來(lái)源: 伯樂(lè)在線
相關(guān)推薦

2013-03-27 09:59:33

程序員編程

2013-03-27 09:59:17

程序員

2013-12-05 13:41:15

女程序員奮斗

2020-11-13 15:31:31

程序員計(jì)算機(jī)考研

2009-02-13 12:20:22

程序員計(jì)算機(jī)英語(yǔ)

2022-03-09 09:50:18

程序員計(jì)算機(jī)編程

2015-04-14 09:29:25

CTO程序員

2019-04-17 09:14:39

程序員 996馬云

2012-12-11 09:34:40

程序員

2015-06-02 04:38:54

程序員俄羅斯程序員

2013-11-04 10:32:01

Facebook女程序員

2015-10-28 09:11:31

Python導(dǎo)師級(jí)程序員

2015-12-22 15:49:28

程序員互動(dòng)訪談

2015-12-24 18:00:45

資深程序員

2014-06-27 09:17:53

程序員

2013-03-19 10:18:07

程序員

2011-05-11 09:42:27

程序員

2019-08-14 17:20:40

程序員人生第一份工作Google

2015-10-14 13:22:11

計(jì)算機(jī)程序員

2014-02-20 10:11:15

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

红杏aⅴ成人免费视频| 美女露隐私免费网站| 成人看片网站| 欧美久久一二三四区| 国产a级网站| 国产女主播视频一区二区| 黄色片视频在线| 99久久精品情趣| 不卡视频一区二区三区| 91夜夜蜜桃臀一区二区三区| 精品成人一区二区三区四区| 深夜福利视频在线免费观看| 成人免费高清视频在线观看| 日本一区高清不卡| 日韩影院在线观看| 国产精品永久入口久久久| 欧美性生活一级片| 韩国福利视频一区| 亚洲第一狼人区| 久久只精品国产| 中文在线不卡视频| 91精品韩国| 日韩视频免费看| 日韩一级特黄| 精品中文字幕在线2019| 国产精品一区二区精品| 欧美成人aa大片| 91香蕉在线观看| 日韩成人av在线播放| 精品123区| 1769国产精品| 久久久精品久久久久久96| 亚洲综合精品伊人久久| 亚洲黄色在线| 日韩国产美国| 国产日韩精品久久久| av日韩在线免费| 91精品国产一区二区| 一区二区视频免费完整版观看| 91国产高清在线| 国产在线日韩| 无码人妻丰满熟妇区五十路百度| 亚洲伊人伊色伊影伊综合网| 日本电影在线观看网站| 日日狠狠久久偷偷四色综合免费 | 久久香蕉av| 久久久亚洲国产天美传媒修理工| 欧美激情视频一区二区三区在线播放| 亚洲成人a**址| 一区视频在线播放| 国产在线观看免费| 欧美寡妇偷汉性猛交| 亚洲福利精品| 欧美女同在线观看| 欧美α欧美αv大片| 第四色在线一区二区| 天堂精品一区二区三区| 亚洲精品菠萝久久久久久久| 男人天堂视频在线观看| 国产伦精品免费视频| 中文字幕精品一区二区三区精品| 91精品久久久久久粉嫩| 国产精品久久久久久久久免费| 韩国一区二区在线观看| 成人黄色网址| 国产精品久久久对白| 91久久一区二区| 国产精品99在线观看| 男人的天堂www| 91精品国产91| 国产人成一区二区三区影院| 欧美24videosex性欧美| 韩国成人av| 欧美午夜精品久久久久久浪潮| 久久365资源| 成人漫画网站免费| 久久免费视频在线观看| 99国产精品久| 亚洲精品一二三**| www.99在线| 欧美精品xxx| 伊人性伊人情综合网| 久久综合社区| 蜜臀在线观看| 亚洲精品欧美日韩| 日韩欧美高清在线| 国产九色精品成人porny | 久久久久国产一区二区三区| 欧美激情在线观看视频免费| 亚洲影院天堂中文av色| 久久久久久五月天久久久久久久久| 日av在线播放中文不卡| 五月天婷婷综合| 久久一区欧美| 亚洲一区二区三区在线免费| av网站观看| 精品日韩美女| 欧美成人午夜激情在线| 五月婷婷久久丁香| 国产高清在线精品| 欧美精品乱码| 亚洲www免费| 四虎影视在线观看2413| 日本中文字幕一级片| 国产成人jvid在线播放| 欧美日韩在线综合| 激情国产一区二区| 精品视频网站| 美女高潮在线观看| 免费看的毛片| 大荫蒂性生交片| 成人免费观看网站| 91av国产在线| 欧美精品一区二区高清在线观看 | 国产欧美一区二区| 日韩在线资源网| 日韩一区二区三区高清免费看看| 91亚洲永久精品| 日韩av一二三| 99久久久久国产精品| 亚洲国产欧美国产第一区| chinese偷拍一区二区三区| 久久撸在线视频| www.国产在线视频| 亚洲成色www久久网站| 成人免费自拍视频| 国产精品一区专区欧美日韩| 免费91在线视频| 亚洲欧美国产高清va在线播| 欧美影视一区在线| 亚洲精品va在线观看| 中文字幕二三区不卡| 26uuu国产电影一区二区| 欧美一级专区| 在线播放精品| 亚洲国产精品一区制服丝袜| 三上亚洲一区二区| 超碰网在线观看| 91精品无人成人www| 亚洲jjzzjjzz在线观看| 一级黄色香蕉视频| 国产精品免费入口| 91日韩视频在线观看| 久久撸在线视频| 写真福利片hd在线观看| 情se视频网在线观看| 免费观看又污又黄在线观看国产| 青青国产在线| 国产精品一香蕉国产线看观看| 国产精品久久久久久久久| 久久精品精品电影网| 亚洲综合色激情五月| 色视频网站在线| 国产精品美女午夜爽爽| 亚洲欧美日韩国产一区二区| 亚洲图片有声小说| 久久影院模特热| 日韩美女在线观看| 亚洲中文字幕无码中文字| 性欧美ⅴideo另类hd| 欧美日韩中字| 国产成人在线看| 欧美日韩一级二级| 国产区亚洲区欧美区| 91黑丝在线| 免费精品一区| 亚洲区小说区图片区qvod按摩| 国产欧美在线| 色综合 综合色| 国产精品天天狠天天看| 日韩av免费电影| 在线免费观看高清视频色| 91伊人久久| 久久亚洲欧洲| 在线观看视频一区二区欧美日韩| 久久久极品av| 亚洲一区二区三区涩| 日本私人网站在线观看| 麻豆国产一区| 成人精品视频一区| 亚洲第一黄色网| 国产98在线|日韩| а√最新版地址在线天堂| 中文幕av一区二区三区佐山爱| 天堂成人国产精品一区| 欧美性猛交xxxxxx富婆| 国产精品久久久av| 黄网站免费入口| 亚洲日本三级| 一区二区三区日韩精品| 国产成人a视频高清在线观看| 一区二区三区产品免费精品久久75| 精品一区二区三区在线| 美女100%一区| 老司机一区二区| 欧美日本一道本| 99视频在线免费观看| 在线观看中文字幕| 久久不见久久见中文字幕免费| 国产精品不卡在线|