Indent là gì? Nên dùng Tab hay Space?

Nên dùng Tab hay Space? Dùng Tab tốt hơn hay Space tốt hơn? Chắc hẳn bạn đã từng nghe qua các câu hỏi này trên những diễn đàn, trang mạng xã hội có chủ đề liên quan đến lập trình. Và hôm nay, hoccode.org sẽ đem chủ đề này ra để mổ xẻ, phân tích.

Trước hết, chúng ta cùng tìm hiểu bản chất của Tab và Space, điều mà các lập trình viên thường hay bỏ lơ khi tham gia vào trả lời câu hỏi trên, đó là Indent.

Vậy Indent là gì?

Khái niệm Indent

Indent là một thủ thuật (phương pháp) thục dòng code giúp các đoạn code trông dễ nhìn hơn, cân đối hơn, đẹp mắt hơn, hỗ trợ tốt hơn cho việc phát triển tiếp (viết thêm code) hay sửa lỗi code (debug).

Indent là gì? - Khái niệm Indent

Để hiểu rõ hơn, ta cùng tham khảo qua một vài ví dụ đơn giản sau:

Source code Diễn giải

Một đoạn code HTML


...
<section>
    <div class="row">
         <div class="col">Column 1</div>
         <div class="col">Column 2</div>
    </div>
</section>
...

Ở ví dụ này ta thấy được phần tử <section>...</section> bao lấy các phần tử con bên trong sẽ được đặt sát lề bên trái nhất, trong khi phần tử con <div class="row">...</div> được đặt thụt vào bên trong 1 khoảng nhất định.

Tương tự 2 phần tử <div class="col">...</div> đượt thụt vào bên trong nhiều hơn so với phần tử bao lấy nó là <div class="row">...</div>

Chính cách sắp xếp này (gọi là indent) giúp cho việc soạn thảo, xem và chỉnh sửa các đoạn mã HTML trở nên dễ dàng và chính xác về mặt cú pháp hơn.

Một đoạn code PHP


...
for ($i = 1; $i <10; $i++){

    $result = $i * 2;
    echo $result;
}
...

Ở ví dụ này, ta thấy các câu lệnh thực thi nằm bên trong vòng lặp for được viết thụt vào bên trong 1 khoảng nhất định, giúp cho người viết và người xem nó có thể dễ dàng nhận biết điểm bắt đầu và kết thúc vòng lặp, cũng như những câu lệnh bên trong và ngoài vòng lặp.

2 cách thức phổ thông nhất để ta có thể Indent Code là dùng phím SpaceTab.

Khi bạn dùng Space, phần mềm soạn thảo sẽ đẩy con trỏ của bạn đi về bên phải một khoảng nhỏ. Bạn có thể Space nhiều lần liên tục nếu muốn.

Khi bạn dùng Tab, phần mềm soạn thảo sẽ đẩy con trỏ của bạn đi về bên phải một khoảng lớn hơn (trung bình gấp 4 lần Space). Bạn có thể Tab nhiều lần liên tục nếu muốn.

So sánh ưu và nhược điểm của Space và Tab

Space Tab
Ưu Do khoảng trống để lại khi dùng space là khá nhỏ, bạn sẽ có nhiều không gian để hiển thị code trên cùng 1 hàng hơn so với Tab. Khoảng trống lớn giúp bạn dễ dàng nhìn thấy rõ syntax trong code.
Nhược Đôi khi khoảng trống quá nhỏ để khiến bạn có thể nhận ra rõ syntax trong code. Do chiều rộng của màn hình là có giới hạn, nên việc dùng Tab sẽ có ít không gian để hiển thị code trên cùng một hàng hơn.

Ngoài phương pháp dùng Space và Tab, nhiều phần mềm soạn thảo code ngày nay cũng có các phím tắt điều chỉnh Indent. Ví dụ trong Visual Studio Code trên Windows, ta có phím Ctr + ] để tăng Indent và Ctr + [ để giảm Indent.

Khi điều chỉnh mức độ thụt dòng code, Indent có nghĩa là tăng khoảng cách thụt dòng, trong khi Dedent có nghĩa là giảm khoảng cách thụt dòng.

Vai trò của Indent

Như đã đề cập trong phần khái niệm, việc Indent code chỉ có tác dụng duy nhất là giúp code trên phần mềm soạn thảo trở nên cân đối, dễ nhìn hơn. Indent không ảnh hưởng đến chức năng hay hoạt động của code.

Nên dùng Tab hay Space?

Nên dùng Tab hay Space?

Quay trở lại câu hỏi: lập trình viên nên dùng Tab hay Space? Mình xin trả lời câu hỏi này là tùy vào trường hợp, và mình sẽ liệt kê 2 trường hợp phổ biến làm mẫu dưới đây.

Trường hợp 1: Bạn code solo (thực hiện 1 mình) một dự án từ đầu đến cuối.

Câu trả lời: Dùng Tab hay Space đều được, tùy thuộc bạn quen dùng phương pháp nào.

Nếu trước giờ bạn quen dùng Tab, thì bạn hãy cứ dùng nó. Hay trước giờ bạn quen dùng Space, hãy cứ tiếp tục. Điều bạn cần lưu ý duy nhất là tính nhất quán (dùng 1 phương pháp xuyên suốt từ đầu đến cuối dự án) để hạn chế nhầm lẫn trong quá trình bạn code.

Trường hợp 2: Bạn code cùng với team trong một dự án nhất định.

Câu trả lời: Tùy thuộc vào quy định mà team của bạn đưa ra.

Nếu team của bạn quy định dùng Tab, hãy cố gắng tuân thủ nó. Ngược lại, nếu team của bạn quy định dùng space, đừng cố mà dùng Tab. Việc các thành viên trong team chỉ dùng 1 phương pháp Indent duy nhất cho một dự án sẽ giúp cho việc tổng hợp code, ráp các chức năng riêng lẻ trở nên dễ dàng và ít sai sót hơn, từ đó giúp nâng cao hiệu suất của cả quá trình thực hiện dự án.

Những tư tưởng & suy nghĩ cần phải thay đổi về lập trình viên dùng Tab và Space

Một số bạn dev có những suy nghĩ, cách nhìn cực đoan về Tab và Space, đại loại như:

"Chỉ có những thằng dev gà mới dùng Space."

"Tất cả những dev pro đều dùng Tab."

Như mình đã giải thích bên trên, Tab hay Space chỉ là một hình thức của Indent, và nó không ảnh hưởng đến chức năng và phương thức hoạt động của code. Trong khi thứ để đem ra đánh giá mức độ "pro" của một lập trình viên cuối cùng nằm ở trải nghiệm người dùng khi dùng sản phẩm mà lập trình viên đó làm ra (Số lượng chức năng, tính năng của sản phẩm, giao diện của website/phần mềm, tốc độ load/xử lý, độ ổn định, số lỗi/bug tồn tại...).

Hãy luôn nhớ rằng không quan trọng bạn dùng phương pháp nào, quan trọng là cách bạn dùng nó sao cho hiệu quả. Nếu trước giờ bạn quen dùng Space và cảm thấy nó thực sự hiệu quả cho công việc của bạn thì hãy cứ tiếp tục và bạn có quyền tự hào về nó. Ngược lại, nếu trước giờ bạn đã quen dùng Tab, thì bạn có quyền tôn trọng phương pháp của mình miễn là nó mang lại hiệu quả, nhưng xin đừng tỏ ra ngạo mạn và xem thường các dev dùng Space, vì Tab hay Space cũng chỉ là một hình thức của Indent.

Như vậy là ta đã vừa tham khảo qua phần kết của bài viết rồi. Nếu bạn có bất kỳ thắc mắc hay ý kiến đóng góp nào, hãy để lại bình luận (comment) bên dưới. Ngoài ra, nếu bạn thấy nội dung bài viết hay và hữu ích, hãy cho chúng tớ 1 like, share hay đánh giá để chúng tớ có thêm động lực sản xuất ra những nội dung "chất" hơn nhé!

Thân chào.

Đăng ký để nhận được thông báo mỗi khi có bài viết mới!