Programming Archive

พื้นฐานเกี่ยวกับ Code Coverage

มีโอกาสได้อธิบายเรื่องเกี่ยวกับ Code coverage จึงนำมาเขียนสรุปไว้นิดหน่อยว่า คืออะไร ? มีประโยชน์อะไร ? แต่ละภาษามีเครื่องมืออะไรบ้าง ? พร้อมตัวอย่าง code นิดหน่อย

Read More…

ว่าด้วยเรื่องการใช้งาน Context package ของภาษา Go

จากงาน GopherCon Singapore 2017 มี session อธิบายเกี่ยวกับการใช้งาน Context package โดยที่ context นั้นสามารถส่งค่าต่าง ๆ ระหว่าง process ใน request scope ซึ่งสามารถกำหนดค่าต่าง ๆ ใน context ได้ดังนี้ เช่น withCancel() withDeadline() withTimeout() withValue() โดยตัวอย่างที่ใช้ context บ่อย ๆ คือการสื่อสารระหว่าง client-server ตัวที่ชัดที่สุดคือ การใช้งาน context ร่วมกับ net/http package ถ้าฝั่ง server ทำงานช้าเกินเวลาที่กำหนด จะส่งสัญญาณยกเลิกการทำงานกลับมา แต่มาเริ่มด้วย code ง่าย ๆ กันดีกว่า

Read More…

สรุปเรื่อง Interface และ Composition design จาก Ultimate Go Workshop

มีโอกาสมาเรียน course Ultimate Go Workshop จากงาน GopherCon Singapore โดยมีหัวข้อต่าง ๆ ดังนี้ Ultimate Go Language mechanic Software design Concurrency Profiling ซึ่งเป็นเรื่องพื้นฐานแบบลึกมาก ๆ เนื่องจากลงไปถึง philosophy ของตัวภาษา Go ว่าเป็นอย่างไร ? ตั้งแต่เรื่อง integrity, readability, simplicity ไปจนถึง Productivity vs Performance Correctness s Performance

Read More…

นั่งแกะ code จาก vdo เรื่อง Introduction to Kotlin จากงาน Google I/O 2017

จาก VDO เรื่อง Introduction to Kotlin ของงาน Google I/O 2017 เป็น session ที่แนะนำให้รู้จักภาษา Kotlin เป็น session ที่เขียน code กันสด ๆ ให้ดูกัน ว่าภาษา Kotlin มีความสามารถอะไรบ้าง ว่าภาษา Kotlin ช่วยลดจำนวน code ที่ต้องเขียนลงเยอะไหม ปิดท้ายด้วย Coroutine นิดหน่อย ดังนั้นจึงทำการนั่งแกะ code ใน VDO ออกมาหน่อย เพื่อศึกษาและดูว่ามีการแนะนำความสามารถอะไรของภาษา Kotlin บ้าง มาเริ่มกันเลย

Read More…

สรุป Tips 10 ข้อจาก VDO เรื่อง Speeding Up Your Android Gradle Builds

ในงาน Google I/O 2017 นั้นมี session เรื่อง Speeding Up Your Android Gradle Builds โดยแนะนำเทคนิคต่าง ๆ ในการปรับแต่งการทำงานของ Gradle เพื่อเพิ่มความเร็วในการ build สำหรับ Android app เป้าหมายเพื่อเพิ่ม productivity ของนักพัฒนา app นั่นเอง มาดูกันเลย Slow builds are not normal !! ปล. การวัดประสิทธิภาพจะใช้ 3 ค่า คือ Full build Incremental build เมื่อ code java เปลี่ยนแปลง Incremental build เมื่อ resource เปลี่ยนแปลง

Read More…

ว่าด้วยเรื่อง Android App Architecture จาก Google

จากงาน Google I/O 2017 นั้นมีของใหม่ ๆ ออกมาเยอะมาก ไม่รู้จะเยอะไปไหน !! มีหลายสิ่งอย่างน่าสนใจ ยกตัวอย่างเช่น Guide to App Architecture หรือโครงสร้างต่าง ๆ สำหรับการพัฒนา Android app ซึ่งทางทีมพัฒนาได้สรุปและเตรียม component ต่าง ๆ ไว้ให้อย่างครบครัน โดยแยกส่วนการทำงานต่าง ๆ ออกเป็น component อย่างชัดเจน

Read More…

เมื่อภาษา Kotlin เข้ามาเป็นอีกหนึ่งภาษาหลักในการพัฒนา Android app

ก่อนหน้านี้สำหรับ Android developer หรือ JVM developer น่าจะคุ้นเคยกับภาษา Kotlin กันมาพอสมควร ทั้งใช้งานบน production แล้ว ทั้งลองใช้งานเล่น ๆ นักพัฒนา Android app น่าจะสนุกและมีทางเลือกมากขึ้น เมื่อทีมพัฒนา Android ของ Google นั้น สนับสนุนภาษา Kotlin อย่างเป็นทางการแล้ว ซึ่งประกาศในงาน Google I/O

Read More…

ทำไมถึงใช้ภาษา Go ?

จาก post นี้ใน facebook เรื่องเกี่ยวกับการนำภาษา Go มาใช้ในการพัฒนาระบบงาน สิ่งที่สำคัญคือ มีเหตุผลอะไรที่ถึงนำภาษา Go มาใช้งาน ในส่วนของ API service และ Backend ดังนั้นมาสรุปเหตุผลไว้นิดหน่อย จากมุมมองที่ใช้มาบ้างเล็กน้อย อาจจะไม่ถูกแต่คิดว่า มันดีกว่าเดิมอย่างแน่นอน มาเริ่มกันเลย

Read More…

[iOS] เราจะทำการจำลอง API server สำหรับ UI testing อย่างไร

คำถามที่น่าสนใจจากทีมเกี่ยวกับจำลอง API server เพื่อทดสอบ UI test สำหรับ iOS app จะทำอย่างไรดี ? คำตอบง่าย ๆ คือ ง่าย ๆ ให้ทำการส่ง url ของ API server ผ่าน environment variable สิเออ !!! พูดแบบนี้อาจจะไม่เห็นภาพ ดังนั้นมาดู code กันหน่อย

Read More…

ว่าด้วยเรื่อง JavaScript Testing มันมีอะไรบ้างนะ ?

การพัฒนาระบบงานด้วยภาษา JavaScript นั้น มีทางเลือกมากมาย ซึ่งยากต่อผู็เริ่มต้นมาก การทดสอบก็เช่นกัน มีมากมายสุด ๆ แต่ถ้ามองในมุมกลับกัน แสดงว่า มีความพยายามในการทดสอบระบบที่พัฒนาด้วยภาษา JavaScript ทั้ง Unit testing, Integration testing และ Functional testing ดังนั้นเรามาดูกันหน่อยว่ามีอะไรกันบ้าง มี library จำนวนมากเพียงใด มาเริ่มกันเลย

Read More…