แสดงบทความที่มีป้ายกำกับ Programming แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Programming แสดงบทความทั้งหมด

03 กุมภาพันธ์, 2558

ทำไมถึงต้องเขียนโปรแกรมแบบ OOP กัน? เขียนแบบซัดโค้ดตู้มเดียวที่เคยทำตอนเริ่มเรียนเขียนโปรแกรมไม่ได้เหรอ

ตั้งแต่ปีใหม่ เหมือนตัวเองเขียนแต่บล๊อกแปลบทความ ยังไม่มีบทความออริจินอลเลย คิดไปคิดมาเขียนเรื่อง OOP ดีกว่า เพราะช่วงนี้ไปดูโค้ดน้องหลายคนแล้วเขียนกันแบบ Structure ตรงๆ ซึ่งช่วยแก้ได้ยากมาก มาเขียน OOP กันเถอะเพื่อชีวิตที่ดีขึ้น (มั้งตัวเองและผู้อื่นเลยนะ)

ก่อนอื่นต้องมาทำความเข้าใจคำว่า OOP กันก่อนนะ

OOP ย่อมาจาก Object Oriented Programming แปลเป็นไทยว่า "การเขียนโปรแกรมแบบวัตถุ" ! ห๊ะ...แปลออกมายิ่งงงเข้าไปใหญ่

งั้นขอย้อนกลับไปหน่อย ปกติแล้วทุกคนมักจะเรียนเขียนโปรแกรมครั้งแรกอาจจะเป็นภาษา C, Java (หรือภาษาอะไรก็ตามเถอะ) ตอนนั้นเรายังไม่สนใจว่าภาษาโปรแกรมที่เราเรียนกันอยู่นั่นน่ะเป็นภาษาแบบไหนเพราะแค่ทำความเข้าใจ if-else loop function อะไรพวกนั้นก็เต็มหัวไปหมดแล้ว

ขอยกตัวอย่างภาษา C ละกัน สำหรับคนที่เคยเขียนมาแล้วน่าจะคุ้นกับเจ้านี่
void main()
{
    //เราจะซัดโค้ดทั้งโปรแกรมลงในนี้แหละ
}
จริงมั้ยล่ะ ตอนเรียน C ไม่ว่าจะเขียนโปรแกรมเล็กแบบ Hello World หรือโปรแกรมใหญ่ๆ ระดับ Final Project ตอนท้ายเทอมเป็นพันบรรทัดเราก็ยัดมันลงไปใน void main นี่แหละ (ถ้าใครเก่งหน่อยก็อาจจะมีการแยกโค้ดออกมาเป็น function บ้าง แต่คิดว่ารุ่นนึงน่าจะมีไม่เยอะที่ทำ) แต่โดยรวมก็คือเขียนคำสั่งต่อเนื่องไปเรื่อยๆ อาจจะมีบางส่วนที่ชวนปวดหัวบ้าง แต่ก็ยังไปถึงปลายทางได้แหละน่า


อ่านมาถึงตรงนี้อาจจะมีคำถามเกิดขึ้นว่า แล้วมันไม่ดียังไงเหรอ? เขียนออกมาแล้วโค้ดก็ทำงานได้นะ

โอเค โค้ดทำงานได้แต่ต้องมีอะไรที่มันไม่ดีแน่ๆเขาถึงคิดวิธีการเขียนโปรแกรมแบบอื่นขึ้นมาใช้แทน

Structure VS Object

รู้ไหมว่าการเขียนโปรแกรมโดยซัดโค้ดทุกอย่างลงไปกระจุกอยู่ใน void main ตัวเดียวเนี่ยเขาเรียกว่าการเขียนโปรแกรมแบบ "Structure Programming"
อธิบายง่ายๆ คือเขียนโค้ดทีละบรรทัดเพื่อบอกให้คอมพิวเตอร์ทำอะไรไปเรื่อยๆ วิธีนี้เป็นวิธีที่เคยฮิตสมัยเพิ่งมีภาษา C แน่นอนว่าสำหรับยุคนี้มันเก่าไปแล้ว

เหตุผลล่ะ?

ทำงานเป็นทีมได้ยาก

เรื่องแรกที่เป็นจุดอ่อนของ Structure Programming คือมันทำงานเป็นทีมได้ยาก เคยทำงานเป็นคู่หรือเป็นกลุ่มไหม ตอนที่ต้องเขียนโปรแกรมมากกว่า 1 คนคุณทำยังไงล่ะ

อืม... ทางเลือกมันก็มีไม่เยอะนักหรอกนะ คือไม่นั่งสุมหัวช่วยกันเขียนบทคอมเครื่องเดียว คุณก็แยกงานกันทำแล้วพอเอามาโค้ดมารวมกันก็ระเบิดจ้า!

อ่านไม่รู้เรื่อง / เอาโค้ดมาใช้ใหม่ไม่ได้

ตอนเขียนโปรแกรมแบบ Structure เราอยากทำอะไรก็ทำใช่ไหม อยากประกาศตัวแปรเพิ่มก็ประกาศ ตรงนี้เกิดปัญหา งั้นวาง if ดักไว้ละกัน โค้ดตรงนี้เป็นส่วนแสดงผลนะ และอื่นๆ อีกมากมาย
คือมันให้เราทำอะไรก็ได้ ดังนั้นมันจึง "อ่านยาก"

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

อีกเรื่องหนึ่งคือเอาโค้ดที่เคยเขียนมาแล้วมาใช้ใหม่ไม่ได้ อยากเราเคยเขียนโปรแกรมหาค่าเฉลี่ยคะแนนนักเรียนไปเมื่อสองวันก่อน วันนี้ต้องมาเขียนโปรแกรมหาค่าเฉลี่ยเงินเดือนพนักงาน เอ๊ะ! มันคล้ายๆ กันนะ ใช้โค้ดเก่าเลยได้มั้ย ... จากนั้นก็เปิดงานเก่า copy+paste ซะแล้วก็ปรับๆ อีกนิดหน่อย ถ้าปรับได้ก็ดีไป ถ้าไม่ได้ยิ่งปรับยิ่งเละกว่าเดิมจนถึงระดับที่คิดได้ว่าเขียนใหม่มันดีกว่า

....

14 พฤศจิกายน, 2556

~[Knapsack Problem + Recursion] ไข่ไก่ ผักบุ้ง และ วุ้นเส้น ... ทำยังไงให้ได้ 87 บาท ?


ตอนนี้ย้ายบล๊อกไปอยู่ที่นี่แล้วครับ แต่บทความยังอยู่นะ ตามไปอ่านบทความต่อได้ที่:
กดเลย --> http://www.tamemo.com/post/29/