Автор Тема: Вредные и полезные привычки при написаний AutoIt-кода  (Прочитано 32570 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7806
  • Репутация: 2279
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Вредные и полезные привычки при написаний AutoIt-кода
или
Плохая и хорошая практика программирования


Предлагаю тут обсуждать наши с вами вредные и полезные привычки при написаний кода.


Вот мои полезные привычки (на мой взгляд):

1. Соеденяю стили через BitOR, а не через оператор сложения (+).
2. Проверяю стили и состояния элементов через BitAND, а не через оператор сравнения (=).
3. Всегда использую константы, и не их значения (a.k.a Магическое число).
4. Пишу всегда полные пути к файлам (исключением естественно является FileInstall :)).
5. При запуске программ с параметрами, использую кавычки.
6. Использую #Region, #CS/CE и т.п.
7. Дополнительные файлы, ресурсы и библиотеки храню в подпапке (Resoureces или Includes).
8. Стараюсь не использовать системные иконки.
9. Стараюсь добавлять комментарий к важным/сложным частям кода.
10. Стараюсь использовать целые библиотеки по назначению, а не вытаскивать из них только нужные мне функций :whistle:.
11. Стараюсь не использовать временных файлов.
12. Автоматизацию внешнего приложения, стараюсь делать на “программном уровне”, а не использовать имитацию нажатий клавиш и т.п.
13. Выполняю проверку кода после каждого мелкого изменения (это скорее паранноя, но сейчас уже меньше этим занимаюсь).
14. Пишу код так, чтобы не нужно было потом использовать Tidy (аккуратность).
15. Использую немало встроенных аббревиатур (подробнее).
16. GUI полностью пишу руками.
17. Стараюсь код писать так, чтобы через пару лет смог его понять.
18. Если программа имеет запоминаемые настройки (обычно использую ini), обязательно делаю так чтобы она работала сходу и генерировала нужные файлы при запуске.
19. Программы обычно пишу не для себя, поэтому они получаются лучше.

А вот вредные привычки, хотя это под вопросом (раньше кстати их было намного больше):

