Q1: 請問老師 如果 final project 想使用像是 Ant Design 或是 tailwind 這種 UI library會不好嗎? 還是建議自己切版呢?
A1: tailwind 不是 UI library 喔,它是一個 CSS framework。使用 UI library or 自己切版,老師推薦自己切版,要展現自己能力的話,建議自己寫比較好。面試也有比較多的東西可以被問。也可以自己做一個簡單的 UI Library。
複雜的功能,有一些是不用自己刻的,例如選日期的那種,可以用 native or airbnb 開源的套件,但是簡單的按鈕,可以自己刻蠻快的。
Q2: 請問老師做 final project 如果遇到規劃或製作上的問題不知道老師和助教會怎麼協助我們,或是我們該多久和老師助教更新一次狀況?
A2: 有問題想問可以問喔,老師會給建議,例如功能的必要性等等。
Q3: 想請問老師關於 w19 的作業,會建議等找到組員然後一起討論過後,再將想法寫成作業呢?還是先寫自己的想法,等之後分組再做修正 (想填 w20 的表單)
A3: 有自己的想法,再去做主題會比較好。先寫自己的想法,等之後分組再做修正。
Q4: 可以請老師舉一些例子,php 的 static 甚麼時候會需要用到它呢? 除了語意上已較好之外,還有什麼用 static 會比較好呢? 謝謝
5'48"
A4: 「php 的 static 甚麼時候會需要用到它呢?」這句話問法有點小奇怪,這種感覺像是問「JS 的 class 什麼時候會用到它」,其實應該要問的是「何時會需要用到物件導向的 static」,因為這個跟程式語言沒有關係,應該要整體上來看。
跟 class 有關,但跟單獨的 instance 無關,跟整體的 class 有關,就會放在 static,老師說工作場合基本上不太會用到。
// 常見範例
var model = new Model()
model.setTitle('')
model.setContent('')
model.setType('success')
model.show()
Model.showSuccessModel('title', 'content')
class Model {
static showSuccessModel() {
...
}
}
Q5: 想請問老師,做完 week17 week18 之後發現路由越來越多條,也有很多需要 call 資料庫的點,這樣子每一個點都要錯誤處理的話,有沒有什麼比較有效率的方式呢
A5: 可以用 middleware 來解決,也可以搜尋「express real world example」裡面有些東西可以參考。
Q6: 請問老師 期中測驗寫不太出來的程度,這樣的我還建議參加 final project 嗎?是否把課程搞定為優先?
A6: 參加 final project 先決條件是,有把課程上到 W20,也有蠻多同學測驗寫不出來,基本上 final project 跟期中測驗沒有什麼關係啦。
Q7: 為什麼 session secret 需要用環境變數去存(在開發測試上不會很麻煩嗎),又如何去存?
A7: 因為這是一些比較私密的資料;在開發測試上不會很麻煩嗎 -> 可以設定預設值。
Heroku 後台可以設定環境變數,或者比較多人用的 .env 的套件,安裝 require('dotenv').config()
,就可以讀到環境變數。
挑戰:session secret 是做什麼的?如果洩露了會怎麼樣?
[BE201] Express session secrect 用途
Q8: 感覺最後兩週不太可能做完 final project 老師覺得21-24週大概跟到怎樣要開始切時間做project 目前在作品跟進度上不太知道怎麼拿捏
A8: 兩週是因為課程要抓六個月,所以差不多兩週做專案,其實也可以花四週做專案,不過就吃到求職的時間。
不過專案可以在 W19、W20 提早開始,W22 上完以後,再動工有前端的專案會比較好,或者是在寫作業時,可以沿用部分經驗在專案上。
Q9: 怎麼知道自己規劃的final project 規模(功能)是否合理,製作的時候大概多久需要和老師討論一次 謝謝老師!
A9: 應該很難知道,基本上有初步想法,就可以跟老師討論一下,user story & wireframe 做完可以再次討論一下。
Q10: adobe XD 現在免費的,功能也不是閹割版的,老師你會推薦嗎
A10: 窩不知道~
Q11: 老師可以說一下 react 哪些檔案 import 時要加 {} ,哪些不用嗎?目前只知道好像跟有沒有包成模塊(組)有關,可以再詳細說一下嗎
A11: 主要看檔案輸出什麼,export default 就不用大括號,export const a 就用大括號
React 不需要被 import 了,版本是 17 之後不用了,因為有用到一個 jsx 的改動,後來把這個行為在底層用 babel 搞定了。
Q12: 老師 請問進度落後還在卡12週左右的狀況是先著手在追進度就可以了嗎?順帶想問前幾期有進度落後最後單人做 final project 成功達標的神人嗎?
A12: 追進度就可以了,好像沒有印象。
Q13: 老師 ES6 的解構語法可以再快速說一次嗎
A13: 27'06"
Q14: 平常會關心世界時事嗎?會的話都看什麼,最近關注的世界新聞有什麼
A14: popcat 阿,點貓那個,不過感覺像是時代的眼淚。
Q15: 老師,網頁背景圖片載入速度太慢,有什麼方法可以加速呢?
A15: 可以參考 W20 裡面有講到答案,或者是參考這個資源 快速加载
Q16: 老師面試時如果提到程式導師實驗計畫,該說是一門線上課程,還是有什麼更好的說法
A16: 「這是一個為期六個月,每週都要付出 40 小時以上的計畫,或者用 bootcamp 這個字」,著重在這個課程在做什麼,而不是用一句話概括它。
Q17: 老師請問 lighthouse 是什麼? 目前 SEO 在網站開發過程中占的重要性大嗎?
A17: lighthouse 是 google 提供評斷你網頁分數的工具,基本的東西有做好,看做的東西,如果是官網,SEO 就蠻重要的。
Q18: 像17週 config 檔案要 .gitignore 但上傳 heroku 裡面又有檔案要用到的資訊不能ignore,這樣怎麼辦?還是heroku 就沒關係
A18: 開一個新的分支,把 gitignore 改掉,上傳上去。或者裡面就用成環境變數,那直接放上去有沒關係。
老師查了關鍵字:config.json sequelize heroku ignore
結論是:不管 development or production 全部都使用環境變數,就可以放上去 Heroku 沒關係。
Q19: 老師第十七週的作業二設定機率的部分,能請您再講解一下嗎? 謝謝
41'29"
A19: 看想要怎麼設定,例如說可以:
a. 全部加起來機率變 100
b. 全部加起來,用權重的方式
Q20: 老師會教爬蟲嗎,常常聽到卻不知道怎麼做或要不要做,可以講一下嗎
43'05"
A20: 不會喔,爬蟲比想像中簡單一百倍,基本上會在後端爬。
來源有幾種:
a. api => call api,這是最好的,就不用爬任何資料
b. 爬網頁內容:在後端用一個 request 把網頁內容拿回來;爬完以後解析,可以用 cheerio 這個 套件
Q21: 想請問老師身邊有沒有當前後端工程師之後出國唸研究所進修的人呢?再進修對於職涯的幫助大不大,想了解前輩們的心路歷程 >///<
A21: 可能有,但我忘記了,比較多的是去美國,之後留在美國工作,軟體業比較強盛。看你想要怎麼走~
Q22: W17 的環境應該要裝在有用 git 追蹤的那個mtr05的資料嗎 還說單獨裝在本地資料夾之後再把做好的檔案push
A22: 比較難部署的話,可以分開喔,交作業用 MTR05 交作業,部署另外開資料夾沒關係。
Q23: 老師~~常常聽到說當軟體工程師最重要的能力是google問問題找答案 但有看到有些人在嘴說一些新的工程師只會上stackoverflow複製貼上寫出一堆爛扣 想問老師認為這兩者的差異
A23: 差異在於有沒有思考,而且有些問題是找不到的,有很多可能,例如比較基本的問題、比較冷門等等。
Q24: 老師那為什麼 import styled from "styled-components"; 不用加大括號;import { ThemeProvider } from "styled-components"; 但是 ThemeProvider 就有加大括號
A24: 主要的功能會用 default,其他次要的功能就用大括號。
Q25: 應該沒有專門念前端工程的所嗎 他們念的會是什麼方向
A25: 沒有內,比較多的是 HCI 人機互動介面,比較偏 UX。
Q26: 老師的技術債都怎麼還?
A26: 在寫扣時,盡量不要欠下技術債,不過需要經驗啦。欠債當下立刻還完,注意重構。
Q27: 為了把 w17 作業上傳到 heroku,在 hw1和 hw2 又分別用了 git init 做版本控制。這樣 git 裡面再用 git 是可以的嗎?會有什麼問題嗎? (edited)
A27: 可以喔,不會有問題。有個專有名稱叫做 Git Submodule,感覺像是 git 底下有個 git,是比較進階的部分。
不過後來發現,這樣交作業好像有點尷尬,目前沒有想到更好的方法。
老師想到的方法就是我用的,先開一個資料夾,做完以後才複製檔案到 W17。
Q: 如果是工作的情況,應該會比較少出現先部署後再需要等待 merge 的情形(嗎)
A: 對喔,工作都是先 merge 完才部署,或者有些公司會有 PR preview,幫每一個 PR 都 build 一個環境出來。
結論:可以直接推,git 裡面的 git 如果有改動,外面的 git 也會偵測到。
Q28: 老師所以爬蟲在工作上是小事囉 以我們之後要工作的情況來說
01'06"05"
A28: 那種購物網站,比較不希望別人把他們的網站爬走,做一些分析,所以會有很多防爬蟲的東西。google 「防爬蟲 css」,會有很多超級有趣的東西。
例如用一個字體 font,最後對應到的是完全不一樣的東西。
Q29: 網頁用的爬蟲可能會另外用 python 寫嗎
A29: 用熟悉的東西寫就好了。
Q30: 所以 w17 作業推上完 heroku ,為了要再推上 github 交作業,需要再刪掉整個 master 嗎
A30: remote 可以有多個
例如下面兩個 remote 的 origin & github 就是不同地方:
git push origin main
git push github main
Q31: CI/CD 是需要前端負責的嗎 還是後端
A31: W19 沒有講到的話,後面也不會講了。
CI: Continuous Integration 持續整合
CD: Continuous Deployment 持續部署
在台灣公司大部分的解釋,就是把測試寫好,由自動化的腳本去跑測試,跑完以後合併,這樣叫做 CI
PR -> test -> merge -> Continuous Integration -> Continuous Deployment
講起來比較難講,可以去看一下文章。
Q32: 測試用的網站跟 正式發布的網站要有分別獨立的IP嗎?
A32: 會用兩種機器,所以會有兩個 IP。