28
1 Programming Convention Programming Convention Presenter : Nguyễn Bảo Trung

Code convention

Embed Size (px)

DESCRIPTION

Phong cách Lập trình - những kiến thức cơ bản - Hanoi-Aptech

Citation preview

Page 1: Code convention

1

Programming ConventionProgramming Convention

Presenter : Nguyễn Bảo Trung

Page 2: Code convention

2

Nội dungNội dung

Tổng quan về Programming Convention

Một số phong cách lập trình cũĐánh giá các thói quen cũCác quy tắc viết code của Steve

McConnellLợi ích của việc trình bầy cẩn thận

Page 3: Code convention

3

Tổng quan về Programming Tổng quan về Programming Convention (PC)Convention (PC)Viết code như thế nào?Cách viết code có ảnh hưởng đến khả

năng tư duy và hiệu suất làm việc không?– Bài test– Bài tập 1– Bài tập 2

Page 4: Code convention

4

Tổng quan về Programming Tổng quan về Programming Convention (Continue)Convention (Continue) Cách viết code ảnh hưởng rất lớn đến khả

năng tư duy và hiệu suât làm việc Cần phải viết code theo kiểu gì để tăng khả

năng tư duy và hiệu suất làm việc?– Viết code theo chuẩn– Thêm chú thích cần thiết, theo chuẩn

PC thể hiện bởi cách viết code và comment PC tốt là cách viết code và comment theo

chuẩn Nếu không viết theo chuẩn thì sao?

Page 5: Code convention

5

Một số phong cách lập trình cũMột số phong cách lập trình cũ

Không có chuẩn– Thích viết gì thì viết tuỳ theo hứng– Không có một logic tổng thể trong cách trình bày

chương trình Tự đặt ra một số quy tắc viết

– Tiết kiệm dòng– Tiết kiệm cột– Lãng phí dòng– Lãng phí cột

Đã có chuẩn nhưng chưa thực sự tốt

Page 6: Code convention

6

Đánh giá các thói quen cũĐánh giá các thói quen cũ

Dễ viết, thuận mắt (theo cảm tính) Không nhanh như ta nghĩ Dễ gây nhầm lẫn Luôn thừa thiếu Begin…End Rất khó đọc hiểu Có nhiều lỗi do hiệu ứng phụ(Side effects) Rất khó và mất nhiều thời gian cho việc sửa

lỗi

Page 7: Code convention

7

Các quy tắc viết code của Steve Các quy tắc viết code của Steve McConnellMcConnell Định lý cơ sở của định dạng

– Cơ sở lý thuyết của định dạng là cách trình bầy rõ ràng, sáng sủa nổi bật được cấu trúc logic của chương trình

Chuẩn mực cho cách trình bầy chương trình có hiệu quả– Một phần nhỏ trong lập trình là để máy tính có

thể đọc được nó– Phần lớn hơn là viết các mã lệnh cho chương

trình chạy được theo đúng chức năng và làm sao để con người có thể đọc được nó

Page 8: Code convention

8

Các kỹ năng trình bầyCác kỹ năng trình bầy

Dấu trắng (dấu cách, dấu Tab, xuống dòng, dòng trắng,…)– Phân nhóm– Dòng trống– Sắp xếp thẳng hàng– Thụt vào

Sử dụng các dấu ngoặc đơnThêm chú thích vào chương trình

Page 9: Code convention

9

Các kiểu trình bầyCác kiểu trình bầy

Khối PureKhối EndlineKhối Emulating PureKhối bao bởi Begin-end

Page 10: Code convention

10

Khối PureKhối Pure

A

C

B

D

Page 11: Code convention

11

Khối EndlineKhối Endline

A

C

B

D

Page 12: Code convention

12

Khối Emulating PureKhối Emulating Pure

BeginA

C

B

D end

Page 13: Code convention

13

Khối bao bởi Begin-endKhối bao bởi Begin-end

Begin

A

C

B

D end

Page 14: Code convention

14

Khối nào là tốt nhấtKhối nào là tốt nhất

Khối Endline – Tồi nhất

Khối Pure – Thích hợp với ADA, VB, …

Khối Begin-End – Thích hợp với C, Pascal, …

Khối Emulating Pure – Có thể dùng cho cả ADA, VB, C, Pascal, …

Page 15: Code convention

15

Các kỹ năng khácCác kỹ năng khác

Sử dụng các dòng trống giữa các đoạn chương trình

