นิสัยที่ดีแปดประการของการเขียนโปรแกรม VB
1. "&" แทนที่ "+"
2. การตั้งชื่อตัวแปรควรคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ คำสั่งควรมีการจัดระเบียบอย่างดี และการบำรุงรักษาซอร์สโค้ดควรทำ
3. โปรดพัฒนานิสัยที่ดีของ "แบบแผนการตั้งชื่อวัตถุ" ดังต่อไปนี้
4. ในกรณีที่มีเงื่อนไขการเลือกอย่างง่าย ให้ใช้ฟังก์ชัน IIf()
5. ลองใช้ Debug.Print สำหรับการดีบัก
6. เมื่อแก้ไขคุณสมบัติของวัตถุซ้ำๆ ให้ลองใช้ With....EndWith
7. ลองใช้ไอคอนข้อความใน MsgBox เพื่อให้โปรแกรมมีมาตรฐานมากขึ้น
8. ใช้การแจงนับหากเป็นไปได้
1. "&" แทนที่ "+"
ในภาษาโปรแกรมของหลายๆ คน "+" ใช้เพื่อเชื่อมต่อสตริง ซึ่งอาจนำไปสู่ความกำกวมได้ง่าย แนวปฏิบัติที่ดีคือการใช้ "&" เพื่อเชื่อมสตริงเข้าด้วยกัน
ไม่ถูกต้อง:
DimsMessageAsString
sMessage="1"+"2"
ถูกต้อง:
DimsMessageAsString
sMessage="1"&"2"
หมายเหตุ: มีช่องว่างหลัง "&"
2. การตั้งชื่อตัวแปรควรคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ คำสั่งควรมีการจัดระเบียบอย่างดี และการบำรุงรักษาซอร์สโค้ดควรทำ
มาเปรียบเทียบโค้ดสองชิ้นต่อไปนี้:
อ่านโค้ดยาก:
DimSNAMEAsString
DimNTURNAsInteger
ถ้าNTURN=0แล้ว
ถ้าSNAME="vbeden"แล้ว
ทำในขณะที่NTURN<4
NTURN=NTURN+1
วนซ้ำ
สิ้นสุดถ้า
สิ้นสุดถ้า
รหัสที่อ่านง่าย:
DimsNameAsString
DimnTurnAsInteger
IfnTurn=0แล้ว
IfsName="vbeden"แล้ว
ทำในขณะเลี้ยว<4
nเทิร์น=nเทิร์น+1
วนซ้ำ
สิ้นสุดถ้า
สิ้นสุดถ้า
[กลับสู่ดัชนี]
3. โปรดพัฒนานิสัยที่ดีของ "แบบแผนการตั้งชื่อวัตถุ" ดังต่อไปนี้
คำนำหน้าการควบคุมที่แนะนำ
ตัวอย่างคำนำหน้าประเภทการควบคุม
3DแผงpnlpnlGroup
ADODataadoBiblio
AnimatedbuttonanianiMailBox
ช่องทำเครื่องหมายchkchkReadOnly
Combobox, drop-downlistboxcbocboEnglish
Commandbuttoncmdcmdออก
CommondialogdlgdlgFileOpen
การสื่อสารcomcomFax
การควบคุม (ใช้ในขั้นตอนเมื่อไม่ทราบประเภทเฉพาะ) ctrctrCurrent
DatadatdatBiblio
ข้อมูลที่ถูกผูกไว้comboboxdbcbodbcboLanguage
ข้อมูล-boundgriddbgrddbgrdQueryResult
ข้อมูล-boundlistboxdblstdblstJobType
Datacombodbcdbcผู้เขียน
DatagriddgddgdTitles
DatalistdbldblPublisher
DatarepeaterdrpdrpLocation
Datepickerdtpdtpเผยแพร่แล้ว
DirectorylistboxdirdirSource
DrivelistboxdrvdrvTarget
FilelistboxfilfilSource
Flatscrollbarfsbfsbย้าย
Formfrmfrmรายการ
Framefrafraภาษา
Gaugegaugauสถานะ
GraphgragraRevenue
Gridgrdgrdราคา
ลำดับชั้นflexgridflexflexOrders
แนวนอนscrollbarhsbhsbVolume
รูปภาพimgimgไอคอน
Imagecomboimgcboimgcboผลิตภัณฑ์
รูปภาพListilsilsAllIcons
Labellbllblข้อความช่วยเหลือ
ช่องทำเครื่องหมายน้ำหนักเบาlwchklwchkArchive
น้ำหนักเบาcomboboxlwcbolwcboเยอรมัน
คำสั่งน้ำหนักเบาปุ่มlwcmdlwcmdลบ
กรอบน้ำหนักเบาlwfralwfraSaveOptions
น้ำหนักเบาแนวนอน scrollbarlwhsblwhsbVolume
LightweightlistboxlwlstlwlstCostCenters
น้ำหนักเบาตัวเลือกปุ่มlwoptlwoptIncomeLevel
กล่องข้อความน้ำหนักเบาlwtxtlwoptStreet
น้ำหนักเบาแนวตั้งแถบเลื่อนwvsblwvsbปี
Linelinlinแนวตั้ง
ListboxlstlstPolicyCodes
ListViewlvwlvwหัวข้อ
MAPImessagempmmpmSentMessage
MAPIsessionmpsmpsSession
MCImcimciVideo
เมนูหมายเลขnuFileOpen
เดือนดูmvwmvwระยะเวลา
MSChartchchSalesbyภูมิภาค
MSFlexgridmsgmsgClients
MSTabmstmstFirst
แผ่นงาน OLEcontaineroleole
ตัวเลือกปุ่มoptoptเพศ
PictureboxpicpicVGA
Pictureclipclpclpแถบเครื่องมือ
ProgressBarprgprgLoadFile
RemoteDatardrdTitles
RichTextBoxrtfrtfรายงาน
รูปร่างวงกลม
SlidersldsldScale
SpinspnspnPages
สถานะBarstastaDateTime
SysInfosyssysMonitor
TabStripแท็บแท็บตัวเลือก
กล่องข้อความtxttxtLastName
TimertmrtmrAlarm
Toolbartlbtlbการดำเนินการ
TreeViewtretreองค์กร
ขึ้นลงupdupdDirection
Verticalscrollbarvsbvsbอัตรา
-------------------------------------------------- -------------------------------------------------- ----------------------------------
คำนำหน้าที่แนะนำสำหรับ Data Access Objects (DAO)
ใช้คำนำหน้าต่อไปนี้เพื่อระบุออบเจ็กต์การเข้าถึงข้อมูล
ตัวอย่างคำนำหน้าวัตถุฐานข้อมูล
รายงานคอนเทนเนอร์คอนคอน
ฐานข้อมูลdbdbAccounts
ดีบีเอ็นจิ้นเบดบีเจ็ท
เอกสารdocdocSalesReport
ที่อยู่สนามfldfld
Groupgrpgrpการเงิน
IndexixidxAge
พารามิเตอร์prmprmJobCode
แบบสอบถามDefqryqrySalesByRegion
RecordsetrecrecForecast
ความสัมพันธ์สัมพันธ์ฝ่ายพนักงาน
TableDeftbdtbdลูกค้า
UserusrusrNew
พื้นที่ทำงานwspwspMine
-------------------------------------------------- -------------------------------------------------- ----------------------------------
แอปพลิเคชันมักใช้ตัวควบคุมเมนูจำนวนมาก และการมีชุดแบบแผนการตั้งชื่อเฉพาะสำหรับตัวควบคุมเหล่านี้ก็มีประโยชน์ นอกเหนือจากแท็ก "mnu" เริ่มต้นแล้ว ควรขยายคำนำหน้าของตัวควบคุมเมนู: เพิ่มคำนำหน้าเพิ่มเติมสำหรับการซ้อนแต่ละระดับ โดยวางชื่อเมนูสุดท้ายไว้ที่ส่วนท้ายของสตริงชื่อ ตารางด้านล่างแสดงตัวอย่างบางส่วน
คำนำหน้าเมนูแนะนำ
ชื่อเมนูลำดับชื่อตัวจัดการเมนู
FileOpenmnuFileOpen
FileSendEmailmnuFileSendEmail
FileSendFaxmnuFileSendFax
รูปแบบตัวละครNuรูปแบบตัวละคร
เนื้อหาช่วยเหลือmnuเนื้อหาความช่วยเหลือ
เมื่อใช้หลักการตั้งชื่อนี้ สมาชิกทั้งหมดของกลุ่มเมนูเฉพาะจะถูกแสดงรายการทีละรายการในหน้าต่างคุณสมบัติ Visual Basic นอกจากนี้ ชื่อการควบคุมเมนูยังระบุรายการเมนูที่เกี่ยวข้องได้อย่างชัดเจน
เลือกคำนำหน้าสำหรับการควบคุมอื่นๆ
การควบคุมที่ไม่ได้ระบุไว้ข้างต้นควรได้รับการกำหนดมาตรฐานด้วยคำนำหน้าสองหรือสามอักขระที่ไม่ซ้ำกันเพื่อความสอดคล้อง ใช้คำนำหน้ายาวเกินสามอักขระเมื่อจำเป็นต้องมีการชี้แจงเท่านั้น
แบบแผนการตั้งชื่อคงที่และตัวแปร
นอกจากวัตถุแล้ว ค่าคงที่และตัวแปรยังต้องมีรูปแบบการตั้งชื่อที่มีรูปแบบที่ดีอีกด้วย ส่วนนี้แสดงรายการแบบแผนที่แนะนำสำหรับค่าคงที่และตัวแปรที่ Visual Basic รองรับ และอภิปรายประเด็นในการระบุประเภทและช่วงข้อมูล
ควรกำหนดตัวแปรในขอบเขตที่เล็กที่สุดเท่าที่จะเป็นไปได้เสมอ ตัวแปรส่วนกลาง (สาธารณะ) สามารถนำไปสู่โครงสร้างสถานะที่ซับซ้อนอย่างยิ่ง และทำให้ตรรกะของแอปพลิเคชันเข้าใจได้ยากมาก ตัวแปรร่วมยังทำให้การใช้โค้ดซ้ำและการบำรุงรักษายากขึ้น
ตัวแปรใน Visual Basic สามารถมีขอบเขตต่อไปนี้
ตำแหน่งการประกาศขอบเขต ตำแหน่งที่มองเห็นได้
'ส่วนตัว' ในขั้นตอนระดับขั้นตอน ขั้นตอนย่อย หรือขั้นตอนการทำงานในขั้นตอนที่มีการประกาศ
แบบฟอร์ม 'ส่วนตัว' ในส่วนการประกาศของแบบฟอร์มระดับโมดูลหรือโมดูลโค้ด (.frm, .bas) หรือทุกขั้นตอนในโมดูลโค้ด
ทุกที่ในแอปพลิเคชัน 'สาธารณะ' ในส่วนการประกาศของโมดูลโค้ดสากล (.bas)
ในแอปพลิเคชัน Visual Basic ให้ใช้ตัวแปรส่วนกลางเฉพาะเมื่อไม่มีวิธีที่สะดวกในการแชร์ข้อมูลระหว่างแบบฟอร์มเท่านั้น เมื่อต้องใช้ตัวแปรส่วนกลาง ให้ประกาศตัวแปรเหล่านั้นในโมดูลเดียวและจัดกลุ่มตามฟังก์ชัน ตั้งชื่อที่มีความหมายให้กับโมดูลนี้เพื่อระบุบทบาทของโมดูล เช่น Public.bas
แนวทางปฏิบัติในการเขียนโค้ดที่ดีคือการเขียนโค้ดที่เป็นโมดูลาร์ให้ได้มากที่สุด ตัวอย่างเช่น ถ้าแอปพลิเคชันของคุณแสดงกล่องโต้ตอบ ให้ใส่ตัวควบคุมและโค้ดทั้งหมดที่จำเป็นในการกรอกกล่องโต้ตอบให้เสร็จสมบูรณ์ในรูปแบบเดียว ซึ่งจะช่วยจัดระเบียบโค้ดของแอปพลิเคชันให้เป็นส่วนประกอบที่มีประโยชน์ และลดโอเวอร์เฮดรันไทม์
1 2อ่านข้อความฉบับเต็มในหน้าถัดไป