struct Archive

Go :: เครื่องมือช่วยจัดเรียง field ใน Struct

Field ต่าง ๆ ใน Struct ของภาษา Go นั้นมักจะมีปัญหาเรื่องของลำดับ ซึ่งมีผลต่อการใช้งาน memoryซึ่งเคยเขียนอธิบายไว้ที่ blog เรื่องการจัดเรียง property ใน Struct เพื่อลดจำนวน memory ที่ใช้งานแต่ก็เป็นเรื่องที่ไม่สะดวกเท่าไรต่อการพัฒนาที่จะต้องมาจัดการอะไรแบบนี้ดังนั้นมาดูกันว่า มีเครื่องมืออะไรช่วยเหลือบ้าง

Read More…

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

วันนี้น้องในทีมมาถามเรื่อง  การใช้งาน memory ของ struct ในภาษา Go ซึ่งมีเรื่องของ Alignment และ Padding ที่อาจจะดูงง ๆ เลยลองไปเปิดเอกสารของภาษา 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…