Chính sách và thực hành về bảo trì mã


9

Tôi vừa ra khỏi trường đại học và đã làm việc tại công ty này được khoảng 8 tháng, trong khi tôi được trao danh hiệu nhà phát triển, phần lớn thời gian tôi dành cho việc sửa chữa và gỡ lỗi mã của người khác.

Tôi luôn tự hỏi tại sao không phải là trách nhiệm của nhà phát triển ban đầu trong việc sửa mã của mình. Tôi hiểu rằng nếu nhà phát triển ban đầu không còn nữa, thì các nhà phát triển khác phải tiếp quản công việc, nhưng nếu nhà phát triển vẫn làm việc như một nhân viên trong công ty thì sao?

Người ta có thể lập luận rằng nó có lợi cho các nhà phát triển mới vì họ coi đó là cơ hội để học hỏi và tôi đồng ý với điều đó, nhưng nếu sự phức tạp của vấn đề / vấn đề của mã là rất lớn thì sao? Trong trường hợp của tôi, hầu hết các mã họ gán cho tôi để sửa là những vấn đề không hề nhỏ và nó luôn tự đặt ra câu hỏi cho nhà phát triển ban đầu liên quan đến mã. Tại sao các nhà phát triển đã tạo ra nó khắc phục vấn đề hiện tại nếu họ hiểu nó tốt hơn nhiều kể từ khi họ mã hóa nó? Và vấn đề tôi đang đề cập không phải là một vấn đề tầm thường mà bạn có thể khắc phục nó trong một hoặc hai ngày, mà là vấn đề đòi hỏi sự hiểu biết sâu sắc về mã để đưa ra giải pháp.

Lý do đằng sau điều này là gì và nó có phổ biến trong ngành công nghiệp phần mềm không?


2
Vâng, nó phổ biến. Bạn sẽ mang đến điều này với nhà phát triển có mã bạn đang sửa.
dùng16764

1
Xem thêm kỳ vọng tốt nghiệp so với thực tế - đặc biệt, lưu ý một chút về bảo trì. Nhận ra người mới thường nhận được "sửa lỗi này" vì phần thưởng của "phát triển mới" dành cho những người (về lý thuyết) có ý tưởng tốt hơn về kiến ​​trúc cần thiết và có nhiều thâm niên hơn để làm những điều thú vị (mã mới là niềm vui) .

Câu trả lời:


11

Tôi nghĩ lý do chính bạn sẽ thấy biện minh cho loại điều này theo nghĩa rộng nhất là "yếu tố xe buýt" . Nếu cùng một người viết và duy trì một đoạn mã vĩnh viễn, không ai ngoài người đó sẽ có bất kỳ manh mối nào về cách thức hoạt động của nó, đó là rắc rối khi người đó rời đi. Vì vậy, việc các nhà phát triển mới sửa lỗi để bắt đầu thường hợp lý với lý do đó.

Cá nhân, tôi nghĩ rằng sự biện minh là không thể phù hợp với lý luận. Tôi nghĩ lý do thực sự xảy ra với các nhà phát triển mới hơn là các bộ phận thực sự không biết phải làm gì với họ, không thực sự có một chương trình đào tạo toàn diện và lo lắng về việc giao cho họ các tính năng chính. Vì vậy, bất cứ điều gì bạn có thể được nói, có lẽ đó là một cách mặc định để bạn chứng minh rằng bạn có khả năng xử lý công cụ và hy vọng học được một hoặc hai điều trên đường đi.

Cá nhân tôi nghĩ rằng có nhiều cách tốt hơn để thực hiện điều này, nhưng đó là một cách, và tôi cho rằng đôi khi nó hoạt động, sau một thời trang (mặc dù có nguy cơ người mới nhàm chán bỏ việc để có đồng cỏ xanh hơn).


2

Các nhà bình luận khác đã đề cập đến một số điểm quan trọng - Tôi đang nói từ vị trí của một người làm việc một thời gian trong một nhóm phát triển được giao nhiệm vụ đặc biệt là bảo trì mã vận chuyển. Khá nhiều câu hỏi của bạn xuất hiện hết lần này đến lần khác.