Định dạng các khối lệnh đơn phù hợpĐối với các biểu thức phức tạp hãy đặt

từng điều kiện trên từng dòng riêng (VD)

Tránh Goto

Page 16: Code convention

16

Độ dài mỗi dòng lệnh Độ dài mỗi dòng lệnh

Nguyên tắc chung đưa ra cho giới hạn về độ dài mỗi dòng lệnh thường không quá 80 ký tự. Sau đây là một số lý do– Các dòng có quá 80 ký tự rất khó theo dõi– Giới hạn 80 ký tự trong một dòng không làm cản

trở tới các vòng lệnh xếp chồng (như lệnh lặp, lệnh điều kiện...)

– Các dòng dài quá 80 ký tự không thích hợp với khổ giấy in 8.5x11

– Các khổ giấy khác rất khó gộp trong file

Page 17: Code convention

17

Sử dụng các dấu cách cho rõ ràngSử dụng các dấu cách cho rõ ràng

Sử dụng dấu cách làm cho các biểu thức logic dễ đọc

Sử dụng dấu cách làm cho dễ so sánh

Page 18: Code convention

18

Ví dụVí dụ

EmployeeName = InputName EmployeeSalary = InputSalary EmployeeBirthdate = InputBirthdate BossTitle = Title BossDept = Department

EmployeeName = InputName EmployeeSalary = InputSalary EmployeeBirthdate = InputBirthdate BossTitle = Title BossDept = Department

Page 19: Code convention

19

Chỉ sử dụng một dòng đối với một Chỉ sử dụng một dòng đối với một dòng lệnhdòng lệnhĐặt mỗi lệnh trên một dòng sẽ không

làm mất đi cấu trúc của các lệnh phức hợp

Tạo cho ta cảm giác đơn giản hơn dễ theo dõi

Khi bạn cần tìm một dòng lệnh đặc biệt chỉ cần nhìn theo lề bên trái của đoạn mã

Rất dễ kiểm soát lỗi (khi biết dòng lỗi)

Page 20: Code convention

20

Trong C, tránh Side effectsTrong C, tránh Side effects

Printf(“%d %d \n”, ++n, n+2);

++n;Printf(“%d %d \n”, n , n+2);

Page 21: Code convention

21

Cách trình bầy các dữ liệu khai Cách trình bầy các dữ liệu khai báobáoSắp xếp thẳng hàng đối với các dữ liệu

khai báoChỉ khai báo một dữ liệu khai báo trên

một dòngThứ tự khai báo rõ ràng

Page 22: Code convention

22

Trình bầy các thủ tụcTrình bầy các thủ tục

Sử dụng các dòng cách để phân chia các phần của thủ tục

Thụt các thủ tục vào với số đếm chuẩnvoid InsertionSort()

{

int FirstElmt;

int LastElmt;

}

Page 23: Code convention

23

Chú thích (Comment)Chú thích (Comment)

Chú thích hay không chú thích?Tác dụng của chú thích trong chương

trình

Page 24: Code convention

24

Tác dụng của chú thích trong Tác dụng của chú thích trong chương trìnhchương trình Khi kỹ năng viết chú thích chưa tốt

– Các lời chú thích cho chương trình chiếm mất rất nhiều thời gian

– Lời chú thích rất khó thay đổi– Các từ ngữ được dùng vào để giải thích rất khó

diễn đạt được hết Khi kỹ năng viết chú thích tốt

– Làm chương trình trong sáng, dễ đọc, dễ hiểu– Thể hiện tốt cấu trúc chương trình

Page 25: Code convention

25

Lợi ích của việc trình bầy cẩn thậnLợi ích của việc trình bầy cẩn thận

Thể hiện tốt cấu trúc lôgic của mã lệnh Cải thiện khả năng đọc Bảo đảm sự chính xác trong các thay đổi Các lợi ích hệ quả của các lợi ích trên

– Tiết kiệm thời gian sửa lỗi– Tăng khả năng làm việc theo nhóm, …

Page 26: Code convention

26

Tóm tắtTóm tắt

Bạn đã hiểu được thế nào PCPC của Steve McConnellLợi ích của việc tuân theo một PC tốt

Page 27: Code convention

27

Vậy các bạn thu được gì Vậy các bạn thu được gì qua buổi ngày hôm nay?qua buổi ngày hôm nay?

Page 28: Code convention

Thực hànhThực hành

Bài tập

Kết quả

28