Làm thế nào để đối phó với một chức năng sai tên trong mã sản xuất?


28

Gần đây tôi đã bắt gặp một thư viện Python trên GitHub. Thư viện rất tuyệt, nhưng chứa một lỗi đánh máy trong tên hàm. Hãy gọi nó dummy_fuction()trong khi nó nên dummy_function(). Chức năng này chắc chắn là "trong tự nhiên" và rất có thể được sử dụng trong các hệ thống nhúng.

Điều đầu tiên nảy sinh trong tâm trí là thêm phiên bản thứ hai của chức năng với tên chính xác và thêm cảnh báo không dùng nữa vào phiên bản đầu tiên cho phiên bản tiếp theo.

Ba câu hỏi:

  1. Cách tiếp cận ở trên có thể có bất kỳ hậu quả không lường trước?
  2. Có một cách tiếp cận tiêu chuẩn cho loại vấn đề này?
  3. Bao lâu thì bất kỳ cảnh báo khấu hao nên được đặt tại chỗ?

1
Đây là một tình huống (mặc dù không thường xuyên xảy ra) trong đó ngôn ngữ tĩnh mạnh hơn nhiều so với ngôn ngữ động: trình biên dịch có thể kiểm tra xem hàm đã đổi tên của bạn đã tồn tại chưa.
Giorgio

7
xem thêm người giới thiệu HTTP [sic]
AakashM

2
Tôi cũng sẽ chỉ ra mod_speling của Apache , nhưng điều đó có thể có chủ ý.
Phục hồi Monica iamnotmaynard

1
@AakashM: Tôi thích cách bài viết Wikipedia hiện sử dụng cả lỗi chính tả và chính tả trong trang đó (ngay cả khi đề cập đến đối tượng, không phải thuật ngữ), với phiên bản sai chính tả phổ biến hơn!
Martijn Pieters

Một điều tốt nữa về http_referer- "Giống như khi tôi làm trường giới thiệu. Tôi không có gì ngoài sự đau buồn cho sự lựa chọn chính tả của mình. Bây giờ tôi đang cố gắng sửa lỗi chính tả trong OED vì cách viết của tôi được sử dụng nhiều tỷ lần mỗi phút hơn họ. " - Phillip Hallam-Baker
Jamie Bull

Câu trả lời:


29

Đầu tiên và quan trọng nhất, chính sách phụ thuộc vào người bảo trì.

Tôi nghĩ rằng câu hỏi của bạn là thú vị, nhưng chủ yếu dựa trên ý kiến.

Theo ý kiến ​​cá nhân của tôi, cách tiếp cận của bạn là âm thanh - đổi tên chức năng và để lại phiên bản sai chính tả như một tạo tác không dùng nữa, chuyển hướng đến đúng.

Cách tiếp cận ở trên có thể có bất kỳ hậu quả không lường trước?

Nó có thể phá vỡ mã, ví dụ. nếu ai đó không thể viết sai chính tả và thực hiện một phiên bản đổi tên của chính họ. Bây giờ sẽ có một cuộc đụng độ tên khi họ cập nhật thư viện.

Có một cách tiếp cận tiêu chuẩn cho loại vấn đề này?

Đừng mắc lỗi chính tả khi viết thư viện;)

Bao lâu thì bất kỳ cảnh báo khấu hao nên được đặt tại chỗ?

Tôi tin rằng sự phản đối nên được giữ nguyên cho đến khi phát hành chính tiếp theo (khi chữ số đầu tiên trong số phiên bản được tăng lên).

Đây là khi một số - hợp lý - phá vỡ khả năng tương thích ngược có thể chấp nhận được và tùy thuộc vào người dùng thư viện để đảm bảo mã của họ vẫn hoạt động tốt.

Chỉ cần đảm bảo chỉ ra nó trong danh sách thay đổi: các bạn, nếu bạn đã sử dụng dummy_fuction, hãy thay thế nó dummy_functionở mọi nơi và bạn sẽ ổn.

Nếu thư viện không được phiên bản, như có thể - nó là một trường hợp tốt để bắt đầu phiên bản nó.


1
Thật tốt khi nghe. Thư viện được phiên bản để cách tiếp cận kiểm soát phiên bản nghe có vẻ tốt. Nó thực sự có IDE riêng nên phiên bản sai chính tả có thể bị ẩn khỏi công cụ hoàn tất mã sẽ ngăn người dùng mới sử dụng nó. Nếu tôi có thể cung cấp cho bạn +1 khác cho câu trả lời cho Q2 tôi sẽ!
Jamie Bull

2
Đây là cách tiếp cận mà tôi đã thấy trong các phần mềm khác. Tôi sử dụng API của bên thứ 3 cho một phần mềm tôi phát triển và API của họ chứa phương thức getter có lỗi đánh máy. Vấn đề đã được khắc phục bằng cách đổi tên phương thức và tạo một phương thức giả với cách viết cũ (không chính xác) chỉ đơn giản gọi phiên bản chính xác. Phương pháp giả không chứa tài liệu nào khác ngoài việc đề cập đến nó không dùng nữa và liên kết đến phiên bản chính xác. Phương pháp đó đã có từ nhiều năm nay, để tránh phá vỡ mọi khả năng tương thích ngược.
Karl Nicoll
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.