Phỏng vấn

Peter McKee, Trưởng bộ phận Quan hệ Phát triển tại Sonar – Loạt phỏng vấn

mm
Thêm Unite.AI vào các nguồn ưu tiên của bạn trên Google

Peter McKee là Trưởng bộ phận Quan hệ Phát triển tại Sonar, một nền tảng giải quyết thách thức trị giá nghìn tỷ đô la về mã kém chất lượng. Sonar trang bị cho các nhà phát triển và tổ chức để đạt được một trạng thái mã sạch một cách hệ thống, vì vậy tất cả mã đều phù hợp cho phát triển và sản xuất. Bằng cách áp dụng phương pháp mã sạch khi mã hóa của Sonar, các tổ chức giảm thiểu rủi ro, giảm nợ kỹ thuật và thu được nhiều giá trị hơn từ phần mềm của họ một cách dự đoán và bền vững.

Điều gì ban đầu thu hút bạn đến với khoa học máy tính?

Tôi luôn quan tâm đến máy tính từ khi còn nhỏ. Ngay cả khi tôi ban đầu theo đuổi một con đường sự nghiệp khác, tôi vẫn luôn bị thu hút bởi máy tính và lập trình. Tại một thời điểm, bố tôi đang điều hành một công ty thép ở Virginia và họ đã mất nhóm tư vấn của mình. Vì tôi đã học cách lập trình khi còn nhỏ, ông đã mời tôi đến làm việc và xây dựng hệ thống cho ông. Tôi không biết, thành thực, tôi đang làm gì 100% vào thời điểm đó, nhưng tôi đã học từ sách và làm việc trên công việc, và trở thành tự học hoàn toàn. Điều đó tiếp tục thúc đẩy sự quan tâm của tôi đến lập trình và máy tính và thực sự củng cố sự quan tâm của tôi đến khoa học máy tính.

Bạn có thể giải thích rõ hơn về mã sạch và tại sao nó lại quan trọng?

Người ta đã nói trong nhiều năm rằng phần mềm sẽ ăn cả thế giới, và tôi sẽ nói rằng chúng ta đang ở điểm mà điều đó đã trở thành chính thức – thế giới được xây dựng trên phần mềm và mọi công ty đều là một công ty phần mềm. Tại nền tảng của phần mềm tốt là mã chất lượng cao, vì mã là cốt lõi của tất cả phần mềm và quyết định hành vi và hiệu suất của nó. Đây là lý do tại sao mã sạch — mã nhất quán, có chủ đích, thích ứng và có trách nhiệm — lại quan trọng. Mã sạch là dễ hiểu và thay đổi, hoạt động trơn tru tại thời gian chạy và không chứa nợ kỹ thuật, do đó, nó phù hợp với mục đích. Mã sạch là tiêu chuẩn mà các tổ chức nên áp dụng để đảm bảo rằng phần mềm của họ tiếp tục là một tài sản — không phải là một trách nhiệm — và là chìa khóa cho thành công kinh doanh ngày nay.

Mã sạch mang lại lợi ích cho các nhóm và tổ chức thuộc mọi quy mô và trình độ, và tăng giá trị của phần mềm như một kết quả. Một số lợi ích cụ thể là:

  • Tăng cường kỹ năng phát triển — Các nhà phát triển có thể phát hiện, hiểu và giải quyết vấn đề khi mã hóa cũng như học hỏi các phương pháp hay nhất
  • Tăng hiệu suất và năng suất — Giảm thiểu việc làm lại liên tục và chu kỳ phản hồi dài, dẫn đến năng suất cao hơn
  • Giảm thiểu rủi ro danh tiếng và kinh doanh — Mã sạch đảm bảo ít rủi ro bảo mật hơn bằng cách cho phép các nhóm giải quyết vấn đề trước khi chúng đến sản xuất
  • Giảm nợ kỹ thuật cấp mã — Mã sạch dần dần giải quyết nợ của cơ sở mã mà không cần phải thay thế ứng dụng lớn và gián đoạn
  • Tăng tốc độ phát triển phần mềm — Mã sạch tiêu chuẩn và luồng được sắp xếp hợp lý cải thiện tốc độ DevOps, thúc đẩy thời gian đưa sản phẩm ra thị trường nhanh hơn

Bạn có thể thảo luận về tầm quan trọng của tính nhất quán và cấu trúc trong mã, và một số ví dụ về mã nhất quán và sạch?

