Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.58 MB
Время: 0.019 c
2-1258131218
abajun
2009-11-13 19:53
2010.01.03
продолжение работы программы после нажатия клавиши


15-1256942264
GDI+
2009-10-31 01:37
2010.01.03
Кстати, а почему люди до сих пор сидят на модемах?


15-1257122587
Eraser
2009-11-02 03:43
2010.01.03
Протокол и GNU


2-1258126599
ms
2009-11-13 18:36
2010.01.03
Помогите. Handle


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