Tag Archives: SOLID

รีวิวหนังสือ Understanding the Four Rules of Simple Design

หนังสือชื่อสะดุดตากับคนเขียนที่พอจะรู้จักสไตล์การเขียนโปรแกรมของเค้าบ้าง เลยรีบคว้ามาอ่านอย่างรวดเร็ว

Understanding the Four Rules of Simple Design

Screen Shot 2014-04-02 at 9.32.55 PM

หนังสือเล่มนี้เขียนโดย Corey Haines ผู้ซึ่งเป็นคนที่ริเริ่มกิจกรรมการเขียนโปรแกรมที่เน้นการเขียนโค้ดให้สวยงามที่มีชื่อว่า Coderetreat (เหล่าพี่ ๆ ทั้งหลายนำมาจัดที่ไทยหลายครั้งแล้วเหมือนกัน) ผู้เขียนเกริ่นนำถึงความเป็นมาเป็นไปและสไตล์การจัดกิจกรรม แนะนำถึงแนวคิด simple design และความสำคัญของมัน จากนั้นเค้าจึงนำตัวอย่างของโค้ดที่เขียนกันใน Coderetreat มาให้ดู ปรับให้มันสวยงามขึ้นพร้อมทั้งอธิบายสาเหตุว่าทำไมเค้าจึงทำแบบนี้ และทำไมโค้ดใหม่จึงดีขึ้นกว่าโค้ดเก่า

Continue reading

closure, FP และ OOP

เมื่อวานนี้พูดถึงคำนิยามของ closure ไป วันนี้ผมจะนำมันมาใช้สร้างโค้ดที่มีลักษณะคล้ายโค้ดจากภาษา Object-oriented programming (OOP) ให้ดูครับ

เริ่มต้นด้วยโค้ด OOP บน Ruby ก่อน

class Prepend
  def initialize(start_word)
    @start_word = start_word
  end

  def prepend_for(end_word)
    @start_word + " " + end_word  # Not idiomatic Ruby but should be more familiar for other languages user
  end
end

hello = Prepend.new("Hello")
hello.prepend_for("Tap") # => "Hello Tap"
hello.prepend_for("OOP") # => "Hello OOP"

ผมทำสร้างคลาส Prepend ซึ่งมี constructor method ที่รับพารามิเตอร์ 1 ตัวคือคำแรก (start_word) เก็บไว้เป็น instance variable และสร้างเมท็อด prepend_for ที่รับพารามิเตอร์หนึ่งตัวคือคำท้าย (end_word) นำคำแรกและคำท้ายต่อกัน

Continue reading