※ 引述《paranoia5201 (社會黑暗、行路難)》之銘言:
: 自學程式語言一些時間,許多網友都說要趕快做個小專案展現基本能力,有利於求職。
: 「不知道怎麼做?就模仿別人的作品啊!」對於一個新手而言,該如何模仿?
: 例如我看到一個很酷的網站或app,想要仿造,沒有它的原始碼,是要怎麼模仿?
模仿的意思其實就是你看到什麼網頁覺得不錯就想自己做一個對自己有用的來
第一步
我去日本玩,覺得查火車捷運轉乘時間用這類網站很好用
https://www.jorudan.co.jp/
所以回來台灣,就做個在台北用的小專案
http://melixyen.github.io/railtime/
不是把整個網站都複製出來,挑你覺得實用的部分改造成你自己需要的就好了
網站好複製是因為再怎麼隱藏前端的原始碼你還是能看的到,CSS 也能理解
然後背後跟 Server API 溝通的情況也逃不過你的觀察
======
第二步
在開發過程中你可能會遇到一些共同需求,你可以找套件(買輪子)或自己寫(造輪子)
雖然大部分人喜歡買輪子,不過我也會依需求自己造符合自己手感的輪子
舉例來說,一般 Vue.js 多國語系主流可能是用 Vuex-i18n 這個套件
不過我的專案沒有用 Vuex 而且是用舊的 ES5 時代語法寫的,也沒有要搞什麼模組化
就是把字串變數丟在 Global 然後可以自動載入與重新 render 各種語言到畫面上就好
所以就依照需求用自己的方法去重現某些套件的功能,也是一種模仿的概念
模仿了相似的功能,但是後面用的技術方法可能完全不一樣
這時候你不需要去看別人的程式碼,而是自己思考可以用什麼辦法做到相同的事
https://github.com/melixyen/vue-duoguo
然後我就弄了個 Vue.js 的套件,趁這種機會也可以順便稍微研究一下 Vue
再很假掰的寫個 Markdown 文件,人要衣裝嘛,就算你的套件 code 寫的再爛
如果有個看起來格式完整的 Markdown 文件至少把專案作品丟出去時第一印象比較好
======
建議
所謂模仿其實是要你思考做法,你不可能看穿別人寫 code 時的想法,看 code 沒意義
但你可以先想一下這樣的功能或頁面設計如果是你要怎麼做
把功能拆開來,設定學習階段,一步一步組合起來
像我也不會看日本那堆鐵路網站背後的程式碼
我是按照自己的想法去規劃
1.建立路線資料
2.建立轉乘站資料
3.寫演算法去判斷 A 到 B 可以在哪幾站轉、要轉幾趟
4.寫程式去抓各車站或各路線的時刻表
5.寫程式去找從甲站到乙站可以搭的車以及它的時間
6.把 3 的路線每一段都拆出來,用 5 的 function 去撈,組合成乘車順序跟時刻表
7.把資料 print 到畫面上
不需要一開始就想把整個網站做出來,分成七個步驟去做,自己訂進度
以上給你參考