Tôi không thực sự viết các dự án lớn. Tôi không duy trì một cơ sở dữ liệu khổng lồ hoặc xử lý hàng triệu dòng mã.
Mã của tôi chủ yếu là các loại công cụ "kịch bản" - những thứ để kiểm tra các hàm toán học hoặc để mô phỏng một cái gì đó - "lập trình khoa học". Các chương trình dài nhất mà tôi đã làm cho đến thời điểm này là vài trăm dòng mã và hầu hết các chương trình tôi làm việc là khoảng 150.
Mã của tôi cũng tào lao. Tôi đã nhận ra điều này vào một ngày khác khi tôi đang cố gắng tìm một tập tin mà tôi đã viết cách đây một thời gian nhưng tôi có thể ghi đè lên và tôi không sử dụng kiểm soát phiên bản, điều này có thể khiến một số lượng lớn bạn đau đớn vì sự ngu ngốc của tôi.
Phong cách mã của tôi là phức tạp và chứa đầy các bình luận lỗi thời lưu ý các cách khác để làm một cái gì đó hoặc với các dòng mã được sao chép qua. Mặc dù các tên biến luôn bắt đầu rất đẹp và mô tả, khi tôi thêm hoặc thay đổi mọi thứ theo ví dụ, một cái gì đó mới mà ai đó muốn kiểm tra, mã được phủ lên trên và ghi đè lên và vì tôi cảm thấy điều này nên được kiểm tra nhanh chóng ngay bây giờ có một khung công tác tôi bắt đầu sử dụng tên biến crappy và tập tin đi vào pot.
Trong dự án tôi đang thực hiện, tôi đang trong giai đoạn mà tất cả những điều này sẽ quay trở lại để cắn tôi một cách lớn. Nhưng vấn đề là (ngoài việc sử dụng kiểm soát phiên bản và tạo một tệp mới cho mỗi lần lặp mới và ghi lại tất cả trong một tệp văn bản ở đâu đó, điều này có thể sẽ giúp cải thiện tình hình một cách đáng kể) Tôi thực sự không biết cách tiến hành cải thiện phong cách mã hóa thực tế của tôi.
Là thử nghiệm đơn vị cần thiết để viết các đoạn mã nhỏ hơn? Làm thế nào về OOP? Những cách tiếp cận nào là tốt để viết mã tốt, sạch nhanh khi thực hiện "lập trình khoa học" thay vì làm việc trên các dự án lớn hơn?
Tôi hỏi những câu hỏi này bởi vì thông thường, bản thân chương trình không quá phức tạp. Đó là nhiều hơn về toán học hoặc khoa học mà tôi đang thử nghiệm hoặc nghiên cứu với chương trình. Ví dụ, một lớp cần thiết khi hai biến và hàm có thể có thể chăm sóc nó? .
Có lẽ điều này là quá rộng, và nếu vậy, tôi xin lỗi, nhưng nhìn vào sách lập trình, chúng dường như thường được giải quyết tại các dự án lớn hơn. Mã của tôi không cần OOP và nó khá ngắn nên không giống như "ồ, nhưng tệp sẽ bị giảm hàng nghìn dòng nếu chúng tôi làm như vậy!" Tôi muốn biết làm thế nào để "bắt đầu lại" và lập trình sạch sẽ cho các dự án nhỏ hơn, nhanh hơn này.
Tôi sẽ vui mừng cung cấp chi tiết cụ thể hơn, nhưng lời khuyên càng chung chung, tôi càng hữu ích. Tôi đang lập trình trong Python 3.
Có người đề nghị một bản sao. Hãy để tôi nói rõ rằng tôi không nói về việc bỏ qua các tiêu chuẩn lập trình tiêu chuẩn hoàn toàn. Rõ ràng, có một lý do những tiêu chuẩn đó tồn tại. Nhưng mặt khác, việc viết mã có nghĩa là OOP khi thực hiện một số nội dung tiêu chuẩn có thể đã được thực hiện, sẽ nhanh hơn nhiều và có thể dễ đọc hơn vì độ ngắn của nó chương trình?
Có ngoại lệ. Hơn nữa, có thể có các tiêu chuẩn cho lập trình khoa học ngoài các tiêu chuẩn đơn giản. Tôi cũng đang hỏi về những điều đó. Đây không phải là nếu các tiêu chuẩn mã hóa bình thường nên được bỏ qua khi viết mã khoa học, đó là về việc viết mã khoa học sạch!
Cập nhật
Chỉ cần nghĩ rằng tôi sẽ thêm một loại cập nhật "không phải một tuần sau". Tất cả những lời khuyên của bạn là vô cùng hữu ích. Bây giờ tôi đang sử dụng kiểm soát phiên bản - git, với git kraken cho giao diện đồ họa. Nó rất dễ sử dụng và đã dọn sạch các tệp của tôi một cách quyết liệt - không cần thêm các tệp cũ dính xung quanh, hoặc các phiên bản mã cũ đã nhận xét "chỉ trong trường hợp".
Tôi cũng đã cài đặt pylint và chạy nó trên tất cả các mã của tôi. Một tập tin có điểm âm ban đầu; Tôi thậm chí không chắc làm thế nào là có thể. Tập tin chính của tôi bắt đầu với số điểm ~ 1,83 / 10 và hiện tại là ~ 9,1 / 10. Tất cả các mã bây giờ phù hợp khá tốt với các tiêu chuẩn. Tôi cũng lướt qua nó bằng chính đôi mắt của mình đang cập nhật những tên biến đã biến mất ... uhm ... thật kỳ quặc, và tìm kiếm các phần để tái cấu trúc.
Cụ thể, tôi đã hỏi một câu hỏi gần đây trên trang web này về việc tái cấu trúc một trong những chức năng chính của tôi, và bây giờ nó gọn gàng hơn và ngắn hơn rất nhiều: thay vì một chức năng đầy, dài, đầy đủ, bây giờ chỉ còn chưa đến một nửa kích thước và dễ dàng hơn nhiều để tìm hiểu những gì đang xảy ra.
Bước tiếp theo của tôi là thực hiện "thử nghiệm đơn vị" các loại. Ý tôi là một tệp mà tôi có thể chạy trên tệp chính của mình, nó xem xét tất cả các chức năng trong đó với các câu lệnh khẳng định và thử / chấp nhận, đây có thể không phải là cách tốt nhất để thực hiện và dẫn đến rất nhiều mã trùng lặp, nhưng tôi sẽ tiếp tục đọc và cố gắng tìm ra cách để làm nó tốt hơn.
Tôi cũng đã cập nhật đáng kể tài liệu tôi đã viết và thêm các tệp bổ sung như bảng tính excel, tài liệu và giấy liên quan đến kho lưu trữ github. Nó trông giống như một dự án lập trình thực sự bây giờ.
Vì vậy, ... tôi đoán đây là tất cả để nói: cảm ơn bạn .