Programming Archive

กำหนดลำดับการ start ของ service ใน Docker compose ให้ถูกต้อง

ปัญหาหนึ่งที่ได้มักเจอเมื่อใช้งาน Docker compose คือ ลำดับการ start ของ service ต่าง ๆ นั่นเอง แน่นอนว่าใน docker compose ก็จะมี depends_on ให้ใช้งาน แต่ปัญหาก็ยังมีอยู่คือ Service ต่าง ๆ ก็ start ตามลำดับ แต่ว่ามีบาง service ที่ start แล้วแต่ยังไม่พร้อมใช้งาน ซึ่งอาจจะทำให้เกิดปัญหากับ service อื่น ๆ ที่ต้องใช้งานตอน start เช่นกัน

Read More…

มาดูข้อมูลว่า ทำไมภาษา Python ที่ได้รับความนิยมสูง

ข้อมูลจาก web จัดอันดับความนิยมของภาษาโปรแกรม Tiobe Index ขึ้นมาอยู่อันดับสองที่สำคัญความนิดยมพุ่งมาสุด PyPL อยู่อันดับ 1 Redmonk อยู่ในอันดับที่ 3 โดยที่แต่ละที่เขานำข้อมูลมากจากTiobe Index นำข้อมูลจากการค้นหา search engine ต่าง ๆ และ Wikipedia PyPL นำข้อมูลมาจากการค้นหาใน google Redmonk นำข้อมูลมาจาก code ใน GitHub และการพูดคุยใน StackOverflow

Read More…

สร้าง RESTFul API ด้วยภาษา Elixir

ช่วงวันหยุดว่าง ๆ ลองเขียนภาษาใหม่ ๆ ดูหน่อย พอดีไปเจอตัวอย่าง code ภาษา Elixir แล้วชอบ เลยต้องลองคิดว่าน่าจะลองหาอะไรทำดูหน่อย ตั้งโจทย์ว่า จะลองทำ RESTFul API แบบง่าย ๆ ทำการส่งผลกลับมาในรูปแบบของ JSON จึงทำการบันทึกผลการลองครั้งนี้ไว้ดังนี้

Read More…

[Golang] การจัดเรียง property ใน Struct เพื่อลดจำนวน memory ที่ใช้งาน

วันนี้น้องในทีมมาถามเรื่อง  การใช้งาน memory ของ struct ในภาษา Go ซึ่งมีเรื่องของ Alignment และ Padding ที่อาจจะดูงง ๆ เลยลองไปเปิดเอกสารของภาษา Go ดูกันหน่อย ได้ความว่า

Read More…

ลองใช้งาน Test Plan สำหรับ XCTest ใน XCode 11.0 beta

จากงาน WWDC19 มี session เรื่อง Testing in XCodeมี feature ใหม่ที่น่าสนใจคือ Test Plan  ซึ่งทำการ extend มาจาก XCTest นั่นเอง มีเป้าหมายเพื่อ การจัดการและควบคุมการทดสอบให้สะดวกยิ่งขึ้น มาลองใช้งานกันดู

Read More…

มาลองลดขนาด Docker Image ของ Java ด้วย GraalVM กัน

หลังจากที่ติดตั้ง GraalVM ไปแล้ว คิดไม่ออกว่าจะเอาไปทำอะไรบ้าง !! ลองนั่งอ่านไปเรื่อย ๆ ก็พบว่ามี GraalVM Native Image ให้ มี command ชื่อว่า Native Image Generator ให้ใช้ ทำการ compile มายัง native binary ให้เลย นั่นหมายความว่า ถ้าเป็นพวกภาษา Java, Kotlin และ Scala ก็ไม่จำเป็นต้องมี JVM นะสิ

Read More…

สวัสดี GraalVM จาก Oracle

GraalVM นั้นเป็นงานวิจัยจาก Oracle Lab และถูกใช้งานบน production ของ Twitter GraalVM นั้นมีเป้าหมายเพื่อให้เราสามารถ share runtime ให้กับภาษาต่าง ๆ แน่นอนว่า ไม่ใช่เพียงแค่ JVM เท่านั้นที่สามารถ run พวก Java, Kotlin, Scala, Groovy ได้ แต่ยังสนับสนุนภาษาอื่น ๆ เช่น JavaScript, Ruby, Python และ R นี่มัน Polyglot ชัด ๆ โดยที่ performance ของการทำงานยังคงสูงอยู่ มาลองใช้งานกันดู

Read More…

[Part 3] ว่าด้วยเรื่องของรูปแบบความสัมพันธ์ระหว่าง Boundary context ใน DDD

ในระบบงานหนึ่ง ๆ นั้นมักจะซับซ้อนเสมอ มี context หรือส่วนการทำงานจำนวนมาก ดังนั้นจำเป็นต้องแยกและกำหนดกรอบทำงานที่ชัดเจนให้แต่ละ context หรือเรียกว่า Boundary context แต่ปัญหาที่เกิดตามมาก็คือ แต่ละ Boundary context จะต้องติดต่อสื่อสาร หรือต้องทำการแลกเปลี่ยนข้อมูลกัน หรือเรียกว่าความสัมพันธ์ระหว่าง Boundary context กันอย่างไร

Read More…

ลองเขียน Unit test ในภาษา Lua

ลองนั่งเขียน Unit test สำหรับภาษา Lua นิดหน่อย ซึ่งพบว่าตัวภาษา Lua มีสรุป library ต่าง ๆ ไว้ที่ Lua Unit Testing  ที่สำคัญตัวภาษาเองตังแต่ version 5.0 ขึ้นมา มีชุดการทดสอบของภาษาให้ดูด้วย มันดีมาก แล้วทำไมนักพัฒนาจะไม่เขียนละ !!ดังนั้นมาลอง สวัสดีกันหน่อย

Read More…

[VDO] Java ยังคงฟรีอยู่ใช่ไหม ?

จากงาน QCon London 2019 นั้นมี session น่าสนใจเพียบเลยหนึ่งในนั้นคือ panel discussion เรื่อง Java is Still Free ?ผู้ตอบคำถามต่าง ๆ จากคนดูแล OpenJDK, Oracle และ IBMมาดูว่าเป็นอย่างไร

Read More…