Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.01.03;
Скачать: [xml.tar.bz2];

Вниз

Кому выпадало такое же счастье?   Найти похожие ветки 

 
И Павел   (2009-11-01 10:18) [0]

Недавно приходилось дорабатывать программу, разработчик которой не распылялся по мелочам и предпочел старые проверенные, всегда подходящие под любой контекст, имена: Edit5, Edit7, Edit9, Button2, MenuItem7. К счастью, мои модули были связаны со старыми минимально, но повозиться с цифирками пришлось. Так вот мне и стало интересно, как много разработчиков предпочитают такой стиль? Кому выпадало такое же счастье? Может быть есть программы, прогоняющие чужие программы и позволяющие заменять имена? (хотя последнее врятли, слишком много неоднозначностей).


 
@!!ex ©   (2009-11-01 10:23) [1]

> [0] И Павел   (01.11.09 10:18)

Я раньше так писал... пока не понял, что это идиотизм.
Когда быстро нужно набросать какую-то не сложную прогу тоже так пишу.


 
И Павел   (2009-11-01 10:26) [2]


> Когда быстро нужно набросать какую-то не сложную прогу тоже
> так пишу.

Ну в таком случае это оправдано. Но моя программа содержала 30 форм: Form1...Form30 :)


 
@!!ex ©   (2009-11-01 10:33) [3]

Могу только посочувствовать. :)

>>Может быть есть программы, прогоняющие чужие программы и позволяющие заменять имена?
Notepad++ -> Поиск -> Замена... -> Заменить все в активных документах
Предварительно все pas и dfm загрузи в него.


 
TUser ©   (2009-11-01 10:43) [4]

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

Посему, если нечто объявлено тут и используется тут, и любому идиоту понятно, что это такое есть, то пусть называется тривиально. Пример, - единственная кнопка на форме, на которой висит обработчик нажатия и которая более нигде в коде не используется. Другой пример, - var i: integer; - счетчик цикла в процедуре из пяти строк. Любому понятно, что это за i такое.

Если однотипных объектов много и в памяти их не удержать, то даю толковые названия. Пример, - 10 кнопок на форме, которым по прихоти программистьа где-то в коде делается Enable. Другой пример, - var i, j, k, n, m, t, s: integer;, конечно, надо называть по-нормальному.

Третий случай, - когда объект используется где-то не там, где описан. Примеры, - названия полей в объекте, очевидно, не могут быть буквой I или чем-нибудь подобным. Хотя, пожалуй, X и Y, если объект отображает точку, допустимо, ибо главная цель названия - читабельность и понятность. Ну и всякие Form1..Form30, конечно, странно будут выглядеть.

зы Все сказанное суть имха %)


 
И Павел   (2009-11-01 10:44) [5]


> Notepad++

Спасибо. Это вариант.


 
Юрий Зотов ©   (2009-11-01 10:47) [6]

> Notepad++

Это вариант, но не лучший. Многие программы позволяют делать поиск и замену в файлах без их предварительной загрузки. А еще лучше - использовать средства рефакторинга.


 
И Павел   (2009-11-01 11:05) [7]


> А еще лучше - использовать средства рефакторинга.

Если только какие-то средства. Сам рефакторинг этого кода вручную я делать не хочу - там столько всего закручено, чего лучше не раскручивать :)


 
Inovet ©   (2009-11-01 11:06) [8]

Какие-то элементы интерфейса, к которым нет обращения в коде навроде Label1 и то лучше назвать осмысленно - структурирует в голове и в тексте видно к чему относится, но иногда оставляешь "на потом". Ещё глаз режет, когда объявления, генерируемые автоматически по мере добавления элементов, идут вперемешку - упорядочиваю по смыслу, может это уже и лишнее.:)


 
vuk ©   (2009-11-01 11:33) [9]

to Inovet ©   (01.11.09 11:06) [8]:

> Какие-то элементы интерфейса, к которым нет обращения в
> коде навроде Label1 и то лучше назвать осмысленно - структурирует
> в голове и в тексте видно к чему относится

