[心得] JavaScript 產生你的程式碼片段

作者: sky810684 (sky172839465)   2019-06-07 09:33:53
各位 端午節快樂!
趁著放假寫了篇有趣的心得,最近用 JS 刷 LeetCode ,同時想加上測試與筆記,
可是要一個個手動加上去很麻煩啊!所以這篇文章就誕生了!
Medium:https://medium.com/yusong-blog/9a74ca06a7d5
事情是這樣子的
最近試著用 JavaScript 寫 LeetCode ,每解開一個問題預計會產出
題目的解答、解答的測試案例、解答的筆記並且將這些檔案的連結寫入專案的描述裡,
一共 1 個資料夾加上 5 個檔案,如連結所示:
https://yusong.page.link/leetcode-in-js-structure
1. src/easy/0001-two-sum/index.js 題目的解答
2. src/easy/0001-two-sum/README.md 解答的筆記
3. src/easy/index.js 給測試案例使用的解答共同的出口
4. __tests__/easy/0001-two-sum.test.js 解答的測試案例,確保解答符合需求
5. README.md 專案的描述,當有新解答時描述最底下的表格應跟著新增一筆
連結上是每次要開始新的一題需要先準備好的檔案內容,真的非常枯燥又繁瑣,
有時候還會漏了某個檔案,尤其是加入新的專案描述…
這時候就會像面對考試時會突然覺得桌面的髒亂到不馬上整理不行,
我也突然產生了一股不想辦法解決這些重複性高的工作不行的使命感…
教練我只想寫 Code
在想要怎麼達成這個使命時,想到 Angular CLI 協助開發的體驗挺好的!
只要在指令列輸入 ng g c new-cmp 就會幫你把新的檔案建立好,
並且連 import module 等等的語法都寫好了!
稍微看一下 Angular CLI 的程式碼後發現,其實是透過 NodeJS 產生檔案,
再來只需要像印出九九乘法表把內容組一組輸出成檔案就好了!
透過 JavaScript 產生程式碼片段
只要知道底下 2 件事即可產生任何客製化的程式碼片段:
1. 要在瀏覽器外執行 JavaScript 可以透過 node index.js 在 NodeJS 上執行
2. 使用 NodeJS 的 File System API 產生檔案
首先試著產生一個 hello world 的文字檔
https://yusong.page.link/generate-hello-world-in-js
再來把前面提過九九乘法表在 markdown 上實作一次吧!
markdown 的表格欄位如果變多了寫起來很容易少寫或多寫,
所以能透過程式自動產生是最理想的
https://yusong.page.link/generate-nine-nine-table-in-js
最後加入一些套件,玩點有趣的花式操作 ,執行後詢問使用者問題並將
回覆結果做成 JavaScript Object 的格式寫入檔案 ans.js
1. npm init 初始化 package.json
2. npm i
作者: chuegou (chuegou)   2019-06-07 10:07:00
作者: sky810684 (sky172839465)   2019-06-07 10:33:00
沒有編輯好內文,被截掉了XD
作者: king22649   2019-06-07 10:58:00
vscode snippet?
作者: pig2014 (Rocking Man)   2019-06-07 13:22:00
題目也沒多複雜,要刷不會用cpp嗎
作者: CaptainH (Cannon)   2019-06-07 14:15:00
js社群的水準真是從來不讓人失望
作者: loadingN (sarsaparilla)   2019-06-07 15:16:00
看到別人用ptt發medium 我就pass了
作者: jack42107 (小克)   2019-06-07 15:34:00
感謝分享 願意分享就是推
作者: iven00000000 (Iven CJ7)   2019-06-07 17:17:00
可能是面試需求吧,我面試寫python自然就用python練
作者: lightyen (lightyen)   2019-06-07 18:16:00
snippet +1
作者: sky810684 (sky172839465)   2019-06-07 21:07:00
vscode 的 snippet 是針對目前的檔案所以不太夠用,需求中同時有好幾個檔案需要新的程式碼片段或是更新甚至移除,這樣還是需要一個個手動操作
作者: xxxorc   2019-06-07 22:37:00
若要推廣的建議話要包成 command line binary 吧然後推到 npm 上, 這樣就很好安裝不懂這跟 js 社群有什麼關係, 樓主是應該把內文直接貼上來分享就給推 不然這個版也沒什麼有趣的東西
作者: sky810684 (sky172839465)   2019-06-07 23:37:00
感謝提醒,沒有注意到貼連結要附上內文,這個心得只是希望不知道能這樣用 NodeJS 的人可以多一些選擇,然後自己寫自己客製化的程式碼片段,所以沒必要放到 npm 上面 XD
作者: mepowerlmay (用心,找對人)   2019-06-08 01:42:00
產生器不是比較好?
作者: WashFreeID (免洗)   2019-06-08 12:02:00
覺得直接用vscode的leetcode套件會方便很多

Links booklink

Contact Us: admin [ a t ] ucptt.com