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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поговорим о недостатках Delphi, я не шучу... надо быть самокритичными 
:(
    Опции темы
Akella
Дата 2.6.2010, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(k0rvin @  1.6.2010,  15:21 Найти цитируемый пост)
при нажатии ENTER после begin (а лучше после любой строки, заканчивающейся не ';' и не '.') редактор автоматически не ставит отсупы в два пробела

Редактор не только отступ выполняет в два пробела, да ещё и end добавляет (D2007)

Добавлено через 1 минуту и 44 секунды
Цитата(k0rvin @  1.6.2010,  15:21 Найти цитируемый пост)
2) при вводе end; автоматически не пододвигает его на те же два пробела влево;

не понял, зачем end на два пробела влево двигать?

Добавлено через 3 минуты и 40 секунд
Цитата(k0rvin @  1.6.2010,  15:21 Найти цитируемый пост)
а вот так надо:


Цитата(k0rvin @  1.6.2010,  15:21 Найти цитируемый пост)
foo( 1,
    2 );

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


Опытный
**


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

Репутация: 0
Всего: 5



Цитата(Akella @ 2.6.2010,  11:13)
1) Редактор не только отступ выполняет в два пробела, да ещё и end добавляет (D2007)

2) не понял, зачем end на два пробела влево двигать?

1) да, точно, забыл, в 2006 тоже есть такое (+ сразу if..., for..., etc вставляет), но мне такой подход совсем не нравится, еще с редакторов, вставлющих закрывающую скобку/кавычку.

2) затем, что иначе будет так:
Код

  begin
    foo;
    bar;
    end;

а надо так:
Код

  begin
    foo;
    bar;
  end;


вот еще кстати -- необязательность скобок после имени функции/процедуры без параметров при вызове.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Akella
Дата 3.6.2010, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(k0rvin @  2.6.2010,  15:26 Найти цитируемый пост)
затем, что иначе будет так:


Цитата(k0rvin @  2.6.2010,  15:26 Найти цитируемый пост)
а надо так:


Всем не угодишь ведь smile

Добавлено через 24 секунды
Каждый др программирует, как хочет smile
PM MAIL   Вверх
former
Дата 3.6.2010, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


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

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



Цитата(Akella @  3.6.2010,  11:15 Найти цитируемый пост)
Всем не угодишь ведь

Тут дело не в том, угодишь или не угодишь, а в общепринятых правилах форматирования кода.
Кроме того, есть же CnPack, хотя и он не все делает правильно.
Еще мне непонятно, зачем при создании цикла for автоматом подставляется следующее:
Код

for I := 0 to List.Count - 1 do

По идеи, было бы правильно делать так:
- набираешь for, нажимаешь пробел, появляется конструкция вида:
Код

for [] := [] [to] [] do
  begin
    []
  end;

[] - объекты табуляции (это уже реализовано)
[to] - клавишами вверх/вниз выбирается между to и downto

- после вода параметров цикла, опять же используя клавишу Tab, перемещаемся в позицию ввода тела цикла.

И таких примеров достаточно.

Еще очень раздражает расхождение между перечислением процедур и функций (в порядке создания) и фактическим их местонахождением среди прочего кода (в коде в алфавитном порядке).
В 7-е такого не было.
Не знаю, как другие, но я все процедуры и функции строго упорядочиваю и комментирую. Т.е. события формы в одном месте, события меню - в другом и т.д. Это позволяет повысить читабельность кода. ИХМО.



Это сообщение отредактировал(а) former - 3.6.2010, 12:57


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Akella
Дата 3.6.2010, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(former @  3.6.2010,  12:53 Найти цитируемый пост)
набираешь for, нажимаешь пробел, появляется конструкция вида:

 smile 
