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

Поиск:

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


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

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



Всем привет. smile

Уж не знаю, так или нет это называется, но Delphi наш не регистрочувствителен, что меня в последнее время честно говоря стало огорчать.

Причины моего огорчения в следующем, объясню все на сусликах.

1. Ключевые слова и оформление кода.
Раньше я оформлял код жутким образом(отступы, несохранение регистра написания переменных в коде и тд.). Сейчас более менее начал соблюдать правила, в большинстве своем описанные в следующей статье:

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=802

А теперь рассмотрим объявление примитивного класса:
Код


    Type
  SUsleg= CLASS(TOBJECt)
PRivate
      AGe   : INTEGER;
    WIDTH,
       Weight:     Integer;
       PUBLIC
         procedure SLEEP;
    cONStrucTor BORN;
    proCEDURE Eat;
  END;


Как вам такой код? Хорошо читается? smile

Пусть даже отступы не будем брать в расчет:

Код

Type
  SUsleg = CLASS(TOBJECt)
  PRivate
    AGe: INTEGER;
    WIDTH, Weight: Integer;
  PUBLIC
    procedure SLEEP;
    cONStrucTor BORN;
    destructor die;
    proCEDURE Eat;
  END;


Все равно код смотрится жутко, ИМХО.

Возьмем класс на C#:

Код

        public class Susleg
        {
            private int Age;
            private int Width, Weight;
            public Susleg(){}
            public void Sleep(){}
            public void Eat(){}  
        } 


Тут никогда не получится написать что то типа:

Код

privaTE INt Age;


Просто недопуститься компилятором.

А что мы видим в Delphi? Новички(да и некоторые вполне опытные люди) приходят и начинают писать код вроде нашего суслика, и многие потом не могут отучиться от такой привычки.

2. Теперь немного об именовании переменных.

Имеем переменные:

Код

var
  MySUPERpuPerSuslEg: Integer;
  A: Byte;
  MuMbaUmBA: Array Of Char;
  PREveDMeDVeD: String;


А теперь как же к ним обращаются люди? Да хоть как!!!
Код

  mYSUpERPUPeRSusleG := 13;
  MySuperPuperSusleg := 25;
  mysuperpupersusleg := 1;
  MYSUPERPUPERSUSLEG := 6;
  MySUPERpuPerSuslEg := 10;
  A := 3;
  a := 7;
  MuMbaUmBA[0] := 'D';
  MUMBAuMbA[1] := 'E';
  muMBaUmba[2] := 'L';
  MUMBAUMBA[3] := 'P';
  mumbaumba[4] := 'H';
  MuMbaUmBA[5] := 'I';
  PREVEDMEDVED := 'Hello world!!!';
  pReVedMedVED := 'OOOOh!!! My GOD!!!!! AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!EEEEE, Bab....';
  //....так далее тому подобные суслики...


В case-sesitive языках переменные mYSUpERPUPeRSusleG и mysuperpupersusleg были бы уже совсем разными вещами.
Единственное что мне нравится у нас в этом деле, это то что нельзя объявить несколько переменных с одним именем, но в разном регистре. То есть:

Код

        public string PREVEDmedVed;
        public string PrevedMedved;


Все катит и работает отлично. Две разные переменные.

А в Delphi так низя, будет ругаться:
Код


var
  PREveDMeDVeD: String;
  PREVEDMEDVED: String;


Delphi уже матерится smile И это ИМХО есть Гуд (не тот который Робин).

Лично мое мнение насчет всего этого безобразия:

Было бы лучше, если бы Pascal, Object Pascal были бы регистрозависимыми языками, с вложенным в компилятор правильным оформлением ключевых слов, без возможности обращаться к переменной "как хочетсЯ", "Как напИсалось". Но в то же время хотелось бы чтобы нельзя было объявлять переменные с одинаковыми с точки зрения прочтения переменными.

Вот. А теперь вопрос.

Каково Ваше мнение по этому поводу? smile

ЗЫ: сорри, написал как то не очень хорошо. Не в лучшем сейчас расположении духов smile
PM   Вверх
SneG0K
Дата 22.1.2009, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

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



Имхо согласен, регистрозависимость нужна. Самого часто бесит, что переменные и функции пишутся без какой-то определенной специфики.

PM WWW Skype   Вверх
Kbl4AH
Дата 23.1.2009, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Я вот тож мучался и думал как правильно написать процедуру или функцию...
Потом узнал про Ctrl + Space... и щас всегда это нажимаю... даже если текст уже полностью мной набран...
то есть я пишу ваще без больших букв... а в конце (или в середине ввода) жму эту комбинацию и все делаеься как надо...
В связи с этим бесит одна штука...
например тип Integer по умочанию так пишется, а string  - так... почему все в дельфе с большой буквы, а стринг - с маленькой?
Меня это немного выводит из равновесия... а переменные так называю: MainForm или Main_form...
ну и отступы, конечно, делаю... но тут уж, как сам считаю правильным... вроде привык уже и сейчас меня не бесит внешний вид того, что я напечатал...
PM MAIL ICQ   Вверх
THandle
Дата 23.1.2009, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

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



