สัมภาษณ์
ปีเตอร์ แมคคี หัวหน้าฝ่ายพัฒนาของ Sonar – ซีรีส์สัมภาษณ์

ปีเตอร์ แมคคี เป็นหัวหน้าฝ่ายพัฒนาของ Sonar ซึ่งเป็นแพลตฟอร์มที่แก้ปัญหาความท้าทายมูลค่าล้านล้านดอลลาร์ของโค้ดที่ไม่ดี Sonar จัดเตรียมให้นักพัฒนาและองค์กรสามารถบรรลุถึงสถานะของ Clean Code ได้อย่างเป็นระบบ เพื่อให้โค้ดทั้งหมดเหมาะสมสำหรับการพัฒนาและผลิต โดยการนำแนวทาง Clean as You Code ของ Sonar มาใช้ องค์กรสามารถลดความเสี่ยง ลดหนี้ทางเทคนิค และได้รับคุณค่าจากซอฟต์แวร์ของตนในลักษณะที่คาดการณ์ได้และยั่งยืน
สิ่งใดที่ดึงดูดคุณเข้าสู่วิชาวิทยาการคอมพิวเตอร์?
ฉันสนใจคอมพิวเตอร์ตั้งแต่ฉันยังเด็ก เมื่อฉันเริ่มตาม đuổiเส้นทางอาชีพอื่น ฉันก็ถูกดึงดูดกลับมาที่คอมพิวเตอร์และการเขียนโปรแกรมอีกครั้ง ในช่วงหนึ่ง พ่อของฉันกำลังดำเนินธุรกิจเหล็กในเวอร์จิเนีย และพวกเขากำลังจะสูญเสียทีมที่ปรึกษาของพวกเขา เนื่องจากฉันเรียนรู้การเขียนโปรแกรมเมื่อฉันยังเด็ก พ่อของฉันจึงเชิญฉันเข้าร่วมงานและสร้างระบบให้เขา ฉันไม่แน่ใจว่าฉันทำอะไรได้ 100% ในตอนแรก แต่ฉันเรียนรู้จากหนังสือและทำงานบนงานและกลายเป็นคนเรียนรู้ด้วยตนเอง ซึ่งกระตุ้นความสนใจของฉันในการเขียนโค้ดและคอมพิวเตอร์อย่างแท้จริง
คุณสามารถอธิบายว่า Clean Code คืออะไรและทำไมมันจึงสำคัญได้หรือไม่?
มีการกล่าวว่าซอฟต์แวร์จะกินโลกมาหลายปีแล้ว และฉันจะบอกว่าตอนนี้เป็นทางการแล้ว – โลกถูกสร้างขึ้นจากซอฟต์แวร์และทุกบริษัทเป็นบริษัทซอฟต์แวร์อย่างมีประสิทธิภาพ ที่ฐานของซอฟต์แวร์ที่ดีคือโค้ดคุณภาพ ซึ่งเป็นแก่นกลางของซอฟต์แวร์ทั้งหมดและกำหนดพฤติกรรมและประสิทธิภาพของมัน นี่คือเหตุผลที่ Clean Code — โค้ดที่สอดคล้องกัน มีจุดมุ่งหมาย มีความยืดหยุ่น และมีความรับผิดชอบ — มีความสำคัญอย่างมาก โค้ดที่สะอาดจะทำให้เข้าใจและเปลี่ยนแปลงได้ง่าย ทำงานราบรื่นในขณะรันไทม์ และไม่มีหนี้ทางเทคนิค ทำให้เหมาะสมกับวัตถุประสงค์ Clean Code คือมาตรฐานที่องค์กรควรยอมรับเพื่อให้แน่ใจว่าซอฟต์แวร์ของพวกเขายังคงเป็นทรัพย์สิน — ไม่ใช่ภาระ — และเป็นปัจจัยหลักในการขับเคลื่อนความสำเร็จทางธุรกิจในปัจจุบัน
Clean Code มีประโยชน์ต่อทีมและองค์กรทุกขนาดและระดับ และเพิ่มคุณค่าของซอฟต์แวร์เป็นผลลัพธ์ ประโยชน์บางประการคือ:
- เพิ่มทักษะการพัฒนา — นักพัฒนาสามารถตรวจจับ เข้าใจ และแก้ไขปัญหาได้ขณะเขียนโค้ด และเรียนรู้แนวทางปฏิบัติที่ดีที่สุด
- เพิ่มประสิทธิภาพและผลผลิต — ลดการทำงานซ้ำและรอบการให้ข้อมูลย้อนกลับ ทำให้ได้ผลผลิตที่มากขึ้น
- ลดความเสี่ยงต่อชื่อเสียงและธุรกิจ — Clean Code รับประกันว่ามีความเสี่ยงด้านความปลอดภัยน้อยลงโดยการให้ทีมแก้ไขปัญหาได้ก่อนที่จะเข้าสู่การผลิต
- ลดหนี้ทางเทคนิคระดับโค้ด — Clean Code จัดการกับหนี้ของฐานโค้ดโดยไม่ต้องมีการเปลี่ยนแปลงแอปพลิเคชันขนาดใหญ่และหยุดชะงัก
- เพิ่มความเร็วในการพัฒนาซอฟต์แวร์ — มาตรฐานและกระบวนการของ Clean Code ทำให้ความเร็วในการพัฒนาซอฟต์แวร์เร็วขึ้น ส่งผลให้สามารถเข้าสู่ตลาดได้เร็วขึ้น
คุณสามารถพูดถึงความสำคัญของความสอดคล้องและโครงสร้างในโค้ดได้หรือไม่ และตัวอย่างของโค้ดที่สะอาดและเป็นระบบคืออะไร?
คุณภาพโค้ดที่สอดคล้องกันเป็นสิ่งที่ผู้จัดการหรือผู้อำนวยการเทคนิคต้องการรักษาไว้ ความสอดคล้องมีความสำคัญอย่างมากเมื่อพูดถึงคุณภาพโค้ด เนื่องจากความสอดคล้องนำไปสู่ความคาดการณ์ได้ โค้ดที่สอดคล้องกันเขียนในลักษณะที่เป็นเอกลักษณ์และตามรูปแบบที่กำหนด — โค้ดทั้งหมดดูเหมือนกันและตามรูปแบบที่กำหนด แม้จะมีผู้ร่วมให้ข้อมูลหลายคนในเวลาที่แตกต่างกัน โค้ดที่สอดคล้องกันถูกจัดรูปแบบตามแบบแผนและสามารถระบุได้ เมื่อมีการนำมาตรฐานโค้ดที่สอดคล้องกันมาใช้ นักพัฒนาจะทำงานได้อย่างมีประสิทธิภาพมากขึ้นและสามารถบรรลุความคาดหวังในการส่งมอบได้อย่างรวดเร็วและแม่นยำ
คุณสามารถพูดถึงความสำคัญของโค้ดที่สามารถจัดการกับสภาพแวดล้อมที่ไม่คาดคิดได้หรือไม่ และทำไมสิ่งนี้ไม่ควรละเลย?
นักพัฒนาพยายามคาดการณ์และเตรียมพร้อมสำหรับสภาพแวดล้อมที่ไม่คาดคิดระหว่างการออกแบบและการพัฒนา แต่สิ่งนี้ไม่สามารถป้องกันได้ในทุกกรณี สภาพแวดล้อมที่ไม่คาดคิดอาจเกิดขึ้นได้เนื่องจากการใช้งานที่ไม่ได้ตั้งใจหรือการโจมตีที่ถูกกระตุ้นโดยเจตนา สภาพแวดล้อมที่ไม่คาดคิดเหล่านี้อาจนำไปสู่ช่องโหว่ด้านความปลอดภัยที่ผู้โจมตีสามารถใช้ประโยชน์ได้ นี่คือเหตุผลที่นักพัฒนาควรพยายามปรับปรุงคุณภาพและเสถียรภาพของโค้ดของตนและทดสอบสภาพแวดล้อมที่ไม่คาดคิด โดยการปฏิบัติตามแนวทาง Clean as You Code นักพัฒนาสามารถเร่งการนำเสนอฟีเจอร์ใหม่ๆ ลดค่าใช้จ่ายในการทำงานซ้ำที่ไม่จำเป็น และส่งเสริมการเติบโตและรักษาความสามารถของทีม Clean Code ส่งเสริมความปลอดภัย ความสามารถในการบำรุงรักษา และความน่าเชื่อถือ และสามารถช่วยให้นักพัฒนาคาดการณ์และจัดการกับสภาพแวดล้อมที่ไม่คาดคิดได้อย่างมีประสิทธิภาพมากขึ้น
คุณสามารถพูดถึงประโยชน์ของการใช้ Generative AI สำหรับการสร้างโค้ดได้หรือไม่?
การรวม AI เข้ากับวงจรชีวิตการพัฒนาซอฟต์แวร์มีประโยชน์ เช่น ช่วยให้นักพัฒนาทำงานได้อย่างมีประสิทธิภาพมากขึ้น ในความเป็นจริง การวิจัยของ GitHub พบว่านักพัฒนาสามารถทำงานได้เร็วขึ้นมากกว่า 50% โดยใช้ AI GenAI ยังสามารถสร้างโค้ดได้อย่างรวดเร็ว และในทางกลับกัน ลดภาระงานที่น่าเบื่อๆ เช่น การสร้างเอกสารหรือโค้ดสแน็ปช็อต — เพื่อให้นักพัฒนาสามารถมุ่งเน้นไปที่งานที่มีคุณค่าสูงและน่าพึงพอใจมากขึ้นในการแก้ปัญหาที่ซับซ้อน ไม่ว่าโค้ดจะถูกสร้างขึ้นอย่างไร ก็เป็นสิ่งสำคัญที่จะต้องตรวจสอบโค้ดกับมาตรฐาน Clean Code เพื่อให้แน่ใจว่าโค้ดมีความปลอดภัย มีความน่าเชื่อถือ และสามารถบำรุงรักษาได้
มีอะไรบ้างที่เป็นข้อเสียและความเสี่ยงของโค้ดที่สร้างขึ้น?
ในขณะที่ AI สามารถช่วยให้นักพัฒนามีเวลาในการทำงานในโครงการที่มีคุณค่าสูงและน่าพึงพอใจมากขึ้น มันไม่ได้มาโดยไม่มีความเสี่ยง นี่คือเหตุผลที่ความต้องการนักพัฒนาจะไม่หายไปในยุค AI เนื่องจากเครื่องมือ GenAI สามารถสร้างโค้ดได้อย่างรวดเร็ว มีศักยภาพที่จะเกิดข้อผิดพลาดได้ ต่อไปนี้คือข้อเสียและความเสี่ยงบางประการ:
- ความรับผิดชอบ: โค้ดที่สร้างโดย AI ลดความสามารถในการรับผิดชอบต่อโค้ดที่สร้างขึ้น ซึ่งสามารถทำให้การแก้ปัญหาเป็นเรื่องที่ยากขึ้น
- ช่องโหว่: เนื่องจากมันใช้ข้อมูลที่มาจากแหล่งต่างๆ มากมาย จึงไม่มีการรับประกันว่าโค้ดที่ผลิตออกมาจะปลอดภัยหรือสะอาด มีศักยภาพที่จะมีจุดอ่อนหรือปัญหาด้านความปลอดภัยที่สามารถทำให้ธุรกิจเสี่ยงได้
- คุณภาพ: AI ไม่ได้ตรวจสอบคุณภาพ และเพียงเพราะว่ามันถูกสร้างโดย AI ไม่ได้หมายความว่ามันจะทำงานได้อย่างมีประสิทธิภาพหรือมีคุณภาพสูง
- ไม่มีบริบท: การสูญเสียองค์ประกอบของมนุษย์โดยธรรมชาติหมายความว่าการสูญเสียบริบทของปัญหาหรือโครงการ โค้ดที่สร้างโดย AI ต้องได้รับการตรวจสอบเพื่อให้แน่ใจว่ามันทำงานได้อย่างเต็มที่
เมื่อนักพัฒนานำแนวทาง Clean as You Code มาใช้กับโค้ดของตน — ไม่ว่าจะเป็นโค้ดที่สร้างโดยมนุษย์หรือ AI — พวกเขาสามารถรับประกันได้ว่าโค้ดของตนเหมาะสมกับการพัฒนาและผลิต และตรงตามมาตรฐานที่กำหนดโดยองค์กรของตน
มีตัวแปรอื่นๆ อะไรที่ควรพิจารณาในการสร้างโค้ดที่เหมาะสมกับการผลิต?
นักพัฒนาที่เขียนโค้ดที่สอดคล้องกับหลักการของ Clean Code สามารถมั่นใจได้ว่าโค้ดของตนเหมาะสมกับการพัฒนาและผลิต ซึ่งหมายความว่าโค้ดต้องมีลักษณะดังต่อไปนี้:
- สอดคล้องกัน: โค้ดควรสอดคล้องกันและติดตามรูปแบบที่กำหนด รูปแบบเดียวกัน แม้ว่าจะมีนักพัฒนามากคนทำงานในโค้ดในเวลาต่างๆ ก็ตาม
- มีจุดมุ่งหมาย: โค้ดที่มีจุดมุ่งหมายควรอ่านได้อย่างชัดเจนและเขียนด้วยความใส่ใจและความระมัดระวังเพื่อแสดงจุดประสงค์ของมัน และควรจะมีการตีความที่เป็นไปได้เพียงอย่างเดียวเท่านั้น
- สามารถปรับเปลี่ยนได้: โค้ดที่สามารถปรับเปลี่ยนได้ถูกแบ่งออกและจัดระเบียบในลักษณะที่ทำให้การบริหารจัดการและเห็นความสัมพันธ์ระหว่างแต่ละบรรทัดของโค้ดได้ง่ายขึ้น ซึ่งทำให้โค้ดมีโครงสร้างที่เหมาะสมสำหรับการพัฒนาและเปลี่ยนแปลงได้อย่างมั่นใจ
- รับผิดชอบ: โค้ดและนักพัฒนาควรตระหนักถึงพันธกรณีทางจริยธรรมเกี่ยวกับข้อมูลและผลกระทบที่อาจเกิดขึ้นต่อสังคม โค้ดไม่ควรนำไปสู่ความเสี่ยงที่จะก่อให้เกิดอันตรายต่อผู้อื่นโดยไม่ได้ตั้งใจ
คุณสามารถพูดถึงการเสนอขายต่างๆ ของ Sonar และวิธีการช่วยให้นักพัฒนาสร้างโค้ดที่มีความรับผิดชอบ ความปลอดภัย และคุณภาพสูงได้อย่างรวดเร็วและเป็นระบบ?
ผ่านเครื่องมือวิเคราะห์ระดับอุตสาหกรรมของเรา Sonar ระบุปัญหาในการเขียนโค้ดในลักษณะที่ครอบคลุมและแนะนำการแก้ไขด้วยวงจรการให้ข้อมูลย้อนกลับที่สั้น ในขณะเดียวกันก็ให้การศึกษาแก่นักพัฒนาที่เกี่ยวข้อง สิ่งเหล่านี้ช่วยให้องค์กรมีการสร้างโค้ดที่มีความรับผิดชอบ ความปลอดภัย และคุณภาพสูงได้อย่างรวดเร็วและเป็นระบบ ส่วนประกอบหลักของโซลูชัน Sonar คือ SonarLint, SonarQube (บริหารจัดการตนเอง; โอเพ่นซอร์ส) และ SonarCloud (SaaS) โดยมีการครอบคลุมอย่างกว้างขวางที่รองรับมากกว่า 30 ภาษาโปรแกรมมิ่ง แฟร์มเวิร์ก และโครงสร้างพื้นฐาน 11 IDE และมากกว่า 5,000 กฎการเขียนโค้ดและภาษาเฉพาะ
SonarLint ซึ่งเป็น 익스เทนชันของ IDE ให้การตรวจสอบครั้งแรกเพื่อค้นหาปัญหาในเวลาจริงตั้งแต่ชั่วคราวที่โค้ดถูกเขียน มันจับปัญหาได้มากในตอนต้นและช่วยให้นักพัฒนาค้นหาและแก้ไขข้อผิดพลาด เช่นเดียวกับการตรวจสอบการ拼ด้วยการเขียนโค้ด SonarQube และ SonarCloud ซึ่งเป็นเครื่องมือวิเคราะห์โค้ดแบบสแตติกของ Sonar ตรวจสอบและวิเคราะห์ฐานโค้ดอย่างต่อเนื่อง โดยมีการผสานรวมกับ SonarLint โดยใช้ประตูคุณภาพเพื่อกำหนดว่าโค้ดตรงตามมาตรฐานคุณภาพ ความปลอดภัย และความน่าเชื่อถือที่กำหนดไว้สำหรับการผลิต SonarQube และ SonarCloud ตรวจสอบโค้ดสำหรับบั๊ก ช่องโหว่ จุดร้อนด้านความปลอดภัย และกลิ่นโค้ด
การผสมผสานโซลูชันของเราเข้ากับแนวทาง Clean as You Code — วิธีการที่ปฏิบัติตามมาตรฐานที่กำหนดไว้เพื่อรักษาโค้ดใหม่ ที่เพิ่มหรือแก้ไขให้สะอาด — นักพัฒนาสามารถส่งมอบโค้ดที่สะอาดและแก้ไขโค้ดที่มีอยู่ได้อย่างเป็นธรรมชาติ เพื่อให้พวกเขาสามารถมุ่งเน้นไปที่โครงการใหม่ๆ ที่ขับเคลื่อนคุณค่าทางธุรกิจ
Sonar ช่วยให้นักพัฒนามั่นใจได้อย่างไรว่าโค้ดของตนเป็นไปตามมาตรฐานอุตสาหกรรม?
Sonar ช่วยให้นักพัฒนามีการเข้าถึงข้อมูลที่ทันทีและเป็นบริบท โดยเน้นปัญหาในฐานโค้ดภายในกระบวนการพัฒนาตามประสบการณ์ของวิเคราะห์ภาษาหลายปี นักพัฒนามีการเข้าถึงคำอธิบายที่ชัดเจนเกี่ยวกับเหตุผลที่เกิดปัญหาและวิธีการแก้ไขอย่างรวดเร็ว รวมทั้งทรัพยากรเพิ่มเติมสำหรับการเรียนรู้ที่ลึกซึ้งยิ่งขึ้น เรามีการศึกษาที่ผสมผสานตลอดกระบวนการทำงาน ตั้งแต่ IDE ไปจนถึง CI/CD ตัวอย่างเช่น Sonar มีกฎ MISRA C++ 2023 ที่เฉพาะเจาะจงสำหรับ SonarLint เพื่อช่วยให้ทีมสร้างโค้ดที่เตรียมพร้อมสำหรับการรับรองอย่างดีที่สุด มันให้คำแนะนำในการเขียนโค้ด โดยอธิบายเหตุผลเบื้องหลังปัญหาที่ถูกจัดให้และวิธีการแก้ไข เพื่อให้แน่ใจว่าโค้ดที่เขียนเป็นไปตามมาตรฐาน MISRA
คุณมีวิสัยทัศน์อย่างไรเกี่ยวกับวิธีการที่ AI จะเปลี่ยนแปลงการเขียนโค้ดในอนาคต?
ฉันคิดว่า AI จะยังคงส่งมอบคุณค่าที่ดีในการแก้ไขปัญหาการเผาไหม้ของนักพัฒนา ในขณะที่ฉันไม่คิดว่า AI จะสามารถโหลดการคิดและการสัมผัสของมนุษย์ออกไปได้ แต่ฉันคิดว่าแม้เพียงไม่กี่เดือนข้างหน้า เราจะเห็นชุด GPT ใหม่ทั้งหมด — ไม่ต้องพูดถึงสิ่งที่จะเกิดขึ้นในไม่กี่ปีข้างหน้า ฉันไม่เชื่อว่าผู้เชี่ยวชาญด้านเทคโนโลยีหรือนักพัฒนาจะหายไป แต่วิธีการทำงานของพวกเขาจะเปลี่ยนแปลงไปอย่างแน่นอน วิธีการที่นักพัฒนาสามารถใช้ AI จะเป็นเรื่องง่ายและธรรมดาเหมือนกับการค้นหาใน Google (GOOGL ) เพื่อใช้เป็นทางลัด มีหลายสิ่งที่ต้องสำรวจเกี่ยวกับการใช้ AI แต่เราต้องคำนึงถึงองค์ประกอบของมนุษย์เป็นหลักเพื่อตรวจสอบข้อเสียของ AI มีศักยภาพในการเปลี่ยนแปลงสำหรับการพัฒนาซอฟต์แวร์ แต่เราต้องไม่ปล่อยให้มันทำงานโดยไม่มีการตรวจสอบ — โดยเฉพาะอย่างยิ่งเมื่อธุรกิจดิจิทัลในปัจจุบันพึ่งพาซอฟต์แวร์ที่เป็นพื้นฐาน
ขอขอบคุณสำหรับการสัมภาษณ์ที่ยอดเยี่ยม ผู้อ่านสามารถเยี่ยมชม Sonar เพื่อเรียนรู้เพิ่มเติม












