Модераторы: THandle, bems

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> case-sensitive и Delphi 
:(
    Опции темы
CodeMonkey
Дата 5.5.2009, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 4
Всего: 89



Цитата
В связи с этим бесит одна штука...
например тип Integer по умочанию так пишется, а string  - так... почему все в дельфе с большой буквы, а стринг - с маленькой?

Голосуем ;)

Это сообщение отредактировал(а) CodeMonkey - 5.5.2009, 12:26


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
CodeMonkey
Дата 5.5.2009, 12:45 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 4
Всего: 89



Цитата
представляю как бы нам всем было весело в одной команде

Хорошее замечание. А если немного подумать, то отсюда напрямую следует, что есть один-единственный правильный стандарт, а все остальные - "неверны".

И этот стандарт - это стандарт от CG.

Да, может быть, он не идеален. Может быть, где-то можно было сделать по-лучше. Но это - единственный де-факто стандарт. Всё остальное - это мелочь, которая используется только вами. И никем более.

Если человек пишет, соблюдая стандарт CG:
1). Ни у кого не возникнет проблем с чтением его исходников (исходники RTL/VCL читают все). Этот стандарт легко принимается любым человеком.
2). Нет проблем с взаимодействием с другими людьми - они тоже пишут или могут писать так же. В отличие от ваших самопридуманных стандартов, которые никому не известны, кроме вас. 
3). Человек может уйти, вместо него придёт другой. Он не станет переписывать код из-за того, что непривычно написано - ведь оформление хорошо известное - "как у Delphi". 
4). И т.д.

Знаете, это стоит того, чтобы изменить свои привычки и писать "как следует". 
Я когда-то писал по-другому, ещё с паскаля. Отступ у меня был в пробел и begin я сдвигал в блок, вот так:

Код
procedure P;
begin
DoSomething;
DoSomethingElse;
if F <> 0 then
 begin
 More;
 MoreMore;
 end;
InvokeAppocalypse;
end;


После того, как я понатыкался ещё на кучу подобных же "доморощенных" стандартов, я сказал себе: всё, стоп, хватит. И насильно заставил писать себя так:

Код
procedure P;
begin
  DoSomething;
  DoSomethingElse;
  if F <> 0 then
  begin
    More;
    MoreMore;
  end;
  InvokeAppocalypse;
end;


А потом это вошло в привычку.

P.S. В GExperts есть ещё такая офигенная штука, как авто-замена по словарю и "compiler-assisted" замена. Ну т.е. пишешь ты PROCEDURE, а GExperts - бац! И заменяет на "procedure". Автоматом. Без нажатия чего либо. 
Или, объявлен, скажем, у вас тип TMyObject, а вы написали tmyobject. GExperts и тут заменит автоматом на TMyObject. 
На первых порах, для начинающих офигенно нужная и удобная штука. Что-то типа учителя, стоящего за спиной. Только ты накосячишь - он тебя бац по лбу! Хорошо тренирует писать "красиво".
Да и не для начинающих тоже полезно. Когда ты что-то очень быстро печатаешь и нет времени зажимать Shift (я очень часто пишу просто inttostr) - GExperts автоматом подсобит.

P.P.S. ИМХО, Запись 

Код
  if F <> 0 then begin
    More;
    MoreMore;
  end else begin
    InvokeAppocalypse;
  end;


Плоха по той причине, что тяжелее искать соответствующий begin/end - они не на одной позиции.

Это сообщение отредактировал(а) CodeMonkey - 5.5.2009, 13:07


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
CodeMonkey
Дата 5.5.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 4
Всего: 89



2 THandle и регистронезависимость:
Регистронезависимость в Delphi - это благо. Примеры с кривым оформлением не катят. Если человек нихрена не соблюдает стандарт(*), то не будет он его соблюдать и при регистрозависимости:
Код
       public class 
                        Susleg  {
            private int Age;
     private int Width, 
Weight;
         public             Susleg  () {}
            public void Sleep()
{
}
            public 
            void 
            Eat
            (){}          } 


Сильно легче не становится.

Как уже верно заметили, есть всякие авто-заполнялки, которые автоматом подставляют имена. Поэтому, когда пишут так, как ты указал, то это даже не программист, а так, человек, который пытается им быть (он даже среду не знает! Не использует auto-fill). Более того, возникает сомнение в образованности таких людей вообще. Нормальные же люди, не пишут в письменной речи "вОт ТАк". 

Зло регистрозависимость же как раз тем, что можно спутать переменные. Например, i и I. Объявлены обе (неважно, как это получилось - понятно, что плохой дизайн и всё такое), а мы случайно описались. Это будет уже БАГ. Баг - это гораздо серьёзнее любых стилевых предпочтений.
Также регистрозависимость (не только в ЯП) плоха тем, что идёт вразрез с естественным языком (см. также ниже).

P.S. 
Цитата
а ключевые слова пишутся CAPS'ом