Kbl4AH, ключевые слова в Delphi все идут с маленькой буквы, если не ошибаюсь smile
PM   Вверх
Kbl4AH
Дата 23.1.2009, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(THandle @  23.1.2009,  10:23 Найти цитируемый пост)
Kbl4AH, ключевые слова в Delphi все идут с маленькой буквы, если не ошибаюсь

string - ключевое слово, а Integer - нет???
PM MAIL ICQ   Вверх
THandle
Дата 23.1.2009, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

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



Цитата(Kbl4AH @  23.1.2009,  10:33 Найти цитируемый пост)
string - ключевое слово, а Integer - нет??? 


А разве по их подсветке не заметно разницы? smile 
PM   Вверх
Kbl4AH
Дата 23.1.2009, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(THandle @  23.1.2009,  11:02 Найти цитируемый пост)
А разве по их подсветке не заметно разницы? 

заметно! но в сплывающей подсказке и у того и у того название - type... мне в принципе без разницы, но немного не нравится...
user posted image
Одинаково, так одинаково, а не то что с большой, с маленькой, всеми большими... smile 

А почему string единственный из типов является ключевым словом? Так исторически сложилось?

Это сообщение отредактировал(а) Kbl4AH - 23.1.2009, 11:30
PM MAIL ICQ   Вверх
Kbl4AH
Дата 23.1.2009, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Еще пара вопросов по правилам хорошего стиля оформления...
1) В редакторе кода в правой части экрана проходит вертикальная линия...
Можно ли чтобы код выходил за нее или это считается не приемлемым?
2) Как правильно написать такой код?
Код

begin if True then begin ... end else begin ... end; end;


PM MAIL ICQ   Вверх
Rrader
  Дата 23.1.2009, 13:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

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



Цитата(Kbl4AH @  23.1.2009,  18:03 Найти цитируемый пост)
 или это считается не приемлемым?

Не рекомендуется. При печати потеряется.
Цитата(Kbl4AH @  23.1.2009,  18:03 Найти цитируемый пост)
2) Как правильно написать такой код?

Код

begin
  if True then
  begin
    ...
  end
  else
  begin
    ..
  end;
end;



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Kbl4AH
Дата 23.1.2009, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Спасибо, буду теперь так делать... а то раньше делал так:
Код

begin
  if True then
    begin
      ...
    end
  else
    begin
      ..
    end;
end;

PM MAIL ICQ   Вверх
Qu1nt
Дата 24.1.2009, 01:02 (ссылка) |  (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нет такого понятия "правильно".  У каждой уважающей себя фирмы есть некие стандарты оформления кода. Кушать захочешь - к ним приспособишься. 
Регистронезавиcимость Delphi  делает его еще более понятным для новичков. Если сейчас что-то изменить, то огромное количество компонентов, исходных кодов станут неработоспособными. А проводить аналогии с другими языками - неуместно. 
PM MAIL   Вверх
kemiisto
Дата 26.1.2009, 02:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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



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

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



Эх THandle, слышишь ты звон... smile 

Начинаю с Modula языки Вирта стали регистрозависимыми, а ключевые слова пишутся CAPS'ом. Потом ещё были и Modula-2, и Oberon, и Oberon-2... При этом каждый раз язык всё худел и худел. А Borland, наоборот всё раздувает и раздувает. Очень простая реализация модульности и межмудольного импорта/экспорта. И исчо много чего. Вообщем попробуй Component Pascal. Мне понравилось...

Код

MODULE Hello;

IMPORT StdLog;

PROCEDURE Do*;
BEGIN
  StdLog.String("Hello World");
END Do;

END Hello.




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


Творец
****


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

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



Цитата(THandle @  22.1.2009,  22:03 Найти цитируемый пост)
Уж не знаю, так или нет это называется, но Delphi наш не регистрочувствителен, что меня в последнее время честно говоря стало огорчать.

наоборот smile , мне в сях и в линуксе ОЧЕНЬ не нравиццо то, что там есть регистрозависимость

Добавлено через 1 минуту и 38 секунд
Цитата(Rrader @  23.1.2009,  13:23 Найти цитируемый пост)
begin
  if True then
  begin
    ...
  end
  else
  begin
    ..
  end;
end;



так же красивее smile 
Код

  if True then  begin
    

  end else begin

    
  end;//else


PM MAIL   Вверх
Kbl4AH
Дата 28.2.2009, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Akella @  28.2.2009,  14:44 Найти цитируемый пост)
так же красивее  

 smile 
PM MAIL ICQ   Вверх
Akella
Дата 28.2.2009, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



ну и ладно smile 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle

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

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

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

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

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

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

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


 




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


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

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