#1 tech recruiter in thailand

วิธีเขียน Code ที่จะทำให้คุณรักในอนาคต

จากที่คุณ Lusan Das ซึ่งเป็นผู้เขียนบทความนี้ อยู่ใน Tech Industry มากว่า 5 ปี ทำให้เขาทบทวนถึงประสบการณ์ที่ผ่านมาและคิดว่าถึงเวลาแล้วที่เขาจะถ่ายทอดเรื่องราวที่มีประโยชน์กับผู้อื่นบ้าง โดยเขาจะมาบอกถึง วิธีเขียน Code ที่จะทำให้คุณรักในอนาคต

เกริ่นนำ

คุณ Lusan เริ่มต้นทำงานใน Multi-National Corporation แห่งหนึ่ง แต่หลังจากทำงานได้ไม่นาน ก็คิดว่า เขาต้องการทำงานในบทบาทที่ท้าทายและมีความรับผิดชอบมากยิ่งขึ้น หลังผ่านไป 1 ปี เขาก็ตัดสินใจเข้าร่วมทำงานใน Startup แห่งหนึ่ง

ที่นั่นมีทีม Development เพียงแค่ 5 คนเท่านั้น และมันก็ทำให้เขาเปลี่ยนมุมมองในการ Develop ด้วย เขาโชคดีที่ได้พบกับ Mentor และเพื่อนร่วมทีมที่ยอดเยี่ยมซึ่งทำให้เขาเติบโตยิ่งขึ้น แต่ด้วยการที่บริษัทเติบโตอย่างรวดเร็ว ทีมก็มักจะ “ประนีประนอม” กับคุณภาพของ Code เพื่อให้ส่งมอบงานทันตามเวลาที่กำหนด คนในทีมมักคิดว่าเดี๋ยวค่อยกลับมาแก้ไขในตอนท้าย และในที่สุดก็ไม่ค่อยมีใครกลับมาแก้ไขหรอก สุดท้ายมันก็นำไปสู่ปัญหา Technical Debt

จงอย่าประนีประนอมกับคุณภาพของ Code

หลังจากที่ทีมงานเริ่มตระหนักแล้วว่า คงไม่สามารถปล่อยให้มันบานปลายไปมากกว่านี้แล้ว ทีมจึงตัดสินใจ Rewrite Codebase ใหม่ทั้งหมด ซึ่งต้องใช้เวลามากขึ้นกว่าเดิม แต่ในที่สุด สิ่งนี้ก็นำไปสู่ ​​Codebase ที่ดีซึ่ง Scalable ได้และทำงานกับมันได้ง่ายขึ้นด้วย เขายังจำได้ว่า เคยมีการตั้งชื่อ Folder หนึ่งว่า “Shame Folder” หรือ Folder ที่น่าอับอาย เพื่อเตือนใจถึง กรณีที่ Developer ตัดสินใจที่จะเขียน Code โดยที่พวกเขาก็รู้ว่าจะสร้างปัญหาในภายหลัง วิธีนี้ทำให้ทีมงานรับผิดชอบต่อการ Maintain เรื่องของคุณภาพ Code และบทเรียนที่เขาได้เรียนรู้ก็คือ:

แม้ว่าเราจะต้องใช้เวลาเพิ่มอีกเล็กน้อย แต่เราก็ควรใช้เวลานั้นในการเขียน Code ที่มีคุณภาพเพื่ออนาคต เพราะความพยายามที่เราเพิ่มเติมเข้าไป จะช่วยให้เราประหยัดเวลาและค่าใช้จ่ายได้มาก

เมื่อเราแก้ไขปัญหาทางด้านสถาปัตยกรรม แต่สิ่งที่เราจะได้กลับมาคือ Performance เมื่อเราสร้าง Project เรามักใช้ Library เป็นจำนวนมากเพื่อการ Develop ที่รวดเร็ว และส่งผลให้ Project เริ่มมีปัญหา เพื่อแก้ปัญหานี้ ทีมงานจึงได้ทำการวิเคราะห์และพบว่า มี Library ที่ไม่จำเป็น อยู่เป็นจำนวนมาก และทีมงานก็สามารถสร้าง Library เหล่านั้นเองได้ด้วยซ้ำ ดังนั้นทีมงานจึงเลียนแบบ Library เหล่านั้นและสร้างเป็นของตัวเอง ทำให้ได้ผลลัพธ์ที่ยอดเยี่ยม คือ Page เร็วขึ้นมากเนื่องจากมีขนาดที่เล็กลง

ทำ Document และ Comment ใน Code อยู่เสมอ

เมื่อ Lusan ได้ถูกย้ายไปอยู่ทีมกับใหม่ สมาชิกใหม่ดูจะมีความคุ้นเคยกับ Library ที่มีอยู่ในท้องตลาด ทำให้พวกเขารู้สึกแปลกๆ กับ Codebase ที่ถูกเขียนขึ้นเอง ทีมงานเขียน Library ของตัวเองแต่กลับไม่มีเวลาในการทำ Document ซึ่งถือเป็นช่องโหว่ เขาได้เรียนรู้สิ่งที่สำคัญของ Document และ Comment ใน Code เขารู้ว่า Code ไม่ได้เกี่ยวกับตัวคุณเอง ในฐานะของผู้เขียน มันเป็นหน้าที่ของคุณที่จะเขียนเพื่อคนอื่นๆ

