các quy tắc đặt tên trong lập trình

12
Đây là một ghi chú nhỏ của mình khi mình học về lập trình. Bài viết này nói về các quy tắc đặt tên thường được dùng trên thế giới. Công việc đặt tên cho biến, hàm, lớp, cấu trúc, … trong lập trình là công việc thường ngày và ít được chúng ta để ý. Tuy nhiên có một vấn đề quan trọng là: “sẽ như thế nào khi ta làm việc nhóm.”. Có bao giờ bạn lên mạng down về một source code và tham khảo chưa. Nếu đã từng thì chắc hẳn bạn sẽ biết sẽ khó như thế nào khi phải đặt mình vào cách viết code của người khác. Mỗi người có thói quen và sở thích riêng nên việc viết code dựa theo sở thích sẽ tạo nên rào cản cho việc làm nhóm. Như vậy, hôm nay, mình viết ghi chú này, đầu tiên là để ghi lại cho bản thân, kế tiếp là giúp cho các bạn – đặc biệt là các newbie các rockie mới biết đến lập trình – biết hiểu và tập một thói quen tốt.Tất nhiên là nội dung bài viết này không dài, cũng không mấy quan trọng nếu như bạn không quan tâm. Tuy nhiên mình vẫn hi vọng đóng góp được điều gì đó khi các bạn đọc các bài viết trong blog của mình. I. Sau đây là quy tắc đặt tên trong lập trình: 1. Pascal Case (còn được gọi là Upper Camel Case): quy tắc này yêu cầu viết hoa các chữ cái đầu tiên của mọi từ Vd: T hisIsPascalCase 2. Camel Case (còn được gọi là Lower Camel Case): quy tắc này hơi đặt biệt một tí. Chữ cái đầu tiên của từ đầu tiên viết thường. Các từ còn lại viết hoa chữ cái đầu tiên. Vd: t hisIsCamelCase II. Pascal và Camel Case được sử dụng lúc nào? * Class, Struct : Pascal Case (Upper Camel Case) 1 class SinhVien 2 { 3 ... 4 }; * Function, Method : Camel Case (Lower Camel Case) 1 int lamBaiTap() 2 { 3 ... 4 } * Variable : Camel Case (Lower Camel Case) 1 int hocPhi = 1400000; //1.400.000 vnđ : khiếp quá * Constant : viết in hoa mọi ký tự và giữa các từ dùng dấu “_” (dấu gạch chân) 1 #define MY_MAX 100 2 ... 3 const int MY_MIN = 10; III. Định nghĩa Hungary (một số tài liệu gọi là định danh Hungary) Đây là một quy tắc nữa được dùng dùng để đặt tên cho biến. Quy tắc này có thể di kèm với Camel Case (Lower Camel Case). Mục tiêu của quy tắc này giúp tăng khả năng nhận biết kiểu dữ liệu của biến bằng cách gắn vào trước mỗi biến một số ký tự mô tả kiểu dữ liệu của chúng. Vd: int iTuSo; //bạn có thể thấy ký tự “i” là đại diện cho int

Upload: son-nghiem

Post on 07-Dec-2014

400 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Các quy tắc đặt tên trong lập trình

Đây là một ghi chú nhỏ của mình khi mình học về lập trình. Bài viết này nói về các quy tắc đặt tên thường được dùng trên thế giới. Công việc đặt tên cho biến, hàm, lớp, cấu trúc, … trong lập trình là công việc thường ngày và ít được chúng ta để ý. Tuy nhiên có một vấn đề quan trọng là: “sẽ như thế nào khi ta làm việc nhóm.”.Có bao giờ bạn lên mạng down về một source code và tham khảo chưa. Nếu đã từng thì chắc hẳn bạn sẽ biết sẽ khó như thế nào khi phải đặt mình vào cách viết code của người khác. Mỗi người có thói quen và sở thích riêng nên việc viết code dựa theo sở thích sẽ tạo nên rào cản cho việc làm nhóm.Như vậy, hôm nay, mình viết ghi chú này, đầu tiên là để ghi lại cho bản thân, kế tiếp là giúp cho các bạn – đặc biệt là các newbie các rockie mới biết đến lập trình – biết hiểu và tập một thói quen tốt.Tất nhiên là nội dung bài viết này không dài, cũng không mấy quan trọng nếu như bạn không quan tâm. Tuy nhiên mình vẫn hi vọng đóng góp được điều gì đó khi các bạn đọc các bài viết trong blog của mình.

