Tôi thường xuyên được giao nhiệm vụ gỡ lỗi một ứng dụng trong công việc của tôi. Đó là Ứng dụng BI mà chúng tôi triển khai cho các doanh nghiệp, bao gồm môi trường thử nghiệm và môi trường sản xuất. Tôi tự hỏi nếu có bất kỳ ứng dụng / công cụ / phương pháp nào mà mọi người có thể đề xuất, dựa trên các ràng buộc sau:
Trình gỡ lỗi không thể được sử dụng trên trang web của khách hàng hoặc cục bộ, vì phần mềm phụ thuộc vào các ứng dụng bên thứ ba tùy chỉnh mà chúng tôi không có môi trường thử nghiệm. (EDIT: để công bằng, có thể gỡ lỗi cục bộ trong một số trường hợp. Nếu chúng tôi không sử dụng gì ngoài mã lõi. Phần lớn mã có vấn đề nằm trong một dll đóng gói giao tiếp cụ thể của bên thứ ba: ổ cắm, đường ống xử lý, cuộc gọi xà phòng, logic tùy chỉnh thay đổi hành vi của mã lõi. Thông thường trong quá trình triển khai hoặc nâng cao cho máy khách, chúng tôi sẽ viết mã mới cho khu vực này.)
Hầu như không có đăng nhập được thực hiện trong các ứng dụng của chúng tôi. Không có bài kiểm tra đơn vị.
Kiểm soát phiên bản chỉ có 1 phiên bản của giải pháp đầy đủ (sử dụng nguồn safe 2005). Vì vậy, không thể có được phiên bản trước của toàn bộ giải pháp, chỉ có các tệp riêng lẻ. (Trừ khi ai đó biết cách xung quanh này).
Không thể sao chép cục bộ, thường không thể sao chép trên môi trường thử nghiệm (Khả năng cao là thử nghiệm và sản xuất không phải là cùng một phiên bản).
Có khả năng cao là phiên bản máy khách đang sử dụng khác với phiên bản nguồn an toàn. Điều này là do các tệp riêng lẻ được cập nhật, có nhúng logic tùy chỉnh cho máy khách cụ thể đó. Thông thường những gì xảy ra là một bản cập nhật được thực hiện thành nhị phân, yêu cầu thay đổi một số nhị phân khác, nhưng khi một cam kết được thực hiện, không ai có bất kỳ hồ sơ hoặc kiến thức nào về việc này. Một lỗi khá phổ biến tôi thấy là 'Không tìm thấy Hàm / Phương thức' hoặc 'Cuộc gọi phương thức có quá nhiều / quá ít tham số được chỉ định' trên môi trường máy khách.
Đây là một giải pháp VB .net
Không thể cài đặt bất kỳ phần mềm nào trên các trang web của khách hàng, nhưng có thể cục bộ
Ứng dụng của chúng tôi cực kỳ tùy biến, nhưng thật không may, logic tùy biến được trải rộng trên tất cả các lớp và tệp, từ mặt trước cho đến lớp dữ liệu, bao gồm các thay đổi tùy chỉnh được thực hiện cho cơ sở dữ liệu trên cơ sở từng máy khách.
Hầu như không có ý kiến trong mã. Không có tài liệu về kiến trúc. Không có tài liệu về api. Điều duy nhất chúng ta có là hàng trăm trên hàng trăm chuỗi email giải thích phần nào những gì đang diễn ra. Những người duy nhất biết mã là những người ban đầu đã viết nó, nhưng họ không còn là nhà phát triển mỗi lần nói nữa nên họ không tham gia nhiều như vậy.
Và trước khi bạn nói điều đó ... vâng tôi biết; Tôi muốn tự bắn mình. Điều đó không giúp ích gì cho việc có mã spaghetti, hàng trăm cảnh báo về trình biên dịch và tính đa hình bị hỏng mà THỰC SỰ nên được sửa, nhưng tôi không có tiếng nói trong đó.
Các loại lỗi phổ biến nhất mà tôi gặp phải là lỗi tham chiếu null, không hợp lệ và thiếu chức năng / chữ ký hàm thiếu. Đôi khi tôi may mắn và người xem sự kiện sẽ ghi nhật ký lớp, phương thức và thông báo ngoại lệ. Nó không phải là hữu ích nhất, nhưng nó vẫn là một cái gì đó. Tệ nhất là các lỗi không có dấu vết, không có các bước repro bên cạnh ảnh chụp màn hình và là các thông báo lỗi chung giống như các lỗi được đề cập ở trên. Đôi khi không thể tìm hiểu lý do tại sao chúng xảy ra, chỉ để cầu nguyện rằng môi trường không được cấu hình đúng, và nó sẽ biến mất sau đó.
Tôi biết điều này xảy ra như một chút giận dữ, và ở một mức độ nào đó nó là. Nhưng tôi đang tuyệt vọng cho các lựa chọn. Có phương pháp / công cụ nào khác tôi có thể sử dụng không?