Tính nhất quán của chất lượng mã là điều mà mọi người quản lý hoặc giám đốc kỹ thuật đều nhằm duy trì. Tính nhất quán rất quan trọng khi nói đến chất lượng mã vì tính nhất quán dẫn đến khả năng dự đoán. Nó được viết theo một cách đồng nhất và thông thường — tất cả mã đều trông giống nhau và tuân theo một mẫu thường xuyên, ngay cả khi có nhiều người đóng góp tại các thời điểm khác nhau. Mã nhất quán được định dạng, thông thường và có thể nhận biết. Khi các tiêu chuẩn mã hóa nhất quán được áp dụng, các nhà phát triển trở nên hiệu quả hơn và có thể đáp ứng kỳ vọng giao hàng của họ với tốc độ và độ chính xác.

Bạn có thể thảo luận về tầm quan trọng của mã có thể xử lý các điều kiện không mong muốn, và tại sao điều này không nên bị bỏ qua?

Các nhà phát triển luôn cố gắng dự đoán và chuẩn bị cho các sự kiện không mong muốn trong quá trình thiết kế và phát triển, nhưng điều này không thể ngăn chặn được trong mọi trường hợp. Các trạng thái không mong muốn có thể phát sinh do sử dụng không đúng ý hoặc các cuộc tấn công có chủ đích. Các trạng thái không mong muốn này có thể vô tình giới thiệu các lỗ hổng bảo mật mà các kẻ tấn công có thể khai thác. Đây là lý do tại sao các nhà phát triển nên luôn cố gắng cải thiện chất lượng và độ ổn định của mã của họ và kiểm tra các điều kiện không mong muốn. Bằng cách tuân theo phương pháp mã sạch khi mã hóa, các nhóm có thể tăng tốc các tính năng mới, tránh các chi phí làm lại không cần thiết và thúc đẩy sự phát triển và giữ chân nhân tài. Mã sạch thúc đẩy bảo mật, khả năng bảo trì và độ tin cậy, và có thể cho phép các nhà phát triển dự đoán và xử lý các trạng thái không mong muốn một cách hiệu quả hơn và đưa phần mềm trở lại hoạt động nhanh hơn.

Bạn có thể thảo luận về lợi ích của việc sử dụng Trí tuệ Nhân tạo Phát sinh cho việc tạo mã?

Đầu tư Trí tuệ Nhân tạo vào chu kỳ phát triển phần mềm có lợi ích của nó, chẳng hạn như cho phép các nhà phát triển làm việc hiệu quả hơn. Trên thực tế, nghiên cứu GitHub đã phát hiện ra rằng các nhà phát triển có thể hoàn thành nhiệm vụ nhanh hơn 50% khi sử dụng Trí tuệ Nhân tạo. Trí tuệ Nhân tạo Phát sinh cũng có thể tạo mã nhanh hơn, và ngược lại, giảm bớt gánh nặng của các nhiệm vụ nhàm chán, thường xuyên — như tài liệu hoặc tạo mã — khỏi họ, vì vậy họ có thể tập trung vào công việc có giá trị cao, thú vị hơn để giải quyết các vấn đề phức tạp hơn. Dù mã được tạo ra như thế nào, điều quan trọng là nó phải được kiểm tra theo các tiêu chuẩn mã sạch để đảm bảo mã đó an toàn, đáng tin cậy và có thể bảo trì.

Một số điểm yếu và rủi ro tiềm ẩn của mã tạo ra là gì?

 Mặc dù Trí tuệ Nhân tạo có thể giải phóng thời gian của các nhà phát triển để làm việc trên các dự án có giá trị cao hơn và tăng năng suất, nhưng nó không đi kèm mà không có rủi ro. Đây là lý do tại sao nhu cầu về các nhà phát triển sẽ không biến mất trong thời đại Trí tuệ Nhân tạo. Vì các công cụ Trí tuệ Nhân tạo Phát sinh có thể tạo ra rất nhiều mã nhanh chóng, có tiềm năng cho các lỗi. Dưới đây là một số điểm yếu cụ thể:

  • Trách nhiệm: Mã tạo ra bởi Trí tuệ Nhân tạo giảm khả năng trách nhiệm của con người đối với mã được tạo ra, điều này có thể khiến việc giải quyết vấn đề trở nên khó khăn hơn.
  • Lỗ hổng: Vì nó được tạo ra từ thông tin được đóng góp bởi đám đông, không có gì đảm bảo rằng mã được tạo ra là an toàn hoặc sạch. Có thể có lỗi hoặc vấn đề bảo mật mà có thể đặt doanh nghiệp vào rủi ro.
  • Chất lượng: Trí tuệ Nhân tạo không kiểm tra lại chất lượng, và chỉ vì nó được tạo ra bởi Trí tuệ Nhân tạo không có nghĩa là nó hiệu quả hoặc có chất lượng cao.
  • Không có ngữ cảnh: Mất đi yếu tố con người tự nhiên có nghĩa là bạn mất đi ngữ cảnh của một vấn đề hoặc dự án. Mã tạo ra bởi Trí tuệ Nhân tạo phải được xem xét lại để đảm bảo nó hoàn thành công việc một cách đầy đủ.