I. Sau đây là quy tắc đặt tên trong lập trình:1. Pascal Case (còn được gọi là Upper Camel Case): quy tắc này yêu cầu viết hoa các chữ cái đầu tiên của mọi từVd:T hisIsPascalCase2. Camel Case (còn được gọi là Lower Camel Case): quy tắc này hơi đặt biệt một tí. Chữ cái đầu tiên của từ đầu tiên viết thường. Các từ còn lại viết hoa chữ cái đầu tiên.Vd:t hisIsCamelCase

II. Pascal và Camel Case được sử dụng lúc nào?* Class, Struct : Pascal Case (Upper Camel Case)1 class SinhVien2 {3 ...4 };* Function, Method : Camel Case (Lower Camel Case)1 int lamBaiTap()2 {3 ...4 }* Variable : Camel Case (Lower Camel Case)1 int hocPhi = 1400000;     //1.400.000 vnđ : khiếp quá* Constant : viết in hoa mọi ký tự và giữa các từ dùng dấu “_” (dấu gạch chân)1 #define MY_MAX 1002  ...3 const int MY_MIN = 10;

III. Định nghĩa Hungary (một số tài liệu gọi là định danh Hungary)Đây là một quy tắc nữa được dùng dùng để đặt tên cho biến. Quy tắc này có thể di kèm với Camel Case (Lower Camel Case). Mục tiêu của quy tắc này giúp tăng khả năng nhận biết kiểu dữ liệu của biến bằng cách gắn vào trước mỗi biến một số ký tự mô tả kiểu dữ liệu của chúng.Vd:int iTuSo;     //bạn có thể thấy ký tự “i” là đại diện cho intSau đây là các ký tự thường gặpc : char, WCHAR, TCHARby : byten : short intergeri : intl : longf: float, flag

Page 2: Các quy tắc đặt tên trong lập trình

x, y, z : các biến tọa độ trụcb : bool, booleanw : WORD, unsigned shortdw : DWORD, unsigned longs : stringsz : string terminated by zeroh : handlep : pointer

Ngoài những ký tự trên thì còn những ký tự khác nữa mà bạn sẽ gặp. Tuy nhiên bấy nhiêu trên kia đã dư rồi. Ví dụ như kiểu WORD hay DWORD là những kiểu dữ liệu mà bạn sẽ chẳng bao giờ gặp nếu như bạn không bao giờ đụng đến lập trình “C for Windows” (hay còn gọi là lập trình Win32 API). Bạn nên lưu ý là nó khác với lập trình Windows nha.

IV. Những cách ngoài luồng mà mình giới thiệu không phải là chuẩn mà là một thói quen

