บทความนี้ผมจะอิงบริบทของการเขียน Mobile iOS นิดนึง แต่คิดว่าเข้าใจไม่ยาก
ถ้าเราทำ Mobile แล้วเราทำทั้ง iPhone, iPad แล้วมี Requirement ว่า iPhone ก็ให้แสดงเหมือน iPad นั่นแหละ แต่ Margin…
เรามักเชื่อว่าสิ่งที่ขัดขวางการพัฒนาคือการไม่โทษตัวเอง เราเชื่อว่าการโทษคนอื่นแต่ไม่โทษตัวเองทำให้ย่ำอยู่กับที่
แต่ผมมองว่าในการเขียนโปรแกรม โปรแกรมเมอร์มักจะไม่โตขึ้นเพราะโทษตัวเองเสียมากกว่า
สิ่งนึงที่ผมพบว่าเป็นเรื่องที่ทำให้การเขียนและการแก้โค้ด Clojure นั้นง่ายมากๆ และเป็นเหตุผลนึงเลยที่ทำให้วงเล็บมีพลัง คือ Scoping มันเล็กและสั้น
ผมอยากให้ดูตัวอย่างนี้
บล็อกนี้ได้แรงบันดาลใจจากวิดีโอนี้
ช่วงวันสองวันที่ผ่านมาอยากจะลองศึกษา Clojurescript เลยพยายามลอง Re-write TodoMvc ให้ด้วย Clojurescript โดยใช้ Reagent framework
https://github.com/chrisza4/playgrounds/tree/master/clojurescript-react
เป็นเรื่องน่าแปลกมากสำหรับวงการโปรแกรมเมอร์ของเราทั้งเมืองไทยและเมืองนอก (พึ่งไปอ่าน Reddit, Twitter มายาวๆ) ที่เรามักมีมุมมองที่ว่า
“โค้ดที่ดีต้องใช้เวลาทำอย่างใส่ใจ เพื่อเป็นมืออาชีพ เพื่อให้คนอื่นในทีมไม่ปวดหัว”
I have to apologize, because for some degrees, the way that business working with programmer today is my fault, well it’s my generation fault.
อาจารย์ที่สอนเราท่านนึงบอกว่าภาษาที่ Global ทีสุดในโลกและเข้าใจง่ายที่สุดคือความรู้สึก การอธิบายว่าเรากำลังกังวล กำลังไม่สบายใจ กำลังรู้สึกเครียด การ Express ความรู้สึก มันเป็นการใช้ภาษาที่เคลียร์ ตรงไปตรงมา และเข้าใจง่ายกว่าการอธิบายเหตุผลอีก
เอาล่ะ หลังจากจบ Part 1 กับ Part 2 มาแล้วเราก็จะเริ่มดู Practical guide ที่จะแก้ไขปัญหาแล้ว
แต่ก่อนอื่นผมขอทบทวนสิ่งที่อยากสื่อใน Part 1 หรือ 2 ซ้ำอีกรอบนะครับ ว่าให้เราระวังเรื่องการสร้าง Abstraction ขึ้นมาเร็วเกินไปให้ดี…
หมายเหตุ: ตอนแรก Part 2 ผมตั้งใจจะเขียนเรื่องการ Refactor การแก้ไขเลย แต่พอเขียนไปเขียนมาซักพักพบว่าผมเกริ่นเรื่อง Wrong abstraction ก่อนน่าจะดีกว่า เนื่องจากมันเป็นฐานปัญหาที่ผมอยากจะกล่าวถึง แล้วน้อยคนจริงๆ จะเขียนเรื่องนี้ในภาษาไทย