จากประสบการณ์จริงของ Developer ตัวน้อยๆ

ก่อนจะเลื่อนไปอ่านบทความนี้ทางด้านล่าง ผมจะบอกไว้ก่อนว่า คราวนี้ไม่ใช่ เทคนิค หรือวิธี พัฒนาโปรแกรมอะไรก็ตามแต่ เพราะว่ามันเป็น “เรื่องของผมล้วนๆ”

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

สรุปเลยละกัน วันนี้ผมจะมาตั้งสติ นึกทบทวนว่าในการทำ web app แต่ละตัว นั้นผมลงมือ ลำดับการทำงาน ก่อนหลังยังไงบ้าง….

1. เก็บ Requirement
สิ่งแรกที่ผมจะทำเลยคืออ่าน Requirement อย่างละเอียดครับ แล้วก็ จินตนาการณ์ ในหัวไปเรื่อยว่ามัน จะต้องทำอะไรบ้าง แล้วมีส่วนไหนที่จะต้องเชื่อมกับตรงไหนบ้าง จะต้องใช้เวลาส่วนไหนานที่สุด ปัญหาที่เกิดขึ้นคืออะไร

2. แก้ไขไอ้ปัญหาที่จะเกิดขึ้นให้ได้ก่อน
หลังจากที่คิดได้จนครบจากข้อแรก ผมจะยังไม่ลงมือทำ จนก่าจะหาทางแก้ไอ้ ปัญหาที่จะเกิดขึ้นให้ได้เสียก่อน ไม่งั้นทำไปแล้วอาจมี “รื้อ” ได้ ดังนั้นผมจะลองทำการจำลอง ส่วนที่ผมคิดว่ามันจะ “ติด” แล้วก็ลงมือหาทางแก้ปัญหาก่อนที่จะ ทำอะไรต่อไป

3. Structure ที่ดีคือหัวใจหลักของ application ที่ประสบความสำเร็จ
ขั้นตอนนี้เป็นขั้นตอนที่จะลงมือทำงานกันจริงๆ จังๆแล้ว โดยผมถือว่าเป็น “หัวใจ” ของทุกขั้นตอนเลยครับ การเขียนที่ มี structure ที่ดีจะช่วยให้งานเรา ไหลลื่นและทำได้อย่างต่อเนื่อง การพัฒนาต่อก็แสนจะง่ายดาย โดยสิ่งที่ผมจะทำในข้อนี้ก็คือ

3.1 เลืือกรูปแบบที่จะทำการเขียน ว่าจะใช้แบบไหน เช่นจะเขียนด้วย oop หรือว่า framework แบบไหน ตัวไหน
3.2 จัดวาง folder โครงสร้างให้เหมาะกับงาน โดยคำนึงถึงการจัดเก็บที่เป็นระเบียบ และ ง่ายต่อการใช้งาน
3.3 คิดเผื่อไปเลยว่าจะรองรับ users มากขนาดไหน จะต้องทำ hashing data หรือว่า caching หรือ ต้องมี proxy คลุมในส่วนไหนรึเปล่า เพราะถ้าเราไปแก้ ตอนหลัง นี่ยาวเลยครับ ทำไปทั้งชาติเลย

4. เลือก Tools ที่จะมาใช้งานร่วมด้วย
หลังจากได้วิธีการเขียนแล้ว ต่อมาก็เลือก Tools หรือ libraries หลักๆ ที่จะเอามาทำงานร่วมด้วย เช่น เลือกใช้ Smarty มาทำ template เลือกเอา zend cache มาทำ cache เป็นต้น โดยในข้อนี้ที่ผมใช้ประจำก็จะมี

4.1 Smarty – ใช้ทำ template ในส่วนของ view
4.2 Adodb – ใช้ในการ ติดต่อ database
4.3 Zend Cache – ใช้ในการทำ caching
4.4 PHPMailer – ใช้ในการส่งเมล์
4.5 TinyMCE, SpawEditor – ใช้ในการทำ WYSIWYG

ส่วนที่เหลือเป็น libs ที่ใช้ เฉพาะทางผมไม่ขอเอ่ยถึงละกัน

5. ออกแบบ Database บางส่วน
ต่่อมาผมก็จะทำการออกแบบ db ที่ว่าเป็นบางส่วน เพราะ บางทีมันยังไม่ลงมือเขียน ก็ยังคิดไม่ออกจริงๆ ว่ามันควรจะมี fields อะไรบ้าง แต่หลักๆ ที่ต้องใช้งานแน่ๆ ก็จะมีเช่น

- users
- user group

พวกนี้ก็จะทำไปก่อนเลย

6. สุดท้ายแล้วเริ่มเขียน module แรก
สุดท้ายละ ที่ผมจะเขียนเป็น module แรกถุกครั้ง (ในกรณีที่ไม่ได้ re-use ของเก่า) ก็คือ

User Register and Authentication

และนี่ก็คือ จุดเริ่มต้นเล็กๆ ของผมในแต่ละงานครับ

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

4 Comments »

 
  • DominixZ says:

    ผมทำแตกต่างออกไปในข้อ 2 ครับ ผมจะเน้นทำไปก่อนแล้ว แล้วถ้าติดค่อยแก้หรือรื้อค่อยปรับ ส่วน database ผมดันเขียนไว้เกือบจะสมบูรณ์ ก่อนจะทำซะยังงั้น

  • ifew says:

    ขั้นตอนคล้ายๆกันเลยครับ แต่ผมจะ เก็บ req ก่อน พอให้ได้ภาพ structure ในหัวคร่าวๆ แล้วก็ออกแบบ db แล้วมาลงรายละเอียดกับ structure และเทคโนโลยีที่จะใช้อีกรอบ จนจบ แล้วก็เร่ิมเขียน “User Register and Authentication” เช่นกัน ฮ่าๆ

  • 7 says:

    ข้อ 2 ข้อ 3 ผมจะไม่ออก ถ้าไม่วาด UI ก่อน เริ่มจากวาดๆๆ UI ถึงจะเห็นภาพ เห็นปัญหา เห็นโครงสร้าง

  • izunk says:

    Zend Cache – ใช้ในการทำ caching

    อยากให้มี บทความในการทำ caching บ้างครับ

 

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>