Application Developer Machine

From JOMYUT.NET

Jump to: navigation, search

การพัฒนาแอพลิเคชั่นบนคอมพิวเตอร์หนึ่งเครื่อง บางครั้งประสบกับปัญหาเมื่อลูกค้า 2 รายต้องการให้พัฒนาแอพลิเคชั่นบนรากฐานของระบบที่แตกต่างกัน เช่น แอพลิเคชั่นแรก ต้องการใช้ MySQL เวอร์ชั่น 3 ในขณะที่ แอพลิเคชั่นที่สอง ต้องการใช้ MySQL เวอร์ชั่น 5. จะทำอย่างไรหากจะต้องพัฒนาแอพลิเคชั่นทั้งสองควบคู่กันไปในเวลาเดียวกัน วิธีที่แย่ที่สุดก็คือ การติดตั้งโปรแกรมใหม่ทุกครั้ง เมื่อเปลี่ยนไปพัฒนาอีกโปรแกรมหนึ่ง ซึ่งนอกจากจะยากต่อการเปลี่ยนจากการพัฒนาแล้ว ยังเสี่ยงต่อความผิดพลาดในขั้นตอนการพัฒนาอีกด้วย ดังนั้น ในบทความนี้ จะกล่าวถึงวิธีการพัฒนาระบบคอมพิวเตอร์ เพื่อให้ระบบซอฟแวร์พื้นฐานที่ต้องการ สามารถทำงานบนเครื่องเดียวกันได้ รวมถึงความต้องการของระบบ ในการพัฒนาระบบคอมพิวเตอร์แบบสมบูรณ์แบบนี้

Contents

Software Checklist

ก่อนติดตั้งโปรแกรมเดิมต่างเวอร์ชั่น ควรตรวจสอบคุณสมบัติขั้นพื้นฐา่นต่อไปนี้

  1. ซอฟแวร์ที่จะลง มีคุณสมบัติในการ Install ลงคนละ Directory หรือไม่
  2. ซอฟแวร์ที่จะลง สามารถกำหนดได้หรือไม่ ว่าให้ใช้ Configuration ไฟล์ใด หรือ อ่าน Configuration จากที่ใด
  3. ซอฟแวร์มีการกินการใช้งานทรัพยากรของเครื่องคอมพิวเตอร์เช่น หน่วยความจำ หน่วยประมวลผล มากน้อยเพียงใด
  4. ซอฟแวร์ มีการใช้ Dynamic Link Library (DLL - Windows), Share Object (SO - Linux) ร่วมกันหรือไม่
  5. ซอฟแวร์สามารถใช้ Configuration ร่วมกันได้หรือไม่ หรือไฟล์ที่สร้างขึ้นชั่วคราวของซอฟแวร์ขณะทำงาน

กรณีที่ซอฟแวร์ไม่มีคุณสมบัติพื้นฐานดังที่กล่าวข้างต้น จะไม่เหมาะต่อการนำหลายเวอร์ชั่นมาพัฒนาบนเครื่องคอมพิวเตอร์เครื่องเดียว ซึ่งอาจจะจำเป็นต้องใช้เทคนิควิธีการอื่นเพิ่มเติมต่อไป อย่างไรก็ตาม ไม่ได้เป็นการการันตีว่าจะต้องห้ามนำมาลง เพียงแต่การติดตั้ง อาจจะทำให้ประสิทธิภาพเครื่องลดลง หรือการทำงานไม่ถูกต้องเป็นต้น

Install Directory

การติดตั้งซอฟแวร์ 1 ตัว แน่นอนว่าคุณจะต้องกำหนดว่าให้ซอฟแวร์ไปติดตั้งที่ Directory ใด ซึ่งการเขียนโปรแกรม ปกติโปรแกรมเมอร์จะต้องสามารถให้ผู้ใช้กำหนด Install Directory ตามความต้องการของผู้ใช้ สิ่งนี้เป็นสิ่งสำคัญ ยกเว้นซอฟแแวร์กะลั่วๆ หรือโปรแกรมเมอร์เขียนโปรแกรมระบุ Path เ้ข้าไปตรงๆใน Source code ของโปรแกรม ซึ่งทำให้คุณเปลี่ยนแปลง Install Directory ไม่ได้ นั่งก็หมายถึง คุณไม่สามารถใช้ซอฟแวร์ต่างเวอร์ชั่นทำงานได้พร้อมกัน

Configuration

Configuration ถือเป็นสิ่งสำคัญที่สุด เพราะเป็นตัวระบบคุณสมบัิติของซอฟแวร์ ถ้า Configuraiton ถูกระบุอยู่ในที่ที่เดียว อย่างเ่ช่น MySQL ที่อายุมากแล้ว (version เก่าๆ) จะมีการกำหนด Default MySQL Configuration ไว้ที่ c:\windows\my.ini ซึ่งจะทำให้เกิดปัญหาที่ว่า ถ้าจะทดสอบในหลายสภาพแวดล้อม มันจะไม่สามารถทำได้ เป็นปัญหาทั้งผู้ใช้ และผู้พัฒนาโปรแกรม ซึ่ง บางครั้ง Tester หรือคนทำหน้าที่ทดสอบโปรแกรม ไม่สามารถกำหนดปรับเปลี่ยนสภาพแวดล้อมการทำงานเพื่อใช้ในการทดสอบได้อย่างเต็มที่นัก.

