## 第一題 #### 學生小明:https://repl.it/@YunchenLi/TAassessmentguessnumberjs 評分:Try Harder ```markdown= 小明在Input上,有達到題目要求輸入在1-100數字之間, 但是沒有檢查到使用者輸入的型別喔! 在Output上,console輸出的結果都有達到題目的格式要求, 但是會發生使用者必非每次都可以得到猜數字的正確解答。 ``` 1. 在型別上的判斷js可以使用[typeof](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Operators/typeof)去處理型別輸入不如預期的問題 2. 在output回傳的結果不如預期的方面,可以多多試幾次不同Input結果,看看哪裡怪怪的。 你大概會在處理迴圈地方找到問題^^ 3. 在coding style方面有一點處理的不錯,就是在`early return`方面有注意到。 ```typescript= function earlyReturn(input1: number): boolean { if (input1 < 1) return false; return true; } 這樣的寫法好處除了可以讓程式碼更簡潔,使人易懂以外。 再遇到Exception時可以直接跳出Function,不用在處理剩餘的商業邏輯喔~ ``` 4. 在Coding style方面可能需要注意到空行讓其他人方便閱讀喔,如果想要知道更多的Code Style方面的話可以去參考[Eslint](https://eslint.org) ---- #### 學生小華:https://repl.it/@lighthouse/taassessmentguessnumberjs2 評分:Excellent ```markdown= 題目要求的規格都有達到喔,而且使用FP讓程式碼看起來簡潔明瞭很多 ,但有些小地方可以再更進一步喔。 ``` 1. 在Coding style方面可能需要注意到空行讓其他人方便閱讀喔,如果想要知道更多的Code Style方面的話可以去參考[Eslint](https://eslint.org) 2. 使用者在Input的時候,小華有去判斷使用者輸入的範圍。但是現在如果使用者故意提供malware input,讓輸入的值超過js可以判斷最大小數位數,有沒有方法可以處理呢? --- ## 第二題 #### 作業二 指定規格與提示 你的專案架構如下 ``` FizzBuzz |-- src | |-- fizzbuzz.js |-- tests | |-- fizzbuzz.spec.js package.json codecov.yml ``` ##### CodeCov.yml ```yaml= coverage: status: project: default: off adder: flags: adder subtractor: target: 80% flags: subtractor flags: adder: paths: - src/adder/ assume: true subtractor: paths: - src/subtractor/ assume: true tests: paths: - tests/ ``` ##### Test Script ```bash { "start:test": "cross-env NODE_ENV=test mocha test --exit --recursive --timeout 5000 && codecov" } ``` #### 評分標準 | 評分 | 批改指標 | 批改指引 | | -------- | -------- | -------- | | Try Harder | 程式無法正常運作 & 沒有達到題目規格要求 | | | Good | 確認程式是正確 & 完整涵蓋題目要求 | 程式可以正常運作 & 測試環境有完整 & 測試結果正確 & 有使用到斷言庫 | | Excellent | 額外考慮到Edge Case 或 明確的Commit內容 | 例如Input型別判斷與測試 & 完整Commit,例如TDD寫法先寫測試在寫功能 | | Column 1 | Column 2 | Column 3 | | -------- | -------- | -------- | | Text | Text | Text |
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up