0
Tải bản đầy đủ (.doc) (45 trang)

Indentation and Code Format

Một phần của tài liệu TÀI LIỆU GIỚI THIỆU VỀ NGÔN NGỮ C DOCX (Trang 31 -34 )

Để tạo các chơng trình đợc dễ hiểu hơn, hầu hết các ngời lập trình chia các chơng trình của họ thành các mức thụt khác nhau. Một quy tắc chung cho ch- ơng trình C++ là phân mức thứ nhất cho mỗi khối mới hoặc điều kiện. Trong ví dụ 3-1 có ba mức logic, mỗi mức với độ phân chia khác nhau. Trạng thái while là ngoài cùng. Trạng thái while ở bên trong là mức kế tiếp. Trạng thái trong cùng là trạng thái if (break) là mức trong cùng.

Có hai kiểu phân chia, và một cuộc chiến tranh tín ngỡng (religious) rộng lớn trong công đồng những ngời lập trình về cái nào là tốt hơn. Kiểu thứ nhất là dạng ngắn: While (! Done) { Cout <<"Processing\"; Next_entry(); } if (total <=0) {

total = 0; } else {

cout<<"you owe "<<total<<"dollars\n"; all_totals = all_totals + total;

}

Trong trờng hợp này hầu hết các dấu ngoặc nhọn (ngoặc xoắn) đợc đặt trên cùng một hàng với các trạng thái.

Kiểu khác đặt các dấu ngoặc nhọn trên các hàng của riêng chúng.

While (! done) { cout<<"processing\n"; next_entry(); } if (total <=0) {

cout<<"you owe nothing\n"; total=0;

}else else {

cout<<"you owe "<<total<<"dollar\n"; all_total = all_total + total;

}

Cả hai dạng đều đợc dùng phổ biến. Bạn nên chọn một kiểu nào mà bạn thấy thoải mái nhất. Trong cuốn sách này sử dụng dạng ngắn.

Khoảng cách thụt vào là tuỳ thuộc vào nhà lập trình. Thông thờng là hai, bốn, tám dấu cách. Qua nghiên cứu ngời ta thấy rằng với độ thụt vào là bốn dấu cách thì mã chơng trình dễ đọc nhất. Bạn có thể chọn bất kỳ một kích cỡ thụt vào nào miễn là nó nhất quán.

Clarity

Một chơng trình nên đọc giống nh một trang kỹ thuật. Nó nên đợc tổ chức thành các phần và các đoạn. Các thủ tục tạo lên một đờng biên giới rất tự nhiên. Bạn nên tổ chức mã nguồn chơng trình của bạn thành các đoạn. Một ý t- ởng tốt là bắt đầu đoạn với một câu chú thích và chia giữa các đoạn bằng một dòng trống.

Ví dụ:

// poor programming practice temp = box_x1;

box_x1 = box_x2; box_x2 = temp; temp = box_y1;

box_y1 = box_y2; box_y2 = temp;

Một bản sao tốt hơn sẽ là:

/*

* Swap the two corners */ /* Swap x coordinate */ temp = box_x1; box_x1 = box_x2; box_x2 = temp; /* Swap y coordinate */ temp = box_y1; box_y1 = box_y2; box_y2 = temp;

Simplicity

Chơng trình của bạn nên đơn giản. Một số nguyên tắc chung là:

• Một hàm đơn không nên dài quá một hoặc hai trang. (Xem chơng 9, phạm

vi biến và các hàm.) Nếu nó kéo dài hơn, thì có thể chia ra thành hai hàm

đơn giản hơn. Quy luật này xuất phát từ việc trí nhớ của con ngời không thể giữ lâu trong vùng nhớ tạm thời (short-term memory). Với ba trang thì bản thân trí nhớ con ngời hầu nh không thể nhớ đợc khi xem lớt qua.

• Tránh các logic phức tạp nh các trạng thái if xếp lồng vào nhau nhiều lần. Chơng trình của bạn càng phức tạp thì bạn sẽ càng cần phân các mức thụt đầu dòng. , bạn nên nghĩ chia mã nguồn thành nhiều thủ tục và vì vậy…

làm giảm mức phức tạp của chơng trình.

• Bạn đã từng đọc một câu, giống nh vậy, những nơi mà tác giả tiếp tục, và tiếp tục, nối kết thứ tự các câu với nhau bằng từ "and," và dờng nh không hiểu rằng trên thực tế một vài câu ngắn hơn sẽ làm công việc đó tốt hơn, và nó không làm phiền bạn chứ?

Trình bày C++ không nên kéo dài quá. Trình bày dài nên đợc tránh. Nếu một phơng trình hoặc công thức thấy nó dờng nh dài hơn một hoặc hai dòng, thì bạn có thể nên chia thành hai công thức ngắn hơn.

• Chia một file mã nguồn đơn lớn thành nhiều file nhỏ hơn. (Xen chơng 23,

Modular Programming, cho chi tiết hơn về lập trình với hiều file.) Nhìn

chung tôi thích giữ file của mình nhỏ hơn 1,500 dòng, nh vậy nó không đến nỗi khó sửa và in.

• Khi sử dụng các class (Xem chơng 13, Các Class đơn giản), đặt mỗi class

trên một module.

• Cuối cùng một nguyên tắc quan trọng nhất là: Tạo chơng trình của bạn đơn giản dễ đọc nhất có thể, thậm trí nếu nó phá vỡ một số nguyên tắc khác. Mục tiêu là rõ ràng và các nguyên tắc đa ra trong chơng này đợc thiết kế để giúp bạn đạt đến mục tiêu đó. (if the rules get in the way, get rid of them).

Tôi đã xem một chơng trình với một sự trình bày đơn mà kéo dài hơn 20 trang. Tuy nhiên bởi sự trình bày tự nhiên hợp lý của chơng trình, sự trình bày này đơn giản và dễ hiểu.

Một phần của tài liệu TÀI LIỆU GIỚI THIỆU VỀ NGÔN NGỮ C DOCX (Trang 31 -34 )

×