Tải bản đầy đủ (.docx) (28 trang)

Coding Standard 4.0

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (253.43 KB, 28 trang )

Trường Đại Hoc Khoa Hoc Tự Nhiên
Khoa Công Nghệ Thông Tin
Môn Hoc : Xây Dựng Phần Mềm

Giáo Viên : Ngô Huy Biên
Version 4.0
Date: 17/05/2011
Writer by Group I – XDPM
XDPM_Nhóm I(Phụ trách nhóm 8) Page 1
STT Thời Gian Version Nội Dung Người Thực Hiện
1 21/03/2011 1.0 Hoàn thiện dần nội dung bản chuẩn mã nguồn Nhóm I
2 22/04/2011 2.0 Hoàn thiện dần nội dung bản chuẩn mã nguồn Nhóm I
3 13/05/2011 3.0 Hoàn thiện dần nội dung bản chuẩn mã nguồn Nhóm I
4 17/05/2011 4.0 Hoàn thành tài liệu chuẩn mã nguồn Nhóm I
I. Giới Thiệu :
1. Mục Đích:
Theo yêu cầu của Thầy cũng như tạo hiệu quả cao trong việc phát triển phần mềm , thống
nhất trong phong cách và giảm chi phí cho việc sửa lổi , bảo trì hệ thống . Nhóm I xây dựng tài
liệu này đưa ra một số đề xuất cũng như mô tả về luật thống nhất cho việc xây dựng phần mềm
quản lý Ký Túc Xá mà nhóm đang xây dựng trong môn hoc Xây Dựng Phần Mềm .
2. Phạm vi tài liệu:
Tài liệu được áp dụng đối với chuẩn C# sự dụng công nghệ WPF cụ thể là chuẩn cứu pháp
và chuẩn ngữ nghĩa . Sẽ qui định cụ thể trong phần dưới đây .
Tài liệu do nhóm sinh viên thực hiện nên có nhiều thiếu sót rất mong được sự góp ý của
Thầy Cô và các bạn .
3. Tài liệu tham khảo :
- Tham khảo slide thuyết trình của nhóm chuẩn mã nguồn thực hiện trong môn hoc
- Bộ chuẩn mã nguồn của phần mềm hoc toán lớp 11
- Bộ chuẩn mã nguồn của phần mềm hoc toán lớp 8
- Bài viết về chuẩn mã nguồn trên Wikipedia
- Có sự tham khảo phần mềm StyleCop


II. Qui Ước Đặt Tên
1. Qui ước viết hoa :
1.1 Pascal case – cú pháp Pascal
Ví dụ:
BackColor
XDPM_Nhóm I(Phụ trách nhóm 8) Page 2
1.2 Camel case – cú pháp Lạc đà
Ký tự đầu tiên của từ đầu tiên viết thường những ký tự đầu tiên của những từ tiếp theo được viết
hoa. Ví du:
backColor
1.3 Uppercase
Tất cả các ký tự được viết hoa. Chỉ sử dụng quy ước này cho những tên bao gồm 2 hoặc vài ký tự.
Ví dụ:
System.IO;
System.Web.UI;
Tùy vào trường hợp mà chúng ta sẽ sử dụng quy ước trên, chẳng hạn viết hoa tất cả thường sử
dụng cho giá trị constant.
Sau đây là bảng quy tắc cùng với ví dụ:
Identifier Case Example
Class Pascal AppDomain
Enum Type Pascal ErrorLevel
Enum Value Pascal FatalError
Event Pascal ValueChange
Exception class Pascal
WebException
Note: Always ends with the suffix Exception
Read-only
Static field
Pascal RedValue
Interface Pascal

IDisposable
Note: Always begins with the prefix I
Method Pascal ToString
Namespace Pascal System.Drawing
Parameter Camel typeName
Property Pascal BackColor
Protected
instance field
Camel redValue
Note: Rarely used. A property is preferable to
XDPM_Nhóm I(Phụ trách nhóm 8) Page 3
Identifier Case Example
using a protected instance field
Public instance
field
Pascal
RedValue
Note: Rarely used. A property is preferable to
using a public instance field
2. Qui Ước Viết Tắt
Để tránh sự nhầm lẫn và lạm dụng viết tắt, sau đây là những quy tắc về việc viết tắt:
• Không sử dụng quy ước viết tắt hoặc viết rút gọn đối với những định danh tên. Ví dụ, sử
dụng GetWindow thay vì GetWin.
• Không sử dụng acronym - những từ mà được cấu tạo từ những chữ đầu của một nhóm từ
mà không được chấp nhận trong lĩnh vực máy tính.
• Trong trường hợp thích hợp, tốt nhất sử dụng acronym để thay thế cho những tên dài. Ví
dụ, sử dụng UI thay cho User Interface and OLAP thay cho On-line Analytical Processing.
• Khi sử dụng acronym, sử dụng cú pháp Pascal hoặc Lạc đà cho những acronym có nhiều
hơn 2 ký tự. Ví dụ, sử dụng HtmlButton hoặc htmlButton. Tuy nhiên, nên viết hoa tât cả ký
tự khi chỉ gồm 2 ký tự, chẳng hạn System.IO thay vì System.Io