Có nhiều điều có thể xảy ra. Bạn đã chỉ ra một - nhà phát triển ban đầu có thể đã rời công ty. Một khả năng khác là, trong khi nhà phát triển ban đầu vẫn ở trong công ty, anh ấy / cô ấy đã chuyển sang những thứ khác từ lâu và không còn những thứ đó trong bộ nhớ làm việc (đặc biệt là nếu mã đã thay đổi khá nhiều kể từ khi họ làm việc trên đó).

Ví dụ, điều chúng tôi phải giải quyết là nhóm sản phẩm có lịch trình rất tích cực để phân phối các phiên bản tiếp theo của sản phẩm. Nếu họ cũng phải làm việc với các lỗi trong các phiên bản hiện có, thì ít nhất lý do đã đi, họ sẽ không thể đáp ứng lịch trình của họ. Tôi đoán điểm này có thể được tranh luận, nhưng thực tế của thế giới phần mềm doanh nghiệp là việc đưa mọi thứ ra khỏi cửa vấp ngã mọi thứ khác, bao gồm cả việc quan sát tất cả các thực hành tốt nhất của công nghệ phần mềm mọi lúc. "Sự đánh đổi" là thuật ngữ mơ hồ, theo đó, tất cả những thỏa hiệp khó chịu mà các nhà phát triển của chúng ta sớm muộn phải làm trong những môi trường đó.

Mặt khác, tuy nhiên, việc sửa các lỗi không tầm thường đòi hỏi bạn phải thực sự tìm hiểu rất nhiều về cơ sở mã. Đó là đau đớn, đôi khi mất tinh thần, và đôi khi áp đảo. Nhưng chính xác thì bạn nghĩ bạn sẽ trở thành một chuyên gia về chủ đề của dự án phần mềm như thế nào? Bạn có thể dành nhiều ngày để đọc mã cho chỉnh sửa của mình, nhưng loại mã đó không thực sự dính cũng như phải "chiến đấu" với mã để khắc phục sự cố. Các nghiên cứu liên tục thổi phồng phương châm mà chúng ta học bằng cách làm. Đáng buồn thay, trừ khi bạn ở trong một công ty mới thành lập hoặc một nhóm mới, điều này có nghĩa là bạn thường tham gia một dự án phần mềm đã có mặt trong một số bản phát hành và có những khách hàng thực sự với những phàn nàn thực sự cần được giải quyết. Điều này ngụ ý rằng bạn sẽ sửa lỗi trước khi bạn '

Điều thực sự quan trọng là liên lạc thường xuyên với người quản lý của bạn và bày tỏ những gì bạn muốn thoát khỏi công việc, và xem liệu doanh nghiệp có thực sự phù hợp với mục tiêu của bạn vào lúc này không. Hy vọng, câu trả lời sẽ là có. Gắn bó một lúc và thu thập tất cả kinh nghiệm bạn có thể từ nhóm hiện tại của bạn. Nếu câu trả lời là không, và bạn là một nhà phát triển giỏi, bạn sẽ có nhiều lựa chọn. Nhưng đừng giảm giá trải nghiệm bạn có được bằng cách sửa lỗi - Bây giờ tôi đang làm công việc phần mềm thứ ba và tôi phải viết hàng tấn mã. May mắn thay, rất nhiều trong số đó hoạt động ngay từ đầu vì tôi đã dành quá nhiều thời gian để xác định, sửa chữa và cố gắng ngăn chặn lỗi.


1

Chúng tôi phải thừa nhận rằng các nhà phát triển phần mềm dành nhiều thời gian để đọc / hiểu mã hơn là tạo mã. Và từ kinh nghiệm cá nhân của tôi, công ty bạn làm việc cho càng nhiều mã bạn đọc càng tốt. Vì vậy, thực tế là bạn phải đối phó với mã của người khác rất nhiều không nên làm bạn ngạc nhiên hay bối rối.