được người ta hay sử dụng. Không biết đúng không nên các bạn nào biết thì chỉ nhá.m_ : người ta thường thêm ký tự này vào trước tên biến thành viên (thuộc tính) của lớp để phân biệt với biến thường.1 class ABC2 {3 protected:4 int m_iNumber;   //"m" là viết rút gọn của member5 float m_fNumber;6 };fn : đây là viết tắt của function. Bạn có để ý là khi viết tên hàm theo Lower Camel Case thì trông nó có vẻ gì đó không xứng vì chữ cái đầu bị “teo” lại. Do vậy mà theo mình, người ta hay viết thêm fn vào vừa để chỉ rõ đây là hàm và vừa để tên hàm luôn được viết hoa chữ cái đầu tiên.VD: int fnTenHam( )Ngoài ra còn nhiều quy tắc khác nữa tạo nên điểm nhấn cho đoạn code của bạn mà không ảnh hưởng đến cấu trúc chung nên bạn cứ an tâm sáng tạo nha.V.Còn đây là quy ước đặt tên trong visual basic của microsoftCung cấp cho bạn các quy ước đặt tên được sử dụng bởi Microsoft tư vấn dịch vụ (MCS). Tài liệu này là một superset của các mã hóa công ước Visual Basic được tìm thấy trong Visual Basic "Programmer's Guide."  

Đối tượng công ước đặt tên cho các đối tượng tiêu chuẩnBảng dưới đây xác định các tiền tố MCS tên đối tượng tiêu chuẩn. Những tiền tố là phù hợp với những tài liệu trong Visual Basic lập trình hướng dẫn.Prefix Object Type Example-------------------------------------------------------ani Animation button aniMailBoxbed Pen Bedit bedFirstNamecbo Combo box and drop down list box cboEnglishchk Checkbox chkReadOnlyclp Picture clip clpToolbarcmd (3d) Command button (3D) cmdOk (cmd3dOk)com Communications comFaxctr Control (when specific type unknown) ctrCurrentdat Data control datBibliodir Directory list box dirSourcedlg Common dialog control dlgFileOpendrv Drive list box drvTargetfil File list box filSourcefrm Form frmEntry

Page 3: Các quy tắc đặt tên trong lập trình

fra (3d) Frame (3d) fraStyle (fra3dStyle)gau Gauge gauStatusgpb Group push button gpbChannelgra Graph graRevenuegrd Grid grdPriceshed Pen Hedit hedSignaturehsb Horizontal scroll bar hsbVolumeimg Image imgIconink Pen Ink inkMapkey Keyboard key status keyCapslbl Label lblHelpMessagelin Line linVerticallst List box lstPolicyCodesmdi MDI child form mdiNotempm MAPI message mpmSentMessagemps MAPI session mpsSessionmci MCI mciVideomnu Menu mnuFileOpenopt (3d) Option Button (3d) optRed (opt3dRed)ole OLE control oleWorksheetout Outline control outOrgChartpic Picture picVGApnl3d 3d Panel pnl3drpt Report control rptQtr1Earningsshp Shape controls shpCirclespn Spin control spnPagestxt Text Box txtLastNametmr Timer tmrAlarmvsb Vertical scroll bar vsbRate

Đối tượng quy ước đặt tên cho các đối tượng cơ sở dữ liệuPrefix Object Type Example------------------------------------------db ODBC Database dbAccountsds ODBC Dynaset object dsSalesByRegionfdc Field collection fdcCustomerfd Field object fdAddressix Index object ixAgeixc Index collection ixcNewAgeqd QueryDef object qdSalesByRegionqry (suffix) Query (see NOTE) SalesByRegionQryss Snapshot object ssForecasttb Table object tbCustomertd TableDef object tdCustomers

Lưu Ý: Bằng cách sử dụng một hậu tố cho các truy vấn cho phép mỗi truy vấn để được sắp xếp với bảng liên kết trong hộp thoại Microsoft Access (thêm bảng, danh sách các bảng ảnh chụp).

Quy ước đặt tên đơnCác ứng dụng thường xuyên sử dụng một sự phong phú của điều khiển menu.Kết quả là, bạn cần một bộ khác nhau của công ước đặt tên cho các điều khiển. Tiền tố đơn kiểm soát nên được mở rộng vượt ra ngoài nhãn hiệu đầu tiên mnu bằng cách thêm một tiền tố bổ

Page 4: Các quy tắc đặt tên trong lập trình

sung cho mỗi cấp độ làm tổ, với các chú thích cuối cùng trình đơn ở phần cuối của chuỗi tên. Ví dụ:Menu Caption Sequence Menu Handler NameHelp.Contents mnuHelpContentsFile.Open mnuFileOpenFormat.Character mnuFormatCharacterFile.Send.Fax mnuFileSendFaxFile.Send.Email mnuFileSendEmail Khi công ước này được sử dụng, tất cả thành viên của một nhóm cụ thể đơn được liệt kê bên cạnh mỗi khác trong đối tượng danh sách thả xuống hộp (trong mã cửa sổ và cửa sổ bất động sản). Ngoài ra, tên điều khiển menu rõ ràng tài liệu các mục trình đơn mà họ được kết nối vào.

Quy ước đặt tên cho các điều khiển khácCho mới điều khiển không được liệt kê ở trên, hãy thử để đi lên với một tiền tố ba nhân vật duy nhất. Tuy nhiên, nó là quan trọng để rõ ràng hơn để dính vào ba ký tự. Đối với điều khiển bắt nguồn từ, chẳng hạn như một hộp danh sách nâng cao, mở rộng các tiền tố bên trên vì vậy mà có là không có sự nhầm lẫn hơn kiểm soát mà thực sự được sử dụng. Một tên viết tắt thấp hơn trường hợp cho các nhà sản xuất cũng thường sẽ được thêm vào tiền tố. Ví dụ, một ví dụ kiểm soát tạo ra từ các chuyên Visual Basic 3D khung có thể sử dụng một tiền tố của fra3d để tránh nhầm lẫn mà điều khiển đang thực sự được sử dụng. Một nút lệnh từ MicroHelp có thể sử dụng cmdm để phân biệt nó từ nút chuẩn lệnh (cmd).

Điều khiển bên thứ baMỗi điều khiển bên thứ ba được sử dụng trong một ứng dụng nên được liệt kê trong các ứng dụng tổng quan phần bình luận, cung cấp tiền tố được dùng cho việc kiểm soát, tên đầy đủ của các điều khiển, và tên của các nhà cung cấp phần mềm:Prefix Control Type Vendorcmdm Command Button MicroHelp

Thay đổi và thói quen đặt tênTên biến và chức năng có cấu trúc sau: <prefix> <body> <qualifier> <suffix>Part Description Example--------------------------------------------------------------------------<prefix> Describes the use and scope of the variable. iGetRecordNext<body> Describes the variable. iGetNameFirst<qualifier> Denotes a derivative of the variable. iGetNameLast<suffix> The optional Visual Basic type character. iGetRecordNext% Tiền tố: Bảng dưới đây xác định biến và chức năng tên tố dựa trên ký hiệu Hungary C cho Windows. Tiền tố này nên được sử dụng với tất cả các biến và hàm tên.Sử dụng các hậu tố cơ bản cũ (chẳng hạn như %, &, #, vv) không được khuyến khích. Thay đổi và chức năng tên tiền tố:Prefix Converged Variable Use Data Type Suffix--------------------------------------------------------------------------b bln Boolean Integer %c cur Currency - 64 bits Currency @d dbl Double - 64 bit Double # signed quantitydt dat Date and Time Variante err Errorf sng Float/Single - 32 Single !

Page 5: Các quy tắc đặt tên trong lập trình

bit signed floating pointh Handle Integer %i Index Integer %l lng Long - 32 bit Long & signed quantityn int Number/Counter Integer %s str String String $u Unsigned - 16 bit Long & unsigned quantity udt User-defined typevnt vnt Variant Varianta Array Lưu Ý: các giá trị trong cột Converged đại diện cho những nỗ lực để kéo nhau tiêu chuẩn đặt tên cho Visual Basic, Visual Basic cho các ứng dụng, và truy cập cơ bản. Nó có khả năng rằng các tiền tố sẽ trở thành tiêu chuẩn của Microsoft tại một số điểm trong tương lai gần. Phạm vi và sử dụng tiền tố:Prefix Descriptiong Globalm Local to module or formst Static variable(no prefix) Non-static variable, prefix local to procedurev Variable passed by value (local to a routine)r Variable passed by reference (local to a routine) Ký hiệu Hungary là như có giá trị trong Visual Basic là trong C. Mặc dù hậu tố loại Visual Basic chỉ ra một biến loại dữ liệu, họ không giải thích những gì một biến hoặc chức năng được sử dụng cho, hoặc làm thế nào nó có thể được truy cập. Dưới đây là một số ví dụ:iSend - đại diện cho một số của số lượng thư được gửibSend - A Boolean cờ xác định sự thành công của chiến dịch gửi quahSend - A xử lý giao diện CommMỗi người trong số các tên biến cho biết một lập trình viên một cái gì đó rất khác nhau. Thông tin này sẽ bị mất khi tên biến giảm đến gửi %. Tiền tố phạm vi như g và m cũng giúp làm giảm vấn đề ganh đua tên đặc biệt là trong các dự án multi-developer. Ký hiệu Hungary cũng được sử dụng bởi Windows C lập trình viên và không ngừng tham khảo tài liệu sản phẩm Microsoft và trong ngành công nghiệp lập trình sách. Ngoài ra, liên kết giữa lập trình c và lập trình viên sử dụng Visual Basic sẽ trở nên mạnh hơn nhiều như Visual C ++ phát triển hệ thống tăng động lượng. Chuyển đổi này sẽ gây ra nhiều Visual Basic lập trình di chuyển đến c cho lần đầu tiên và nhiều lập trình di chuyển thường xuyên trở lại và ra từ cả hai môi trường.

Cơ thể của biến và thói quen tênCơ thể của một biến hoặc thói quen tên nên sử dụng hỗn hợp trường hợp và cần miễn là cần thiết để mô tả mục đích của nó. Ngoài ra, chức năng tên nên bắt đầu với một động từ, ví dụ như InitNameArray hoặc CloseDialog. Đối với các thuật ngữ thường được sử dụng hay dài, chuẩn chữ viết tắt được khuyến khích để giữ cho độ dài tên hợp lý. Nói chung, tên biến lớn hơn 32 ký tự có thể được khó khăn để đọc trên màn hình VGA. Khi sử dụng chữ viết tắt, hãy chắc chắn rằng họ là nhất quán trong suốt toàn bộ ứng dụng. Ngẫu nhiên chuyển đổi giữa Cnt và số trong một dự án sẽ dẫn đến sự nhầm lẫn không cần thiết.

Vòng loại biến và thói quen tên

Page 6: Các quy tắc đặt tên trong lập trình

Các biến có liên quan và thói quen thường được sử dụng để quản lý và thao tác một đối tượng phổ biến. Trong những trường hợp này, sử dụng tiêu chuẩn vòng loại nhãn bắt nguồn từ biến và thói quen. Mặc dù đặt trong vòng loại sau khi cơ quan tên có vẻ một chút khó khăn (như trong sGetNameFirst, sGetNameLast thay vì sGetFirstName, sGetLastName), thực hành này sẽ giúp để danh sách các tên với nhau trong những biên tập viên Visual Basic thói quen, làm cho logic và cấu trúc của các ứng dụng dễ dàng hơn để hiểu. Bảng sau đây xác định vòng loại phổ biến và ý nghĩa tiêu chuẩn của họ:Qualifier Description (follows Body)--------------------------------------------------------------------------First First element of a set.Last Last element of a set.Next Next element in a set.Prev Previous element in a set.Cur Current element in a set.Min Minimum value in a set.Max Maximum value in a set.Save Used to preserve another variable that must be reset later.Tmp A "scratch" variable whose scope is highly localized within the code. The value of a Tmp variable is usually only valid across a set of contiguous statements within a single procedure.Src Source. Frequently used in comparison and transfer routines.Dst Destination. Often used in conjunction with Source.

Người dùng xác định loạiTuyên bố loại người dùng định nghĩa trong tất cả các mũ với _TYPE nối thêm vào cuối tên biểu tượng. Ví dụ:Type CUSTOMER_TYPE sName As String sState As String * 2 lID as Long End Type Khi khai báo một biến thể hiện của một người dùng xác định loại, thêm một tiền tố cho tên biến để tham khảo các loại. Ví dụ: Dim custNew as CUSTOMER_TYPE

Đặt tên hằngCơ thể không đổi tên nên UPPER_CASE với underscores (_) giữa các từ. Mặc dù hằng số Visual Basic tiêu chuẩn bao gồm thông tin Hungary, tiền tố như tôi, s, g, và m có thể rất hữu ích trong sự hiểu biết giá trị và phạm vi của một hằng số. Tên liên tục, thực hiện theo các quy tắc tương tự như các biến. Ví dụ:<mnUSER_LIST_MAX ' Max entry limit for User list (integer value, ' local to module) gsNEW_LINE ' New Line character string (global to entire ' application)