• Không viết tắt đối với định danh hoặc tham biến. Nếu phải viết tắt thì sử dụng cú pháp Lạc
đà của những từ có nhiều hơn 2 ký tự mặc dù mâu thuẫn quy ước viết tắt.
3. Chi tiết các chuẩn
3.1. Qui tắc đặt tên namespaces
Quy tắc chung cho việc đặt tên namespaces là sử dụng tên công ty và theo sau là tên công nghệ
và nếu có chức năng và thiết kế theo sau.
CompanyName.Technology[.Feature][.Design]
Ví dụ:
Microsoft.Media
Microsoft.Media.Design
- Tên namespace bắt đầu với tên công ty hoặc nhãn khác tránh tình trạng hai namespace
cùng tên. Ví dụ, Microsoft.Office.
XDPM_Nhóm I(Phụ trách nhóm 8) Page 4
- Namespace phải bao gồm kiểu mà được yêu cầu lúc thiết kế hàm cho namespace cơ sở
với hậu tố .Design. Ví dụ, namespace System.Windows.Forms.Design bao gồm những
trình thiết kế và có liên hệ với lớp cơ sở System.Windows.Forms.
- Có một sự lệ thuộc trên kiểu của namespace. Chằng hạn, lớp the
System.Web.UI.Design lệ thuộc vào lớp System.Web.UI. Tuy nhiên lớp
System.Web.U không lệ thuộc vào lớp System.Web.UI.Design.
- Sử dụng cú pháp Pascal, và ngăn cách những thành phần logic với dấu chấm (. ), như
Microsoft.Office.PowerPoint.
- Sử dụng tên namespace là số nhiều nếu thích hợp. Chằng hạn, sử dụng
System.Collecions hơn là System.Collection. Không kể những trường hợp tên viết tắt.
Chằng hạn sử dụng System.IO hơn là System.IOs.
- Không sử dụng cùng tên cho một namespace và một class. Ví dụ, không có cả
namespace Debug và lớp Debug.
 Tránh sử dụng từ khóa Using trong một namespace :
namespace CodingStandardChecker;
{
using system = System;

}
 Gom tất cả các namespace của cùng nhà cùng cấp thành một nhóm, namespace mình tạo
theo một nhóm:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MyNameSpace;
using MyLibrary;
Cuối cùng, chú ý rằng tên namespace không có song song với nó một thư viện liên kết có cùng
tên.
3.2. Qui tắc đặt tên Lớp
• Sử dụng một danh từ hoặc cụm danh từ.
• Sử dụng cú pháp Pascal.
• Hạn chế viết tắt.
XDPM_Nhóm I(Phụ trách nhóm 8) Page 5
• Không sử dụng kiểu tiền tố, như C cho class, trên một class name. ví dụ, sử dụng tên class
FileStream hơn là CFileStream.
• Không sử dụng ký tự gạch dưới (_).
• Đôi khi tên class có thể bắt đầu với ký tự I, mặc dù class không phải là một interface.
• Thỉnh thoảng, sử dụng từ ghép cho một lớp dẫn xuất. Thành phần thứ hai của tên lớp dẫn
xuất là tên của lớp cơ sở. Ví dụ, ApplicationException là tên của một lớp dẫn xuất từ lớp
Exception, bởi vì ApplicationException là một loại của Exception.
• Sau đây là những cách đặt tên lớp đúng quy tắc:
public class FileStream
public class Button
public class String
• Tên Class phải phản ánh được nội dung chứa nó . Phần mềm xây dựng theo mô hình 3 lớp
nên tên Class được qui định như sau : Tên đối tượng + Tên lớp(BUS, DAO, DTO)
• VD : KhuBUS , KhuDAO , SinhVienDAO ……..

 Khi sử dụng kiểu partial để chia một lớp ra thành nhiều file thì phải đặt tên file đúng với
tên lớp và nhiệm vụ mà phần lớp chứa trong file đó đảm nhiệm một cách logic:
Trong file MyClass.cs: chứa các thuộc tính và phương thức thực thi của lớp
public partial MyClass
{
...
}
Trong file MyClass.Designer.Cs: Chứa các phương thức khởi tạo và vẽ giao diện của lớp.
public partial MyClass
{
...
}
 Tên của file chứa source code của một lớp(class) phải cùng tên với lớp đó.