Resource

ทรัพยากรระบบถือเป็นสิ่งสำคัญที่สุด. ซอฟแวร์ที่นำมาลงและเปิดเป็น Service ล้วนแต่กินทรัพยากรระบบมากขึ้น ดังนั้น หากมาตรฐานดังกล่าว มีผู้ผลิตหลายแห่ง ก็ควรทดสอบว่าตัวใดเหมาะสมในการนำมาใช้งาน และประหยัดทรัพยากรของเครื่องมากที่สุด ตัวอย่างเช่น การเลือก Web Server นำมาใช้งาน หรือ FTP Server เป็นต้น

Dynamic Link Library & Share Object

การสร้างโปรแกรมเป็นคลาส เป็นที่นิยมมาก เนื่องจากทำให้การทำงานของโปรแกรมที่เกี่ยวข้องหลายตัว กินหน่วยความจำน้อยลง เนื่องจาก ไม่ต้องจองหน่วยความจำเพิ่ม แต่ใช้พื้นที่หน่วยความจำเดิมที่โหลดโปรแกรมไว้ แม้ว่าจะมีข้อดี ในกรณีการทำงานร่วมกันระหว่างซอฟแวร์ แต่ในขณะเดียวกัน อาจจะก่อให้เกิดปัญหา กรณีที่ Library นั้นมีการพัฒนาขึ้นใหม่ โดยใช้ชื่อไฟล์เดิม. ปัญหานี้เกิดขึ้นบ่อย ในสมัยก่อน ที่นักพัฒนาโปรแกรม จะนำ Library ที่พัฒนาขึ้นไปไว้กองกลางที่ Windows Directory ซึ่งถ้ามีการ Update Version ของซอฟแวร์ตัวนั้นใหม่ จะเท่ากับว่า Software เก่า อาจจะไม่สามารถทำงานได้ จะทำงานได้เฉพาะซอฟแวร์ใหม่ที่พัฒนาขึ้นเท่านั้น เพราะฉนั้่น ตรงจุดนี้ ก็เป็นอีกจุดหนึ่งที่จะต้องทำการตรวจสอบ ว่าซอฟแวร์ที่จะนำมาติดตั้งนั้น มีการเรียกใช้ DLL ไฟล์ร่วมกันที่ Path ใด แล้วมีการติดตั้งโปรแกรมที่ Path ดังกล่าวด้วยหรือไม่

Working File

ในขณะที่โปรแกรมมีการทำงาน บางครั้งซอฟแวร์จะมีการสร้างไฟล์สำรองขึ้นมาในระบบเพื่อใช้ภายในโปรกรม ซึ่งอาจจะถูกเก็บไ้ว้ที่ c:\windows\temp หรือ %user%/temp ก็แล้วแต่ หากมีการสร้างไฟล์ขึ้นในระบบ ก็สามารถทำให้เกิดปัญหาได้ กรณีที่เราเปิดโปรแกรมพร้อมกัน 2 ตัว ซึ่งไปเรียกใช้ไฟล์เดียวกัน โดยโปรแกรมที่เปิดทีหลัง อาจจะแสดง message แจ้งเตือนว่าไม่สามารถเปิดซอฟแวร์ได้เนื่องจากมีไฟล์ในระบบเปิดอยู่ ซึ่งอาจจะเป็นไปได้ว่ามีการสร้าง temp file มาใช้งานนั้นเอง.

Case Study

MySQL

เนื่องจาก MySQL จำเป็นต้องมีการเปิดพอร์ต ดังนั้น ผู้เขียนจึงจำเป็นจะต้องทำการตรวจสอบว่า MySQL สามารถเปิดพอร์ตต่างหมายเลขกันได้ ซึ่งภายหลังจากการติดตั้ง ผู้เขียนก็ทำการเปิดพอร์ตของ MySQL3, MySQL4, MySQL5 เป็น TCP:3305, TCP:3306, TCP:3307 ตามลำดับ ซึ่งจากความต้องการในการเปิดพอร์ตของ MySQL ที่สามารถเปลี่ยนแปลงหมายเลขได้ จึงส่งผลให้ผู้เขียนสามารถติดตั้ง MySQL หลายเวอร์ชั่นในระบบและทำงานได้ในเวลาเดียวกัน

บทสรุป

เมื่อมีการตรวจสอบรายละเอียดเบื้องต้นแล้ว ถือว่าซอฟแวร์ดังกล่าวมีคุณสมบัติขั้นพื้นฐา่น ที่สามารถติดตั้งหลายเวอร์ชั่นได้พร้อมกัน ในระบบคอมพิวเตอร์เครื่องเดียว แต่อย่างไรก็ตาม ยังคงต้องตรวจสอบ ณ ขณะทำงาน ว่าเกิดปัญหาอะไรหรือไม่ต่อไป

Personal tools