dependency-injection Archive

[Swift] มาทำการ refactor code พวก Singleton กันหน่อย

ใน code สำหรับ iOS ที่พัฒนาด้วยภาษา Swift นั้น พบว่ามีการเขียน code ในรูปแบบ Singleton เยอะมาก ๆ แน่นอนว่า วิธีการนี้มันมีทั้งข้อดีและข้อเสีย เช่น พัฒนาได้ง่าย ใช้งานง่าย ยากต่อการทดสอบ ยากต่อการ reuse state เปลี่ยนได้ตลอด ขอบเขตการทำงานเป็น global ไป ๆ มา ๆ ข้อเสียเยอะนะเนี่ย !! ดังนั้นจึงเป็นเหตุผลว่า ทำไมควร ลด ละ เลิก หรือถ้าต้องการใช้งานจริง ๆ ก็ควรระมัดระวังให้มากเข้าไว้ แต่ถ้าเป็น code ที่มีอยู่แล้วละ ? การจะทำการลบ code เหล่านี้ทิ้ง น่าจะเป็นงานช้างแน่ ๆ ดังนั้นเรามาหาวิธีการอยู่กับ Singleton กันเถอะ นั่นคือการ refactor code นั่นเอง [&hellip

Read More…

ลด ละ เลิก การสร้าง Logging application กันเถอะ !!

ในการสร้างระบบงานนั้น สิ่งหนึ่งที่ขาดไปไม่ได้เลยคือ logging การทำงานต่าง ๆ ของระบบ ดังนั้นทำให้เกิด code ที่เกี่ยวกับ logging จำนวนมาก เผลอ ๆ อาจจะมากกว่า code ส่วนอื่น ๆ ของระบบอีกต่างหาก ซึ่งผมชอบเรียกระบบเหล่านี้ว่า Logging application !! ผลที่ตามมาก็คือ code อุดมไปด้วย log อ่านยากมาก ๆ code จะทดสอบยากมาก ๆ บ่อยครั้งไม่สามารถเขียน unit test ได้เลย code ดูแลยากอีก !! ดังนั้นนักพัฒนาควรใส่ใจวิธีการจัดการ log มาก ๆ ด้วยนะ มาดูกันว่าทำอย่างไรได้บ้าง

Read More…

XCode :: ทำการ Inject Object จาก Storyboard กัน

เนื่องจากมีโอกาสได้แบ่งปันเรื่อง MVP pattern ให้ทีมนิดหน่อย (แบบไม่ตั้งใจ) ซึ่งมีเรื่องหนึ่งที่ติดค้างไว้ก็คือ การ Inject Object จาก Storyboard ไปเลย จะได้ไม่ต้องมาสร้าง object ขึ้นมาใน ViewController เอง ทำให้การเขียน code ง่าย และ สะดวกขึ้น

Read More…

[VDO] TDD :: ว่าด้วยเรื่องการจัดการ dependency

จาก VDO เรื่อง Test Driven Development(TDD) for iOS (and anything) ของคุณ Jon Reid ได้พูดถึงเรื่องการจัดการ dependency เพื่อทำให้ code ของเรานั้นมันไม่ผูกติดกันมากไป (Loose coupling) และสามารถทดสอบได้ง่าย จึงทำการสรุปไว้นิดหน่อย

Read More…

[ แปล ] ทำเข้าใจ Dependency Injection แบบง่าย ๆ

เคยอธิบายเรื่อง Dependency Injection ต่างจาก Dependency Inversion Principle อย่างไรนะ ? แต่พอกลับไปอ่านทบทวน คิดว่ามันยาวไป และอาจจะงงสำหรับคนเริ่มต้นใหม่ ๆ จึงลองไปหาข้อมูลเพิ่มเติ่ม พบบทความเรื่อง Dependency Injection Demystified โดยคุณ James Shore ซึ่งอธิบายได้อย่างดี และ เข้าใจง่ายมาก ตั้งแต่ปี 2006 แล้ว ดังนั้นจึงเอามาแปลกันนิดหน่อย

Read More…

Dependency Injection ต่างจาก Dependency Inversion Principle อย่างไรนะ

บ่อยครั้งที่มักพบว่า คนส่วนใหญ่มักจะสับสนกันระหว่างคำว่า Dependency Injection และ Dependency Inversion ยิ่งพูดตัวย่อว่า “DI” แล้ว ยิ่งงงอีกว่า I ย่อมาจากอะไรกันแน่ ดังนั้นมาดูกันว่า ทั้งสองคำมันคืออะไร เหมือนหรือต่างกันอย่างไร เพื่อไม่ให้เกิดความสับสน ดังนั้นมาทำความเข้าใจโดยสังเขปกันหน่อย

Read More…

ทำความเข้าใจ Dependency Injection ใน Go กันหน่อย

ช่วงไม่กี่วันเห็นพูดเรื่อง Dependency Injection (DI) ใน Go กัน เลยลองมาศึกษาหน่อยว่า มันทำอย่างไร และมีที่มาที่ไปอย่างไรบ้าง ซึ่งได้พบวิธีการบางอย่างที่น่าสนใจ เลยนำมาเขียนสรุป ซึ่งเป็นเพียงวิธีการหนึ่งเท่านั้นนะ

Read More…