3.3. Qui tắc đặt tên Form
Đặt tên theo Pascal case nhưng phản ảnh được công việc mà form đó thực hiện
VD : QuanLyDienNuoc , ThongTin , QuanLyPhong .
XDPM_Nhóm I(Phụ trách nhóm 8) Page 6
3.4. Qui tắc đặt tên kiểu dữ liệu
Đặt tên theo Pascal case nhưng phản ảnh được nội dung cũng như dữ liệu mà file đó lưu trữ , Nếu
tên là từ viết tắt thì sử dụng theo Upper case
VD : RangBuoc.xml , KTX.mdf .
3.5. Qui tắc đặt tên kiểu Enum
Giá trị kiểu Enum được kế thừa từ lớp Enum. Sau đây là những quy tắc đặt tên cho enumerations:
• Sử dụng cú pháp Pascal cho kiểu Enum và giá trị tên.
• Hạn chế viết tắt.
• Không sử dụng hậu tố Enum trong tên kiểu Enum.
• Sử dụng tên số ít cho hầu hết những kiểu Enum.
Ví dụ, không đặt tên Protocols mà đặt là Protocol.
public enum Protocol
{

Tcp,
Udp,
Http,
Ftp
}
• Sử dụng tên số nhiều cho kiểu Enum mà có trường bit.
Ví dụ:
[Flags]
public enum Protocol
{
CaseInsensitive = 0x01,
WholeWordOnly = 0x02,
AllDocuments = 0x04,
Backwards = 0x08,
AllowWidlcards = 0x10
}
• Thường xuyên thêm FlagsAttribute đến một trường bit kiểu Enum.
3.6. Qui tắc đạt tên cho trường Static
• Sử dụng danh từ, cụm danh từ hoặc danh từ viết tắt.
• Sử dụng cú pháp Pascal.
XDPM_Nhóm I(Phụ trách nhóm 8) Page 7
• Không sử dụng cú pháp Hungarian cho tên trường static.
• Nên sử dụng thuộc tính static thay vì public static khi có thể.
3.7. Qui tắc đặt tên cho tham biến
• Sử dụng cú pháp Lạc đà.
• Sử dụng tên mô tả tham biến. Tên của tham biến phải được miêu tả đầy đủ, tên và kiểu của
nó dùng để xác định nghĩa trong kịch bản.
• Sử dụng tên được miêu tả theo nghĩa hơn là miêu tả theo kiểu. Hạn chế sử dụng tham biên
type-based và chỉ khi nào cần thiết.
• Không sử dụng tham biến có sẵn. Đây là những tham biến riêng.

• Không sử dụng tên tham biến theo cú pháp Hungari.
Ví dụ về tên tham biến đúng:
type GetType(typeName As string)
string Format(string format, object args())
3.8. Qui tắc đặt tên cho thuộc tính
• Sử dụng danh từ hoặc cụm danh từ.
• Sử dụng cú pháp Pascal.
• Không sử dụng cú pháp Hungari.
• Thuộc tính được tạo phải có tên giống với kiểu bên dưới của nó. Chằng hạn, thuộc tính
Color, thì kiểu của thuộc tính là Color.
Ví dụ về cách đặt tên cho thuộc tính:
public class SampleClass
{
public Color BackColor()
{
// Code for Get and Set accessors go here
}
}
Ví dụ trình bày thuộc tính với tên giống như kiểu.
public enum Color
{
//Insert code for Enum here
}
XDPM_Nhóm I(Phụ trách nhóm 8) Page 8
public class Control
{
public Color Color()
{
get
{

//Insert code here
}
set
{
//Insert code here
}
}
}
Ví dụ sai vì thuộc tính Color mà kiểu là Integer.
public enum Color
{
//Insert code for Enum here
}
public class Control
{
public int Color
{
get
{
//Insert code here
}
set
{
//Insert code here
}
}
}
3.9. Qui tắc đặt tên biến
Đặt tên biến miêu tả được nội dung/mục đích sử dụng của nó
Tránh đặt tên biến với chỉ một chữ cái, chẳng hạn như i, t thay vào đó ta nên đặt tên là

index, temp.
Không viết tắt, ví dụ không được viết là num thay cho number.
Sử dụng danh từ hoặc cụm danh từ.
• Sử dụng cú pháp Lạc đà.
XDPM_Nhóm I(Phụ trách nhóm 8) Page 9
• Sử dụng cú pháp Hungari cho kiểu nguyên thủy.
• Do not use Hungarian notation for scope of variables.
• Sử dụng objCommand, objConn, param như là những tên chuẩn cho SQLCommand và
SQLConnection, SQLParameter. Sử dụng da như là tên cho SqlDataAdapter ad ds cho đối
tượng DataSet.
• Sử dụng i, j, k cho biến đếm.
Ví dụ về cách đặt tên đúng cho biến có kiểu dữ liệu nguyên thủy
C# Style name Common use style name Prefix Example
sbyte SByte sbyt sbytSalary
byte Byte byt bytRasterData
short Int16 sht shtAge
ushort UInt16 usht ushtAccount
int Int32 int intQuantity
uint UInt32 uint unitEmployeeID
long Int64 lng lngQuantity
ulong UInt64 ulng ulngDistance
float Single flt fltTotal
double Double dbl dblTolerance
decimal Decimal dec decAmountOfMoney
bool Boolean bln blnFound
datetime DateTime dtm dtmStart
char Char chr chrFirstLetter
string String str strFName
object Object obj objCurrent
3.10. Qui tắc đặt tên biến toàn cục

Sử dụng kiểu Camel để đặt tên cho biến cục bộ và đối số của các hàm/phương thức:
XDPM_Nhóm I(Phụ trách nhóm 8) Page 10

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×