Tôi đang phát triển một dự án thú cưng với Clojure, nhưng tự hỏi liệu tôi có thể tăng tốc độ công việc của mình một chút không.Luồng công việc Clojure hiệu quả?
công việc hiện tại của tôi (với Compojure) là:
- Bắt đầu Swank với
lein swank
. - Đi tới Emacs, kết nối với
M-x slime-connect
. - Tải tất cả các tệp nguồn hiện tại một. Điều này cũng bắt đầu một máy chủ Jetty và một ứng dụng.
- Viết một số mã trong REPL.
- Khi hài lòng với thử nghiệm, hãy viết một phiên bản đầy đủ của cấu trúc mà tôi đã lưu ý. Đánh giá (
C-c C-c
). - Chuyển REPL thành không gian tên nơi cấu trúc này nằm và kiểm tra nó.
- Chuyển sang trình duyệt và tải lại tab trình duyệt với trang bị ảnh hưởng.
- Tinh chỉnh mã, đánh giá, kiểm tra trong trình duyệt.
- Lặp lại bất kỳ điều nào ở trên.
Có một số phiền toái với nó:
- tôi phải chuyển qua lại giữa Emacs và trình duyệt (hoặc các trình duyệt nếu tôi đang thử nghiệm những thứ như khuôn mẫu với nhiều trình duyệt) tất cả các thời gian. Có một thành ngữ phổ biến để tự động hóa điều này? Tôi đã từng có một chút JavaScript tải lại trang liên tục, nhưng đó là tiện ích hạn chế, rõ ràng là khi tôi phải tương tác với trang trong hơn một vài giây.
- Ví dụ JVM của tôi trở thành "bẩn" khi tôi thử nghiệm và viết các chức năng kiểm tra. Về cơ bản, không gian tên trở nên bị ô nhiễm, đặc biệt nếu tôi đang tái cấu trúc và di chuyển các chức năng giữa các không gian tên. Điều này có thể dẫn đến va chạm biểu tượng và tôi cần phải khởi động lại Swank. Tôi có thể hoàn tác một biểu tượng không?
- Tôi tải tất cả các tệp nguồn từng cái một (
C-c C-k
) khi khởi động lại Swank. Tôi nghi ngờ tôi làm tất cả sai. - Chuyển đổi giữa REPL và trình chỉnh sửa tệp có thể hơi khó chịu, đặc biệt khi tôi có nhiều tab Emacs mở cùng với (các) trình duyệt.
Tôi đang tìm cách cải thiện các điểm trên và toàn bộ quy trình làm việc nói chung, vì vậy tôi đánh giá cao nếu bạn chia sẻ công việc của mình.
P. S.
Tôi cũng đã sử dụng Vimclojure trước, vì vậy công việc Vimclojure-based được hoan nghênh quá.