1. Не использую MustDeclareVars (это скоррее “непривычка”).
2. Вcё же забываю иногда писать комментарий.
3. Пишу код, при этом иногда брожу по комнате в раздумиях :laugh: .
4. Составляю план действия только после того как начал работать над проектом.
5. Часто прекращаю работу над проектом на неопределённое время. И совсем не обязательно из за того что застрял над какой то частью, чаще всего это происходит из за падения мотиваций, либо отсутствия свободного времени (последнее огорчает больше :().
6. Работаю над нескольками проектов сразу :wacko:.
7. Присваиваю переменным уникальные и полные имена, иногда могу “застрять” минут на 10 пока не придумаю достойное имя переменной.
« Последнее редактирование: Июль 12, 2011, 04:12:11 от CreatoR »


Правила, Поиск, Супер тема


AutoIt is simple, subtle, elegant.


«Не оказываю тех. поддержку через ПМ/ICQ, и по электронной почте - для этого есть форум. (C)»
«Законы Мэрфи неоспоримы!»


Мои работы

Русское сообщество AutoIt


Оффлайн Yuriy [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 737
  • Репутация: 281
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Не знаю, полезная это привычка или вредная.
На первом этапе всегда смотрю и проверяю значения переменных
через MsgBox или _ArrayDisplay.
И вот еще:
на ответах форума (после замечаний) уже не использую вызов
функции через Call("Func"), а просто Func().
В скриптах для себя - Call("Func")
« Последнее редактирование: Июль 11, 2011, 19:48:37 от Yuriy »

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2693
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Call("Func") - это не вредная привычка, а неправильное использование функции Call() или ее непонимание.

И еще, советую всем завести полезную привычку пользоваться Tidy для приведения вашего кода в читабельный вид. Лично для меня, вид самого кода не менее важен, чем его работа (не знаю, хорошо это или плохо).


Думай, прежде чем говорить.

Оффлайн Yuriy [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 737
  • Репутация: 281
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Yashied
Как ее (Call) правильно понимать?
Возможно подразумевается вызов сторонней
функции (из системной библиотеки, например, или др. библиотеки)?
А так, использовал ее, просто из-за наглядности кода для себя.

Русское сообщество AutoIt

Re: Вредные и полезные привычки при написаний AutoIt-кода
« Ответ #3 Отправлен: Июль 11, 2011, 20:08:20 »

Оффлайн Yashied [?]

  • AutoIt MVP
  • Глобальный модератор
  • *
  • Сообщений: 5379
  • Репутация: 2693
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.x.x
Если функция однозначно определена в коде, то ее нужно вызывать просто по имени. Call() в основном предназначена для тех, кто пишет UDF библиотеки, a.k.a. пользовательская Callback функция. Для примера см. AdlibRegister().

А так, использовал ее, просто из-за наглядности кода для себя.

В AutoIt принято пользовательские функции (те, которые не входят в AutoIt.exe) называть с символа "_", например:

Код: AutoIt [Выделить]
_MyFunc()


Оффлайн Yuriy [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 737
  • Репутация: 281
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Yashied
Спасибо. Теперь понятно.
Вот еще хотел добавить.
Многие в MsgBox используют первый параметр 0.
MsgBox (0, "111", "222")
Я привык к 3-м:
16 - ошибка
48 - предупреждение
64 - сообщение
И только эти 3 в основном использую.
Это вредная привычка?

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7806

  • Автор темы
  • Репутация: 2279
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Yashied  [?]
Цитировать
советую всем завести полезную привычку пользоваться Tidy для приведения вашего кода в читабельный вид
Пользуюсь только для UDF, обычный код (пример, или тело скрипта) пишу сразу аккуратно.

Оффлайн ynbIpb [?]

  • Скриптер
  • ****
  • Сообщений: 392
  • Репутация: 109
  • Пол: Мужской
    • Награды
полезные:
1. Обильно коментирую код.
2. Всегда пишу аккуратно (Tidy )
3. Стараюсь делать программы Portable. Чтоб никуда ничего лишнего в систему не пихалось и не привязывалось к абсолютным путям, настройки храню не в реестре, а в ini, типа @scriptdir & "\settings.ini"
4. имена переменных всегда осмысленные на инглише. Использую правила написания переменных типа первая буква означает тип.

вредные:
1. Не довожу проекты до конца. Пропадает энтузиазм.

Русское сообщество AutoIt

Re: Вредные и полезные привычки при написаний AutoIt-кода
« Ответ #7 Отправлен: Июль 11, 2011, 22:51:18 »

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7806

  • Автор темы
  • Репутация: 2279
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
ynbIpb  [?]
Цитировать
Стараюсь делать программы Portable. Чтоб никуда ничего лишнего в систему не пихалось и не привязывалось к абсолютным путям, настройки храню не в реестре, а в ini, типа @scriptdir & "\settings.ini"
+1.


Цитировать
Не довожу проекты до конца. Пропадает энтузиазм.
Мда, оказывается я не один такой :reading_book:

Оффлайн Ganibal95 [?]

  • GreenBytes
  • AutoIt Гуру
  • *****
  • Сообщений: 865
  • Репутация: 236
  • Пол: Мужской
  • GreenBytes
    • GreenBytes
    • Награды
  • Версия AutoIt: 3.3.14.0
Вредные или хорошие, да у меня по моему все вредные)
1. Пытаюсь делать программы много функциональными
2. Как что-нибудь новое узнаю сразу прикручиваю к том что уже делаю...
3. Редко довожу проекты до конца(Очень редко, если цель поставлю ток)
4. Пишу код не акуратно, другие не могут понять где-что, а я быстро нахожу. И хоть не акуратно пишу, зато работает)
5. Переменные на бум, с ними не заморачиваюсь
6. Использую tidy
7. После мелких или больших изменений врубаю скрипт и любуюсь, несколько раз врубаю...
8. Когда не за компом формулирую мысли в мозгах как можно примерно сднлать...
9. Иногда хожу по комнате...
10. Храню настройки в ini, через ресстр мудно...
11. пытаюсь делать что-то интерестное, и для себя, только вот потом у меня программы качают... И не могут разобратся)
12. Гуй делаю через коду...
вроде все =)

Оффлайн Kaster [?]

  • Бритва, Бритва Оккама
  • Глобальный модератор
  • *
  • Сообщений: 4020
  • Репутация: 622
  • Пол: Мужской
  • Мой Аватар, он лучший самый
    • Награды
  • Версия AutoIt: 3.3.14.0
OffTopicCreatoR  [?]
Цитировать
а не через оператор присваивания (+).
небольшая поправка, "+" это оператор сложения, а не присвоения  :whistle:


Добавлено: Июль 12, 2011, 02:41:22
про себя могу сказать, что из полезных привычек нет ничего либо уже было выше.
из вредных, нет архива скриптов. иногда пишу уже написанный некоторое время назад скрипт сызнова, либо рыщу на форумах свои же посты с кодом. очень редко пишу комментарии, только если на всеобозрение, и то не всегда. иногда трачу слишком много времени на несущественные мелочи и оформление.
не все, но как-то так


