![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
||
|
|
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Незнаю даже к чему я завел этот опрос, просто интерес... мне приходиться по долгу службы постоянно разбираться и править чужые проекты, и чего я только там не видел... часто переписываю, а код стандатизировать под себя нехорошо наверно, и хочется послушать и мнение других. Я лично в методах класса l а в просто процедурах/функциях аля Cи т.к. если мсдн-кие сорцы переводишь на делфи нагляднее как-то.
-------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
А зачем локальной префикс? На то она и локальная что часто юзается, потому префикс будет мешать. Иногда формальным параметрам процедур ставлю префикс "а". От английского, что в данном случае значит некоторый/неопределенный. Т.е. на этапе разработки неизвестно что там реально будет.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Rennigth |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
ну например чтобы их отличать переменные класса которые по обычаю и по стандарту делфей начинаются с F. например l это от слова local (видел кто-то ставит большую, кто-то маленькую). Вообщем нагляднее как-то... -------------------- (* Honesta mors turpi vita potior *) |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Правильно, всем префикс, а локальные будут без. Раз без префикса значит локальная. Все понятно и удобно -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
ставлю префикс l. ибо в коде не всегда можно понять, переменная это или какая-либо функция или св-во класса. пример:
все ясно и понятно, где локальная переменная, где св-во класса... -------------------- There are always someone smarter than you... |
|||
|
||||
| Bose |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Я для локальных переменных ставлю префикс tmp(от temporary - временная).
Префикс F - обычно ставлю приватным полям класса(как в VCL). А префикс l мне не нравится из-за того что его легко спутать с латинской заглавной буквой И. tmp в этом плане нагляднее. Сомневаюсь чтобы кому-то пришло в голову давать такой префикс глобальным переменным или полям класса.
Затем, что когда приходится работать в чужом коде, никогда заранее не угадаешь какая блажь могла прийти в голову авторам. Я стал юзать префиксы после того как несколько раз столкнулся с ситуацией, когда переменная с одним и тем же именем была объявлена и как глобальная и как локальная. А от чужих ошибок, да и от своей невнимательности никто не застрахован. Добавлено через 1 минуту и 5 секунд Кстати на тему оформления кода, настоятельно рекомендую прочитать статью Джоэла Спольски Как заставить неправильный код выглядеть неправильно |
||||
|
|||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Bose, ну это просто убицца об стенку чтобы постоянно писать что-то подобное
Никогда такое извращение не буду делать. Префикс tmp я тож юзаю, но редко, только тогда когда действительно конфликтуют имена. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Rennigth |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 21.6.2004 Где: Moscow Репутация: 49 Всего: 76 |
Я примерчик приведу по этому поводу. Поплачусь так сказать. Разгребая чужой код наткнулся на то что переменную цикла в методе процедуры назвали fIndex при чем типа Word, код был примерно такой:
переделал на
но, не заменил в коде {бла бла бла} одну fIndex на i. ну не заметил я... и все скомпилировалось Добавлено через 3 минуты и 15 секунд Alexeis, ну переменных для циклов это не касается -------------------- (* Honesta mors turpi vita potior *) |
||||
|
|||||
| Bose |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Неее, ну к переменным цикла это не относится Однобуквенные переменные, использующиеся в циклах, я оставляю как есть. Также частенько использую s для string. var i,j,k,p:integer; var s:string; tmp юзаю, когда нужно выполнить что-то более сложное, например создать объект. Или там, если нужно объявить несколько локальных переменных строкового типа. например:
Или вот для строк(пример выдуманный).
Добавлено через 3 минуты и 3 секунды
Вот и у меня аналогичный случай был. Я после этого случая по всему коду прошёлся CodeHealer-ом(если не путаю название). И он мне ещё несколько таких случаев нашёл. |
||||||||
|
|||||||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
полностью за i,j,k...
но префикс l - однозначно локальная переменная,а вот tmp... нет, я всетаки за l p.s. сравните l и I, всетаки отличия есть ;) p.p.s.для редких случаев в функциях поиска индекса объекта переменной-итератором делаю Result
но эт так, к слову -------------------- There are always someone smarter than you... |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Ну значит это уже не система, а выборочное использование в опасных местах. У меня другая метода. Как правило все члены классов/методы и проч. имеют длинные описательные имена. Чем дальше ее видно тем больше в ней букав. А глобальные вообще лучше кричащими большими буквами (в верхнем регистре). Все локальное имеет короткие названия, например тот же Width, локально будет выглядеть как wdth или вообще wth. Вместе с тем ничего с большой областью видимостью я не называю так кратко. Потом через месяц смотришь сокращенная абракадабра, ага значит искать ее нуна рядом. Пишется быстро, большой смысловой нагрузки не несет, но и путаницу тоже не вносит, потому и не заморачиваюсь придумыванием чего-то дополнительного. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Bose |
|
||||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Для шрифтов Arial(и Impact) отличий нет. Сравни: Arial: l I Courier: l I Impact: l I Tahoma: l I Times: l I Verdana: l I Кстати, я наконец вспомнил, почему опасаюсь буквы I. Потому что буква I используется как префикс к типу Interface.
А вот и нифига это не значит. Это именно система. Просто, в качестве локальных переменных без префиксов допустимо использовать однобуквенные имена переменных. Но опять-таки, это зависит от ситуации. например X, Y, Z могут оказаться полями(свойствами) какого-то класса.
согласен, и у меня также.
А в VCL в верхнем регистре константы обозначены. ;-) Я для глобальных пишу префикс Global. (А вообще стараюсь не использовать)
Пока ты пишешь для себя - всё хорошо. Ты попробуй в чужом проекте разобраться, с аналогичными обозначениями. Времени уйдёт больше, чем если бы имена были изначально заданы понятно. Имхо.
Спасибо за идею. + |
||||||||||
|
|||||||||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Именно той же причине и делаю большими. Константы же объявляются как глобальные (по большей части). Это как раз их и роднит с глобальными переменными. Т.е. по принципу сходное должно выглядеть сходно. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
спасибо, но идея чесно сперта из VCL
-------------------- There are always someone smarter than you... |
|||
|
||||
| Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Не обращал внимания =) Я до сих пор пишсал так:
(задумчиво) Интересно, а не будет ли твой вариант медленнее работать... |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |