Viết mã Python là một chuyện và viết mã ở định dạng tốt là một chuyện khác. Các lập trình viên mới vào nghề thường tập trung vào việc đảm bảo mã của họ đang hoạt động và quên định dạng mã đúng cách trong quá trình thực hiện.
Nếu bạn viết một chương trình nhỏ (với 1000 dòng mã), bạn có thể thoát mà không cần định dạng mã của mình.
Nhưng khi các chương trình ngày càng phức tạp hơn, chúng ngày càng khó hiểu hơn. Tại một thời điểm nào đó (khoảng 15.000 dòng mã), việc hiểu mã do chính bạn viết trở nên khó khăn hơn.
Sự khác biệt giữa làm việc với mã có định dạng tốt và làm việc với mã có định dạng xấu giống như sự khác biệt giữa sống trong cung điện và sống trong một ngôi nhà bẩn thỉu.
khả năng đọc
Định dạng mã của bạn sẽ giúp bạn đọc ma cua ban hiệu quả. Nó trông có tổ chức hơn và khi ai đó nhìn vào mã của bạn, họ sẽ có ấn tượng tốt.
Nó sẽ giúp ích trong các cuộc phỏng vấn mã hóa của bạn
Khi bạn tham gia một cuộc phỏng vấn viết mã, đôi khi người phỏng vấn sẽ quan tâm xem bạn có định dạng mã đúng cách hay không. Nếu bạn quên định dạng đó, bạn có thể mất cơ hội việc làm chỉ vì mã được định dạng kém.
hỗ trợ nhóm
Định dạng mã của bạn trở nên quan trọng hơn khi bạn đang làm việc trong một đội. Nhiều người có thể sẽ làm việc trên cùng một dự án phần mềm và mã bạn viết phải được đồng đội của bạn hiểu. Nếu không thì sẽ khó làm việc cùng nhau hơn.
Nó giúp bạn dễ dàng phát hiện ra lỗi
Mã được định dạng sai có thể khiến nó thực sự rất khó phát hiện ra lỗi hoặc thậm chí hoạt động trên một chương trình. Nó cũng thực sự khủng khiếp khi nhìn vào. Đó là một sự xúc phạm đến đôi mắt của bạn.
Hầu hết các nhà phát triển Python thích sử dụng Pylint hoặc Flake8 để kiểm tra mã của họ để tìm lỗi và hướng dẫn phong cách.
cột trụ là một công cụ kiểm tra lỗi trong Python. Nó cố gắng thực thi một tiêu chuẩn mã hóa và tìm kiếm mùi mã. Nó cũng có thể tìm kiếm các lỗi loại nhất định, nó có thể đề xuất các đề xuất về cách tái cấu trúc các khối cụ thể và có thể cung cấp cho bạn thông tin chi tiết về độ phức tạp của mã.
vảy8 là một thư viện Python bao bọc PyFlakes, pycodestyle và Kịch bản McCabe của Ned Batchelder. Nó là một bộ công cụ tuyệt vời để kiểm tra cơ sở mã của bạn dựa trên phong cách viết mã (PEP8)các lỗi lập trình như “thư viện đã nhập nhưng chưa sử dụng”, “Tên không xác định” và mã không được thụt lề.
Vấn đề là các công cụ này chỉ báo cáo các sự cố mà chúng xác định được trong mã nguồn và để lại gánh nặng cho các nhà phát triển Python trong việc khắc phục chúng!
Nhưng nếu chúng ta có một công cụ có thể xác định và giải quyết vấn đề cùng một lúc thì sao? Đen là một công cụ cho phép bạn xác định lỗi và định dạng mã python của bạn đồng thời. Vì vậy, nó làm cho bạn làm việc hiệu quả hơn.

Từ dự án README:
Bằng cách sử dụng Đen, bạn đồng ý nhường quyền kiểm soát các chi tiết vụn vặt của định dạng thủ công. Đổi lại, Đen cung cấp cho bạn tốc độ, tính xác định và sự tự do khỏi sự cằn nhằn kiểu pycode về định dạng. Bạn sẽ tiết kiệm thời gian và năng lượng tinh thần cho những vấn đề quan trọng hơn.
Black có thể format lại toàn bộ file của bạn tại chỗ theo kiểu Black code. Nó giúp bộ não của bạn tập trung vào vấn đề bạn muốn giải quyết và viết mã giải pháp, thay vì bị phân tâm bởi cấu trúc mã và những khác biệt nhỏ về phong cách.
Vì vậy, hãy xem làm thế nào để sử dụng nó.
Cài đặt màu đen
Màu đen có thể được cài đặt bằng cách chạy pip install black
. Nó yêu cầu Python 3.6.0+ để chạy. Sau khi Black được cài đặt, bạn sẽ có một công cụ dòng lệnh mới có tên là black trong trình bao của mình và bạn đã sẵn sàng để bắt đầu!
Để bắt đầu ngay với các giá trị mặc định hợp lý, hãy chọn tệp python bạn muốn định dạng rồi viết tên tệp màu đen.py trong thiết bị đầu cuối. Sau đó, Black sẽ định dạng tệp python của bạn.
Bây giờ chúng ta sẽ xem Đen có thể giúp chúng ta làm gì.
Định dạng một tệp duy nhất
Hãy xem ví dụ đơn giản sau: đây là hai hàm python của tôi trong tệp python có tên sample_code.py.

Bạn có thể dùng black sample_code.py
trong thiết bị đầu cuối để thay đổi định dạng. Sau khi chạy Black, bạn sẽ thấy đầu ra sau:

Sau đó, bạn có thể mở sample_code.py để xem mã python được định dạng:

Mã Python hiện đã được định dạng và dễ đọc hơn.
Định dạng nhiều tệp
Để định dạng nhiều hơn một tệp python, hãy viết black folder_name/
trong thiết bị đầu cuối.


Ba tệp python trong thư mục có tên python_with_black đã được định dạng lại.
Kiểm tra tập tin để định dạng
Nếu bạn không muốn Black thay đổi tệp của mình, nhưng bạn muốn biết liệu Black có nghĩ rằng một tệp nên được thay đổi hay không, bạn có thể sử dụng một trong các lệnh sau:
black --check .
: Thao tác này sẽ kiểm tra (các) tệp python nào có thể được định dạng trong thư mục hiện tại (nhưng không thực sự sửa đổi (các) tệp python).

black --check --diff file_name.py
: Điều này cho thấy những gì cần được thực hiện đối với tệp nhưng không sửa đổi tệp.

Thay đổi số lượng ký tự trên mỗi dòng
Lưu ý rằng Màu đen mặc định là 88 ký tự cho độ dài dòng của nó, nhưng bạn có thể thay đổi điều đó bằng cách sử dụng tùy chọn “-l” hoặc “- -line-length”.
Ví dụ: để thay đổi thành 60 ký tự: black -l 60 python_file.py
.
Đối với người dùng máy tính xách tay Jupyter, bạn vẫn có thể tự động định dạng mã python của mình bằng tiện ích mở rộng đơn giản này có tên là Jupyter Black. Tiện ích mở rộng này định dạng lại/làm đẹp mã trong ô mã của sổ ghi chép bằng màu đen.
Tiện ích mở rộng Jupyter Black cung cấp
- Một nút trên thanh công cụ.
- Phím tắt để định dạng lại ô mã hiện tại (mặc định: Ctrl-B).
- Phím tắt để định dạng lại toàn bộ ô mã (mặc định: Ctrl-Shift-B).
Cài đặt Jupyter Đen
Trước tiên hãy đảm bảo rằng bạn đã cài đặt jupyter-contrib-nbextensions và màu đen, sau đó chạy các lệnh sau.
jupyter nbextension install https://github.com/drillan/jupyter-black/archive/master.zip — user
Sau đó kích hoạt tiện ích mở rộng bằng cách chạy:
jupyter nbextension enable jupyter-black-master/jupyter-black
Bây giờ bạn có thể bắt đầu định dạng mã python của mình trong từng ô của sổ ghi chép.
Đầu tiên, chọn ô sổ ghi chép mà bạn muốn định dạng mã python của mình, sau đó nhấp vào nút tiện ích mở rộng có tên là Đen.

Sau đó nhấp vào nút Jupyter Black:


Bạn có thể tích hợp Black với các trình chỉnh sửa yêu thích của mình. Hiện tại Black hỗ trợ PyCharm/IntelliJ IDEA, Wing IDE, Vim, Visual Studio Code, Sublime Text 3, Atom/Nuclide, Kakoune và Thonny. Làm theo hướng dẫn tại đây để tích hợp Black với trình chỉnh sửa yêu thích của bạn.
Nếu bạn muốn tìm hiểu thêm về Black, tôi khuyên bạn nên xem bài nói chuyện PyCon 2019 của Łukasz Langa.
Nếu bạn đã học được điều gì đó mới hoặc thích đọc bài viết này, vui lòng chia sẻ nó để những người khác có thể thấy nó. Cho đến lúc đó, hẹn gặp lại bạn trong bài viết tiếp theo! Tôi cũng có thể đạt được trên Twitter @Davis_McDavid.