SOLID Archive

ทำความรู้จักกับ 3R principle

อ่านเจอบทความเรื่อง 3R principles of programming เป็นแนวปฏิบัติ 3 อย่างเพื่อช่วยทำให้ code ที่เหล่านักพัฒนา software สร้างขึ้นมา มีความ clean มีความง่ายต่อการอ่าน มีความง่ายตอการทำความเข้าใจ มีความง่ายต่อการดูแลรักษา ไม่ซับซ้อนมากนัก จึงทำการแปลและสรุปส่วนที่น่าสนใจมานิดหน่อย

Read More…

เมื่อนักพัฒนาไม่สามารถควบคุมความซับซ้อนของ code ได้ !!

จากบทความเรื่อง Why it happens to your code again and again? อธิบายการพัฒนาระบบ web application ด้วย RoR (Ruby on Rails) ซึ่งเป็น framework หลักของการพัฒนาระบบด้วยภาษา Ruby โดยในช่วงแรกของการพัฒนาระบบนั้นจะราบรื่นและรวดเร็ว ไม่ว่าจะเป็นการเพิ่ม gem หรือ library ต่าง ๆ เข้าไป ทุกอย่างมันแจ่มมาก ๆ แต่เมื่อเวลาผ่านไปเรากลับพบว่า

Read More…

ว่าด้วยเรื่องของ Delegator และ Callback ใน Swift

วันนี้นั่งดูและเขียน code ด้วยภาษา Swift สำหรับพัฒนา iOS app พบว่าในหลาย ๆ ส่วนการทำงานใช้ Delegate pattern เพื่อเชื่อมต่อการทำงานในแต่ละส่วน เช่น User Interface Data model Networking layer Service layer Helper class มีเป้าหมายเพื่อไม่ให้ code ผูกติดกันมากจนเกินไป หรือ เรียกว่า Loose coupling แต่ละส่วนแยกกันทำงานชัดเจน แต่ทำให้ code ที่พัฒนาด้วยภาษา Swift เต็มไปด้วย protocol !! คำถามที่น่าสนใจคือ มันมีวิธีการอื่นที่ดีกว่านี้ไหม

Read More…

ตัวอย่างของ code ที่ขัดแย้งต่อแนวคิด Single Responsibility Principle (SRP)

วันนี้เห็น code ของ Android app ตัวหนึ่ง ซึ่งมี code ที่น่าสนใจ และ น่าศึกษา นั่นก็คือ code ที่ใช้งาน RecyclerView แน่นอนว่า ต้องทำงานร่วมกับ Adapter ของมันนั่นเอง ทำให้คิดถึงแนวคิดของ SOLID หนึ่งในนั้นคือ S = Single Responsibility Principle (SRP) มาดู code กันดีกว่า

Read More…

ทำความรู้จักกับ KISS :: Keep It Simple, Stupid

หลังจากที่กลับไปอ่าน blog พบว่า ยังไม่เคยอธิบายเรื่อง KISS (Keep It Simple Stupid) เลย ดังนั้นลองมาทำความรู้จัก และ การนำไปใช้งาน ตามแนวคิดนี้กันหน่อยสิ

Read More…

Testable design ตอนที่ 2 เรื่อง S.O.L.I.D

จากตอนที่ 1 ได้แนะนำเรื่องการออกแบบแบบ Modular ไป ในตอนที่สองมาดูเรื่องของ SOLID กันหน่อย เป็นเรื่องเกี่ยวกับ design principle คิดโดย Robert C. Martin หรือ Uncle Bob ซึ่งเป็นการรวม 5 อย่างไว้ด้วยกัน ดังนั้นเรามาทำความรู้จักกับ SOLID กันหน่อย

Read More…

แนะนำปฏิทิน SOLID Principle

SOLID Principle เป็นแนวคิดสำหรับ Object-Oriented Design (OOD) ซึ่งมีความเกี่ยวข้องกับ code ที่เราเขียนอย่างมาก และเป็นแนวคิดเพื่อช่วยปรับปรุง code ให้ดีขึ้น โดยในแต่ละปีจะมีการจัดทำปฏิทินขึ้นมา เรียกว่า ปฏิทิน Software Craftsmanship Principle ซึ่งในปี 2015 ไม่มีการทำ แต่ในปี 2016 นั้นมีแน่นอน ดังนั้นจึงเอาหน้าตาปฏิทินที่เขาออกแบบไว้มาให้ดูดังนี้ ใครสนใจก็ไปร่วมระดมทุนในการผลิตได้นะครับ

Read More…

ว่าด้วยเรื่อง Composition over Inheritance

เห็นมีการพูดถึงเรื่อง Composition over Inheritance ใน facebook มันน่าสนใจดีนะ แต่ผมก็ไม่ค่อยรู้เรื่องมันเท่าไร ส่วนเรื่อง OOP นี่ไม่ต้องพูดถึง … ดังนั้นลองมาทำความเข้ากับมันหน่อยสิ ว่าเป็นอย่างไรกัน

Read More…

ตอนที่ 13 :: 97 สิ่งที่ developer ควรรู้ :: The Single Responsibility Principle

เรื่องที่ 13 ที่นักพัฒนาควรรู้ และ เข้าใจก็คือ The Single Responsibility Principle(SRP) เป็นหนึ่งแนวคิดสำคัญในการออกแบบระบบ และ code ที่ดี ที่นักพัฒนา software ทุกคนควรศึกษา เพื่อให้รู้ เข้าใจ และนำไปใช้ด้วยความเคารพ สามารถอธิบายสั้นๆ ได้ว่า ให้รวมส่วนการทำงานที่เปลี่ยนแปลงด้วยเหตุผลเดียวไว้ด้วยกัน ให้แยกส่วนการทำงานที่เปลี่ยนแปลงด้วยเหตุผลที่ต่างกันออกมา ลองดูสิว่า ระบบที่เราพัฒนากันนั้น มันเป็น SRP ไหม

Read More…

Hi, I’m STUPID

วันนี้อ่านเจอคำที่น่าสนใจคือ คำว่า STUPID จึงนำมาขยายความ ในโลกของการพัฒนาด้วย Object-Oriented Programming นั้น มีแนวคิดเพื่อที่จะทำให้ code ที่เขียนขึ้นมานั้นมันมีคุณภาพที่ดี เช่น SOLID, DRY(Don’t Repeat Yourself), Separation of Concern เป็นต้น แต่มีแนวปฏิบัติกลุ่มหนึ่งที่ผิดปกติ แต่เรามักพบเจอกันมากจนเป็นเรื่องปกติ ซึ่งสามารถรวบรวมมาอยู่ในชื่อที่เรียกว่า “STUPID&#

Read More…