Pages

วันอังคาร, ตุลาคม 08, 2556

[Java] 5 วิธีเขียน Code ให้อ่านง่าย

ช่วงนี้สำนวน แนวๆ "ทุบกำแพงเจอไททัน" ค่อนข้างจะได้ใช้บ่อยเนื่องมาจากที่ออฟฟิศกำลังพยามเอา TDD มาใช้ แต่ด้วยโครงสร้างของโปรแกรมที่พัฒนามาอย่างน้อยๆ ก็เกือบ 10 ปี เลยทำให้เกิดอาการของหายของพังไปบ้าง ครั้นจะเขียนใหม่ทั้งหมดก็แลดู over power มากเกินไป ... เลยแวปมาเขียน blog สั้นๆ เกี่ยวกับวิธีเขียน code ให้อ่านง่ายๆ ไว้หน่อยดีกว่า

อนึ่ง คำว่า "อ่านง่าย" แปลได้หลายความหมาย การที่บอกว่าอ่านง่ายในนิยามของผู้เขียนคือจะต้องมีทักษะการออกแบบและการเขียนโปรแกรมเชิงวัตถุ พอสมควร ... เอาล่ะ มาเริ่มเลยดีกว่า

1. อย่า code ถ้า Test ไม่ได้ ... กฎเหล็กอันหนักหน่วง ที่บางทีก็แอบแหก .... แต่ต้องเข้าใจว่ามันเป็นวิธีที่ดีที่เราควรคำนึงถึงการ Test ก่อนลงมือแก้ไขอะไรลงไป เพราะจะทำให้เราเข้าใจได้ว่า ถ้าเราจำเป็นต้องใช้ code นั้นในกรณีอื่นๆ เราจะมีชีวิตที่ดีขึ้นหรือไม่ สิ่งที่เขียนไปแล้วจะมีคนด่าลับหลังเหรอเปล่า ....

2. อย่าทำลาย Law of Demeter - จริงอยู่ว่า ในวงปาร์ตี้ที่เราจัดขึ้นโดยชวนผองเพื่อนมาร่วมงาน เราสามารถคุยกับทุกคนที่เข้ามาในปาร์ตี้ได้ แม้ว่าคนๆ นั้น จะเป็น เพื่อนของเพื่อนของเพื่อน ก็ตาม ... แต่ในเนื้อแท้แล้ว เราจะรู้จักคนๆ นั้น ได้ก็ต่อเมื่อ คนที่รู้จักเราพาเค้ามาในงานเท่านั้น ... เราจึงไม่ควรมีความสัมพันธ์กับคนๆ นั้นโดยตรงจนกว่าจะมั่นใจได้ว่า เราจำเป็นต้องรู้จักเค้าจริงๆ

3. จิตใจโลเลอย่าใช้ static - อันตรายมากสำหรับการใช้ static หากจิตใจไม่มั่นคง ... โลกคงจะปั่นป่วนไม่ใช่น้อยหากพระอาทิตย์ไม่ขึ้นทางทิศตะวันออกเสมอ ....

4. interface over subclass - อยากได้ "ยาม" อย่าจ้างลูกของ "ยาม" ควรจ้าง "ยาม" ไม่ใช่ลูกของคนที่เคยเป็น "ยาม" มันย้อนแย้งในหน้าที่ เพราะเราต้องการ "ยาม"  

5. Given When Then - วิธีเขียนโปรแกรมให้ง่ายที่สุดคือการคิดแบบเป็นระบบ input / process / output ... พื้นฐานง่ายๆแต่ตีความได้ลึกซึ้ง ... การใช้ Given when then ก็เป็นการขยายความเพื่อให้เราคิด logic ในการเขียนโปรแกรมให้ถี่ถ้วนก่อนลงมือทำจริงทำให้เราตอบสนองกับ scenario ที่คาดไม่ถึงได้

แลดูค่อนข้าง abstract แต่คิดว่าแค่ห้าข้อนี้น่าจะทำให้ชีวิต Java Dev อย่างเราๆ ท่านๆ สะดวกสบายมากยิ่งขึ้นครับ