Текущий архив: 2010.01.03;
Скачать: CL | DM;
Вниз
Кому выпадало такое же счастье? Найти похожие ветки
← →
И Павел (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;
Скачать: CL | DM;
Память: 0.56 MB
Время: 0.006 c