Biến thể loại dữ liệuCó nếu bạn biết rằng một biến sẽ luôn luôn lưu trữ dữ liệu của một loại hình cụ thể, Visual Basic thể xử lý dữ liệu đó hiệu quả hơn nếu bạn khai báo một biến loại. Tuy nhiên, kiểu biến thể dữ liệu có thể cực kỳ hữu ích khi làm việc với cơ sở dữ liệu, tin nhắn, DDE hoặc OLE. Nhiều cơ sở dữ liệu cho phép NULL như một giá trị hợp lệ cho một lĩnh vực. Mã của bạn cần phải phân biệt giữa NULL, 0 (zero), và "" (chuỗi rỗng). Nhiều lần,

Page 7: Các quy tắc đặt tên trong lập trình

các loại hoạt động kinh doanh có thể sử dụng một thói quen chung loại dịch vụ mà không cần phải biết loại dữ liệu nhận được để xử lý hoặc đậu trên dữ liệu. Ví dụ: Sub ConvertNulls(rvntOrg As Variant, rvntSub As Variant) ' If rvntOrg = Null, replace the Null with rvntSub If IsNull(rvntOrg) Then rvntOrg = rvntSub End Sub Là có một số nhược điểm, tuy nhiên, để sử dụng các biến thể. Báo cáo mã sử dụng phiên bản đôi khi có thể mơ hồ để các lập trình viên. Ví dụ: vnt1 = "10.01" : vnt2 = 11 : vnt3 = "11" : vnt4 = "x4" vntResult = vnt1 + vnt2 ' Does vntResult = 21.01 or 10.0111? vntResult = vnt2 + vnt1 ' Does vntResult = 21.01 or 1110.01? vntResult = vnt1 + vnt3 ' Does vntResult = 21.01 or 10.0111? vntResult = vnt3 + vnt1 ' Does vntResult = 21.01 or 1110.01? vntResult = vnt2 + vnt4 ' Does vntResult = 11x4 or ERROR? vntResult = vnt3 + vnt4 ' Does vntResult = 11x4 or ERROR? Các ví dụ ở trên sẽ ít hơn nhiều mơ hồ và dễ dàng hơn để đọc, gỡ lỗi, và duy trì nếu thói quen chuyển đổi loại Visual Basic đã được sử dụng để thay thế. Ví dụ: iVar1 = 5 + val(sVar2) ' use this (explicit conversion) vntVar1 = 5 + vntVar2 ' not this (implicit conversion)