มันไม่ใช่เรื่องผิด ที่จะเขียน Library เป็นของตัวเอง แต่ถ้าคุณทำแล้วควรมี Document และ Comment ใน Code ของคุณ ทุกคนควรสามารถเข้าใจ Library ของคุณได้อย่างง่ายดายเพียงแค่อ่าน Document ของคุณ อย่าเขียนแค่เพื่อตัวเอง ในฐานะ Code Reviewer และ Maintainer คุณมีหน้าที่ในการตรวจสอบว่า ควรต้องมีสิ่งเหล่านี้

ไม่จำเป็นต้องทำสิ่งที่คนอื่นเคยทำแล้ว นอกจากมันจะ Maintain ได้

เมื่อเวลาผ่านไป Lusan ก็ตระหนักว่าไม่จำเป็นที่จะต้องทำในสิ่งที่คนอื่นเคยทำแล้ว เว้นแต่เราจะมีเวลามากในการ Develop และจัดทำ Document ในลักษณะเดียวกันเพื่อให้ทุกคนสามารถเข้าใจได้ หากคุณมี Library อยู่แล้วและมันช่วยแก้ไขปัญหาของคุณได้ มันก็เป็นความคิดที่ดีที่ควรจะมีส่วนร่วมในโครงการนั้น

ทำการ Test Codebase ของคุณทุกครั้ง

คงไม่ต้องบอกว่าการ Test สำคัญมากขนาดไหน ต้องขอบคุณ Library อย่าง Jest และ React test library รวมทั้งอื่นๆ อีกมากมาย การ Test Code เป็นเรื่องไม่ง่าย แต่ก็มันก็มีเครื่องมือช่วยให้ง่ายขึ้น บ่อยครั้งเมื่อคุณมี Codebase ขนาดใหญ่ แค่การเปลี่ยนแปลงCode เพียงบรรทัดเดียว ก็อาจทำให้ Application หยุดทำงานได้ หากการ Test ของเราเป็นแบบ Automate ก็ช่วยทำให้เรามั่นใจเกี่ยวกับการเปลี่ยนแปลงที่เราทำได้มากขึ้น

เรียนรู้อยู่เสมอ

Lusan ต้องการ Develop ในส่วนของ Frontend ให้รวดเร็วและมีประสิทธิภาพมากขึ้น ในที่สุดเขาก็ตัดสินใจที่จะเรียนรู้ React ส่วนเนื่องจากมี Background อยู่บ้างแล้ว เขาพบว่ามันเขียนได้ม่ยาก และวิธีเขียนก็ใกล้เคียงกับการเขียน JavaScript ธรรมดาๆ มันช่วยชีวิตของเขาง่ายขึ้น

Library อย่าง React, Vue, Angular และอื่นๆ (โดยเฉพาะ Redux) ไม่ได้บอกคุณถึงวิธีสร้าง UI ที่รวดเร็ว ขณะเดียวกันพวกมันยังเปิดประตูสู่ Concept อื่นๆ อีกเช่น Functional Programming, Immutability, และอื่นๆ อีกมากมาย ซึ่งจริงๆ แล้ว ช่วยให้คุณพัฒนางานฝีมือของคุณได้ดีขึ้น การเรียนรู้ React และ Redux ช่วยพัฒนาในสิ่งที่เขารู้อยู่แล้วให้ดียิ่งขึ้น

สรุป

เมื่อ Lusan มีประสบการณ์ ในที่สุดเขาก็เข้าร่วมงานกับ Startup อีกครั้ง ซึ่งเขาก็ได้รับมอบหมายให้สร้าง Product ตั้งแต่เริ่มต้นและต้องวางรากฐาน แต่คราวนี้เขาติดอาวุธให้ตัวเองด้วยประสบการณ์และความผิดพลาดทั้งหมดมาแล้ว เขามีความสุขที่จะพูดว่า เขาภูมิใจในสิ่งที่ได้สร้างขึ้น และแน่ใจว่าเส้นทางของเขายังไปได้อีกไกล การแสวงหาความสมบูรณ์แบบ เป็นเส้นทางที่ไม่มีวันสิ้นสุด แต่เราสามารถมุ่งมั่นที่จะเดินบนเส้นทางที่ถูกต้องเสมอ

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

ISM Technology Recruitment Ltd. (#1 Tech Recruiter in Thailand) เราเชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการกว่า 25 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย หากคุณเป็นคน IT ที่อยากทำงานท้าทายและร่วมงานกับองค์กรชั้นนำ สามารถฝากประวัติการทำงาน (Resume) ของคุณไว้กับ ISM ได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่

Source:  https://www.freecodecamp.org/

th