Тут такое дело... Если формы сложные, на структурирование в голове неиспользуемых в коде контролов можно потратить кучу времени (я пробовал, фантазия заканчивается ну очень быстро, потом плюнул), а смысла в этом будет ровно ноль. Потому, что через месяц-полтора, а то и раньше, эти структуры напрочь из головы выветриваются, а ищутся эти контролы потом исключительно визуально.
Я, как правило, даже элементы меню не именую осмысленно, т.к. работаю с ними только через ActionList-ы, где уже у каждой TAction осмысленное имя.
Ну, и еще один случай, когда контролам даются осмысленные имена - это когда нужно сохранение их состояния.


 
Думкин ©   (2009-11-01 11:40) [10]

Локальные переменнные в рамах одной страницы и одноразовые - именую всяко. Что вызывает трения иногда. Но я упорный и непонятливый - а зачем иначе? Если же переменная идет на повтор и с сохраннением значения - ....

Все что во вне или превышает одну страницу - уже думаю над назаванием. Секунд 5, если до этого в РашнлРоуз не прописал себе, конечно.


 
Думкин ©   (2009-11-01 11:54) [11]


> vuk ©   (01.11.09 11:33) [9]


Вот. Чел понимает. Я когда визуально набрасываю форму с гридом, то все на автомате. Если же мне что-то из элементов интересно - даю осмысленные имена. А потому, в связи со специфокй того с чем работаю - у меня куча и непонятных лабелов и CopyOfCopyOfNumber2 и прочего мусора. Который никому неинтересен.


 
Inovet ©   (2009-11-01 12:53) [12]

> [9] vuk ©   (01.11.09 11:33)
> а смысла в этом будет ровно ноль. Потому, что через месяц-
> полтора, а то и раньше, эти структуры напрочь из головы
> выветриваются

Я говорил о времени проектирования, иногда помогает переосмыслить что-то, но у меня как раз в последнее время Label1 всё больше. А вот менюайтемы-то как раз нормально именованы, и выдумывать ничего не надо, и в коде видно по имени обработчика, что удобно.


 
vuk ©   (2009-11-01 12:57) [13]

to Inovet ©   (01.11.09 12:53) [12]:

>  А вот менюайтемы-то как раз нормально именованы, и выдумывать
> ничего не надо, и в коде видно по имени обработчика, что
> удобно.

У меня на MenuItem обработчики напрямую не вешаются. Только через TAction.


 
Inovet ©   (2009-11-01 13:02) [14]

> [13] vuk ©   (01.11.09 12:57)
> У меня на MenuItem обработчики напрямую не вешаются. Только
> через TAction.

Хм, у меня тоже ведь через TAction, но всё равно для красоты значит именованы.:)


 
Думкин ©   (2009-11-01 16:56) [15]

> Хм, у меня тоже ведь через TAction, но всё равно для красоты
> значит именованы.:)


для красоты значит именованы

А ...зачем? Времени много?


 
Inovet ©   (2009-11-01 21:39) [16]

> [15] Думкин c   (01.11.09 16:56)
> > Хм, у меня тоже ведь через TAction, но всё равно для красоты
> > значит именованы.:)
>
> для красоты значит именованы
> А ...зачем? Времени много?

Я так скажу, обобщив от имён пунктов меню на красоту вообще - пожалуй слишком :), но на имена вообще - в тему. Имена пунктов меню очевидны и времени требуют не больше, чем название. Размышление над именами же вообще - полей, методов, модулей - может занять некоторое время, но это время, как я выше писал, проходит не напрасно, ведь размышляя над именем, размышляешь на самом деле над более общей структурой, выходишь из-за деревьев к лесу. Остальное находится между - например, имена локальных переменных времени не занимают, хотя общий принцип и здесь работает.

Так что, если не заниматься эстетством ради эстетства, чуть больше времени вначале - в дальнейшем часто оборачивается значительно меньшим.

