Programming Archive

ขั้นตอนการเขียนโปรแกรมแบบขำ ๆ จาก Programming Geek

เช้านี้เปิดไปเจอรูปอธิบายเรื่องขั้นตอนการเขียนโปรแกรม (How to Program ?) จาก Programming Geek ซึ่งอธิบายไว้ว่าการเขียนโปรแกรมประกอบไปด้วย 4 ขั้นตอนคือ 1. Google the fucking problem 2. Open a StackOverflow link 3. Copy and paste the code 4. If did not work, go to step 2. If did work, go to step 1 ปิดท้ายด้วย FAQ ที่น่าสนใจ คำถาม :: What if there is no code ? [&hellip

Read More…

[แปล] ทำความเข้าใจเกี่ยวกับ TDD และ Unit test กันอีกสักหน่อย

เช้านี้นั่งอ่านบทความเก่า ๆ ที่เก็บเอาไว้คือ 5 Common Misconceptions About TDD & Unit Tests อธิบายเกี่ยวกับความเข้าใจผิดเกี่ยวกับ TDD และ Unit Test จึงทำการแปลและสรุปเนื้อหาบางส่วนไว้นิดหน่อย

Read More…

[Swift] มาทำการ refactor code พวก Singleton กันหน่อย

ใน code สำหรับ iOS ที่พัฒนาด้วยภาษา Swift นั้น พบว่ามีการเขียน code ในรูปแบบ Singleton เยอะมาก ๆ แน่นอนว่า วิธีการนี้มันมีทั้งข้อดีและข้อเสีย เช่น พัฒนาได้ง่าย ใช้งานง่าย ยากต่อการทดสอบ ยากต่อการ reuse state เปลี่ยนได้ตลอด ขอบเขตการทำงานเป็น global ไป ๆ มา ๆ ข้อเสียเยอะนะเนี่ย !! ดังนั้นจึงเป็นเหตุผลว่า ทำไมควร ลด ละ เลิก หรือถ้าต้องการใช้งานจริง ๆ ก็ควรระมัดระวังให้มากเข้าไว้ แต่ถ้าเป็น code ที่มีอยู่แล้วละ ? การจะทำการลบ code เหล่านี้ทิ้ง น่าจะเป็นงานช้างแน่ ๆ ดังนั้นเรามาหาวิธีการอยู่กับ Singleton กันเถอะ นั่นคือการ refactor code นั่นเอง [&hellip

Read More…

[Swift] ลดการเขียน code ซ้ำ ๆ ด้วย Sourcery กันหน่อย

ในการ coding นั้นเรื่องของ copy-and-paste รวมทั้ง code ที่ต้องเขียนซ้ำไปซ้ำมา บางครั้งเป็น code ที่ไม่ควรจะต้องมี แต่ด้วยโครงสร้างของภาษาก็จำเป็นต้องเขียน ทำให้เสียเวลาในการพัฒนาระบบไปอย่างมาก นั่นแสดงว่าเราได้ปฏิบัติตัวขัดแย้งกับ DRY principle อย่างมาก DRY ย่อมาจาก Don’t Repeat Yourself ดังนั้นเรามา ลด ละ เลิก กันบ้างแถอะ หนึ่งในนั้นคือ การ generate code จาก template ซึ่งในบทความนี้ขอแนะนำ Sourcery

Read More…

[Android] ถ้าอยากเขียน log แนะนำ Hugo นะ

ใน Android app ส่วนใหญ่พบว่านักพัฒนา (จริง ๆ ก็ทุกระบบนะ) จะเขียน code สำหรับจัดเก็บ log เต็มไปหมดเลย คำถามที่เด้งขึ้นมาทันทีเลยก็คือ ไม่เบื่อ code เหล่านี้กันบ้างหรือไง ? เขียนซ้ำไปซ้ำมาอยู่ได้ บ่อยครั้งพบว่า code สำหรับจัดเก็บ log การทำงาน มีมากกว่า code ทำงานจริง ๆ อีกนะ !! ดังนั้นสิ่งที่ควรต้องทำเลยก็คือ … ไม่สิ ? ดังนั้นสิ่งที่ต้องทำเลยก็คือ เลิกเขียน log ที่ไม่จำเป็นลงไปซะ !! ไม่ก็เขียน test มาทดสอบซะ !!

Read More…

สิ่งที่มาแทนที่ @RequestMapping ใน Spring framework 4.3.6 กัน

วันนี้เปิดดูเอกสารของ Spring framework 4.3.6 พบว่า มี feature ที่น่าสนใจคือ Annotation ใหม่ ๆ ซึ่งมาแทนที่ @RequestMapping ซึ่งใช้งานยากน่าดู ที่สำคัญสั้นกว่าเดิมมากมาย ดังนั้นจึงทำการสร้าง annotation ใหม่แยกตาม HTTP Method ดังนี้ @GetMapping @PostMapping @PutMapping @DeleteMapping @PatchMapping ซึ่งทำให้ใช้งานได้ง่ายขึ้นมาก แถมไม่สับสนอีกด้วย

Read More…

ว่าด้วยเรื่องของ source code

เรื่องที่ถกเถียงกันประจำสำหรับการเขียน code ประกอบไปด้วย Tab vs Space ใช้อะไรดี ? ใช้ 2 หรือ 4 space แทน Tab หรือไม่ ? เขียน {} หรือไม่ ? เขียน { ในบรรทัดไหน ? Naming convention เป็นอย่างไร  camel case หรือ snake case ? ตั้งชื่อต่าง ๆ เป็นอย่างไร ? ถ้าเขียน test จะตั้งชื่ออย่างไรดี

Read More…

สรุปจากบทความเรื่อง 14 must knows for an iOS developer

จากบทความเรื่อง 14 must knows for an iOS developer หรือ 14 เรื่องที่ iOS ควรจะต้องรู้และเข้าใจ คิดว่าน่าจะพอมีประโยชน์กับมือใหม่มาก ๆ หรือแม้กระทั่งมือเก๋า ซึ่งผมคิดว่าส่วนใหญ่มันคือเรื่องพื้นฐานเลยนะ แต่บางเรื่องก็ยากพอควร ดังนั้นจึงสรุปข้อที่เป็นพื้นฐานจริง ๆ  ไว้นิดหน่อย มาเริ่มกันเลย

Read More…

[Android] ขอรณรงค์ให้ใช้ Retrofit สำหรับจัดการ RESTful APIs เถอะครับ

คำถามสำหรับ Android Developer มีใครที่ยังจัดการ RESTful API เองบ้าง ? เช่น ยังเขียนการติดต่อไปยัง RESTful API ด้วย HTTPClient​ เอง? ยังต้องมาเขียน code จัดการ Request/Response กันเอง ? ยังเขียนการ mapping ไปมาระหว่าง JSON/XML กับ POJO class เอง ? ยังเขียน AsyncTask ใช้เอง

Read More…

XCode 8.2 สามารถบันทึกการทำงานบน Simulator เป็น Video ได้แล้วนะ

วันนี้ลองใช้งาน XCode 8.2 พบว่า Simulator มันเปลี่ยนไป นั่นก็คือ สามารถบันทึกการใช้งาน Simulator เป็น Video ได้แล้ว

Read More…