Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
3-1091604868
Alexander1966
2004-08-04 11:34
2004.08.29
Проблемма с TADOQuery


14-1092054473
Яод
2004-08-09 16:27
2004.08.29
Страшно подумать сколько их существует


1-1092235109
ron
2004-08-11 18:38
2004.08.29
Добрый день есть список файлов


1-1092402136
Лёня
2004-08-13 17:02
2004.08.29
Функция GetCurrentThread


14-1092214027
Тень отца Гамлета
2004-08-11 12:47
2004.08.29
Посмотрел Короля Артура