![]() |
|
Модераторы: THandle, bems |
![]()
|
|
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Голосуем ;) Это сообщение отредактировал(а) CodeMonkey - 5.5.2009, 12:26 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| CodeMonkey |
|
||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Хорошее замечание. А если немного подумать, то отсюда напрямую следует, что есть один-единственный правильный стандарт, а все остальные - "неверны". И этот стандарт - это стандарт от CG. Да, может быть, он не идеален. Может быть, где-то можно было сделать по-лучше. Но это - единственный де-факто стандарт. Всё остальное - это мелочь, которая используется только вами. И никем более. Если человек пишет, соблюдая стандарт CG: 1). Ни у кого не возникнет проблем с чтением его исходников (исходники RTL/VCL читают все). Этот стандарт легко принимается любым человеком. 2). Нет проблем с взаимодействием с другими людьми - они тоже пишут или могут писать так же. В отличие от ваших самопридуманных стандартов, которые никому не известны, кроме вас. 3). Человек может уйти, вместо него придёт другой. Он не станет переписывать код из-за того, что непривычно написано - ведь оформление хорошо известное - "как у Delphi". 4). И т.д. Знаете, это стоит того, чтобы изменить свои привычки и писать "как следует". Я когда-то писал по-другому, ещё с паскаля. Отступ у меня был в пробел и begin я сдвигал в блок, вот так:
После того, как я понатыкался ещё на кучу подобных же "доморощенных" стандартов, я сказал себе: всё, стоп, хватит. И насильно заставил писать себя так:
А потом это вошло в привычку. P.S. В GExperts есть ещё такая офигенная штука, как авто-замена по словарю и "compiler-assisted" замена. Ну т.е. пишешь ты PROCEDURE, а GExperts - бац! И заменяет на "procedure". Автоматом. Без нажатия чего либо. Или, объявлен, скажем, у вас тип TMyObject, а вы написали tmyobject. GExperts и тут заменит автоматом на TMyObject. На первых порах, для начинающих офигенно нужная и удобная штука. Что-то типа учителя, стоящего за спиной. Только ты накосячишь - он тебя бац по лбу! Хорошо тренирует писать "красиво". Да и не для начинающих тоже полезно. Когда ты что-то очень быстро печатаешь и нет времени зажимать Shift (я очень часто пишу просто inttostr) - GExperts автоматом подсобит. P.P.S. ИМХО, Запись
Плоха по той причине, что тяжелее искать соответствующий begin/end - они не на одной позиции. Это сообщение отредактировал(а) CodeMonkey - 5.5.2009, 13:07 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
||||||||
|
|||||||||
| CodeMonkey |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
2 THandle и регистронезависимость:
Регистронезависимость в Delphi - это благо. Примеры с кривым оформлением не катят. Если человек нихрена не соблюдает стандарт(*), то не будет он его соблюдать и при регистрозависимости:
Сильно легче не становится. Как уже верно заметили, есть всякие авто-заполнялки, которые автоматом подставляют имена. Поэтому, когда пишут так, как ты указал, то это даже не программист, а так, человек, который пытается им быть (он даже среду не знает! Не использует auto-fill). Более того, возникает сомнение в образованности таких людей вообще. Нормальные же люди, не пишут в письменной речи "вОт ТАк". Зло регистрозависимость же как раз тем, что можно спутать переменные. Например, i и I. Объявлены обе (неважно, как это получилось - понятно, что плохой дизайн и всё такое), а мы случайно описались. Это будет уже БАГ. Баг - это гораздо серьёзнее любых стилевых предпочтений. Также регистрозависимость (не только в ЯП) плоха тем, что идёт вразрез с естественным языком (см. также ниже). P.S.
Вот уж до чего дурацкое нововведение. Язык обычно делается так, чтобы быть похожим на естественный. Для того языки и придуманы - упрощать работу для человека. Ну не пишете же вы в реальности: СЛУХАЙ, отправь мне файл. Дурость какая-то (ИМХО). Хотя при наличии какого-нибудь auto-fill/auto-correct это смягчается. Поэтому ещё меня удивляет, когда люди оправдывают { } в сях: "писать короче". Пишите в машинных кодах. Там ещё короче. Примечания: (*) кстати, это не программист, а CodeMonkey (не смотреть на мой ник! -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
||||
|
|||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 1 Всего: 15 |
||||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Это ссылка на 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++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| kemiisto |
|
||||
![]() Дикий Кот. =^.^= ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Участник Клуба Сообщений: 3292 Регистрация: 29.7.2007 Репутация: 3 Всего: 160 |
CodeMonkey, неа. Точнее, не то, что бы совсем неа, а не совсем а.
Ну да, ну да... Ща захоливарим! Согласись, это дурацкий, высосанный из пальца, притянутый за уши, пример. И к тому же, запись а-ля "n принадлежит N" никого не смущает, а тут раскричался. Уж прямо, баг...
Читаю ниже: Ну и вот откуда ветер дует. Если коротко - это не так. Совсем не так. Забавно, но ты сам себе противоречишь:
И в каком это естественном языке у нас есть автодополнялки? Короче, регистрозависимость, до какой то степени, вопрос вкуса. Но вот ключевые слова "капсом" - это "зачёт"! В разы повышают читабельность. Хотя есть и исторические аспекты, почему Вирт решил сделать именно так... Но это удобно. -------------------- |
||||
|
|||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Может быть и не так, но идти вразрез интуитивным представлениям тоже не стоит. А интуитивно для человека Myvar и MyVar - это одно и то же.
На это и поставим жирную точку -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| CodeMonkey |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
http://blog.marcocantu.com/blog/ide_sneak_preview_d2010.html
Итак, в новый IDE входят (барабанная дробь): ... Code Formatter... Теперь стандарт оформления от CodeGear получает ещё +5 очков. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
И ещё 2555 мелких глюков, которые потом будут быстро-быстро исправлять сервис паками
Это сообщение отредактировал(а) Akella - 7.8.2009, 19:43 |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
сорри за подъем старого , но не я первый это сделал
иногда глючит не по детски :( проще имхо
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: нет Всего: 7 |
Понекропосчу немного.
Пишем:
В LongProcedure ошибаемся с шифтом и потом ДОЛГО ищем, где ошибка. А продиктовать или вспомнить, как называется некий объект? Зря что ли поиск по тексту использует регистрозависимость только если явно это указать. А еще очень приятно набирать код на Си, и получать ошибки компилятора из-за каждой ошибки шифта. А какие-нибудь дебильный объявления в стиле WM_SOMEWINDOWSMESSAGE, которые хотелось бы привести к нормальному CamelStyle'у. Под каток такое "счастье", как регистрозависимость. А Вирт ИМХО стал маленько впадать в маразм со времен Модулы. Может конструкции вида IF True THEN DoSomething; End IF и компактнее begin end'ов и висячих else для которых можно было бы просто утвердить правило, что при неясности else относится к ближайшему then. Но это далеко не самая большая проблема стоящая перед Паскаль-программистом, неудивительно, что как только язык получил юниты и другие нужные вещи, никто особо не стал возиться с Модулой (да, я знаю про новосибирскую Excelsior с ее компилятором). Хвалить же Оберон за упрощения совсем не стоит. Не нужны перечислимые типы? А то, что в Object-инспекторе можно вместо невнятной цифры показывать понятное название нужно? Оно ведь как раз за счет перечислимых типов реализуется. И т. д. если на Обероне построить систему класса Delphi для столь же широкого круга программистов, то Оберон очень быстро станет столь же громождкий, как и Object Pascal последних призывов. Языки громоздки не потому что так разработчикам хочется, а потому что потребности пользователей велики и разнообразны. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
| rodnover |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
Вот я лично только ради такого примера переношу begin на следующую строчку, чтобы по началу строки определят состоит вложенный блок из одной команды или из группы команд.. Ведь пропустить отступ намного проще, чем перевод строки. А вообще я за регистрозависимость.. помогает избежать проблем при связи с динамическими библиотеками и прочими внешними модулями...
Заядлый сишник так не напишет, потому что будет знать о таком косяке. ;) да и давать неосмысленные имена переменным как-то не гут.... А вообще я минут 15 пропарился при отладке проекта в Delphi 2007
А оказалось просто.. в определении переменной буква "о" была русской... |
||||||||
|
|||||||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
||||
|
||||
| rodnover |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 223 Регистрация: 7.4.2009 Репутация: нет Всего: 10 |
К тому же чему и разговор про регистронезависимые отступы. ;)
А вообще поддержал разговор о несовсем удобных фичах Делфи. |
|||
|
||||
| CodeMonkey |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Тут же, ниже:
Чем "Count vs Cоunt" принципиально отличается от "count vs Count"? Ничем. И там и там можно сделать одинаковый косяк. Т.е. мыши кололись, но...
Ну и как же тогда вы умудрились написать Count с русской буквой? Если что-то можно сделать неправильно - это обязательно сделают неправильно. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
||||
|
|||||
![]()
|
| Правила форума "Delphi" | |
|
|
Добро пожаловать в форум группы "Delphi". В разделе разрешается:
Строго запрещено:
Если Вам понравилась атмосфера форума, заходите к нам чаще! Люблю, целую, вечно Ваш, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Форум группы: delphi | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |