ต้นแบบ = มักง่าย?
posted on 12 Jan 2005 21:22 by ipats
อืมม... คงเป็นเรื่องปกตินะครับ
ที่เวลาเราจะทำอะไรขึ้นมาจะต้องมีต้นแบบก่อน...
ในเรื่องของคอมพิวเตอร์ก็เช่นกัน...
ทั้งฮาร์ดแวร์ และซอฟท์แวร์
ตัวอย่างของฮาร์ดแวร์ก็เช่นการใช้บอร์ดทดลองที่เป็นรูๆ เอามาจิ้ม
หรือบอร์ดไข่ปลา ที่เป็นลายทองแดงเตรียมไว้แล้ว
หลังจาดทดลองวงจรสำเร็จก็ค่อยกัดแผ่นจริง...
ในเรื่องของซอฟท์แวร์.. ผมขอพูดถึงเขียนโปรแกรมแล้วกัน...
... ในการเขียนโปรแกรมเนี่ย.. มันหลายงาน หลายส่วน
บางครั้งเราก็อยากให้มันมีผลลัพธ์ออกมาก่อน
หรือไม่ก็อยากดูการทำงานโดยรวม
เราก็จะไม่ใช้อัลกอริทึมที่ซับซ้อน...
เช่นตอนเรียงข้อมูล แทนที่จะใช้ quick sort หรือ merge sort
เราก็ใช้ bubble sort (bubble sort เป็นวิธีที่ใช้เวลานานมาก แต่เขียนง่าย)
ในการค้นหา เราก็ใช้ linear search (ซึ่งช้ามากๆ เช่นกัน)
โดยกะว่า... ไอ้ส่วนเนี่ย ไม่ได้สำคัญอะไรมาก
เอาให้ระบบโดยรวมมันทำงานได้เรียบร้อยก่อน
แล้วค่อยมาแก้ไขตรงนี้ก็ได้.. ไม่ได้ยากเย็นอะไร
หลังจากที่ระบบโดยรวมเสร็จเรียบร้อย.. ก็ได้โปรแกรมต้นแบบมา
เราก็จะเริ่มทำการปรับปรุงส่วนที่เราเขียนเละๆ เอาไว้....
แต่....
มันเกิดอะไรขึ้น....
ก็คือ.. มันไม่มีเวลาหล่ะซิครับ.. หรือไม่ก็ขี้เกียจ
... ก็มันใช้ได้แล้วหนิ.. จะไปแก้ทำไมล่ะ...
เออ.. ก็จริง...
สุดท้าย ไอ้โปรแกรมต้นแบบเละๆ นั่นก็กลายเป็นโปรแกรมใช้งานจริงไป - -"
ในบางระบบ... แรกๆ ก็โอเคแหละครับ... แต่ใช้ไปๆ มันก็เริ่มมีปัญหา..
อย่างเช่น sorting เนี่ย.. แรกๆ ข้อมูลน้อย ยังไม่เห็นถึงความช้า
แต่เมื่อใช้ไปซักพัก ข้อมูลเริ่มเยอะขึ้นหล่ะ...
bubble sort ใช้เวลา O(n^2)
-- หมายถึง ประมาณว่า ถ้าข้อมูลเพิ่มเป็น 2 เท่า ใช้เวลาเพิ่มเป็น 4 เท่า ข้อมูลเพิ่มเป็น 4 เ่ท่า ใช้เวลาเพิ่มเป็น 16 เท่า -- โอ้วว
-------------------------
ที่เขียนมาไม่ใช่ไรหรอกครับ.. ตัวผมเองแหละ แหะๆๆ
ก็อยากเตือนว่า.. ถ้าทำอะไรเละๆ ไว้ แล้วกะจะกลับมาแก้ ก็อย่าลืมแก้ด้วยหล่ะ...
ถ้าคิดว่าตัวเองเป็นคนขี้เกียจแก้ ก็ทำให้มันดีๆ เลยตั้งแต่ต้นนะ... ;p
ที่เวลาเราจะทำอะไรขึ้นมาจะต้องมีต้นแบบก่อน...
ในเรื่องของคอมพิวเตอร์ก็เช่นกัน...
ทั้งฮาร์ดแวร์ และซอฟท์แวร์
ตัวอย่างของฮาร์ดแวร์ก็เช่นการใช้บอร์ดทดลองที่เป็นรูๆ เอามาจิ้ม
หรือบอร์ดไข่ปลา ที่เป็นลายทองแดงเตรียมไว้แล้ว
หลังจาดทดลองวงจรสำเร็จก็ค่อยกัดแผ่นจริง...
ในเรื่องของซอฟท์แวร์.. ผมขอพูดถึงเขียนโปรแกรมแล้วกัน...
... ในการเขียนโปรแกรมเนี่ย.. มันหลายงาน หลายส่วน
บางครั้งเราก็อยากให้มันมีผลลัพธ์ออกมาก่อน
หรือไม่ก็อยากดูการทำงานโดยรวม
เราก็จะไม่ใช้อัลกอริทึมที่ซับซ้อน...
เช่นตอนเรียงข้อมูล แทนที่จะใช้ quick sort หรือ merge sort
เราก็ใช้ bubble sort (bubble sort เป็นวิธีที่ใช้เวลานานมาก แต่เขียนง่าย)
ในการค้นหา เราก็ใช้ linear search (ซึ่งช้ามากๆ เช่นกัน)
โดยกะว่า... ไอ้ส่วนเนี่ย ไม่ได้สำคัญอะไรมาก
เอาให้ระบบโดยรวมมันทำงานได้เรียบร้อยก่อน
แล้วค่อยมาแก้ไขตรงนี้ก็ได้.. ไม่ได้ยากเย็นอะไร
หลังจากที่ระบบโดยรวมเสร็จเรียบร้อย.. ก็ได้โปรแกรมต้นแบบมา
เราก็จะเริ่มทำการปรับปรุงส่วนที่เราเขียนเละๆ เอาไว้....
แต่....
มันเกิดอะไรขึ้น....
ก็คือ.. มันไม่มีเวลาหล่ะซิครับ.. หรือไม่ก็ขี้เกียจ
... ก็มันใช้ได้แล้วหนิ.. จะไปแก้ทำไมล่ะ...
เออ.. ก็จริง...
สุดท้าย ไอ้โปรแกรมต้นแบบเละๆ นั่นก็กลายเป็นโปรแกรมใช้งานจริงไป - -"
ในบางระบบ... แรกๆ ก็โอเคแหละครับ... แต่ใช้ไปๆ มันก็เริ่มมีปัญหา..
อย่างเช่น sorting เนี่ย.. แรกๆ ข้อมูลน้อย ยังไม่เห็นถึงความช้า
แต่เมื่อใช้ไปซักพัก ข้อมูลเริ่มเยอะขึ้นหล่ะ...
bubble sort ใช้เวลา O(n^2)
-- หมายถึง ประมาณว่า ถ้าข้อมูลเพิ่มเป็น 2 เท่า ใช้เวลาเพิ่มเป็น 4 เท่า ข้อมูลเพิ่มเป็น 4 เ่ท่า ใช้เวลาเพิ่มเป็น 16 เท่า -- โอ้วว
-------------------------
ที่เขียนมาไม่ใช่ไรหรอกครับ.. ตัวผมเองแหละ แหะๆๆ
ก็อยากเตือนว่า.. ถ้าทำอะไรเละๆ ไว้ แล้วกะจะกลับมาแก้ ก็อย่าลืมแก้ด้วยหล่ะ...
ถ้าคิดว่าตัวเองเป็นคนขี้เกียจแก้ ก็ทำให้มันดีๆ เลยตั้งแต่ต้นนะ... ;p
ไอ้แพท..




มาสเตอร์แชมป์
ดังนั้นการนำต้นแบบมาแก้ๆ จนกระทั่งเป็นผลสุดท้ายน่ะ มันออกจะผิดวัตถุประสงค์ไปหน่อย แต่ก็ทำกันเป็นประจำ -_-
#1 By paepae (61.91.102.17) on 2005-01-12 22:08