成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

好久沒(méi)寫東西了,叨叨兩句

netmou / 2075人閱讀

摘要:最近寫了個(gè)簡(jiǎn)單的命令行工具,用滿足一些工作上的需求。后面加上了圖片壓縮,以及圖片轉(zhuǎn)的功能。就在寫這個(gè)圖片處理工具的過(guò)程中,自己得到了一些理解。不過(guò)這里更好的解決方法是可以提示用戶圖片體積過(guò)大,程序可以先自動(dòng)壓縮圖片,再生成。

最近寫了個(gè)簡(jiǎn)單的命令行工具,用node 滿足一些工作上的需求。是一個(gè)處理圖片的腳本,一開始只有一個(gè)指令,將指定圖片輸出成配置好的不同大小尺寸的圖片。后面加上了圖片壓縮,以及圖片轉(zhuǎn)base64的功能。就在寫這個(gè)圖片處理工具的過(guò)程中,自己得到了一些理解。

項(xiàng)目結(jié)構(gòu)

項(xiàng)目一開始的幾個(gè)文件夾,先新建好。什么constants,lib,utils之類的都安排上。雖然麻煩點(diǎn),但起碼看著舒服,別人查看你的項(xiàng)目的時(shí)候也方便。至少不會(huì)覺得你外行(就在寫這個(gè)的同時(shí),突然想到可以在自己的腳手架工具中加一個(gè)文件夾結(jié)構(gòu)生成指令。。。哈哈哈

代碼結(jié)構(gòu)

代碼風(fēng)格一定要統(tǒng)一好,linter 選一個(gè)自己用的慣的,可以參考別的大佬怎么配置,總之就是要有一套統(tǒng)一的代碼風(fēng)格。這一塊在編輯器上可以安裝上插件幫忙檢測(cè),code formater 也可以幫忙調(diào)整。

上面提到的項(xiàng)目結(jié)構(gòu)這里就有用了。在敲代碼的時(shí)候總歸會(huì)用到一些常量,工具函數(shù),這時(shí)候就可以把這些要用到的常量,工具函數(shù)統(tǒng)一管理起來(lái),分配好。一開始會(huì)覺得麻煩,但是相信我。這個(gè)習(xí)慣養(yǎng)成了自己的代碼質(zhì)量也會(huì)提高(同時(shí)很裝逼

可以適當(dāng)?shù)脑谶吘帉懘a的時(shí)候邊運(yùn)用一些設(shè)計(jì)模式。雖然說(shuō)設(shè)計(jì)模式在一些簡(jiǎn)單的項(xiàng)目中可能是畫蛇添足,但是從簡(jiǎn)單的項(xiàng)目練習(xí)起來(lái),形成思維習(xí)慣,不失為一個(gè)好的鍛煉。
TL;DR
我這次就遇到一個(gè)代碼設(shè)計(jì)模式上的缺陷,我所寫的一些指令方法其中的logger和主程序都寫在了一個(gè)主函數(shù)中。這時(shí)有了一個(gè)場(chǎng)景,我在轉(zhuǎn)base64的指令中發(fā)現(xiàn)當(dāng)圖片提及過(guò)大,生成的base64編碼量是很龐大的,這時(shí)候就加了個(gè)圖片體積的限制。不過(guò)這里更好的解決方法是可以提示用戶圖片體積過(guò)大,程序可以先自動(dòng)壓縮圖片,再生成base64。然而這里實(shí)現(xiàn)起來(lái)就限于我之前提到的,代碼耦合,導(dǎo)致主要的腳本程序無(wú)法得到復(fù)用,從而增加了工作量。
以上,我描述了我在敲代碼時(shí)的一個(gè)場(chǎng)景。而我接下來(lái)做的可能就是會(huì)去把各個(gè)指令的主要程序從執(zhí)行函數(shù)中抽離出來(lái),給代碼解藕,這樣就可以很自如的應(yīng)對(duì)不同的需求挑戰(zhàn)

建議閱讀一些關(guān)于設(shè)計(jì)模式的知識(shí),一開始理解起來(lái)會(huì)比較抽象,但總得有開始咯

實(shí)際代碼中的嗨點(diǎn)

我是前端程序員,慢慢的在寫JS的時(shí)候,發(fā)現(xiàn)一些很舒服的點(diǎn)(自嗨)

適當(dāng)?shù)倪\(yùn)用閉包,尖頭函數(shù),高階函數(shù),這些概念要多去理解,多運(yùn)用。實(shí)踐起來(lái)之后真的很嗨