Вот уж до чего дурацкое нововведение. Язык обычно делается так, чтобы быть похожим на естественный. Для того языки и придуманы - упрощать работу для человека. Ну не пишете же вы в реальности: СЛУХАЙ, отправь мне файл. Дурость какая-то (ИМХО). Хотя при наличии какого-нибудь auto-fill/auto-correct это смягчается.
Поэтому ещё меня удивляет, когда люди оправдывают { } в сях: "писать короче". Пишите в машинных кодах. Там ещё короче.

Примечания:
(*) кстати, это не программист, а CodeMonkey (не смотреть на мой ник! smile )


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Kbl4AH
Дата 5.5.2009, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 1
Всего: 15



Цитата(CodeMonkey @  5.5.2009,  13:20 Найти цитируемый пост)
Голосуем ;)

Я что-то не сообразил к чему тут эта ссылкаsmile 
CodeMonkey, поясни, плиз...
PM MAIL ICQ   Вверх
CodeMonkey
Дата 5.5.2009, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 4
Всего: 89



Цитата(Kbl4AH @  5.5.2009,  20:31 Найти цитируемый пост)
Я что-то не сообразил к чему тут эта ссылка

Это ссылка на Quality Central, а конкретно на предложение (suggestion) по замене "string" на "String" в Delphi. 

Quality Central - это официальный баг-трекер для продуктов CodeGear (Delphi, Builder и т.п.). Можно использовать web-клиент или нативный (Win32 native) - он входит в поставку Delphi, найти можно здесь: C:\Program Files\CodeGear\RAD Studio\6.0\QualityCentral\qualitycentral.exe (путь меняется в зависимости от вашей версии Delphi, есть не во всех версиях).
Для участия необходима обычная регистрация на Developer Network (бесплатно, разумеется).



--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
kemiisto
Дата 5.5.2009, 21:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



CodeMonkey, неа. Точнее, не то, что бы совсем неа, а не совсем а. smile 

Цитата(CodeMonkey @  5.5.2009,  11:01 Найти цитируемый пост)
Регистронезависимость в Delphi - это благо.

Ну да, ну да... Ща захоливарим! smile 

Цитата(CodeMonkey @  5.5.2009,  11:01 Найти цитируемый пост)
Зло регистрозависимость же как раз тем, что можно спутать переменные. Например, i и I. Объявлены обе (неважно, как это получилось - понятно, что плохой дизайн и всё такое), а мы случайно описались. Это будет уже БАГ.

Согласись, это дурацкий, высосанный из пальца, притянутый за уши, пример. И к тому же, запись а-ля "n принадлежит N" никого не смущает, а тут раскричался. Уж прямо, баг... smile 

Цитата(CodeMonkey @  5.5.2009,  11:01 Найти цитируемый пост)
Также регистрозависимость (не только в ЯП) плоха тем, что идёт вразрез с естественным языком (см. также ниже).

Читаю ниже:
Цитата(CodeMonkey @  5.5.2009,  11:01 Найти цитируемый пост)
Язык обычно делается так, чтобы быть похожим на естественный.

Ну и вот откуда ветер дует. Если коротко - это не так. Совсем не так.

Забавно, но ты сам себе противоречишь:
Цитата(CodeMonkey @  5.5.2009,  11:01 Найти цитируемый пост)
Как уже верно заметили, есть всякие авто-заполнялки, которые автоматом подставляют имена.

И в каком это естественном языке у нас есть автодополнялки?

Короче, регистрозависимость, до какой то степени, вопрос вкуса. Но вот ключевые слова "капсом" - это "зачёт"! В разы повышают читабельность. Хотя есть и исторические аспекты, почему Вирт решил сделать именно так... Но это удобно.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
CodeMonkey
Дата 5.5.2009, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 4
Всего: 89



Цитата(kemiisto @  5.5.2009,  21:33 Найти цитируемый пост)
 Если коротко - это не так. Совсем не так.

Может быть и не так, но идти вразрез интуитивным представлениям тоже не стоит. А интуитивно для человека Myvar и MyVar - это одно и то же.

Цитата
Короче, регистрозависимость, до какой то степени, вопрос вкуса.

На это и поставим жирную точку smile 


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
CodeMonkey
Дата 4.8.2009, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 4
Всего: 89



http://blog.marcocantu.com/blog/ide_sneak_preview_d2010.html

Итак, в новый IDE входят (барабанная дробь): ... Code Formatter...

Теперь стандарт оформления от CodeGear получает ещё +5 очков.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Akella
Дата 7.8.2009, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 7
Всего: 329



И ещё 2555 мелких глюков, которые потом будут быстро-быстро исправлять сервис паками smile, будет раз в месяц выходить какой-нибудь сервис пак или обновление. Но глюки, которые тянуться ещё с Д2006 так и останутся неисправленными.

Это сообщение отредактировал(а) Akella - 7.8.2009, 19:43
PM MAIL   Вверх
Romikgy
Дата 7.8.2009, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: нет
Всего: 146



сорри за подъем старого , но не я первый это сделал smile
Цитата(Bose @  13.3.2009,  00:12 Найти цитируемый пост)
conditional breakpoints(вообще супер)

иногда глючит не по детски :(
Цитата(Bose @  13.3.2009,  00:12 Найти цитируемый пост)
и вызов debugbreak

проще имхо 
Код

asm int 3 end;



--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Beltar
Дата 15.10.2009, 21:02 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: нет
Всего: 7



Понекропосчу немного.

Пишем:
Код

var A,a,B,b,C:Integer;//Заядлый сишник так и напишет
begin
LongProcedure;
end;


В LongProcedure ошибаемся с шифтом и потом ДОЛГО ищем, где ошибка.

А продиктовать или вспомнить, как называется некий объект? Зря что ли поиск по тексту использует регистрозависимость только если явно это указать.

А еще очень приятно набирать код на Си, и получать ошибки компилятора из-за каждой ошибки шифта.

А какие-нибудь дебильный объявления в стиле WM_SOMEWINDOWSMESSAGE, которые хотелось бы привести к нормальному CamelStyle'у.

Под каток такое "счастье", как регистрозависимость.

А Вирт ИМХО стал маленько впадать в маразм со времен Модулы. Может конструкции вида

IF True THEN
  DoSomething;
End IF

и компактнее begin end'ов и висячих else для которых можно было бы просто утвердить правило, что при неясности else относится к ближайшему then. Но это далеко не самая большая проблема стоящая перед Паскаль-программистом, неудивительно, что как только язык получил юниты и другие нужные вещи, никто особо не стал возиться с Модулой (да, я знаю про новосибирскую Excelsior с ее компилятором). Хвалить же Оберон за упрощения совсем не стоит. Не нужны перечислимые типы? А то, что в Object-инспекторе можно вместо невнятной цифры показывать понятное название нужно? Оно ведь как раз за счет перечислимых типов реализуется. И т. д. если на Обероне построить систему класса Delphi для столь же широкого круга программистов, то Оберон очень быстро станет столь же громождкий, как и Object Pascal последних призывов. Языки громоздки не потому что так разработчикам хочется, а потому что потребности пользователей велики и разнообразны.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
rodnover
Дата 12.11.2009, 13:46 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009

Репутация: нет
Всего: 10



Код

  if True then
    Something1;
  Something2;




Код

  if True then
  begin
    Something1;
    Something2;
  end;


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

А вообще я за регистрозависимость.. помогает избежать проблем при связи с динамическими библиотеками и прочими внешними модулями...

Цитата

Понекропосчу немного.

Пишем:Код

var A,a,B,b,C:Integer;//Заядлый сишник так и напишет
begin
LongProcedure;
end;


Заядлый сишник так не напишет, потому что будет знать о таком косяке. ;) да и давать неосмысленные имена переменным как-то не гут....

А вообще я минут 15 пропарился при отладке проекта в Delphi 2007
Код

int Cоunt;

Count := 0;

А оказалось просто.. в определении переменной буква "о" была русской...
PM MAIL   Вверх
Akella
Дата 17.11.2009, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 7
Всего: 329



Цитата(rodnover @  12.11.2009,  13:46 Найти цитируемый пост)
А вообще я минут 15 пропарился при отладке проекта в Delphi 2007
Выделить всёкод Pascal/Delphi
1:
2:
3:
    
int Cоunt;
Count := 0;

А оказалось просто.. в определении переменной буква "о" была русской... 


а регистрозависимость тут при чём
PM MAIL   Вверх
rodnover
Дата 17.11.2009, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 223
Регистрация: 7.4.2009

Репутация: нет
Всего: 10



К тому же чему и разговор про регистронезависимые отступы. ;) 
А вообще поддержал разговор о несовсем удобных фичах Делфи.
PM MAIL   Вверх
CodeMonkey
Дата 18.11.2009, 11:32 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 4
Всего: 89



Цитата(rodnover @  12.11.2009,  13:46 Найти цитируемый пост)
А вообще я за регистрозависимость..

Тут же, ниже:
Цитата(rodnover @  12.11.2009,  13:46 Найти цитируемый пост)
А вообще я минут 15 пропарился при отладке проекта в Delphi 2007


Чем "Count vs Cоunt" принципиально отличается от "count vs Count"? Ничем. И там и там можно сделать одинаковый косяк.

Т.е. мыши кололись, но...

Код
Заядлый сишник так не напишет, потому что будет знать о таком косяке. ;) 

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


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle

Добро пожаловать в форум группы "Delphi".

В разделе разрешается:

  • Флудить (в приемлемых величинах)
  • Обсуждать модерирование данного раздела (но не его модератора)
  • Добавлять свои правила если они не противоречат существующим
  • Делать наезды на пешеходов***

Строго запрещено:

  • Размещать рекламу
  • Совершать оскорбления личностей
  • Материться
  • *** Пешеходами не являются (ко)модераторы, админы, участники клуба.

Если Вам понравилась атмосфера форума, заходите к нам чаще! Люблю, целую, вечно Ваш, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Форум группы: delphi | Следующая тема »


 




[ Время генерации скрипта: 0.1138 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.