作為一個(gè)半路出家的前端開發(fā),在前兩年工作中,重心更多的放在了如何實(shí)現(xiàn)完整頁面或怎樣實(shí)現(xiàn)頁面效果交互過程中;比如從最開始剛接觸的初始時(shí)期把的psd轉(zhuǎn)為靜態(tài)頁面布局和適配各種客戶端;再到應(yīng)用js實(shí)現(xiàn)諸如輪播/切換等頁面交互效果。
這些工作都比較“個(gè)體”,系統(tǒng)性不強(qiáng),所以當(dāng)知道要做什么了以后就立即上手,并沒有做上下關(guān)聯(lián)的思考。這樣開始初始沒有什么,但當(dāng)你開始做一個(gè)比較完整的小功能時(shí),缺陷就暴露了出來,如果沒有理出一個(gè)清晰的思路,沒有進(jìn)行分析,沒有把這個(gè)功能需要的點(diǎn)列出來,只聽了個(gè)大概的需求就開始上手,那么就算你做出來了,那也只是一個(gè)巨大的巨坑,東漏一點(diǎn),西漏一點(diǎn),又或者數(shù)據(jù)結(jié)構(gòu)不清晰,又或者邏輯不清晰,導(dǎo)致開發(fā)到后面越來越困難,發(fā)現(xiàn)最開始的時(shí)候就給自己埋了一個(gè)坑。
比如說,需要實(shí)現(xiàn)一個(gè)純前端的評論功能,一聽評論腦海里就大概知道是要什么了,不就是留言然后就在列表后面追加嘛,然后就是點(diǎn)贊/回復(fù)嘛,誒,這些都會(huì)寫,能實(shí)現(xiàn)。但是?。?/strong>如果你就只是得到了這些大概信息就開始上手寫代碼,那么你只是悲催挖了個(gè)大坑,然后把自己給埋了。
因?yàn)椋谀銊倢懥藗€(gè)開頭,你會(huì)想到:“哦,這是個(gè)純前端功能,我需要些模擬數(shù)據(jù)”,好吧,又停下現(xiàn)在寫的,吭吭哧哧的去寫了個(gè)JSON,把模擬數(shù)據(jù)都建好了;又或者你一開始就想好了要建模擬數(shù)據(jù),但把信息都堆在一起了,比如把人名、評論的信息都放同一個(gè)對象里了。那當(dāng)你做回復(fù)的時(shí)候,會(huì)發(fā)現(xiàn),哦豁,給自己挖了個(gè)坑。
這,就是最開始數(shù)據(jù)結(jié)構(gòu)沒想清楚的鍋。
同樣也因?yàn)橐婚_始得到需求沒有進(jìn)行分析,直接上手代碼的緣故,沒有想清楚評論的真正功能和把模擬數(shù)據(jù)展示出來是兩個(gè)分支的事,把它們混在了一起寫?;蛟S寫到中途你會(huì)發(fā)現(xiàn)這個(gè)問題,但此時(shí)你的代碼已經(jīng)爛成了一坨醬糊糊,要重做時(shí)間來不及,要改就像自己親手把醬糊糊糊在了自己臉上。
所以,在開發(fā)前開發(fā)中思路清晰很重要,最重要的就是在拿到一個(gè)需求后別只理解了個(gè)大概就開始上手代碼,哪怕再小的功能,也需要進(jìn)行分析,然后把需要實(shí)現(xiàn)的功能點(diǎn)列出來,把思路和邏輯理清楚,然后再去寫代碼實(shí)現(xiàn)。
記在一次教訓(xùn)之后,學(xué)途無邊,愿自己一步一腳印越走越遠(yuǎn)。