Ну это мне так удобнее. Встречал и подход "пофиг как назвать, лишь бы работало", с крайним проявлением в виде генерации уникальных имён функций и однотипных имён параметров навроде AKHT30YE8WL(prm1, prm2). Последнее надо сказать было из Фокса, не его генераторы, а человек, но в Фоксе с областью видимости тяжко потому провоцирует пофигистов на такое.


 
Ламо777 ©   (2009-11-01 22:31) [17]

Мужики, и чего вам ночью в выходной не спится?


 
DVM ©   (2009-11-01 22:41) [18]

я именую все и вся всегда. Кому жаль времени, может ставить в делфи разного рода дополнения которые автоматом формируют префиксы и даже целые имена.


 
DVM ©   (2009-11-01 22:50) [19]


> навроде AKHT30YE8WL

это обсфукатор какой то а не кодер


 
Inovet ©   (2009-11-01 23:03) [20]

> [19] DVM ©   (01.11.09 22:50)
>
> > навроде AKHT30YE8WL
>
> это обсфукатор какой то а не кодер

Ну да я хотел сказать, что люди всякие обфускаторы придумывают, а зачем - надо сразу и писать в таком стиле. Но в этом случае логика такая - зачем я буду выдумывать имя, если мне понадобится эта функция один раз, сгенерирую уникальное имя (есть там функция генерации уникальных имён больше предназначенная для автокодогенерации средой), а потом, когда надо будет ещё раз её использовать сделаю копи-паст места вызова и подправлю или поиском найду по тексту, чтоб посмотреть как работает.


 
Pavia ©   (2009-11-01 23:04) [21]

В программировании уже написано много библиотек и почти для всего есть готовые решения. А чтобы оправдать разработку нужно что-то и на писать. А вот студенты это хороший метод для  обсфуркации кода.

PS. Все слова не мои.


 
TIF ©   (2009-11-02 03:16) [22]

> А вот студенты это хороший метод для  обсфуркации кода.

Это вроде © Игорь Шевченко

Правда в оригинале такого страшного слова не было :) Хоть оно само по себе страшное, но тут просто ужас...


 
Германн ©   (2009-11-02 03:19) [23]


> Ламо777 ©   (01.11.09 22:31) [17]
>
> Мужики, и чего вам ночью в выходной не спится?
>

"Понедельник начинается в субботу"!


 
TIF ©   (2009-11-02 03:36) [24]

> имена: Edit5, Edit7, Edit9, Button2, MenuItem7

Я всегда использую максимально понятные имена. imho, название должно отражать функциональное названиние и иногда положение в интерфейсе. Можно также использовать транслит.

Например:
//Панель для отображения подсказки
FlatPanel_Podskazka: TFlatPanel;

//Рисунок на этой панели
ImagePanel_Podskazka_Risunok: TImage;

//Поле ввода оригинальной фамилии автора в списках книг
Edit_SpiskiKnig_New_Avtor_Original_F: TEdit;

//Аналогично, но для реального имени автора
Edit_SpiskiKnig_New_Avtor_Real_I: TEdit;


Имя, конечно, может получиться весьма-весьма длинным, зато запутаться будет гораздо сложнее. Набирать вручную не получится, но обычно это лишнее - имя можно просто скопировать. Главное хорошо продумать: нужно ли в имени компонента прописывать имя его parent-а, или это лишнее, нужно ли разделять контролы на "кучки", когда использовать разделение через "_", а когда нет...


 
TIF ©   (2009-11-02 03:38) [25]

> названиние

Ну вот, меня заразили вирусом создания страшных слов

*Назначение


 
Дуб ©   (2009-11-02 06:28) [26]


> FlatPanel_Podskazka

Это гималайский английский? Серо-буро-малиновый. :)


 
Наиль ©   (2009-11-02 08:13) [27]