Cho ý kiến của bạn mãTất cả các thủ tục và chức năng nên bắt đầu với một thảo luận ngắn gọn mô tả các đặc tính chức năng của những thói quen (những gì nó làm). Mô tả này nên không mô tả chi tiết thực hiện (làm thế nào nó để nó) bởi vì thường những xuyên thay đổi theo thời gian, kết quả công việc bảo trì bình luận không cần thiết, hoặc tệ hơn chưa, sai ý kiến. Mã chính nó và bất kỳ ý kiến cần thiết trong đường dây hoặc địa phương sẽ mô tả việc thực hiện. Tham số truyền cho một thói quen nên được mô tả khi chức năng của họ không phải là rõ ràng và khi những thói quen dự kiến các tham số để trong một phạm vi cụ thể. Chức năng trả về giá trị và biến toàn cầu được thay đổi bởi những thói quen (đặc biệt là thông qua các tham số tham khảo) cũng phải được mô tả ở đầu của mỗi thói quen. Bình luận tiêu đề thường lệ khối nên trông như thế này (xem phần tiếp theo "Định dạng của bạn mã" ví dụ):Section Comment Description--------------------------------------------------------------------------Purpose What the routine does (not how).Inputs Each non-obvious parameter on a separate line with in-line commentsAssumes List of each non-obvious external variable, control, open file, and so on.Returns Explanation of value returned for functions.Effects List of each effected external variable, control, file, and so on and the affect it has (only if this is not obvious) Mỗi khai báo biến không nhỏ nên bao gồm một bình luận trong dòng mô tả việc sử dụng các biến được tuyên bố. Biến, điều khiển, và thói quen nên được đặt tên rõ ràng đủ rằng trong dòng cho ý kiến là chỉ cần thiết cho chi tiết phức tạp hoặc không trực quan thực hiện. Một tổng quan về các ứng dụng, liệt kê các đối tượng dữ liệu chính, thói quen, thuật toán, hộp thoại, cơ sở dữ liệu và tập tin hệ thống phụ thuộc, và như vậy nên được bao gồm ở đầu các.BAS mô-đun có chứa các dự án Visual Basic chung liên tục khai báo. Lưu Ý: Cửa sổ dự án vốn đã mô tả danh sách các tập tin vào một dự án, do đó phần tổng quan này chỉ cần cung cấp thông tin về các tập tin quan trọng nhất và mô-đun, hoặc các

