Cách xem lại mã của riêng bạn
Làm thế nào để thực hiện đánh giá mã tốt? Show
Đánh giá mã là một phương pháp được sử dụng ngày nay ở hầu hết mọi công ty phát triển phần mềm. Nó cho phép bạn phát hiện lỗi ở giai đoạn sớm hơn của chu kỳ CI / CD và giảm nguy cơ xảy ra lỗi sau này. Đây cũng là một cơ hội tuyệt vời để trao đổi kiến thức giữa các lập trình viên - cả kiến thức về thực hành mã hóa tốt và kiến thức về lĩnh vực của một sản phẩm nhất định Theo định nghĩa, CR thường được giải thích như sau
khéo léo hơn. "Trước khi bất kỳ thứ gì được đưa vào sản xuất, hãy đưa mã của bạn cho ai đó trong nhóm và anh ấy sẽ kiểm tra xem tất cả có phải là git không. " Và đó là nhiều lý thuyết nhất mà chúng ta có thể tìm thấy trên Internet Đánh giá mã trong thực tếTrong một bài viết riêng, bạn có thể xem lại các ví dụ cụ thể về Đánh giá mã được thực hiện tốt và chưa tốt trong mã Dù sao thì trên thực tế, có nhiều hình thức đánh giá mã khác nhau. Có người review code rất cẩn thận, “bám víu” vào từng tên biến, tên method và “nổi đóa” khi thấy comment không cần thiết. Trong những ngôi nhà phần mềm như vậy, tranh chấp thường nảy sinh giữa các lập trình viên cố gắng thuyết phục người khác là đúng. Cuối cùng, nó hủy hoại tinh thần của đội và bầu không khí chung. Những người khác coi việc xem xét mã là một nhiệm vụ khó chịu và cần đánh dấu vào hộp kiểm tiếp theo để phát hành phiên bản tiếp theo của sản phẩm càng sớm càng tốt. Ở đây cũng vậy, đánh giá mã không hoạt động như bình thường.
T sự khác biệt giữa các cách tiếp cận khác nhau này về cơ bản đặt ra hai câu hỏi mà chúng tôi sẽ trả lời sau trong bài viết này.
Quy tắc 1. Càng đơn giản càng đẹpDuyệt quá nhiều mã một lúc cực kỳ mệt mỏi. Khi chúng tôi tập trung vào một đoạn duy nhất trong một thời gian dài, hiệu quả của chúng tôi giảm xuống và nguy cơ bỏ sót lỗi tăng lên. Do đó, tốt hơn hết là bạn nên xem lại các đoạn mã nhỏ. Như vậy làm CR cũng đỡ mệt lắm.
Không nên hiểu lầm điều này. Đánh giá mã ngắn không có nghĩa là chúng ta nên chạy đua với những đồng nghiệp có thể xem xét càng nhiều dòng mã càng tốt nhanh hơn.
Tất nhiên, số lượng tệp không phải là thước đo chính xác nếu bạn đang làm việc trong môi trường mà một tệp có thể có vài nghìn dòng mã. Đối với những người xử lý mã dài như vậy, tốt hơn là lấy số dòng mã trung bình dao động trong khoảng 24 (dữ liệu từ cùng một nghiên cứu của Google). Để đảm bảo rằng quy trình xem xét mã luôn hoàn tất và không có điều gì thiết yếu lọt khỏi sự chú ý của chúng tôi, việc lập danh sách những điều quan trọng nhất cần kiểm tra trong mã của bạn là cực kỳ hữu ích. Sẽ là tốt nhất nếu nó có dạng hộp kiểm. Một ví dụ về danh sách kiểm tra đánh giá mã ngắn cho người mới bắt đầu
1A. Tên biến có được chọn đúng không? 1B. Các phương thức có được đặt tên và tham số hóa tốt không? 2. Mã có tuân thủ các tiêu chuẩn mã hóa được chấp nhận rộng rãi không? Danh sách kiểm tra đánh giá mã đơn giản ở trên sẽ cho phép chúng tôi bắt đầu làm việc với CR và cải thiện mã một cách nhanh chóng và dễ dàng. Chỉ sau một vài lần lặp lại, chúng tôi sẽ có thể thấy rằng mã của chúng tôi bắt đầu trông đẹp hơn một chút - theo nguyên tắc trinh sát, chúng tôi dọn dẹp một chút. Khi chúng ta đã thực hành và có thói quen tránh những sai lầm cơ bản này, chúng ta có thể bắt đầu thêm nhiều điểm hơn vào danh sách này Ví dụ về các điểm khác sẽ được thêm vào danh sách kiểm tra đánh giá mã của chúng tôi trong các lần lặp lại tiếp theo
Như chúng tôi đã đề cập, đây chỉ là những điểm mẫu. Cấu trúc của một danh sách kiểm tra như vậy phải là kết quả của công việc chung của cả nhóm và quan trọng, nó phải là một danh sách được cập nhật một cách có hệ thống khi mã của chúng tôi và kiến thức của chính chúng tôi phát triển và cải thiện Quy tắc #3. Công cụ đánh giá mãNgười ta nói (không phải vô cớ) rằng một nhà phát triển giỏi là một nhà phát triển lười biếng, và điều này là do khi anh ta không muốn tự mình làm điều gì đó, anh ta sẽ luôn tìm một giải pháp đơn giản để thay thế anh ta trong công việc . Nguyên tắc này cũng áp dụng cho việc xem xét mã và mặc dù chúng tôi chưa thể loại trừ hoàn toàn con người khỏi quy trình này, nhưng đã có một số công cụ mà chúng tôi có thể sử dụng để giúp CR của mình dễ dàng hơn. Gây nênĐể tự động hóa các quy trình liên quan đến đánh giá mã bằng cách sử dụng các công cụ được tạo sẵn, chúng tôi phải có khả năng bắt đầu chúng tự động. Trong chủ đề này, các giải pháp như hook git và đường dẫn bitbucket, tôi. e. các công cụ được tích hợp trong kho mã của chúng tôi, có thể giúp chúng tôi. Phân tích mã tĩnhĐể thuận tiện cho việc giám sát mã, chúng tôi có thể đưa mã vào quy trình phân tích tĩnh Nhờ quá trình này, chúng tôi sẽ nhận được nhiều loại thông tin khác nhau, chẳng hạn như độ phức tạp của chu trình, tổng số dòng mã trong dự án hoặc số dòng mã trung bình trong tệp. Dữ liệu này sẽ cho phép chúng tôi theo dõi sự phát triển của hệ thống và phản ứng khi chúng tôi quan sát thấy một xu hướng tiêu cực Ví dụ: nếu số dòng mã trung bình trong các tệp từ bản phát hành này sang bản phát hành khác tiếp tục tăng, thì đó có thể là dấu hiệu cho thấy chúng tôi không làm việc đúng cách trong việc chia mã thành các lớp nhỏ. Rốt cuộc, các lớp nhỏ sẽ dễ bảo trì hơn và kiểm tra chúng sau này tiêu chuẩn mãNếu trong nhà phần mềm của chúng tôi, toàn bộ nhóm làm việc (hoặc cố gắng làm việc) theo một tiêu chuẩn viết mã nhất định, thì cũng có một công cụ sẽ tự động đảm bảo rằng không có gì không đáp ứng tiêu chuẩn của chúng tôi sẽ xuất hiện trong phiên bản sản xuất của chúng tôi. Ví dụ, một công cụ dành cho ngôn ngữ PHP là PHP CS Fixer, công cụ này không chỉ cho phép bạn xác thực các tiêu chuẩn mà còn có thể điều chỉnh mã theo một tiêu chuẩn đã xác định Quy tắc #4. Làm quan trọng hóa nóĐiểm cuối cùng, nhưng có lẽ là quan trọng nhất - làm cho nó trở nên quan trọng. Bất kể các công cụ được chọn, các tiêu chuẩn được áp dụng và lượng thời gian sử dụng, quy trình xem xét mã và các mục tiêu của nó phải được hiểu rõ trong toàn bộ nhóm phát triển. Trách nhiệm về việc này thuộc về tất cả mọi người - cả những người kiểm tra mã và những người viết mã Nhiệm vụ của người kiểm tra mã không chỉ là bỏ chọn các hộp kiểm trong danh sách chúng tôi đã chuẩn bị. Một người như vậy cũng nên hướng các nhận xét và đặt chỗ của mình vào mã theo cách mà tác giả của nó hiểu rõ tác động của một thay đổi nhất định hoặc sự thiếu sót của nó và rằng anh ta có thể học được điều gì đó từ phản hồi đó. Chỉ những lời phê bình được truyền đạt đúng cách và mang tính xây dựng mới có tác động tích cực đến sự phát triển của một con người khác. Quan tâm đến khía cạnh này cũng sẽ cải thiện bầu không khí làm việc chung trong nhóm. Rốt cuộc, ai lại không muốn làm việc ở một nơi mà họ có thể không ngừng phát triển kiến thức và kỹ năng của mình? Đổi lại, tác giả của mã phải học cách tách mình ra khỏi công việc của chính mình - anh ta không thể nhận tất cả các nhận xét một cách cá nhân. Điều cực kỳ quan trọng là các nhận xét mà chúng tôi nhận được do xem xét mã được coi là cơ hội để tìm hiểu và xem các giải pháp khả thi khác. "Tất cả chúng ta đều muốn sản phẩm có chất lượng cao nhất" phải là một trụ cột tuyệt đối của mỗi lần kiểm tra mã Một yếu tố quan trọng cũng là việc nhúng CR tốt vào quy trình phát triển phần mềm được áp dụng trong một công ty nhất định. Chúng ta không thể để xảy ra trường hợp ai đó dành nhiều thời gian để xem lại mã, rút ra kết luận và quan sát có thể cải thiện mã, và sau đó kiến thức này kết thúc ở một nơi mà không ai quay lại với nó. Những tình huống này gây bức xúc cho những ai code review. Trong một quy trình được tổ chức tốt, luôn có thời gian để cải thiện mã Cuối cùng, một điều quan trọng. Tranh chấp, xung đột và ý kiến bất đồngMột yếu tố quan trọng của quy trình xem xét mã cũng là sự phát triển của cơ chế giải quyết tranh chấp giữa các lập trình viên không thể giao tiếp với nhau. Việc bỏ qua yếu tố này cuối cùng có thể dẫn đến sự xuất hiện của các xung đột mãn tính và sự suy thoái toàn diện của bầu khí quyển. Nó cũng có thể khiến chúng ta từ bỏ hoàn toàn quy trình kiểm tra mã vì tất cả các ưu điểm và lợi ích của nó. Tác giả của bài viết Mateusz Antkowiak. Dữ liệu trong suốt của nhà phát triển PHP Lập trình viên chuyên nghiệp trong gần một thập kỷ. Anh ấy bắt đầu hành trình viết mã từ những điểm đến kỳ lạ như Lazarus Pascal hay Delphi, và bây giờ anh ấy bị cuốn hút vào vùng nước ổn định của lập trình hướng đối tượng. Anh ấy có nhiều kinh nghiệm về tự động hóa quy trình, điều này rất hữu ích trong các công cụ RegTech hiện tại của anh ấy trong Dữ liệu minh bạch 7 bước để xem xét mã là gì?7 bước để đánh giá mã tốt hơn . Thiết lập mục tiêu. Đánh giá mã không chỉ là tìm lỗi và lỗi. . Thực hiện đường chuyền đầu tiên của bạn. Cố gắng vượt qua ban đầu càng sớm càng tốt sau khi bạn nhận được yêu cầu. . Sử dụng hệ thống bán vé. . Chạy thử nghiệm. . Thử nghiệm các thay đổi được đề xuất. . Thực hiện đường chuyền chuyên sâu của bạn. . Gửi đánh giá Làm thế nào xem xét mã được thực hiện cho mã của bạn?Đặt kỳ vọng sớm. Với nhà phát triển về việc chú thích mã nguồn của họ trước khi xem xét. . Xác định các mục tiêu có thể định lượng. . Có một hệ thống để nắm bắt các số liệu. . Lên kế hoạch đủ thời gian. . Tài liệu đánh giá ngang hàng. . Nghỉ giải lao 20 phút. . Xác minh rằng các lỗi đã thực sự được sửa. . Sử dụng Đánh giá mã như một hoạt động xây dựng nhóm 3 loại đánh giá mã hóa là gì?Thực hành đánh giá mã được chia thành ba loại chính. lập trình cặp, đánh giá mã chính thức và đánh giá mã nhẹ .
Làm cách nào để cải thiện mã đánh giá của tôi?5 phương pháp hay nhất về đánh giá mã . Tạo danh sách kiểm tra đánh giá mã. . Giới thiệu số liệu đánh giá mã. . Đảm bảo phản hồi của bạn biện minh cho lập trường của bạn. . Không xem lại hơn 200-400 dòng mã cùng một lúc. . Bổ sung các phương pháp hay nhất của bạn bằng tự động hóa |