Upload
hanoiaptech
View
2.329
Download
3
Embed Size (px)
DESCRIPTION
Phong cách Lập trình - những kiến thức cơ bản - Hanoi-Aptech
Citation preview
1
Programming ConventionProgramming Convention
Presenter : Nguyễn Bảo Trung
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
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
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?
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
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
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ó
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
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
10
Khối PureKhối Pure
A
C
B
D
11
Khối EndlineKhối Endline
A
C
B
D
12
Khối Emulating PureKhối Emulating Pure
BeginA
C
B
D end
13
Khối bao bởi Begin-endKhối bao bởi Begin-end
Begin
A
C
B
D end
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, …
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
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
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
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
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)
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);
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
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;
}
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
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
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, …
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
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?
Thực hànhThực hành
Bài tập
Kết quả
28