比如:

const handleGenerateFail = spinner => err => {
  spinner.text = `壓縮圖片失敗:

${err}`
  spinner.fail()
}

const handleGenerateSucceed = spinner => _output => {
  spinner.text = `壓縮圖片成功`
  spinner.succeed()
  console.log("
查看", _output)
}

const spinner = ora(`圖片壓縮中`).start()
const failHandler = handleGenerateFail(spinner)
const successHandler = handleGenerateSucceed(spinner)

最后

記錄一下自己在洗澡的時(shí)候想到的一些東西(廁所真的是一個(gè)激發(fā)靈感的好地方

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/99856.html

相關(guān)文章

  • SegmentFault 社區(qū)訪談 | Felix:一個(gè)如同空氣般存在的人

    showImg(https://segmentfault.com/img/bVWOEd?w=900&h=385); 闊別已久的社區(qū)訪談?dòng)蛛p叒叕和大家見面來(lái),介紹我們這次嘉賓之前,清蒸先來(lái)簡(jiǎn)單地說(shuō)下以后的社區(qū)專訪將會(huì)加入的兩個(gè)小模塊:訪談嘉賓的優(yōu)質(zhì)內(nèi)容以及為期一個(gè)星期的提問(wèn)時(shí)間,在本文發(fā)布這天開始計(jì)時(shí),在接下來(lái)的一個(gè)星期,你們可以對(duì)專訪嘉賓進(jìn)行提問(wèn),唔,注意提問(wèn)姿勢(shì)(太過(guò)八卦的就不會(huì)給予回復(fù)啦(//...

    劉玉平 評(píng)論0 收藏0
  • SegmentFault 社區(qū)訪談 | Felix:一個(gè)如同空氣般存在的人

    showImg(https://segmentfault.com/img/bVWOEd?w=900&h=385); 闊別已久的社區(qū)訪談?dòng)蛛p叒叕和大家見面來(lái),介紹我們這次嘉賓之前,清蒸先來(lái)簡(jiǎn)單地說(shuō)下以后的社區(qū)專訪將會(huì)加入的兩個(gè)小模塊:訪談嘉賓的優(yōu)質(zhì)內(nèi)容以及為期一個(gè)星期的提問(wèn)時(shí)間,在本文發(fā)布這天開始計(jì)時(shí),在接下來(lái)的一個(gè)星期,你們可以對(duì)專訪嘉賓進(jìn)行提問(wèn),唔,注意提問(wèn)姿勢(shì)(太過(guò)八卦的就不會(huì)給予回復(fù)啦(//...

    trilever 評(píng)論0 收藏0
  • ABROAD:將系統(tǒng)的VC模式擴(kuò)展為MVC模式

    摘要:規(guī)范首先從框架規(guī)范起將不規(guī)范的模式擴(kuò)展為較為規(guī)范的模式,再就是平時(shí)寫代碼時(shí)命名數(shù)據(jù)庫(kù)設(shè)計(jì)命名文件夾命名等規(guī)范,還有諸如語(yǔ)句書寫的規(guī)范關(guān)鍵詞大寫表名和字段名用標(biāo)識(shí)等,感謝大神小志公子和轉(zhuǎn)啊轉(zhuǎn)提醒。就拿的圖做文章的配圖啦,力頂。 ABROAD項(xiàng)目好久沒(méi)寫文章了,放了太久,這次要開始發(fā)力完成它了! 在項(xiàng)目停滯的這一兩個(gè)月里,又學(xué)習(xí)了很多新東西,特別是最近加入了一個(gè)開發(fā)者社區(qū)(請(qǐng)戳http:...

    taoszu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<