เรียนรู้ภาษา Go สำหรับ NodeJS Developer

เห็นว่า NodeJS กำลังร้อนแรง เลยขอนำเสนอวิธีการเรียนรู้ภาษา Go สำหรับ NodeJS Developer กันหน่อย (เกี่ยวกันไหมนะ ?) ซึ่งเป็นการเรียนรู้ตามสิ่งที่ชาว NodeJS ต้องรู้และใช้งานเป็นปกติ แต่มาดูกันว่า ถ้าใช้ภาษา Go ต้องทำอย่างไรบ้าง น่าจะทำให้เรียนรู้ง่ายขึ้น

Read More…

ว่าด้วยเรื่องของ Law of Demeter

หลังจากทำการ review code ไปนิดหน่อย พบว่าได้เจอ code ที่น่าสนใจ เนื่องจากจะขัดกับ Law of Demeter พอควร ผลที่ตามมาคือ code ทำงานได้ แต่มีการเรียกต่อกันเป็นทอด ๆ ยาวมาก ๆ ยกตัวอย่างเช่น game.Board.Size.X และ g.Board.Slots[i][j].Number เป็นต้น แต่ตามจริงเราต้องการเพียงค่าสุดท้ายเท่านั้นเอง ทำไมเราต้องเขียน code ยาวขนาดนี้กันด้วย ? น่าคิดมาก ๆ หรือเราคิดว่า มันคือเรื่องปกติ เพราะว่า โครงสร้างของระบบเราเป็นแบบนี้ ? ดังนั้นมาปรับปรุง code ชุดนี้กันหน่อยดีไหม

Read More…

เครื่องมือสำหรับจัดรูปแบบ code และ naming convention ในภาษา Go

เรื่องของรูปแบบ code และ naming convention เป็นสิ่งที่สำคัญมาก ๆ โดยในภาษา Go นั้นไม่ได้มีกฏเรื่องนี้มากนัก แต่ก็ได้สร้างเครื่องมือมาตรฐานสำหรับการจัดการมาให้ นั่นก็คือ gofmt ซึ่งนักพัฒนาภาษา Go น่าจะใช้กันทุกคน ไม่ว่าจะพิมพ์เอง ไม่ว่าจะให้ทำงานแบบอัตโมัติ หรือ ทำงานผ่าน Editor/IDE ต่าง ๆ เช่นทำการจัดรูปแบบ code ให้เมื่อทำการบันทึกเป็นต้น ผลที่ตามมาคือ รูปแบบของ code เหมือนกัน ไม่ต้องมาเถียงกัน และยังทำให้ code อ่านง่ายขึ้นอีกด้วย

Read More…

ระบบที่ดีควรมีสิ่งต่าง ๆ เหล่านี้บ้างนะ

ระหว่างรอรถกลับบ้าน ทำการสรุปสิ่งที่จำเป็นต่อการพัฒนาระบบงาน แต่ในปัจจุบันเราพยายามแยกระบบงานใหญ่ออกเป็น service เล็ก ๆ หรือบางคนอาจจะเรียกว่า Microservices สิ่งที่น่าสนใจคือ ในการพัฒนาระบบงานนั้น เราต้องคำนึงถึงอะไรบ้าง

Read More…

สรุปเรื่องของการพัฒนา Testable application ด้วยภาษา Go

มีโอกาสมาแบ่งปันความรู้เรื่อง การพัฒนาระบบด้วยภาษา Go ให้พัฒนาได้ง่าย ให้ทดสอบได้ง่าย ให้ดูแลได้ง่ายขึ้น โดยสิ่งที่แบ่งปันประกอบไปด้วย เรื่องของโครงสร้างที่ต้องชัดเจน เรื่องของหน้าที่การทำงานของแต่ละส่วน เรื่องแนวคิดในการทดสอบ เพื่อเพิ่มความมั่นใจที่มีต่อระบบ เรื่องแนวทางการพัฒนาด้วยภาษา Go เรื่องของเครื่องมือและ library ต่าง ๆ ที่นำมาใช้งาน

Read More…

ว่าด้วยเรื่องของ Burnout Programmer

เพิ่งคุยเล่น ๆ กับกลุ่ม programmer นิดหน่อย ได้พูดคุยเรื่องของ Burnout Programmer ว่าเป็นอย่างไร ? เป็นเรื่องที่น่าสนใจมาก ๆ และมันอาจจะกลายเป็นปัญหาและวิกฤติได้เลย (หรือเป็นอยู่แล้ว) ประเด็นหลัก ๆ ที่คุยกันคือ ปัญหาของการ burnout มีอะไรบ้าง

Read More…

สรุปเนื้อหาในช่วงบ่ายของงาน React Bangkok 3.0.0

เนื่องจากเนื้อหาของงาน React Bangkok 3.0.0 นั้นเยอะและแน่นมาก จึงทำการแยกเนื้อหาในช่วงบ่ายออกมาเป็น blog ที่สอง ดูรายละเอียดของ session ช่วงเช้าได้ ซึ่งประกอบไปด้วยหัวข้อดังนี้ การจัดการ State ด้วย MobX Animating in React (ภาษาอังกฤษ) ว่าด้วยเรื่อง React Design Pattern ประสบการณ์ในการใช้งาน Expo และ GraphQL ประสบการณ์การพัฒนาระบบงานด้วย React ของ Telenor การ Tuning performance ของ React app การทดสอบสำหรับ React app ว่าด้วยเรื่องการจัดการ State ของ React app ประเด็นคือเลือกใช้แต่ละอย่างด้วยเหตุผลอะไร ทำการสรุปแบบสั้น ๆ ไว้นิดหน่อย มาดูกันเลย

Read More…

สรุปเนื้อหาในช่วงเช้าของงาน React Bangkok 3.0.0

มีโอกาสมาร่วมงาน React Bangkok 3.0.0 จัดโดยทีม ReactJS Developer Thailand จัดงานที่ตึก Energy Complex ชั้น 6 ซึ่งครั้งนี้จัดยิ่งใหญ่กว่าเดิมมาก เพื่อไม่ให้เสียเวลา มาสรุปเนื้อหาของงานในช่วงเช้ากันดีกว่า ส่วนบรรยากาศไว้ตามมาทีหลัง ในส่วนของเนื้อหาช่วงบ่ายอ่านได้ที่นี่

Read More…

เรานำแนวคิดของ Continuous Integration มาใช้หรือไม่ ?

วันนี้อ่านหนังสือเรื่อง Continuous Integration ไปเจอชุดคำถามที่น่าสนใจว่า เรากำลังนำแนวคิดและแนวปฏิบัติของ Continuous Integration มาใช้งาน หรือเราเพียงนำเครื่องมือที่เรียกว่า Continuous Integration Tool มาใช้เท่านั้น ดังนั้นลองมาตอบคำถามเหล่านี้กันหน่อย

Read More…

[JUnit 5] มาลองใช้งาน RepeatTest และ DynamicTest

ระหว่างรอรถก็นั่งอ่านเอกสารของ JUnit 5 มีความสามารถใหม่ ๆ เยอะเลย ที่สำคัญน่าจะได้เวลานำมาใช้อย่างจริงจังได้แล้ว จึงลองเล่นสัก 2 features ประกอบไปด้วย RepeatTest DynamicTest ให้ทำงานในรูปแบบ Parameterized มาเขียน code กันดีกว่า

Read More…