Indentation: 4 spaces or 2 spaces?

Lúc comment 1 topic về lỗi indentation của Python. Mình có thắc mắc về nên dùng 4 spaces hay 2 spaces cho thụt code.

Các tài liệu chính thức thì khuyên nên thụt 4 kí tự.
Tuy nhiên, khi mở các code ví dụ, framework hay thư viện, họ lại thụt 2 kí tự. Các IDE và text editor thiết lập mặc định là 4.

Các ngôn ngữ gặp có Python, JavaScript, HTML, Ruby,…

Khi code thì nên theo quy tắc của creator, tài liệu chính thức, hay từ quy ước cộng đồng community nhỉ?

  • 4 spaces
  • 2 spaces

0 voters

Cảm tưởng viết lồng 4 cái if dùng 4space/1tab thì line chắc bay tới cà mau quá :))

2 Likes

Từ hồi biết code tới giờ, mình thấy 2 spaces thì cứ tun tủn, còn 8 spaces thì dài ngoằng làm sao ấy, do vậy mình luôn trung thành với 4 spaces. Mà 4 spaces không phải là 4 kí tự space đâu, mình luôn set 1 tab character có độ rộng = 4 spaces.

P/s: Sublime text + github cho chuyển tab <-> space, 4 spaces -> các loại khác nên mình chả cần nghĩ gì nhiều :smile:

2 Likes

2 space = khuyến khích code lồng nhau = bad code. 2 vòng for lồng nhau là bad rồi. 8 space = thụt vô nhiều quá hết 1 dòng = buộc phải viết hàm riêng cho mấy vòng for/if ở trong = code tự comment = good code.

2 Likes

Theo rule công ty indent 2 spaces
Chứ project trong trường hay pet project toàn 4 spaces
Thấy 4 spaces code dễ nhìn hơn

3 Likes

Em thấy 8 spaces cứ xa xôi đi đâu ấy. Nhìn dòng trên với dòng dưới cứ như nhìn Việt Nam với Mỹ :v

for u in v:
        if u == 3:
                print("8 spaces...")

:thumbsup:

Like siêu tốc :laughing:
8 spaces nhìn “lạc trôi” quá :laughing:

1 Like

Vừa cmt cho anh tntxtnt, vừa thấy cmt của bạn, kéo xuống đọc ngay -> like luôn cho nóng :smile:

À, cái lợi của 2 spaces là split màn hình xem code bao đã :thumbsup:

2 Likes

Tự dưng nhớ cái thời còn code Pascal trên Turbo ở cấp 2, mỗi lần ấn tab là con trỏ nhảy đến vị trí thẳng với vị trí kết thúc của dòng trên. Code trên IDE khác (FPC, Dev-Pas, ideone) đều indent đều tăm tắp (8 spaces trên FPC và 4 spaces trên Dev-Pas, ideone 1 tab rộng bằng 4 spaces) đều thấy khó chịu, toàn combo thêm vài dấu cách cho giống TP.

begin
     _ //vị trí con trỏ ở đây
end;

Xui thay, mấy lần mình viết line dài loằng ngoằng…

if ((my_name <> "Danisa") and (my_type <> "cookie")) then
                                                         _ // mẹ ơi con trỏ ở đây

Ngày xưa mình ngu dễ sợ…

P/s: Giờ ideone preview code 1 tab = 4 spaces, nhưng khi viết code lại hiện 1 tab = 8 spaces. Sao dạo này ideone khó ở thể nhỉ :v

Đối với Python, JavaScript thì mình nguyên về 4 spaces hơn, vì 4 spaces giúp nhận biết callback hell dễ hơn. Đảm bảo đoạn code hầu hết viết ra chỉ indent tối đa 2 lần.

Với HTML, JSON, XML thì lại thiên về 2 spaces. Vì các ngôn ngữ định dạng này thụt kí tự nhiều. Code thụt 2 spaces dễ đọc hơn là code thụt 4 spaces.

3 Likes

Giờ mình viết trên repl.it thôi :smiley: ideone lỗi mà còn không trực quan.

2 space nhìn rất tù.

1 Like

thấy thằng nào dùng indent để xác định code có trong block hay không thì hay dùng 2 space nhỉ.
Coffee script, ruby…

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?