Khi các nhà phát triển áp dụng phương pháp mã sạch khi mã hóa với mã của họ — mã được tạo ra bởi con người hoặc Trí tuệ Nhân tạo — họ có thể đảm bảo rằng mã đó phù hợp cho phát triển và sản xuất và đáp ứng các tiêu chuẩn chất lượng của tổ chức của họ.

Một số biến khác cần được xem xét trong mã phù hợp cho sản xuất là gì?

 Các nhà phát triển viết mã tuân theo các nguyên tắc mã sạch có thể tự tin rằng mã của họ phù hợp cho phát triển và sản xuất, điều này có nghĩa là mã đó tuân theo các đặc điểm sau:

  • Đồng nhất: Mã nên nhất quán và tuân theo một phong cách chung. Ngay cả khi mã được thực hiện bởi nhiều nhà phát triển khác nhau theo thời gian, nó nên có một ngoại hình tương tự và tuân theo các mẫu đã được thiết lập trước đó.
  • Có chủ đích: Mã có chủ đích nên đọc như nó được viết với sự chú ý và chăm sóc để thể hiện mục đích của nó; nó nên chỉ có một cách giải thích có sẵn.
  • Thích ứng: Mã thích ứng được chia thành các đoạn và tổ chức theo cách làm cho nó dễ dàng quản lý và nhìn thấy mối quan hệ giữa từng dòng mã. Điều này làm cho mã được cấu trúc để dễ dàng và tự tin tiến hóa.
  • Trách nhiệm: Mã, và các nhà phát triển của nó, nên ý thức được các nghĩa vụ đạo đức liên quan đến dữ liệu và ảnh hưởng tiềm tàng của nó đối với các chuẩn mực xã hội. Mã cuối cùng không nên đặt ra rủi ro không ngừng về việc vô tình gây hại cho các bên thứ ba.

Bạn có thể thảo luận về một số dịch vụ khác của Sonar và cách nó giúp các nhà phát triển xây dựng mã có trách nhiệm, bảo mật, chất lượng cao và nhanh chóng một cách hệ thống?

 Thông qua các công cụ phân tích hàng đầu trong ngành của chúng tôi, Sonar xác định các vấn đề mã hóa một cách toàn diện và đề xuất các bản sửa lỗi với các vòng phản hồi ngắn trong khi giáo dục nhà phát triển trong ngữ cảnh, cuối cùng cho phép các tổ chức xây dựng mã có trách nhiệm, bảo mật, chất lượng cao một cách nhanh chóng và hệ thống. Các yếu tố cốt lõi của giải pháp Sonar là SonarLint, SonarQube (tự quản lý; mã nguồn mở), và SonarCloud (SaaS), với phạm vi bảo vệ rộng lớn hỗ trợ hơn 30 ngôn ngữ lập trình, khuôn khổ, và cơ sở hạ tầng, 11 IDE, và hơn 5.000 quy tắc mã hóa và ngôn ngữ cụ thể.

SonarLint, một tiện ích mở rộng IDE, cung cấp dòng kiểm tra đầu tiên để tìm ra các vấn đề trong thời gian thực từ khi mã được viết. Nó bắt được một lượng lớn vấn đề ngay từ đầu và giúp các nhà phát triển phát hiện và sửa lỗi như một công cụ kiểm tra lỗi chính tả cho mã. SonarQube và SonarCloud, các công cụ xem xét mã tĩnh của Sonar, liên tục kiểm tra và phân tích cơ sở mã, với tích hợp SonarLint. Sử dụng các cổng chất lượng để xác định xem mã có đáp ứng các tiêu chuẩn chất lượng, bảo mật và độ tin cậy đã định cho sản xuất hay không, SonarQube và SonarCloud kiểm tra mã về các lỗi, lỗ hổng, điểm nóng bảo mật và mùi mã.

