Tôi đã thừa hưởng một đống mã Ruby lớn, thật lòng, gần như không thể hiểu được một người chết như chính tôi. Nó thực sự là mã kiểm thử đơn vị Rspec, nhưng cấu trúc là "rất bất thường" để đặt nó độc đáo.Làm cách nào để đăng nhập mọi phương thức được gọi trong chương trình Ruby?
Những gì tôi muốn để có thể làm được điều hành mã, và có các thông tin sau đăng nhập ở đâu đó:
- mọi phương pháp đó được gọi, trong đó có tên của lớp đó xác định phương pháp, và tên tệp nơi phương thức được gọi đã được định nghĩa (yep, chúng ta có cùng một lớp/phương thức được định nghĩa trong nhiều tệp khác nhau và thật khó để biết được hàm nào đang được gọi)
- (tùy chọn) các tham số được truyền cho từng phương thức được gọi
Với rằng, tôi có thể bắt đầu cố gắng tái cấu trúc nó. Nếu không có nó, nó sẽ là một nhiệm vụ rất khó để làm cho nó thẳng ra, do kích thước của cơ sở mã (20k + đơn vị kiểm tra trường hợp).
Tôi không thể đi vào và thực hiện các chỉnh sửa bán buôn cho mã đang chạy, vì nó bị hỏng khi bạn sử dụng ngôn ngữ khắc nghiệt xung quanh nó (tức là thường xuyên). Thay vào đó, tôi cần để có thể thiết lập mã trong trạng thái hiện tại của nó, hoặc với những thay đổi tối thiểu cho những gì tồn tại ngay bây giờ.
Có cách ghi nhật ký chi tiết này mà không thực hiện thay đổi bán buôn cho cơ sở mã không? Tôi đã xem xét hồ sơ Ruby để xem liệu nó có thể giúp được không, và có lẽ nó có thể; Tôi tò mò nếu có một cách tốt hơn (đặc biệt là đăng nhập tên tập tin có chứa các phương pháp gọi).
Cảm ơn trước
Bạn đã được coi là một phân tích tĩnh hoặc là bạn chỉ tìm kiếm cái gì đó thực sự chạy mã? Doxygen xuất ra một số biểu đồ người gọi/callee tốt đẹp, chưa xem xét liệu nó có hỗ trợ Ruby hay không nhưng đồ thị gọi có thể tỏ ra rất hữu ích cho việc hiểu mã hiện có. –
Tôi khá chắc chắn Doxygen không hỗ trợ Ruby - nếu có, nó chắc chắn sẽ hữu ích cho tôi, nhưng tôi không thể tìm thấy bất kỳ thông tin nào về Doxygen hỗ trợ Ruby. Tôi muốn có cái gì đó thực sự chạy mã, chủ yếu là do thứ tự trong đó yêu cầu được xử lý sẽ ảnh hưởng đến định nghĩa nhiều (không giống hệt) của một phương thức đã cho sẽ được sử dụng. Như tôi đã nói, đó là một cơ sở mã xấu xí ... – monch1962