Меня такой код ни сколько не беспокоит.
Всегда можно встать на название которое не нравится и нажать Ctrl+Shift+E.
В версиях от D2006 и старше.


 
@!!ex ©   (2009-11-02 08:35) [28]

> [24] TIF ©   (02.11.09 03:36)

Вот за такое я бы убил.


 
brother ©   (2009-11-02 08:46) [29]

http://www.citforum.ru/programming/delphi/style_delphi/
можно почитать...


 
Лукошко   (2009-11-02 09:27) [30]


> @!!ex ©   (02.11.09 08:35) [28]

Некоторые люди слишком легко относятся к словам. Крайнюю степень возмущения можно высказать мягче, дабы не складывалось неприятного ощущения о собеседнике, не так ли?


 
DVM ©   (2009-11-02 10:29) [31]


> FlatPanel_Podskazka

Такой вид неприемлю совершенно.
Первое - символ подчеркивания для разделения слов нехарактерен для Delphi, заглавных букв достаточно, во вторых безумное смешение английских и русских слов наводит обычно на мысли о том, что автор просто не знал как будет то или иное слово на английском и решил его заменить на русское транслитом.


 
Anatoly Podgoretsky ©   (2009-11-02 10:58) [32]

> DVM  (02.11.2009 10:29:31)  [31]

А написать следовало HintFlatPanel


 
Inovet ©   (2009-11-02 11:25) [33]

> [32] Anatoly Podgoretsky ©   (02.11.09 10:58)
> > DVM  (02.11.2009 10:29:31)  [31]
>
> А написать следовало HintFlatPanel

Или как-нибудь flpnHint, fpHint.


 
@!!ex ©   (2009-11-02 11:27) [34]

> [30] Лукошко   (02.11.09 09:27)

Очевидно что в данном контексте слово убил не несет в своем значении физической угрозы, так что мимо кассы.

P.S.
Крайнее раздражение вызывают постояльцы пытающиеся читать мораль под анонимными никами.


 
Anatoly Podgoretsky ©   (2009-11-02 11:52) [35]

> Inovet  (02.11.2009 11:25:33)  [33]

Я очень не уважаю префиксную нотацию, но не препятствую другим ее использовать


 
Лукошко   (2009-11-02 11:55) [36]


> @!!ex ©   (02.11.09 11:27) [34]


> слово убил не несет в своем значении физической угрозы

То есть нужного слова вы просто не смогли подобрать, так? Или значение слова "убил" таки ускользает от вашего понимания?

Да, ещё: я не постоялец, бываю здесь очень редко, хотя и давно.


 
@!!ex ©   (2009-11-02 12:15) [37]

> [36] Лукошко   (02.11.09 11:55)
> То есть нужного слова вы просто не смогли подобрать, так?
> Или значение слова "убил" таки ускользает от вашего понимания?

Оно ускользает от вашего понимания. Разговор окончен. Досвидания. До новых встреч.


 
Лукошко   (2009-11-02 12:25) [38]


> @!!ex ©   (02.11.09 12:15) [37]

Прекрасный ответ, юноша!
Искренне надеюсь, что встреч не будет.


 
Anatoly Podgoretsky ©   (2009-11-02 12:25) [39]

Вот ты его и убил, а жалко.


 
Kolan ©   (2009-11-02 12:28) [40]

Удалено модератором



Страницы: 1 2 3 вся ветка

Форум: "Прочее";
Текущий архив: 2010.01.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.008 c
11-1209885490
ForestGamp
2008-05-04 11:18
2010.01.03
OnQueryEndSession


15-1257179327
Sergey Masloff
2009-11-02 19:28
2010.01.03
Ищу утилиту для поиска дубликатов. Нужен совет


15-1257173342
Иксик
2009-11-02 17:49
2010.01.03
Есть ли возможность вынести javascript события типа onclick


15-1256938211
Юрий
2009-10-31 00:30
2010.01.03
С днем рождения ! 31 октября 2009 суббота


15-1256980367
DmitriyG.
2009-10-31 12:12
2010.01.03
Виснет Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский