Phải làm gì nếu đồng nghiệp đang chỉnh sửa mã của bạn chỉ để thay đổi giao diện?


16

Bạn nên làm gì, nếu một đồng nghiệp đang chỉnh sửa mã của bạn?

Không có mục đích thêm chức năng hoặc sửa lỗi, chỉ để thay đổi giao diện ...


9
Tôi giả sử bạn có một vấn đề với điều này. Nếu vậy, tại sao? Nó làm cho mã tồi tệ hơn ?
Zaz

3
@Josh: Có trong thực tế, nó làm cho mã trở nên tồi tệ hơn, bởi vì một số lập trình viên khác khó duy trì hơn so với người đã viết nó.
Robert Koritnik

4
giao cho anh ta nhiều việc phải làm
Oscar Cabrero

4
@Robert - Tôi nghĩ bạn nhớ điểm của Josh. Thay đổi giao diện của mã có thể giúp duy trì khách quan dễ dàng hơn ... đặc biệt là nếu nó được định dạng kém để bắt đầu.
Stephen C

4
Nó thực sự là mã của bạn , hay nó thuộc về đội?
Eric King

Câu trả lời:


28

Nói chuyện với họ về nó. Đi vào cuộc trò chuyện với thái độ "Họ không làm điều này để làm phiền tôi hoặc vì họ có một số dạng rối loạn ám ảnh cưỡng chế; họ đang cố gắng làm cho mã của tôi tốt hơn."

Bởi vì bạn có thể sai. Đó có thể là một sửa lỗi tinh vi và bạn không phát hiện ra nó.

Hoặc, có thể là có một tiêu chuẩn mã hóa mà bạn không biết về việc bạn vi phạm và họ chỉ sửa nó.

Hoặc, có thể là họ đang cố làm phiền bạn hoặc họ có một dạng rối loạn ám ảnh cưỡng chế nào đó. Nếu đó là trường hợp, yêu cầu họ dừng lại một cách tử tế, và nếu điều đó không hiệu quả, hãy đưa nó lên với sếp của bạn.

Nhưng bạn sẽ không bao giờ biết trừ khi bạn hỏi.


17
Điều đáng chú ý là rất nhiều IDE có các tính năng định dạng tự động. Tôi sử dụng chúng mọi lúc mà không nghĩ về nó. Một số thậm chí sẽ định dạng tất cả các tệp trong dự án của bạn hoặc tất cả các tệp bạn đã mở, tùy thuộc vào cách cấu hình của nó. Nó có thể dễ dàng vô tình định dạng tự động.
Matt Olenik

@Matt: Điểm tuyệt vời.
BlairHippo

1
"Họ không làm điều này ... bởi vì họ có một số dạng rối loạn ám ảnh cưỡng chế;" Nói chủ yếu về bản thân tôi, đó không phải là luôn luôn như vậy! Khi nói đến mã tôi có hai điều: một người cầu toàn và một người lập dị gọn gàng. Mặc dù vậy, tôi thường nỗ lực để tránh áp dụng tâm lý này vào công việc của đồng nghiệp.
Nathan Taylor

5
Ồ, tôi không nói là đồng nghiệp của Tom KHÔNG phải là một kẻ lập dị OCD với ý thức về ranh giới kém. Tôi chỉ nói rằng đi vào một cuộc trò chuyện với suy nghĩ "Cái quái gì đang xảy ra với bạn?!" không phải là một cách tốt để có một cuộc trò chuyện hữu ích. :-)
BlairHippo

1
@Chris không cần phải lo lắng về việc biện minh, tôi luôn Ctrl + K + D!
Nathan Taylor

16

Tôi không kết hôn với cách mã của tôi tìm kiếm nó làm phiền tôi. :) Tôi cố gắng học hỏi từ những thay đổi. Có phải đồng nghiệp của tôi đã điều chỉnh tên biến? Viết một vòng lặp hiệu quả hơn? Làm cho mã dễ đọc hơn?

Nếu tôi không thể thấy những thay đổi đã cải thiện những gì đã có, tôi thường hỏi đồng nghiệp, người đã thực hiện những thay đổi đó là động lực đằng sau chúng. Có thể đó là lợi thế không rõ ràng đối với tôi. Và nếu tôi đúng và họ sai, thì có lẽ tôi có thể giải thích tại sao tôi viết nó theo cách tôi đã làm.

Nếu vẫn thất bại, hoàn nguyên việc đăng ký. ;)

Chỉnh sửa: Tất cả các cược đã tắt nếu mong muốn thay đổi mỹ phẩm giới thiệu một lỗi, mặc dù.


9

IMO bạn và nhóm của bạn nên sử dụng một tiêu chuẩn mã hóa. Nếu đây là trường hợp, thì các câu hỏi trở thành 'mã gốc của bạn có phù hợp với tiêu chuẩn không?' Nếu 'có' thì đồng nghiệp của bạn không nên chạm vào mã của bạn trừ khi thay đổi chức năng. Nếu 'không' thì tôi sợ đồng nghiệp của bạn có quyền dọn dẹp mã của bạn. Là một người dẫn dắt dự án, tôi thấy mình làm việc đó mọi lúc.

Nếu bạn không sử dụng một tiêu chuẩn mã hóa thì toàn bộ lập luận về những gì cấu thành 'mã tốt' trở nên quá chủ quan. Do đó tại sao bạn nên sử dụng một tiêu chuẩn mã hóa :)


8

Là một trong những người đó (những người thỉnh thoảng định dạng lại mã của người khác), lý do chính khiến tôi làm điều đó là khả năng đọc. Một số người cực kỳ cẩu thả với sự thụt lề của họ hoặc với các tab và không gian trộn.

Điều chính tôi có thói quen thay đổi là giảm các dòng dài để tôi có thể đọc toàn bộ mà không cần cuộn ngang. Tôi sẽ chia các câu lệnh phức tạp thành các câu lệnh riêng biệt hoặc định dạng lại các cuộc gọi / khai báo phương thức để liệt kê một tham số trên mỗi dòng nếu nó không phù hợp thoải mái trên một dòng. Tôi cũng sẽ chỉnh sửa các bình luận, để sửa lỗi tiếng Anh hoặc chỉ để làm cho mọi thứ rõ ràng hơn.

Vâng, tôi có thể để nó một mình, nhưng tôi muốn giảm bớt nỗ lực tinh thần cần thiết để đọc mã.

Bạn nên làm gì về nó? Đầu tiên, hãy xem xét rằng có thể người này đang làm cho mã của bạn tốt hơn. Ngoài ra, bạn nên đảm bảo rằng bạn có một số sự đồng thuận trong nhóm của mình về cách mã được định dạng. Nếu mỗi người có những thói quen khác nhau, nó sẽ làm mọi người chậm lại. Nếu họ không làm cho mã của bạn tốt hơn và họ đang đi ngược lại ngũ cốc, thì bạn cần phải đối đầu với họ về nó. Nếu điều đó không hiệu quả thì bạn có thể cần phải lôi kéo người khác tham gia.


Đó là khả năng đọc của bạn, tôi thấy mã SQL không được cấp phép dễ đọc hơn nhiều vì tôi đọc mã nhanh và thụt lề làm tôi chậm lại và khiến tôi khó tập trung hơn.
HLGEM

6

Hỏi họ tại sao họ đang làm điều đó; một lời giải thích hợp lệ có thể làm giảm sự thất vọng của bạn, nhưng bạn nên cho họ biết nó làm phiền bạn đến mức nào. Ai biết được, có thể họ nghĩ rằng họ đang làm cho bạn một việc và sẽ dừng lại khi họ học điều đó xúc phạm bạn. Hoặc bạn có thể đang đối phó với một người thực sự đang bị một tình trạng y tế.


"Hoặc họ bị OCD và có thể cần dùng thuốc." - tốt nhất không đề cập đến phần đó nếu bạn muốn duy trì sự thân thiện
Zaz

Tôi sẽ thực hiện một khoản trợ cấp.
JeffO

5

Anh ấy có được phép không? Các thay đổi có cải thiện mã không? Nếu vậy, hãy nuốt niềm tự hào của bạn. Nếu bạn cảm thấy chất lượng mã bị xấu đi, hãy liên hệ với đồng nghiệp và hỏi họ tại sao họ cảm thấy cần phải thay đổi mã của bạn mà không có lợi ích rõ ràng. Nếu việc đó được thực hiện một cách bất chấp hoặc bởi vì người đó cảm thấy nhầm họ tốt hơn bạn và bạn không thể làm việc đó với họ, hãy đưa nó lên với sếp của bạn.


5

IDE giống như Visual Studio có một tùy chọn được gọi là Format Documentđịnh dạng mã theo các quy tắc mà người dùng đã đặt trong IDE. Đó có thể là đồng nghiệp của bạn đang sử dụng điều này (có thể tự động mà không biết hoặc do ứng dụng có chủ ý). Có lẽ IDE của họ sử dụng khoảng trắng thay vì tab hoặc ngược lại và những thứ này đang được áp dụng tự động mà không hề biết? Nhưng bạn cần nói chuyện với họ để tìm hiểu.

Ngẫu nhiên, tôi sẽ thường định dạng lại mã của đồng nghiệp nếu nó rõ ràng không tuân theo một loại sơ đồ định dạng nào (nghĩa là nó ở khắp mọi nơi). Đó là một cách hy vọng tinh tế để làm cho họ chú ý. (Tuy nhiên, tôi sẽ không định dạng lại nếu nó gọn gàng, nhưng không theo ý thích của tôi).


1
"(Tuy nhiên, tôi sẽ không định dạng lại nếu nó gọn gàng, nhưng không theo ý thích của tôi)" - quy tắc rất quan trọng phải tuân theo, +1
Zaz

Các nguyên tắc phát triển của chúng tôi có xu hướng đặt kiểu mã nhiều hơn ở góc 'được đề xuất'. Tôi tự động định dạng mã theo các khuyến nghị ở cấp độ tệp nếu tôi thấy khó đọc.
Joeri Sebrechts

3

Nếu anh ấy thay đổi nó để đáp ứng các tiêu chuẩn mã hóa của nhóm của bạn, bạn nên tuân theo các tiêu chuẩn vào lần tới.

Nếu anh ta thay đổi nó sao cho nó không còn tuân theo các tiêu chuẩn mã hóa của nhóm bạn, hãy thông báo cho anh ta biết anh ta đã làm gì sai và yêu cầu anh ta thay đổi lại.

... Nhóm của bạn có một bộ tiêu chuẩn định dạng mã được mọi người sử dụng, phải không?


2

Thỉnh thoảng tôi sắp xếp lại mã được viết bởi các đồng nghiệp lộn xộn (hoặc sửa lỗi chính tả trong các bình luận). Họ biết rằng tôi bị ám ảnh trong định dạng và trật tự mã và do đó họ để tôi làm điều đó mà không phàn nàn quá nhiều. Đôi khi họ cũng cho tôi một soda hoặc cookie miễn phí.

Tất nhiên điều này là thỉnh thoảng công việc , vì nó đã phá vỡ chức năng "đổ lỗi" trong SVN.

Đây cũng là một cách rất cơ bản để thực hiện một số loại đánh giá mã (tôi thường đọc hầu hết các mã được đồng nghiệp cam kết trong các mô-đun tôi đang làm việc).


2

Mã công ướccác câu trả lời. Bạn nên có một trong công việc. Nếu bạn không, hãy bắt đầu ngay bây giờ (một điểm khởi đầu tốt là hướng dẫn phong cách google ). Khi có các quy tắc bằng văn bản (hoặc ít nhất được biết đến), câu trả lời cho câu hỏi của bạn là không đáng kể.


1

Tôi cảm thấy bạn đang nghĩ rằng thật xúc phạm khi làm như vậy ...? Ví dụ, bản thân tôi sẽ ngay lập tức sửa mã này

int myFunction( ) {

    int i ;
  return  0;

}

để trở thành

int myFunction() {
    int i;
    return 0;
}

vậy ... tôi có nên bị trừng phạt vì hành động của mình không? Trong cuộc sống thực, tôi thực sự có hàng tấn nhật ký SVN đọc 'Định dạng'. ;-)


0

Sử dụng một công cụ kiểm tra phong cách

Bắt đầu sử dụng StyleCop hoặc tương tự và thực thi các quy tắc kiểu mã và cũng khiến nó trở thành nghĩa vụ đối với tất cả các nhà phát triển sử dụng nó. Tất cả các mã sẽ trông giống nhau mà không có ngoại lệ. Và kết hợp với những người khôn ngoan để thảo luận về các quy tắc phù hợp nhất cho tổ chức của bạn. Mặc dù các quy tắc mặc định rất giống với mã khung .net.

Đó là cách dễ nhất để làm điều đó. Tôi thấy mình đã sửa mã của người khác tại một trong những người chủ trước đây của mình bởi vì anh chàng kia đang viết mã với số lượng dòng trống quá mức và không có quy tắc thụt đầu dòng nào. Mã thực sự không thể đọc được bởi một nhà phát triển trung bình. Nếu StyleCop tồn tại trở lại thì nó sẽ khiến nhiều người trong chúng ta thực sự hạnh phúc.


Tôi phải bỏ phiếu này. StyleCop là một triển khai khủng khiếp của một ý tưởng hay. 1) Nó chạy sau khi xây dựng khiến nó trở thành kẻ giết thời gian lớn trong các dự án lớn 2) Các quy tắc mặc định của nó thực sự mâu thuẫn với các mặc định của VS trong một số trường hợp 3) Một số quy tắc hoàn toàn vô dụng. Nó phàn nàn về "//" mà không có dấu cách và sau đó bảo bạn sử dụng "////" Một lần nữa, sau khi xây dựng. Đó là phần tồi tệ nhất. Nó sẽ không tệ, nhưng phần xây dựng sau đó thực sự giết chết bạn trong một dự án lớn với thời gian xây dựng dài.
MIA

Tôi sẽ không đồng ý với bạn về nhiều khía cạnh bạn đã chỉ ra. Bạn có thể cấu hình cách kiểm tra phong cách làm việc. Tôi thậm chí đã thực hiện một vài quy tắc riêng cung cấp định dạng mà tôi muốn. Về tốc độ tôi không thể nói nó tuyệt vời. Nhưng trên một chiếc máy tốt, nó sẽ hoạt động tốt. Chỉ cần nghĩ về tốc độ máy photocopy C ++ vào đầu những năm 90, nơi bạn thực sự có thể đi và chuẩn bị một tách trà trong thời gian đó. Trong khi bản dựng của bạn thất bại !!!!!! ;)
Robert Koritnik

Tôi mới bắt đầu sử dụng StyleCop để xem cách nó hoạt động và đôi khi hơi khó chịu, đôi khi nó cũng giúp tìm ra rất nhiều lỗi mà nếu không sẽ không được chú ý. Bạn không phải chạy nó như một phần của bản dựng và chỉ có thể chạy nó trên máy cục bộ của bạn, chỉ cho các tệp duy nhất. Vì vậy, bạn có thể sử dụng nó mà không làm phiền các nhà phát triển đồng nghiệp của bạn. Ngoài ra, nếu bạn không thích các quy tắc, bạn có thể vô hiệu hóa chúng, vì vậy không có tác hại thực sự nào.
Anne Schuessler

+1 Đây không phải là rõ ràng về StyleCop .. (StyleCop hoặc tương tự ). Và đó là một ý tưởng rất tốt. Xác định một bộ quy tắc, cấu hình công cụ bạn chọn và được thực hiện với nó mãi mãi.
Bruno Schäpper

Ngày nay chúng ta có Grunt, Gulp, v.v. có thể thực hiện bước này giống như StyleCop đã làm trong quá khứ.
Robert Koritnik

0

đây là một suy nghĩ tôi thấy trên internet nói về tái cấu trúc và có thể giải thích tại sao ai đó sẽ chạm vào mã của bạn để làm cho nó tốt hơn:

Tại sao?

Có hai lý do chính để tái cấu trúc:

  1. Để cải thiện mã / thiết kế trước khi xây dựng trên đỉnh của nó: Thật sự rất khó để đưa ra mã tốt trong lần thử đầu tiên. Lần thử đầu tiên để thực hiện bất kỳ thiết kế ban đầu nào sẽ cho chúng ta thấy rằng chúng ta hiểu sai hoặc quên một số logic.

  2. Để thích ứng với những thay đổi trong các yêu cầu. Thay đổi xảy ra trong quá trình phát triển phần mềm; đáp ứng để thay đổi là tốt hơn để có một cơ sở mã tốt. Chúng tôi có hai tùy chọn cho cả hai kịch bản, đường dẫn mã hoặc cấu trúc lại nó. Việc vá mã sẽ dẫn chúng ta đến mã không thể nhầm lẫn, và sẽ làm tăng nợ kỹ thuật của chúng ta, tốt hơn là nên tái cấu trúc.

Khi nào?

  1. Càng sớm càng tốt càng dễ dàng.

  2. nhanh hơn và ít rủi ro hơn để tái cấu trúc mã gần đây được tái cấu trúc thay vì chờ tái cấu trúc để mã gần hoàn thành.

Gì?

  1. Tất cả các mã và tất cả các thiết kế là ứng cử viên để tái cấu trúc.

  2. Một ngoại lệ cho việc không tái cấu trúc một cái gì đó có thể là một đoạn mã hoạt động có chất lượng thấp, nhưng do gần đến hạn chót, chúng tôi thích giữ nợ kỹ thuật hơn là mạo hiểm với việc lập kế hoạch.

Bạn chỉ cần để anh ấy làm hết sức mình, nếu nó sẽ tuyệt vời cho cả hai và tiết kiệm thời gian của bạn trong tương lai!

chúc mừng

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.