Добавлено: Июль 12, 2011, 02:47:26
Ganibal95  [?]
Цитировать
1. Пытаюсь делать программы много функциональными
однофункциональные программы, как бы, не в особом почете  ;D
Цитировать
если цель поставлю ток
а ток тем временем течет по проводам
Цитировать
9. Иногда хожу по комнате...
в остальное время, надо полагать, летаешь  ;D
Цитировать
через ресстр мудно...
у нас не матерятся  ;)

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7806

  • Автор темы
  • Репутация: 2279
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
Kaster  [?]
Цитировать
"+" это оператор сложения, а не присвоения
Упс :whistle:

Оффлайн SECTOR [?]

  • Продвинутый
  • ***
  • Сообщений: 389
  • Репутация: 56
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Цитировать
9. Иногда хожу по комнате...
Я думал я один такой :laugh:

Оффлайн CreatoR [?]

  • Администратор
  • *
  • Сообщений: 7806

  • Автор темы
  • Репутация: 2279
  • Пол: Мужской
  • AutoIt is simple, subtle, elegant
    • CreatoR's Lab
    • Награды
  • Версия AutoIt: 3.3.10.2
AZJIO  [?]
Цитировать
а есть ли случай когда сложение через оператор не работает?
Да.
Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$nStyles = IniRead(@ScriptDir & "\Config.cfg", "Main", "GUI Style", $GUI_SS_DEFAULT_GUI + $WS_MAXIMIZEBOX) ;Тут допустим мы сохранили стили при последнем запуске
$nStyles += $WS_MAXIMIZEBOX ;BitOR($nStyles, $WS_MAXIMIZEBOX)

$hGUI = GUICreate("Test Script", 300, 200, -1, -1, $nStyles)
GUISetState(@SW_SHOW, $hGUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Без BitOR мы получаем совершенно другой стиль, а с ним мы надёжно пытаемся добавить стиль, если он уже содержится, то повторно добавляться не будет. Кстати,
Код: AutoIt [Выделить]
BitOR($nStyles, $WS_MAXIMIZEBOX)

эквивалентно проверке
Код: AutoIt [Выделить]
If Not BitAND($nStyles, $WS_MAXIMIZEBOX) Then $nStyles += $WS_MAXIMIZEBOX


Цитировать
Если автор скрипта не добавил к Checkbox иные стили, то зачем лишний функции?
Это называется манерой хорошего (правильного) программирования, и чем эти функций лишние?

Цитировать
почему? например "Обзор" - иконка папки под номером 4 имеет тот же номер и в других версиях Windows.
Ну это только один пример. Я не раз сталкивался с ситуацией, когда используемые мной иконки в программе не отображались, или отображались неправильно в Win Vista/7.

Цитировать
Кстати отдельная тема
Поднимай, у меня есть что ответить ;).

Цитировать
всмысле не используя Koda?
Ни Koda, и ничего подобного, всё руками, я так привык с самого начала.

Цитировать
Слишком длинные имена тоже не читабельны, если их в строке много.
Ну я их делаю не для читабельности (хотя это тоже), а больше для упрощения поиска.

Оффлайн SyDr [?]

  • Модератор
  • *
  • Сообщений: 649
  • Репутация: 157
  • Пол: Мужской
  • Сидра
    • Награды
  • Версия AutoIt: 3.3.12.0
Ну, во-первых, я ленив.
Во-вторых... А впрочем... См. выше.

Русское сообщество AutoIt

Re: Вредные и полезные привычки при написаний AutoIt-кода
« Ответ #14 Отправлен: Июль 12, 2011, 23:09:08 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
87 Ответов
60745 Просмотров
Последний ответ Апрель 02, 2015, 06:54:02
от madmasles
17 Ответов
12828 Просмотров
Последний ответ Апрель 13, 2015, 19:55:25
от CreatoR
10 Ответов
4960 Просмотров
Последний ответ Октябрь 31, 2011, 16:10:49
от uppdrag
72 Ответов
23855 Просмотров
Последний ответ Май 06, 2014, 17:31:43
от Voodooman
3 Ответов
3648 Просмотров
Последний ответ Июнь 19, 2012, 13:49:19
от den-x
36 Ответов
10879 Просмотров
Последний ответ Декабрь 06, 2012, 22:43:35
от joiner
3 Ответов
5113 Просмотров
Последний ответ Август 28, 2014, 18:06:39
от Skif_off
7 Ответов
3469 Просмотров
Последний ответ Май 17, 2013, 14:43:01
от madmasles
2 Ответов
2403 Просмотров
Последний ответ Октябрь 21, 2013, 22:11:10
от Garrett
1 Ответов
1204 Просмотров
Последний ответ Январь 14, 2016, 11:43:43
от vaf