Page 8: Các quy tắc đặt tên trong lập trình

tập tin, cửa sổ dự án không danh sách, chẳng hạn như khởi tạo (.INI) hoặc cơ sở dữ liệu tập tin.

Định dạng mã của bạnBởi vì rất nhiều lập trình viên vẫn còn sử dụng VGA màn hình, màn hình bất động sản phải được conserved càng nhiều càng tốt, trong khi vẫn cho phép mã định dạng, để phản ánh cấu trúc logic và làm tổ. Tiêu chuẩn, tab-based, khối làm tổ lõm nên dấu cách 2-4. Hơn bốn không gian là không cần thiết và có thể gây ra phát biểu sẽ được ẩn hoặc vô tình cắt ngắn. Ít hơn hai không gian không đủ hiện logic làm tổ. Trong Microsoft Knowledge Base, chúng tôi sử dụng một không gian ba thụt lề. Sử dụng hộp thoại tùy chọn môi trường để đặt chiều rộng tab mặc định. Những nhận xét tổng quan chức năng của một thói quen nên thụt vào một không gian. Những điều khoản cấp cao nhất mà theo những nhận xét tổng quan nên thụt vào một tab, với mỗi lồng nhau khối thụt vào một tab bổ sung.Ví dụ:**************************************************************************'Purpose: Locate first occurrence of a specified user in UserList array.'Inputs: rasUserList(): the list of users to be searched' rsTargetUser: the name of the user to search for'Returns: the index of the first occurrence of the rsTargetUser' in the rasUserList array. If target user not found, return -1.'**************************************************************************

'VB3Line: Enter the following lines as one lineFunction iFindUser (rasUserList() As String, rsTargetUser as String) _ As Integer Dim i As Integer ' loop counter Dim bFound As Integer ' target found flag iFindUser = -1 i = 0 While i <= Ubound(rasUserList) and Not bFound If rasUserList(i) = rsTargetUser Then bFound = True iFindUser = i End If WendEnd Function Biến và hằng số phi-chung nên được nhóm lại theo chức năng chứ không phải bởi đang được tách ra thành các khu vực bị cô lập hoặc tập tin đặc biệt.Visual Basic hằng số chung chung như HOURGLASS nên được nhóm lại trong một mô-đun đơn (VB_STD.BAS) để giữ cho họ tách biệt khai báo ứng dụng cụ thể.

