Если вы еще молодой программист, убегайте! VB6 - это тупик. Этот концерт на VB6 имеет смысл только в том случае, если вы позиционируете себя как напрокат оружие VB6 («есть ноутбук, будет путешествовать») - где, если вам повезет, вы можете оказаться столь же необходимыми, как кодер COBOL. Так что если вы должны ...
Проверьте ссылки, которые MarkJ дает в своих комментариях выше. Вы также можете найти в Google «стандарты кодирования vb6» или «Visual Basic 6 Books», чтобы получить больше идей. «Hardcore Visual Basic» Брюса МакКинни, доступный в Интернете бесплатно по адресу http://vb.mvps.org/hardcore/ (здесь много хороших материалов о Win32 API и COM), главу 1 «Очистка языка», которую стоит прочитать, и следует быть полезным в устранении некоторых вредных привычек.
Я бы посоветовал изучить C # или Java (как рекомендует MarkJ) и найти хорошие книги или веб-сайты о стандартах кодирования и лучших практиках, написанных для этих языков. Оттуда, принять или адаптировать то, что вы можете в свой стиль кодирования VB6.
Вот мои специальные советы по борьбе с вредными привычками для VB6:
(1) Всегда используйте Option Explicit
. Будьте осторожны с другими утверждениями Option
или избегайте их.
(2) Избегайте DoEvents
- вместо этого найдите способ сделать это с помощью таймеров или событий. Знать, что такое основной цикл событий. Знайте, что такое насос сообщений. Знайте, что приложение VB6 по своей сути является главным циклом событий, который обслуживает его насос сообщений (скрытый от программиста VB6). DoEvents
- это чит, который часто заканчивается слезами.
(3) Избегать Option Base
. Избегайте To
в массивах размеров. Первый элемент массива должен иметь нулевой индекс.
(4) Не Dim
переменные внутри If ... EndIf
, Do ... Loop
, For ... Next
или любого другого такого блока - это приведет к путанице в области видимости на земле VB.NET (или для знакомых людей с другими языками). Это может усложнить чтение и следование коду.
(5) Всегда Dim
с As
- т.е. не используйте Variant
или Object
, если это не является абсолютно необходимым. Отучите переменные декорации, такие как $ (String) или% (Integer) - другими словами, не используйте их, используйте As
.
(6) Предпочитайте For Each
над For
, когда это возможно и уместно.
(7) Предпочтение ByVal
над ByRef
для числовых параметров, которые не будут изменены как побочный эффект на Sub
или Function
.
(8) Считайте On Error Resume Next
чем-то токсичным, и его следует избегать, когда это возможно. Вы должны использовать это? Прокомментируйте подробно, зачем это нужно, затем выключите его как можно скорее. Может быть, заключить его в свой собственный Sub или Function.
(9) Узнайте о шаблоне проектирования Модель / Представление / Контроллер (MVC). Избегайте размещения какой-либо бизнес-логики в форме.
(10) Предпочитают Boolean
(True
против False
) над Integer
(0
против 1
или -1
) или (небеса помогают нам!) String
("N"
против "Y"
). Предполагая Dim MyFlag As Boolean
, знайте, что If MyFlag = True Then
вызывает у меня подозрение, что другой кодер не получает Boolean
. Предпочитаю If MyFlag Then
и If Not MyFlag Then
.
(11) Разработка ActiveX / COM не для слабаков - и должна выполняться с должным пониманием двоичной совместимости и в рамках Virtual PC.