Текущий архив: 2004.08.29;
Скачать: CL | DM;
Вниз
Скобки при отсутствии параметров Найти похожие ветки
← →
Danilka © (2004-08-11 15:45) [40][37] Skyle © (11.08.04 15:38)
Угу, более понятно сказал то, что я попытался в [33].
[38] Думкин © (11.08.04 15:40)
Дык, если все оборачивать в классы, то это, кроме всего прочего и читабельность повысит, и избавит от длиннющих имен, как было написано в [37].
← →
Игорь Шевченко © (2004-08-11 15:51) [41]Danilka © (11.08.04 15:24) [33]
> Несколько сумбурно, но не могли-бы Вы привести пример Вашего
> кода, ваших имен процедур и функций, из секции implementation?
> Неужели там есть сравнимые по размеру?SessionId := dmSessions.CreateSignatoriesSession (FileName, Operation);
dmSessions.MarkSessionLoadingComplete (SessionId);
procedure StdStringFieldValidate(Sender: TField);
procedure TModelImplementationList.RegisterModel(
AModelImplemetation: TdmModelTemplateData);
procedure Tdlg{SubsystemPrefix}RecEdit.EnterDataAwareControl(Sender: TObject);
То есть, имена не короткие. Хотя до MS"овских (из списка) я не дотягиваю, но там нету объектов с методами, так что если слить имена методов и классов, то по длине вполне догоню. Но за длиной я не гонюсь, мне важно, чтобы мой код понимал не только я, но и те, кто его будет по долгу службы читать
← →
olookin © (2004-08-11 15:56) [42]а почему бы просто не сократить само название? Применим аббревиатуру для LastSuccessfulSession = LSS. Тогда:
GetMessageIndexOfLSSDialog(GetMessageOfLSSDialog(),GetLSSNameAndIdentifier(),DefineDialogTypeOfLSS());
уже покороче? Скажете, что так не делают и ничего так не понятно? А вот пример:
GetDC();
Хотя могли бы написать и GetDeviceContext() - не так уж длинно. Зато раз (два, десять) понатыкавшись на аббревиатуру LSS, можно запомнить ее смысл...
← →
Danilka © (2004-08-11 15:58) [43]
> если слить имена методов и классов
Имя объекта отделяется от имени метода точкой, что уже повышает читабельность, кроме того, можно использовать with.
> Но за длиной я не гонюсь, мне важно, чтобы мой код понимал
> не только я, но и те, кто его будет по долгу службы читать
До вобщем-то и я про то-же. Имя которое состоит из двух слов читается легко. Из трех немного сложнее, но еще ничего. А когда по пять-шесть, то какая тут читабельность?
← →
Игорь Шевченко © (2004-08-11 16:04) [44]
> А когда по пять-шесть, то какая тут читабельность?
Обыкновенная. В противном случае нужно писать комментарий, объясняющий, что делает функция, если из ее названия это не следует со всей очевидностью.
← →
Digitman © (2004-08-11 16:12) [45]
> Григорьев Антон © (11.08.04 11:51)
заимей привычку именовать методы префиксами, отражающими англоязычные глаголы а-ля DoSomething (делать что-то там) - и проблем не будет, и геморрой отложится на неопр.время
← →
Danilka © (2004-08-11 16:17) [46][44] Игорь Шевченко © (11.08.04 16:04)
Если честно, не могу вспомнить ситуацию, когда метод/свойство класса, необходимо расписывать пятью-шестью словами.
← →
Игорь Шевченко © (2004-08-11 16:32) [47]Danilka © (11.08.04 16:17) [46]
> Если честно, не могу вспомнить ситуацию, когда метод/свойство
> класса, необходимо расписывать пятью-шестью словами.
имена методов:
DrawTextBiDiModeFlagsReadingOnly
UseRightToLeftAlignment
UseRightToLeftReading
UseRightToLeftScrollBar
Это у Borland
← →
GuAV © (2004-08-11 19:31) [48]Пора переименовать Now в GetCurrentMomentDatetime :-)
← →
Андрей Сенченко © (2004-08-11 19:49) [49]olookin © (11.08.04 15:56) [42]
а почему бы просто не сократить само название? Применим аббревиатуру для LastSuccessfulSession = LSS. Тогда:
Просматривая этот участок кода месяцев через 5-6 сможешь вспомнить что имел ввиду под этой аббревиатурой ? Сомневаюсь. Через пару недель - и то не сразу вспомнишь.
GuAV © (11.08.04 19:31) [48]
Пора переименовать Now в GetCurrentMomentDatetime :-)
Кто ж мешает ? Соберите себе служебный юнит из таких вещей, подключайте его к новым проектам и работайте.
← →
TUser © (2004-08-11 20:21) [50]Обозначения д.б. понятны писавшему. Остальное - от лукавовго.
← →
jack128 © (2004-08-11 20:23) [51]> Обозначения д.б. понятны писавшему. через год. ;-)
← →
TUser © (2004-08-11 20:28) [52]Через год стиль прграммирования может сильно измениться.
← →
jack128 © (2004-08-11 20:41) [53]
> Через год стиль прграммирования может сильно измениться
Не знаю. У мя весьма часто стиль менялся, только на первых порах, когда только начинал программировать..А теперь почти не меняется...
← →
Гаврила © (2004-08-11 20:44) [54]
> Андрей Сенченко © (11.08.04 19:49) [49]
> Просматривая этот участок кода месяцев через 5-6 сможешь
> вспомнить что имел ввиду под этой аббревиатурой
Хороший пример был приведен с GetDC
Если есть группа функций с одинаковой аббривеатурой, это, ИМХО, выход.
Посмотришь первый раз через 5-6 месяцев на функцию, прочтешь комментарий, для остальных функций группы все будет понятно без сомментария.
Опять же
не MessageBox_IconInformation, а MB_IconInformation, от первоисточника, так сказать. Это константа а не функция, но смысл не меняется
← →
Sergey Masloff (2004-08-11 20:44) [55]Я всегда ставлю скобки ()
← →
Гаврила © (2004-08-11 20:48) [56]Кстати, если не ошибаюсь, возможность ставить пустые скобки появилась относительно недавно, в ранних версиях delphi такого не было
← →
TUser © (2004-08-11 21:05) [57]А в других язаках (С/VB) было всегда.
← →
Sergey Masloff (2004-08-11 21:09) [58]Гаврила © (11.08.04 20:48) [56]
>возможность ставить пустые скобки появилась относительно недавно
В Delphi4 насколько я помню.
← →
jack128 © (2004-08-11 21:10) [59]
> А в других язаках (С/VB) было всегда
как в VB не знаю, а в сях НЕ ставить скобки нельзя. Точнее можно, но вызова функции не будет..
← →
Гаврила © (2004-08-11 21:23) [60]
> Точнее можно, но вызова функции не будет..
Это как ?
То есть откомпилируется, но будет неправильно работать ? без вызова ???
← →
jack128 © (2004-08-11 21:41) [61]
> То есть откомпилируется, но будет неправильно работать ?
> без вызова ???
в си имя функции без скобок трактуется как указатель на функцию.
int SameFunc()
{
return true;
}
SameFunc; - эта запись трактуется как @SameFunc в Delphi
← →
GuAV © (2004-08-11 22:42) [62]jack128 © (11.08.04 21:41) [61]
Так это в деклараии, а в вызове вроде можно ?
← →
jack128 © (2004-08-11 22:57) [63]
> Так это в деклараии, а в вызове вроде можно ?
Щас студию снёс, но так было! "Зуб даю" (c) .
Даже варнинг какой то был по этому поводу... Помоему, что то про код в старом стиле "С"
← →
GuAV © (2004-08-11 23:02) [64]
> Щас студию снёс
Respect ;-)
← →
jack128 © (2004-08-11 23:30) [65]
> Respect ;-)
не за что ;-) Я её снова поставил ради такого дела :-)
#include "stdafx.h"
#include <stdio.h>
void TestFunc(void)
{
printf("test\n");
}
int main(int argc, char* argv[])
{
TestFunc;
return 0;
}
варнинг function call missing argument list и "test" не печатается..
← →
GuAV © (2004-08-12 01:14) [66]Хорошо. ну его этот си, если там так всё сложно ;-)
И студию снеси. Поставь ка лудше С#Bulider ;-)
← →
Danilka © (2004-08-12 02:15) [67]Игорь Шевченко © (11.08.04 16:32) [47]
Угу, я понял. Да, есть ситуации, когда это оправдано. Но все-таки, чем длиннее слово, тем тяжелее его прочитать - надеюсь с этим все согласятся? И с тем, что процент имен методов состоящих из 5-6 слов намного меньше (может, на порчдок) чем имен состоящих их 2-3 слов, что в библиотеке библиотеки Дельфи, что и у других.
Sergey Masloff (11.08.04 20:44) [55]
Зачем?
Честно говоря, мне пустые скобки мозолят глаза.
← →
Игорь Шевченко © (2004-08-12 09:24) [68]
> Обозначения д.б. понятны писавшему. Остальное - от лукавовго.
Только если он пишет в одиночку на коленке. Тогда конечно, он волен сам потом мучиться, вспоминая, что же имелось в виду под названиями sTmpKeyName1, sTmpKeyName2, sTmpKeyName3
Страницы: 1 2 вся ветка
Текущий архив: 2004.08.29;
Скачать: CL | DM;
Память: 0.6 MB
Время: 0.042 c