-
Notifications
You must be signed in to change notification settings - Fork 18
Learning from the project
- Unit testing
- Code Contract
- NuGet
- GitHub
- AppVeyor
- ...
- ให้แน่ใจว่า Dll ที่ build เป็นตัวเดียวกันกับที่ได้ทำ Unit Testing
- ให้แน่ใจว่า Dll ที่ build และรัน unit test แล้ว เป็น Dll ตัวเดียวกันกับที่ publish ขึ้น NuGet
- ชื่อ GitHub Repository: ควรเป็นชื่อเดียวกับ NuGet Package Id และควรสั้นๆ ไม่ต้องมีชื่อบริษัท ชื่อผู้ทำ อะไร เรียบง่ายดีกว่า เช่น ชื่อ ThaiBahtText ดีกว่า GreatFriends.ThaiBahtText คนจำง่ายกว่า และพิมพ์สั้นกว่า
- ชื่อ namespace: เอาชื่อบริษัท หรือแบรนด์ที่ต้องการมาใส่ที่นี่ดีกว่า เช่น namespace GreatFriends.ThaiBahtText
ใช้ xUnit test runner แบบ console เร็วและเสถียรกว่าการใช้ Visual Studio runner ผมสร้าง batch file test.bat
เพื่อเรียกผ่าน command prompt และดูรายละเอียดจากไฟล์ผลลัพธ์ในรูปแบบ html โดยสร้างไฟล์ชื่อ Result.html
ที่โฟลเดอร์ของ solution
สามารถใส่ข้อความเพิ่มเข้าไปใน test result การใช้ Console.WriteLine
ถือเป็นวิธีการที่ไม่แนะนำ (เพราะจะดูผ่าน Visual Studio ไม่ได้) วิธีการใช้ มีโค้ดดังนี้
public class SomeFacts {
private readonly ITestOutputHelper output;
public SomeFacts(ITestOutputHelper output) {
this.output = output;
}
// uses 'output' just like Console.WriteLine method
}
ใช้เขียนโค้ดยังไม่สะดวกเท่าไหร่ แต่ที่ดีเลิศคือใช้เป็น git client สามารถย้ายไฟล์เข้าออกจาก stage และทำการ commit ดู diff ได้อย่างดีมากๆ เมื่อ commit เสร็จแล้ว ใช้ Git Bash เพื่อทำการ push ขึ้น GitHub ต่อไป
ในระหว่างพยายามทำให้ Visual Studio Code สามารถ push/pull ได้ แต่ไม่สำเร็จ ก็พบว่าใช้ git bash แทน command prompt เพื่อทำการ git push / git pull โดยไม่ต้องพิมพ์รหัสผ่านทุกๆ ครั้งได้สำเร็จ
เมื่อเปิด Git Bash ขึ้นมาทุกครั้ง ให้พิมพ์คำสั่งต่อไปนี้ โดยตรงกรอกรหัสผ่านหนึ่งครั้ง
$ eval "$(ssh-agent)"
$ ssh-add
หลังจากนั้นการใช้คำสั่ง git push
และ git pull
จะไม่ต้องพิมพ์รหัสอีกเลย
ควรใส่ code contracts ด้วย ทำอย่างน้อยให้เป็น static checking และตรวจสอบผลลัพธ์จาก Output window
- Issues และ Milestone เป็นประโยชน์กับการทำงานมาก
- ดู diff เปรียบเทียบ tag ล่าสุด กับ master เพื่อรวบรวมสิ่งที่เปลี่ยนแปลงเพิ่มเติมจากรีลิสก่อนได้อย่างสะดวก