Các nước sử dụngLuôn luôn sử dụng một dấu "và" (&) khi concatenating chuỗi, và sử dụng dấu cộng (+) khi làm việc với các giá trị số. Bằng cách sử dụng một dấu cộng (+) với phi-số values, có thể gây ra vấn đề khi hoạt động trên hai phiên bản. Ví dụ: vntVar1 = "10.01" vntVar2 = 11 vntResult = vntVar1 + vntVar2 ' vntResult = 21.01 vntResult = vntVar1 & vntVar2 ' vntResult = 10.0111

Phạm viBiến nên luôn luôn được xác định với phạm vi nhỏ nhất có thể. Biến toàn cầu có thể tạo ra rất nhiều phức tạp nhà nước máy và làm cho logic của một ứng dụng rất khó hiểu. Biến

Page 9: Các quy tắc đặt tên trong lập trình

toàn cầu cũng làm cho tái sử dụng và bảo trì mã của bạn khó khăn hơn. Biến trong Visual Basic có thể có lĩnh vực sau đây:Scope Variable Declared In: Visibility--------------------------------------------------------------------------Procedure-level Event procedure, sub, or Visible in the function procedure in which it is declaredForm-level, Declarations section of a form Visible in everyModule-level or code module (.FRM, .BAS) procedure in the form or code moduleGlobal Declarations section of a code Always visible module (.BAS, using Global keyword) Trong một ứng dụng Visual Basic, chỉ sử dụng các biến toàn cầu, khi không có cách nào thuận tiện khác để chia sẻ dữ liệu giữa các hình thức. Bạn có thể muốn xem xét việc lưu trữ thông tin trong một kiểm soát thẻ tài sản, có thể truy cập trên toàn cầu bằng cách sử dụng cú pháp form.object.property. Nếu bạn phải sử dụng các biến toàn cầu, đó là thực hành tốt để tuyên bố tất cả chúng trong một mô-đun duy nhất và nhóm chúng theo chức năng. Cung cấp cho các mô-đun một tên có ý nghĩa cho biết mục đích của nó, chẳng hạn như toàn cầu.BAS. Ngoại trừ các biến toàn cầu (mà không nên được thông qua), thủ tục và chức năng nên chỉ hoạt động trên các đối tượng được truyền cho họ. Biến toàn cầu được sử dụng trong thói quen nên được xác định trong khu vực thảo luận chung tại đầu của những thói quen. Ngoài ra, vượt qua đối số để dự bị và chức năng sử dụng ByVal, trừ khi bạn rõ ràng muốn thay đổi giá trị của các đối số thông qua. Viết mô-đun mã bất cứ khi nào có thể. Ví dụ, nếu ứng dụng của bạn sẽ hiển thị một hộp thoại, đặt tất cả các điều khiển và mã yêu cầu để thực hiện nhiệm vụ của hộp thoại trong một hình thức duy nhất. Điều này giúp giữ cho các ứng dụng mã tổ chức thành các thành phần hữu ích và giảm thiểu chi phí thời gian chạy của nó.

Điều khiển bên thứ baLưu Ý: Sản phẩm thảo luận dưới đây được sản xuất bởi nhà cung cấp độc lập của Microsoft. Microsoft đưa ra không có bảo hành, ngụ ý hay cách khác, liên quan đến các sản phẩm hiệu suất hoặc độ tin cậy. Bảng dưới đây liệt kê tiêu chuẩn đại lý của bên thứ ba tên nhân vật tiền tố được sử dụng với kiểm soát tiền tố:Vendor Abbv-------------------------

MicroHelp (VBTools) mPioneer Software pCrescent Software cSheridan Software sOther (Misc) o Bảng dưới đây liệt kê tiêu chuẩn cấp kiểm soát tiền tố:Control Control Abbr Vendor Example VBX FileType Name Name--------------------------------------------------------------------------Alarm Alarm almm MicroHelp almmAlarm MHTI200.VBXAnimate Animate anim MicroHelp animAnimate MHTI200.VBXCallback Callback calm MicroHelp calmCallback MHAD200.VBXCombo Box DB_Combo cbop Pioneer cbopComboBox QEVBDBF.VBX

Page 10: Các quy tắc đặt tên trong lập trình

Combo Box SSCombo cbos Sheridan cbosComboBox SS3D2.VBXCheck Box DB_Check chkp Pioneer chkpCheckBox QEVBDBF.VBXChart Chart chtm MicroHelp chtmChart MHGR200.VBXClock Clock clkm MicroHelp clkmClock MHTI200.VBXButton Command cmdm MicroHelp cmdmCommandButton MHEN200.VBX ButtonButton DB_Command cmdp Pioneer cmdpCommandButton QEVBDBF.VBXButton (Group) Command cmgm MicroHelp cmgmBtton MHGR200.VBX Button (multiple)Button Command cmim MicroHelp cmimCommandButton MHEN200.VBX Button (icon)CardDeck CardDeck crdm MicroHelp crdmCard MHGR200.VBXDice Dice dicm MicroHelp dicmDice MHGR200.VBXList Box (Dir) SSDir dirs Sheridan dirsDirList SS3D2.VBXList Box (Drv) SSDrive drvs Sheridan drvsDriveList SS3D2.VBXList Box (File) File List film MicroHelp filmFileList MHEN200.VBXList Box (File) SSFile fils Sheridan filsFileList SS3D2.VBXFlip Flip flpm MicroHelp flpmButton MHEN200.VBXScroll Bar Form Scroll fsrm MicroHelp fsrmFormScroll ???Gauge Gauge gagm MicroHelp gagmGauge MHGR200.VBXGraph Graph gpho Other gphoGraph XYGRAPH.VBXGrid Q_Grid grdp Pioneer grdpGrid QEVBDBF.VBXScroll Bar Horizontal hsbm MicroHelp hsbmScroll MHEN200.VBX Scroll BarScroll Bar DB_HScroll hsbp Pioneer hsbpScroll QEVBDBF.VBXGraph Histo hstm MicroHelp hstmHistograph MHGR200.VBXInvisible Invisible invm MicroHelp invmInvisible MHGR200.VBXList Box Icon Tag itgm MicroHelp itgmListBox MHAD200.VBXKey State Key State kstm MicroHelp kstmKeyState MHTI200.VBXLabel Label (3d) lblm MicroHelp lblmLabel MHEN200.VBXLine Line linm MicroHelp linmLine MHGR200.VBXList Box DB_List lstp Pioneer lstpListBox QEVBDBF.VBXList Box SSList lsts Sheridan lstsListBox SS3D2.VBXMDI Child MDI Control mdcm MicroHelp mdcmMDIChild ???Menu SSMenu mnus Sheridan mnusMenu SS3D3.VBXMarque Marque mrqm MicroHelp mrqmMarque MHTI200.VBPicture OddPic odpm MicroHelp odpmPicture MHGR200.VBXPicture Picture picm MicroHelp picmPicture MHGR200.VBXPicture DB_Picture picp Pioneer picpPicture QEVBDBF.VBXProperty Vwr Property pvrm MicroHelp pvrmPropertyViewer MHPR200.VBX ViewerOption (Group) DB_RadioGroup radp Pioneer radqRadioGroup QEVBDBF.VBXSlider Slider sldm MicroHelp sldmSlider MHGR200.VBXButton (Spin) Spinner spnm MicroHelp spnmSpinner MHEN200.VBXSpreadsheet Spreadsheet sprm MicroHelp sprmSpreadsheet MHAD200.VBXPicture Stretcher strm MicroHelp strmStretcher MHAD200.VBXScreen Saver Screen Saver svrm MicroHelp svrmSaver MHTI200.VBXSwitcher Switcher swtm MicroHelp swtmSwitcher ???List Box Tag tagm MicroHelp tagmListBox MHEN200.VBXTimer Timer tmrm MicroHelp tmrmTimer MHTI200.VBXToolBar ToolBar tolm MicroHelp tolmToolBar MHAD200.VBXList Box Tree trem MicroHelp tremTree MHEN200.VBX

Page 11: Các quy tắc đặt tên trong lập trình

Input Box Input (Text) txtm MicroHelp inpmText MHEN200.VBXInput Box DB_Text txtp Pioneer txtpText QEVBDBF.VBXScroll Bar Vertical vsbm MicroHelp vsbmScroll MHEN200.VBX Scroll BarScroll Bar DB_VScroll vsbp Pioneer vsbpScroll QEVBDBF.VBX

VI. Lời cuốiBạn có thấy là Pascal được gọi là Upper Camel Case, còn Camel Case được gọi là Lower Camel Case. Mình nghĩ là các bạn sẽ thắc mắc. Hiện trên thế giới vẫn còn rất nhiều tranh luận về vụ này. Tuy nhiên dù cái tên được tranh luôn nhưng việc áp dụng nó thì được mọi người công nhận và không bàn cãi. Và điều quan trọng là khi làm việc ở các công ty nào thì phải tuân theo quy tắc của công ty đó. Nguồn :microsoft.com,kscode.wordpress.com