2/17/2556

เริ่มต้นเป็นโปรแกรมเมอร์

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

จะเห็นว่าขอบ เขตเป็นสิ่งสำคัญ ผลจากการทำงานได้เหมือนกันแต่กระบวนการทำงานต่างกัน ทำให้ค่าใช้จ่าย (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 ที่ดีนั้นต้องให้มีการไหลของข้อมูลได้ดีและปลอดภัยที่สุด ความปลอดภัยของข้อมูลเป็นสิ่งที่ต้องคำนึงถึง แม้ข้อมูลบางอย่างเช่น ข้อมูลการรักษาสิวของนาย ก. อาจจะไม่มีค่าแต่ก็จำเป็นต้องรักษาไว้ให้ดีที่สุด เนื่องจากเป็นข้อมูลส่วนบุคคล

1 ความคิดเห็น:

  1. สวัสดีทุกคน! เรามีตำแหน่งที่ว่างใหม่สำหรับ MOBILE GAMES PROGRAMMER ในประเทศไทย นี่คือโอกาสที่ดีเยี่ยมที่จะเป็นสมาชิกของทีมงานที่มีชาวต่างชาติหลากหลายเชื้อชาติและสร้างระบบการศึกษาบนโทรศัพท์มือถือที่น่าตื่นตาตื่นใจที่สุด คุณสามารถสมัครได้ที่นี่: http://tingtongapps.com/careers/70-only-one-chance-in-your-life-mobile-games-programmer.html

    ตอบลบ