เขียน code อย่างไร ไม่ให้โดนด่าพ่องง ตอนที่ 1 Clean Code: เราจะเขียน code ให้คนอ่าน

Joaquin Fleck
odds.team
Published in
1 min readAug 14, 2018

การฟังเพลงจากสถานีวิทยุ หากมีคลื่นรบกวนสูง ก็จะทำให้เราได้ยินเพลงไม่ชัด หรือฟังไม่รู้เรื่องนั่นเอง หากจะแก้ไขก็ต้องทำการเพิ่มความเข้มของสัญญาณ หรือลดคลื่นรบกวนเพื่อให้อัตราส่วนของความเข้มสัญญาณมีมากกว่าคลื่นรบกวน เราจะได้ยินเพลงชัดขึ้น

เราลองมาเปรียบเทียบในการพัฒนาซอฟต์แวร์กัน

การอ่าน source code นั้น เราต้องใช้สมองของเราเป็น compiler ซึ่งโดยปกติแล้ว มนุษย์มีความจำระยะสั้นที่จำกัด อาจจะไม่เกิน 7 อย่าง ใน 1 ครั้งที่ต้องการจำ ดังนั้นหากใน source code 1 ไฟล์ มีความซับซ้อนสูง มีตัวแปรเยอะ จะทำให้เรายากในการไล่อ่านเพื่อเข้าใจ

แล้วเราจะทำอย่างไรกันดีล่ะ?

หากลองเปรียบเทียบความเข้มสัญญาณ กับ code ให้ลองใช้ TED rule

Terse คือ code ต้องสั้น กระชับ

Expressive คือ ต้องแสดงความกระจ่างว่า code นั้นทำงานอะไร

Do one thing คือ block ของ code ที่เราเขียนอยู่นั้น มีหน้าที่รับผิดชอบอย่างเดียวเท่านั้น

ดังนั้นถ้าเราใช้ TED rule กับ code จะเป็นการเพิ่มความเข้มของสัญญาณนั้นเอง

ในส่วนของคลื่นรบกวน ถ้าเทียบกับ code เรามีคลื่นรบกวนหลายๆอย่างมาก ยกตัวอย่างเช่น

มีจำนวนบรรทัดเยอะมากๆ

มีการประกาศตัวแปรไว้เยอะมากๆ

มีจำนวน methods เยอะมากๆ ใน 1 ไฟล์

มี code ที่ไม่ได้ใช้งาน

มีการเขียน code ซ้ำไปมา

รวมถึงมี comments ที่ไม่ได้ใช้งานแล้ว

นี่แค่ส่วนหนึ่งเท่านั้นเองนะ

ดังนั้นถ้าเราสามารถลดคลื่นรบกวนนี้ได้ ก็น่าจะทำให้ code ของเราอ่านได้ง่ายขึ้นด้วยเช่นกัน

และมี Principle ที่ช่วยเราได้ในเรื่อง การเขียน code ซ้ำไปมา ก็คือ DRY Principle

DRY Principle คือ Don’t Repeat Yourself เป็น Principle พื้นฐานในการพัฒนาซอฟต์แวร์เลยนะ

ความหมายตรงตัวเลย อย่าทำอะไรซ้ำๆ ก็คือ ไม่ควรเขียน code ที่มี Logic ที่ทำงานแบบเดียวกันไว้หลายๆตำแหน่ง หรือคัดลอกไปไว้ที่ต่างๆ ก็เพราะมันใช้งานแบบเดียวกัน ลองคิดดูว่า หากเรามี code ซ้ำๆกัน แล้ววันหนึ่งเราต้องแก้ code ในส่วนนั้นจะเกิดอะไรขึ้น…..

เราต้องตามแก้ทุกจุด ซึ่ง

ถ้า code มีขนาดใหญ่ขึ้นแล้ว เราจะตามแก้ได้ครบทุกจุดไหมนะ?

เราไม่ได้ทำงานคนเดียว

เราทำงานเป็นทีม

ทีมต้องดูแล source code

ดังนั้น แค่ computer เข้าใจ source code ของเราไม่เพียงพอแล้วนะ

เราต้องทำให้คนอ่านง่าย และเข้าใจด้วยเช่นกัน

ดังนั้นมาเขียน code ของเราให้เป็น self document กันเถอะ

ที่มา : Clean Code: Writing Code for Humans

--

--