เริ่มต้นเป็นโปรแกรมเมอร์ เขียนเมื่อ 2009.06.30 โดย

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

จะเห็นว่าขอบเขตเป็นสิ่งสำคัญ ผลจากการทำงานได้เหมือนกันแต่กระบวนการทำงานต่างกัน ทำให้ค่าใช้จ่าย (Cost) ที่เกิดขึ้นต่างกันได้ จากประสบการณ์ ในกรณีที่เราพัฒนาโปรแกรมตามความต้องการของเรา แน่นอนว่าเรารู้ความต้องการ และขอบเขตของโปรแกรม แต่เมื่อเราพัฒนาโปรแกรมตวามความต้องการของผู้อื่น การระบุขอบเขตที่แน่นอนจำเป็นอย่างมาก เนื่องจากต้องใช้ในการออกแบบเลือกส่วนประกอบต่างๆในการพัฒนา

ข้อจำกัดนั้นเป็นส่วนที่เราจะสามารถระบุได้ว่าควรเลือกสิ่งใด เช่น การเลือกเลือกใช้ภาษาในการพัฒนา เมื่อเราต้องพัฒนา web application เราอาจจะมีตัวเลือกมากมาย เช่น perl, php, asp, c#.net, vb.net, python, jsp, ฯลฯ แต่ถ้าระบุว่าต้องทำงานบน *nix platform เราต้องรู้ว่าภาษาใดสามารถทำงานได้บน *nix platform ได้บ้างในที่นี้ตัวเลือกเราก็จะตัด asp, c#.net, vb.net ออกไปได้ ส่วนที่เหลือเราก็เลือกเอาตามความถนัด เนื่องจากภาษาต่างๆความสามารถเกือบจะเท่ากัน ต่างกันตรงที่ความยากง่ายในการพัฒนาเท่านั้น

ในทางการพัฒนาโปรแกรมนั้น ผมสามารถแยกการออกแบบได้เป็น 2 ส่วนคือ

  • Control flow การออกแบบเกี่ยวกับการควบคุมโปรแกรมในส่วนต่างๆ
  • Data flow การออกแบบเกี่ยวกับการจัดการข้อมูล
โดยปกติแล้วการออกแบบทั้ง 2 ส่วนจะต้องมีความสัมพันธ์กัน

การออกแบบ control flow ในที่นี้คือการออกแบบโครงสร้างการทำงานของโปรแกรม การตัดสินใจต่างๆ เช่น เมื่อ user เข้าใช้งานจำเป็นต้องมีการ authorize หรือไม,่ ถ้ามีจะมีกี่ level, permission ต่างๆเป็นอย่างไร, ฯลฯ โดยอาจจะเริ่มจากการเขียน policy ของโปรแกรมที่ต้องการ จากนั้นก็ลงรายละเอียดเป็น flow chart ในส่วนต่างๆ

บ่อยครั้งที่ผมไม่มีการเขียน policy และ flow chart เนื่องจากเหตุผลต่างๆ เมื่อเริ่มการ coding แล้วนั้นโปรแกรมส่วนใหญ่ไม่สามารถเขียนเสร็จได้ภายในวันเดียว ดังนั้น policy และ flow chart จะทำให้ในครั้งต่อๆไป เราสามารถทราบได้ว่าเป้าหมายเป็นจุดใด และต้องเขียนต่อที่ตรงไหน การที่มี policy และ flow chart นั้นจะช่วยได้มากหากมีการพัฒนาเป็นทีม

การออกแบบ data flow เป็นการออกแบบเกี่ยวกับการจัดการข้อมูล ไม่ว่าจะเป็นการเก็บข้อมูล, การรวบรวมข้อมูล ฯลฯ โดยการออกแบบ data flow ที่ดีนั้นต้องให้มีการไหลของข้อมูลได้ดีและปลอดภัยที่สุด ความปลอดภัยของข้อมูลเป็นสิ่งที่ต้องคำนึงถึง แม้ข้อมูลบางอย่างเช่น ข้อมูลการรักษาสิวของนาย ก. อาจจะไม่มีค่าแต่ก็จำเป็นต้องรักษาไว้ให้ดีที่สุด เนื่องจากเป็นข้อมูลส่วนบุคคล






คำเตือนคำเตือน เนื้อหาต่างๆ ในบทความ รวมถึงรูปภาพทั้งหมดในบทความนี้ เป็นความเห็นส่วนตัวของผู้เขียนแต่ละคน ซึ่งแต่ละคนได้ทำการลงทะเบียน และเขียนบทความลงใน Modoeye Articles นี้โดยไม่มีค่าธรรมเนียมใดๆ บทความเหล่านี้เป้าหมายเพื่อการศึกษา และความบันเทิงเท่านั้น การนำส่วนหนึ่งส่วนใดของบทความไปใช้งาน ควรทำการอ้างอิงถึงผู้เขียนและแหล่งที่มาด้วย