01/10/2018, 12:18

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

Dark.Hades viết 14:20 ngày 01/10/2018

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á :))

HK boy viết 14:19 ngày 01/10/2018

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

viết 14:33 ngày 01/10/2018

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.

Phan Bá Hải viết 14:21 ngày 01/10/2018

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

HK boy viết 14:27 ngày 01/10/2018

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...")

Thấy 4 spaces code dễ nhìn hơn

Phan Bá Hải viết 14:30 ngày 01/10/2018

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

HK boy viết 14:29 ngày 01/10/2018

Like siêu tốc

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

Phan Bá Hải viết 14:23 ngày 01/10/2018

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

HK boy viết 14:27 ngày 01/10/2018

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

Hung viết 14:33 ngày 01/10/2018

Đố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.

rogp10 viết 14:19 ngày 01/10/2018

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

2 space nhìn rất tù.

Nguyen Ca viết 14:29 ngày 01/10/2018

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…

Bài liên quan
0