Skip to main content

ปัญหาของการ Compile

หลังจากเราเรียนรู้ compile executable file จาก go build ไปแล้ว คราวนี้เรามาพูดถึงปัญหาของการ Compile ไฟล์กันก่อนที่เราจะ move on ไปยัง part ของการ deployment กันเพื่อให้เข้าใจอะไรมากขึ้นดีกว่า


ปัญหาอยู่มันที่ประโยคง่าย ๆ ประโยคนี้แหละครับ

การ Compile executable file = การ Compile project ให้กลายเป็น binary executable สำหรับคอมพิวเตอร์

ปัญหาคือระบบ ปฏิบัติการ หรือแม้แต่ CPU แต่ละตัวมีวิธีมอง และประมวลผลที่แตกต่างกันออกไป ทำให้ไฟล์ที่ work กับเรา อาจจะไม่ work สำหรับคนอื่น.... เศร้าเนอะ


ถ้าจะให้ยกตัวอย่างให้เห็นภาพมากขึ้นผมอยากจะให้มองเห็นเวลาเราจะติดตั้งโปรแกรม ใด ๆ พอเรากด download เท่านั้นแหละ.... ตู้ม!!

image.png

จะเห็นได้ว่ามีตัว download ออกมาให้เห็นมากมาย เราที่เป็น user ต้องเลือก download ให้ถูกตัว ไม่งั้นก็จะไม่สามารถติดตั้งโปรแกรมนั้น ๆ ได้

จากที่เราเห็นในตัวติดตั้งจะมีให้เราเลือกตั้งแต่ OS ( Windows, Linux, IOS, Android ) ไปจนถึง Instruction set ( x86, ARM )


ความสับสนนี้ก็เกิดขึ้นแบบเดียวกันใน project ของเราครับ เพราะเมื่อเรา build ตัว project ของเรา ไฟล์ที่คำสั่ง go build จะเอามาให้เราจึงเป็นไฟล์จะสามารถ run ได้ กับ OS และ Instruction set ของเราเท่านั้น แต่ถ้าเราจะ deploy API ของเราขึ้นไปยัง server เราก็จะต้องนำ executable ตัวน้อย ๆ ของเราไป run บน server ของเราด้วย ซึ่ง OS และ Instruction set ของ server ก็คงแตกต่างจากของเครื่องคอมพิวเตอร์ของเราอย่างแน่นอน

งั้นทำไงดีล่ะเราถึงจะสามารถ run ไฟล์ executable ของเราบน server ได้ ??


ขอแนะนำทุกคนให้รู้จัก Docker !!

Frame 1.png