Và điều này có vẻ khá tự nhiên. Để học một cái gì đó bạn phải xem nó được thực hiện như thế nào. Không có nhiều công ty nơi lập trình cặp được thực hành và người mới được dạy theo cách này. Hầu hết thời gian bạn học các kỹ thuật mới, mẫu, phong cách mã hóa của công ty, v.v. bằng cách đọc mã của người khác.

Và cách hiểu mã hiệu quả nhất là thực sự làm việc với nó: gỡ lỗi, tái cấu trúc, sửa lỗi. Đây là một thực tế phổ biến nếu bạn muốn sở hữu mã.

Những lý do có thể khiến nhà phát triển ban đầu không sửa lỗi của anh ấy / cô ấy có thể là

  • lỗi không có nhiều ưu tiên và nhiệm vụ hiện tại của nhà phát triển là quan trọng hoặc cấp bách hơn.
  • nhà phát triển đã không làm việc với mã đó trong một thời gian dài và dù sao họ cũng sẽ mất một thời gian để nhớ lại mã cũ của mình.
  • nhà phát triển rất bận rộn với một cái gì đó phức tạp và không cần phải bị gián đoạn.

Tái bút: Tôi nghĩ bạn thật may mắn khi nhà phát triển ban đầu có mặt để trả lời câu hỏi của bạn.


1

Có những lý do sư phạm và lý do yếu tố rủi ro, nhưng chủ yếu chỉ là toán học. Hầu hết các công việc lập trình là bảo trì và những người đã ở một công ty lâu nhất đã tạo ra nhiều mã cần duy trì nhất.

Hãy xem xét một công ty phần mềm một người đàn ông. Sau 10 năm anh ta thuê người giúp anh ta. Nếu 90% công việc có sẵn là công việc bảo trì, anh chàng mới sẽ làm việc gì nếu anh ta không thể chạm vào mã của anh chàng cũ? Trên một nhóm lớn hơn, hiệu ứng khó định lượng hơn, nhưng điều đó không có nghĩa là nó không có ở đó.

Vì vậy, cố gắng không để bị treo lên về người chịu trách nhiệm cho mã nào. Mọi người gắn bó với mã "của họ" và đừng từ bỏ nó một cách nhẹ nhàng. Trong một vài năm sẽ có mã bạn muốn duy trì trách nhiệm của mình, nhưng bạn hoàn toàn không có thời gian.


1

Erik là tại chỗ.

Ngoài ra, ban quản lý muốn phòng ngừa các vụ cá cược của họ bằng cách làm cho tất cả các nhà phát triển quen thuộc với các khía cạnh nhất định của mã. Chỉ vì một người đã viết một số mã không tự động khiến họ chịu trách nhiệm về nó trong khi họ đang làm việc ở đó. Hoàn toàn ngược lại, càng nhiều nhà phát triển duy trì nó, càng có nhiều lỗi phát hiện và ứng dụng được tạo ra. Mọi người đều thích để lại dấu ấn của họ;) nếu bạn hiểu ý tôi. Một quan điểm khác là mã được sở hữu bởi công ty chứ không phải nhà phát triển. Nó làm cho cuộc sống của người quản lý dự án dễ dàng hơn một chút nếu họ có nhiều nhà phát triển hơn để lựa chọn cho một nhiệm vụ nhất định. Họ có thể chỉ đưa bạn vào thư viện mã của họ và đồng thời kiểm tra khả năng của bạn. Họ sẽ phát điên khi để một nhân viên mới gần bất cứ thứ gì có thể tiêu tốn tiền của công ty, chắc chắn trong 6 tháng đầu hoặc lâu hơn.


0

câu trả lời tốt, tất cả; đây là một góc độ khác -

nó có thể là kinh tế đơn giản

Bạn có thể mất 5 lần để tìm và khắc phục sự cố so với nhà phát triển ban đầu, nhưng công việc mà nhà phát triển ban đầu đang làm trong thời gian đó mang lại doanh thu cao hơn nhiều cho công ty

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.