👦OOP
🤔 หลักพื้นฐานในการเขียนโค้ดด้วยแนวคิดแบบ OOP เขาคิดกันยังไง ?
ผมเชื่อว่าหลายคนที่เขียนโค้ดมาได้ซักระยะก็จะได้ยินคำว่าการเขียนโปรแกรมแบบ Object-Oriented Programming หรือที่เรียกกันติดปากว่า OOP นั่นเอง หรือบางคนก็เคยเรียนผ่านมาบ้างแต่ก็อาจจะยังไม่แน่ใจว่าสิ่งที่เขียน สิ่งที่ใช้อยู่นั้นมันถูกต้องตามหลักของ OOP หรือยัง ดังนั้นในคอร์สนี้เราจะมาทำความเข้าใจกันว่า จริงๆแล้ว OOP มันคืออะไร ใช้งานยังไง และ มันสำคัญหรือเปล่า กันครัช
🤨 เคลียความเข้าใจกันนิส
ตั้งแต่เริ่มเรียนเขียนโค้ดครั้งแรก ผมเชื่อว่า 99.99% ทุกคนน่าจะได้ทำโจทย์หลายๆแบบ เช่น ตัดเกรด คำนวณหาพื้นที่ หรืออะไรก็ตามแต่ที่จะช่วยฝึกให้เราเข้าใจคำสั่งต่างๆ เช่น if..else, switch..case, loop บลาๆ กันมาใช่ไหม? แล้วพอผ่านมาซักระยะเราก็จะได้รับโจทย์ที่ยากขึ้น เช่นเขียนโปรแกรมเครื่องคิดเลข ทำระบบจองโรงแรม หรืออะไรก็ตามที่ไม่ได้เขียนจบภายในไฟล์เดียวอีกต่อไป
จากที่ยกตัวอย่างไป อยากจะบอกว่าส่วนใหญ่ที่เราเขียนนั้น มันจะทำให้เรารู้จักสิ่งที่เรียกว่า ตัวแปร และ ฟังก์ชั่น ต่างๆ ซึ่งหลักในการคิดพวกนั้นจะเป็นสิ่งที่เราเรียกว่า Procedural Programming นั่นเอง
🤔 Procedural Programming คือไย ?
เป็นหนึ่งในวิธีการเขียนโปรแกรมที่สมัยก่อนนิยมใช้กัน โดยเวลาที่เราได้รับโจทย์ปุ๊ป เราก็จะคิดเป็นขั้นเป็นตอน ว่าต้องเรียกใช้งานอะไรบ้าง สั่งงานเป็นลำดับขั้นไปเรื่อยๆ ลองคิดถึงโค้ดที่เราเขียนสมัยแรกๆดู เราจะมีตัวแปรหลายๆตัว มีฟังก์ชั่นหลายๆอัน เรียกใช้กันยั้วเยี๊ยพันกันไหมหมด
ยกตัวอย่าง เราจะเขียน โปรแกรมส่งจดหมาย เราก็จะคิดเป็นขั้นตอนว่า
จะสร้างจดหมายขึ้นมา
ทำการส่งหมายผ่าน function A ตัวนี้
function A ก็จะส่งข้อมูลต่อไปให้กับ function B เพื่อติดต่อออกไปผ่าน SMTP
บลาๆ
ซึ่งวิธีการเขียนโค้ดแบบ Procedural Programming นั้นมันจัดการอะไรต่างๆค่อนข้างยาก เวลาอยากจะแก้ไขอะไรซักอย่างก็ต้องไปไล่หาว่ามันอยู่ขั้นตอนไหน และแต่ละขั้นตอนก็อาจจะไปพันกับอีกขั้นตอน ทำให้แก้จุดนี้ก็มีผลกระทบกับจุดอื่นๆด้วย ดังนั้นเลยมีการคิดวิธีการเขียนโปรแกรมอีกแบบที่เรียกว่า Object-Oriented Programming ขึ้นมา
สรุปสั้นๆ หลักในการคิดของ Procedural Programming คือ คิดเป็นขั้นตอน สั่งงานตามขั้นตอนที่คิดไว้ โดยเราจะทำการ สร้าง step ต่างๆเอาไว้เรียกใช้นั่นเอง
🤔 Object-Oriented Programming คือไย ?
เป็นหนึ่งในวิธีการเขียนโปรแกรมที่ปัจจุบันนิยมใช้กัน โดยเมื่อเราได้รับโจทย์มาปุ๊ป เราก็จะคิดออกมาว่า มันจะต้องมีองค์ประกอบอะไรบ้าง ของพวกนั้นมันทำอะไรได้บ้าง และทั้งหมดนั้นมันจะทำงานร่วมกันได้ยังไง
ยกตัวอย่าง เราจะเขียน โปรแกรมส่งจดหมาย เราก็จะคิดออกมาว่ามันมีองค์ประกอบอะไรบ้าง เช่น
ถ้าจะส่งจดหมายได้จะต้องมี ซองจดหมาย ที่ระบุคนรับคนส่ง
ถ้าจะส่งจดหมายจะต้องมี ตัวส่งจดหมาย ที่จะสามารถเก็บ จดหมาย ไว้ข้างในได้
บลาๆ
ซึ่งจากตัวอย่างเราจะเห็นว่า การเขียนโปรแกรมแบบ OOP นั้นใกล้เคียงกับโลกของความเป็นจริง มากกว่าการเขียนแบบ Procedural Programming ดังนั้นถ้าเหล่า developer เขียนโค้ดโดยใช้หลักของ OOP มันก็จะทำให้เราสามารถเข้าใจกันได้เร็วขึ้น และโค้ดมีการแบ่งงานกันชัดเจน เวลาแก้ไขปัญหาก็พอจะรู้ว่าจะต้องไปแก้ที่จุดไหน
สรุปสั้นๆ หลักในการคิดของ Object-Oriented Programming คือ มองของต่างๆเป็นเรื่องๆ ที่สอดคล้องกลับปัญหาที่เราจะแก้ไข
🤼 เคลียกันรอบสุดท้าย
การเขียนโปรแกรมไม่ว่าจะเป็น Procedural Programming หรือ Object-Oriented Programming สุดท้ายมันก็เป็นแค่วิธีการเขียนโปรแกรมแบบหนึ่งเท่านั้น และในโลกของการเขียนโปรแกรมก็ไม่ได้มีแค่นี้นะ เพราะในสมัยนี้มันมีอีกยั้วเยี้ยเลยให้เราเลือกศึกษา ซึ่งแต่ละวิธีก็จะมีข้อดีข้อเสียของมันเองทั้งนั้น
🥺 แล้วจะรู้เรื่อง OOP ไปทำไม ?
แม้ว่า OOP จะเป็นแค่หนึ่งในวิธีการคิดในการเขียนโปรแกรม แต่มันก็เป็นวิธีที่คนทั่วโลกนิยมใช้กัน แหละมันเหมือนกับเป็นเกณฑ์ตัวแรกเลยที่เขาวัดว่าเขาจะรับเราเข้าร่วมงานหรือเปล่าก็ว่าได้ ดังนั้นเรียนเจ้าตัวนี้ไปก็ไม่เสียหายหรอก เพราะสุดท้ายถ้าเราเข้าใจหลักในการเขียน OOP อย่างถ่องแท้แล้ว มันก็จะช่วยเป็น guideline ให้เราออกแบบโค้ดได้อย่างมีประสิทธิภาพและเป็นมืออาชีพในวงการนี้มากยิ่งขึ้นครับ 👍
😁 เข้าเรื่องของ OOP กัน
ในการเขียนโค้ดโดยใช้หลักของ OOP นั้น เราจะต้องดูก่อนว่าภาษาที่เราใช้อยู่มันรองรับ OOP หรือเปล่าด้วย ซึ่งโดยปรกติภาษาส่วนใหญ่จะทำ OOP ได้อยู่แล้วนะดังนั้นสบายใจได้ (C# รองรับ OOP 100%) โดยวิธีการดูว่าภาษาของเรารองรับ OOP หรือเปล่าคือ มันจะต้องทำ 4 เสาหลัก หรือเราเรียกว่า 4 Pillars ด้านล่างนี้ได้
💖 4 Pillars of OOP
4 เสาหลักที่เป็นตัววัดว่าภาษานั้นรองรับการทำ OOP หรือเปล่า และเป็นตัว guideline ในการออกแบบโค้ดที่เราจะนำมาใช้ในการแก้ปัญหาคือ
Abstraction
Encapsulation
Inheritance
Polymorphism
ซึ่งแต่ละเรื่องผมจะขออธิบายแยกเป็นเรื่องๆของมันไปเน่อ ดังนั้นสนใจเรื่องไหนก็ลองไปจิ้มอ่านเอาที่ตัวด้านล่างได้
🧭 เนื้อหาทั้งหมดของคอร์สนี้
ใครที่ไม่อยากพลาดอัพเดทบทความใหม่ๆ สามารถเข้าไปกด Like เพื่อรับข่าวสารใหม่ๆจาก Facebook Blog: Mr.Saladpuk ได้นะครับ 😍
คำเตือน การศึกษาเรื่อง OOP เป็นเรื่องที่ดี แต่การที่เราจะเข้าใจมันได้อย่างถ่องแท้นั้น เราจะต้องลองฝึกออกแบบ ลองเจอโจทย์เยอะๆ ลองผิดลองถูกจนถึงจุดหนึ่ง แล้วประสบการณ์เหล่านั้นมันจะช่วยทำให้เรากลับมาอ่าน concept พวกนี้แล้วถึงจะบรรลุหลักการพวกนี้อย่างแท้จริง ไม่อย่างนั้นแล้วเราก็จะเข้าตามตัวอักษร อาจเอาไปใช้ตอบเพื่อให้ผ่าน certificate ได้ แต่สุดท้ายเมื่อเจอโจทย์ในงานจริง คุณก็จะงูๆปลาๆอยู่ดี
แนะนำให้อ่าน สำหรับเพื่อนๆที่สนใจในการออกแบบโค้ด เพื่อให้โค้ดของเรามันดียิ่งขึ้น เป็นมืออาชีพมากขึ้นไปอีก สามารถไปศึกษาได้จากลิงค์ด้านล่างพวกนี้ได้เลยครัช
Last updated