Kết hợp bộ giải pháp của chúng tôi với phương pháp mã sạch khi mã hóa — một phương pháp tuân theo các tiêu chuẩn đã thiết lập để giữ mã mới, thêm, hoặc chỉnh sửa sạch — các nhà phát triển và tổ chức được phép cung cấp mã sạch và khắc phục mã hiện có một cách tự nhiên, vì vậy họ có thể tập trung vào các dự án mới, sáng tạo mang lại giá trị kinh doanh

Làm thế nào Sonar hỗ trợ việc đảm bảo mã tuân thủ và đáp ứng các tiêu chuẩn ngành?

Sonar giúp các nhà phát triển có được phản hồi ngay lập tức và được ngữ cảnh hóa, làm nổi bật các vấn đề nơi chúng nằm trong cơ sở mã, trong luồng phát triển dựa trên kinh nghiệm của các công cụ phân tích ngôn ngữ. Các nhà phát triển có được các giải thích rõ ràng về lý do tại sao một vấn đề xảy ra và cách nhanh chóng khắc phục nó, cũng như các tài nguyên bổ sung để học hỏi sâu hơn. Chúng tôi có giáo dục được xây dựng trong toàn bộ luồng làm việc, từ IDE đến CI/CD. Ví dụ, Sonar có các quy tắc MISRA C++ 2023 cụ thể có sẵn trong SonarLint để giúp các nhóm tạo mã được chuẩn bị tốt nhất cho chứng nhận cuối cùng. Nó cung cấp hướng dẫn mã hóa, giải thích lý do tại sao một vấn đề được đánh dấu và cách sửa nó, để đảm bảo rằng mã được viết là MISRA-compliant.

Visions của bạn về cách Trí tuệ Nhân tạo sẽ biến đổi việc mã hóa trong tương lai là gì?

 Tôi nghĩ Trí tuệ Nhân tạo sẽ tiếp tục mang lại giá trị lớn trong việc giải quyết sự kiệt sức của các nhà phát triển. Mặc dù tôi không nghĩ Trí tuệ Nhân tạo sẽ bao giờ có thể off-load việc suy nghĩ và chạm của con người, nhưng tôi nghĩ rằng ngay cả vài tháng từ bây giờ, chúng ta sẽ thấy một tập hợp hoàn toàn mới của GPT — không kể đến những gì vài năm từ bây giờ sẽ trông như thế nào. Tôi không tin rằng các nhà công nghệ hoặc nhà phát triển sẽ biến mất, nhưng cách họ làm việc hàng ngày chắc chắn sẽ thay đổi. Cách các nhà phát triển sử dụng Trí tuệ Nhân tạo sẽ đơn giản và phổ biến như tìm kiếm trên Google (GOOGL ) để có được một lối tắt. Còn nhiều điều để khám phá về việc sử dụng Trí tuệ Nhân tạo, nhưng chúng ta vẫn phải xem xét yếu tố con người ở phía trước để kiểm tra các điểm yếu của Trí tuệ Nhân tạo. Có tiềm năng biến đổi cho phát triển phần mềm, nhưng chúng ta không được phép nó chạy mà không có kiểm soát — đặc biệt là khi các doanh nghiệp kỹ thuật số ngày nay phụ thuộc vào phần mềm hỗ trợ nó.

Cảm ơn vì cuộc phỏng vấn tuyệt vời, độc giả muốn tìm hiểu thêm nên truy cập Sonar.

Antoine là một nhà lãnh đạo có tầm nhìn và là đối tác sáng lập của Unite.AI, được thúc đẩy bởi niềm đam mê không ngừng nghỉ để định hình và quảng bá tương lai của AI và robot. Là một doanh nhân hàng loạt, ông tin rằng AI sẽ gây ra sự gián đoạn cho xã hội giống như điện, và thường được bắt gặp khi nói về tiềm năng của các công nghệ phá vỡ và AGI.

Là một nhà tương lai học, ông dành để khám phá cách những đổi mới này sẽ định hình thế giới của chúng ta. Ngoài ra, ông là người sáng lập của Securities.io, một nền tảng tập trung vào đầu tư vào các công nghệ tiên tiến đang định nghĩa lại tương lai và thay đổi toàn bộ lĩnh vực.