280 likes | 373 Views
Programming Convention. Presenter : Nguyễn Bảo Trung. Nộ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 McConnell Lợi ích của việc trình bầy cẩn thận. Tổng quan về Programming Convention (PC).
E N D
Programming Convention Presenter : Nguyễn Bảo Trung
Nộ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 McConnell • Lợi ích của việc trình bầy cẩn thận
Tổngquanvề Programming 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
Tổngquanvề Programming 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?
Mộtsốphongcáchlậptrìnhcũ • 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
Đánhgiácácthóiquencũ • 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
Cácquytắcviết code của Steve McConnell • Đị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ó
Cáckỹnăngtrìnhbầ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 đơn • Thêm chú thích vào chương trình
Cáckiểutrìnhbầy • Khối Pure • Khối Endline • Khối Emulating Pure • Khối bao bởi Begin-end
A B C D KhốiPure
A B C D Khối Endline
Begin A B C end D Khối Emulating Pure
Begin end A B C D Khối bao bởi Begin-end
Khố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, …
Cá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
Độ 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
Sử 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
Ví dụ • EmployeeName = InputName • EmployeeSalary = InputSalary • EmployeeBirthdate = InputBirthdate • BossTitle = Title • BossDept = Department • EmployeeName = InputName • EmployeeSalary = InputSalary • EmployeeBirthdate = InputBirthdate • BossTitle = Title • BossDept = Department
Chỉ sử dụng một dòng đối với một dò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)
Trong C, tránh Side effects • Printf(“%d %d \n”, ++n, n+2); • ++n; • Printf(“%d %d \n”, n , n+2);
Cách trình bầy các dữ liệu khai báo • Sắp xếp thẳng hàng đối với các dữ liệu khai báo • Chỉ khai báo một dữ liệu khai báo trên một dòng • Thứ tự khai báo rõ ràng
Trì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ẩn void InsertionSort() { int FirstElmt; int LastElmt; }
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
Tác dụng của chú thích trong chươ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
Lợ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, …
Tóm tắt • Bạn đã hiểu được thế nào PC • PC của Steve McConnell • Lợi ích của việc tuân theo một PC tốt
Thực hành • Bài tập • Kết quả