Điều hướng mã
Nhận một trình soạn thảo tốt hơn VIM.
Tôi sử dụng Komodo Chỉnh sửa.
Tôi cảm thấy mình phải dấn thân nhiều hơn vào trí nhớ
Tốt Suy nghĩ là tốt. Tôi thấy rằng "học tập" cuối cùng dẫn đến "bộ nhớ".
Liên tục "grep" và đọc qua mã để xác định các giao diện.
Đây là điển hình. Nếu bạn không thể nhớ chúng, thì chúng quá phức tạp phải không? Thời gian để đơn giản hóa.
Đơn giản là khó để tạo ra. Nhưng khi bạn gặp khó khăn trong việc ghi nhớ, đó là một triệu chứng của thiết kế xấu.
Tôi sử dụng grep. Nó làm việc cho tôi. Komodo Edit của tôi có rất nhiều tìm kiếm tốt đẹp. Notepad ++ cũng vậy
Xác định giao diện của các đối tượng tôi đang sử dụng
Doc String và help()
chức năng làm việc. Tôi sử dụng chúng. Hằng ngày.
Tái cấu trúc hiệu quả ... nó trở nên cực kỳ phụ thuộc vào chất lượng các bài kiểm tra đơn vị của tôi.
Đó không phải là tin tức. Điều đó luôn luôn đúng, ngay cả trong một ngôn ngữ tĩnh.
Trong một ngôn ngữ tĩnh, chúng ta thường trở nên lười biếng, cho rằng - miễn là nó được biên dịch - nó thực sự có khả năng hoạt động. Điều này rõ ràng là sai, nhưng chúng ta trở nên lười biếng.
Tôi chắc chắn có cách giải quyết cho những vấn đề này.
Đây không phải là "vấn đề" và không yêu cầu "cách giải quyết".
Một ngôn ngữ động chính xác là không biết loại đối tượng bạn thao tác. Khi bạn nhận được một tham số, bạn giả sử nó xác định phương thức "quack ()" và "lông ()", nhưng bạn không biết tài liệu đó ở đâu (trên thực tế, chúng sẽ có nhiều tài liệu trong nhiều lần triển khai).
"Không biết loại vật thể"? Có thật không. Khi tôi thiết kế ứng dụng khách của một đối tượng, tôi biết tôi đã thiết kế kiểu gì.
Khi tôi xác định một dịch vụ, được sử dụng bởi nhiều khách hàng, loại "chính xác" không liên quan, khi tôi có một giao diện được yêu cầu quack()
và feathers()
.
Cuối cùng, tôi có Read-Execute-Print-Loop và các công cụ khác để xác định loại "chính xác" trong các trường hợp hiếm gặp khi tôi gặp vấn đề tế nhị. Đó là những gì tôi thực sự sử dụng hàng ngày.
>>> x = some_mystery_factory( some, args )
>>> type(x)
>>> dir(x)
Có vẻ như không quá khó - ít nhất là trong Python - để giải phóng loại đối tượng. Các ngôn ngữ động phải có REPL, giúp dễ dàng nhìn thấy những gì đang diễn ra.
Bạn cũng không biết thứ tự tham số dự kiến. Có vẻ khó cho một IDE để giúp đỡ ở đó.
Điều đó không có ý nghĩa nhiều. help()
làm.
Và IDE của tôi thường có thể định vị định nghĩa. Không phải lúc nào - một số cấu trúc động phức tạp có thể dễ dàng che giấu lớp cơ sở. Trong trường hợp đó, tôi phải thực sự nghĩ về lớp của đối tượng để xác định định nghĩa phương thức. Tất nhiên, tôi đang viết mã, vì vậy có rất ít (hoặc không) bí ẩn ở đó.