PM MAIL   Вверх
k0rvin
Дата 3.6.2010, 16:47 (ссылка) |  (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: 5



честно говоря, я бы быстрее руками написал, чем бегать по табуляциям и стрелками что-то там выбирая.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
Akella
Дата 3.6.2010, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



В итоге всё доходит до этого: "По многочисленным запросам российских программистов в среду разработки добавили кнопку "сделать 3.14дато"" smile 
PM MAIL   Вверх
former
Дата 3.6.2010, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


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

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



Цитата(k0rvin @  3.6.2010,  16:47 Найти цитируемый пост)
честно говоря, я бы быстрее руками написал, чем бегать по табуляциям и стрелками что-то там выбирая. 

Да-а-а, а кто постом выше жаловался, что то ему не то и ето ему не ето. smile 
Согласен. Вручную даже удобнее. Просто если уж сделали, то сделали бы нормально. В студии автоподстановка намного лучше реализована, да и работает быстрее.
Цитата(Akella @  3.6.2010,  16:56 Найти цитируемый пост)
В итоге всё доходит до этого: "По многочисленным запросам российских программистов в среду разработки добавили кнопку "сделать 3.14дато""

А я уже где-то выкладывал такую IDEsmile

Это сообщение отредактировал(а) former - 3.6.2010, 17:49


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
k0rvin
Дата 3.6.2010, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: 5



Цитата(former @ 3.6.2010,  17:46)
Цитата(k0rvin @  3.6.2010,  16:47 Найти цитируемый пост)
честно говоря, я бы быстрее руками написал, чем бегать по табуляциям и стрелками что-то там выбирая. 

Да-а-а, а кто постом выше жаловался, что то ему не то и ето ему не ето. smile 

я вообще-то жаловался на отсутствие автоиндентации и индентации по TAB-у. а автовставка шаблона выражения мне только мешает.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
cemick
Дата 3.6.2010, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(k0rvin @  3.6.2010,  16:47 Найти цитируемый пост)
честно говоря, я бы быстрее руками написал, чем бегать по табуляциям и стрелками что-то там выбирая. 

Не забывайте что среда за вас еще и объявит переменную по которой выполняется цикл
PM MAIL WWW   Вверх
k0rvin
Дата 3.6.2010, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: 5



Цитата(cemick @ 3.6.2010,  19:53)
Цитата(k0rvin @  3.6.2010,  16:47 Найти цитируемый пост)
честно говоря, я бы быстрее руками написал, чем бегать по табуляциям и стрелками что-то там выбирая. 

Не забывайте что среда за вас еще и объявит переменную по которой выполняется цикл

это потому, что поцкаль (а также делфи) не предоставляет конструкции для создания локальной области видимости в произвольном месте, по типу let из других языков и сам for не умеет этого делать. т.е. хотя бы как в С++:

Код

for (int i = 0; ...) ...;


и не пришлось бы такой костыль делать.


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
cemick
Дата 4.6.2010, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(k0rvin @  3.6.2010,  20:31 Найти цитируемый пост)
это потому, что поцкаль (а также делфи) не предоставляет конструкции для создания локальной области видимости в произвольном месте, по типу let из других языков и сам for не умеет этого делать. т.е. хотя бы как в С++:


Объявление переменный в произвольных местах спорный момент, вносит больше хаоса в код. 

PM MAIL WWW   Вверх
Akella
Дата 4.6.2010, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


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

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



Цитата(cemick @ 3.6.2010,  19:53)
Цитата(k0rvin @  3.6.2010,  16:47 Найти цитируемый пост)
честно говоря, я бы быстрее руками написал, чем бегать по табуляциям и стрелками что-то там выбирая. 

Не забывайте что среда за вас еще и объявит переменную по которой выполняется цикл

это не так
PM MAIL   Вверх
k0rvin
Дата 4.6.2010, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 0
Всего: 5



Цитата(cemick @ 4.6.2010,  08:25)
Цитата(k0rvin @  3.6.2010,  20:31 Найти цитируемый пост)
это потому, что поцкаль (а также делфи) не предоставляет конструкции для создания локальной области видимости в произвольном месте, по типу let из других языков и сам for не умеет этого делать. т.е. хотя бы как в С++:


Объявление переменный в произвольных местах спорный момент, вносит больше хаоса в код.

я говорил не совсем об объявлении переменных в произвольных местах
а о создании локальных областей видимости с новыми переменными.

Код

procedure foo (n :Integer);
var i :Integer;
begin
  // some code
  for i := 0 to n do SomethingWith(i);
  // some other code
end;

и
Код

procedure foo (n :Integer);
begin
  // some code
  let i :Integer in
    for i := 0 to n do SomethingWith(i);
  // some other code
end;

где во втором примере хаос? наоборот, второй больше соответствует структурному подходу: кускам some code и some other code совершенно не нужно иметь доступ к i.

конкретно в этом случае (и ещё в некоторых) можно упростить до
Код

procedure foo (n :Integer);
begin
  // some code
  for i :Integer = 0 to n do SomethingWith(i);
  // some other code
end;

не вижу никакого хаоса. =)


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
cemick
Дата 4.6.2010, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Akella @  4.6.2010,  10:12 Найти цитируемый пост)
это не так 

Что не так, у меня Delpi 2007 сама добавляет в раздел опсания переменных Var i:integer, если пишу цикл For i := 0 to...


k0rvin
В простых примерах это не мешает, однако, как мне кажется при чтение больших кусков чужого кода это может вызвать затруднение, с определением где объявлена и на какую область действует данная переменна. Достаточно много пришлось программировать на C++, и точно скажу, что для меня эта особенность Delphi в плюс.

Это сообщение отредактировал(а) cemick - 4.6.2010, 14:20
PM MAIL WWW   Вверх
Страницы: (6) Все « Первая ... 2 3 [4] 5 6 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle

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

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

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

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

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

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

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


 




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


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

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