![]() |
Модераторы: THandle, bems |
![]() ![]() ![]() |
|
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Вот у меня такое есть дело:
Мне нужно в ближайшие три недели разработать прогу - тема проги свободная, но она должна быть небольшаая и красивая. В принципе это может быть решение кокой-то надоедливой задачи, когда делаешь кучу действий которые задалбливают, или какая-нибудь физическая модель или еще что-нибудь не относящееся напрямую к математике или физике В общем народ ну помогите с идеей, Принимаю даже почти бредовые идеи ![]() -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Ну не знаю, напиши что-то из этого
1. Программу типа ipicturescreenshooter 2. запоминалку/напоминалку/записную книжку (задачи, календарь и т.д.) 3. Программу резервного копирования файлов с поддержкой очень длинных путей, имён. Это сообщение отредактировал(а) Akella - 31.10.2009, 17:21 |
|||
|
||||
CompWorm |
|
|||
![]() Допеределыватель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1689 Регистрация: 6.12.2004 Где: / Репутация: нет Всего: 31 |
хранитель ссылок как тут , но бесплатную
![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Эксперта для Delphi, который будет чистить USES
|
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 2 Всего: 51 |
есть такой уже в CnPack. Лучше эксперта для Delphi который сможет стандартное ToDo окошко синхронизировать с каким-нить онлайн ToDo сервисом, а лучше несколькими. |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Ножницы для XP.
Добавлено через 1 минуту и 8 секунд P.S. В Windows 7 появилась специальная программа для снятия скриншотов. Типа, многие тупят нажать на PrintScreen. А разрабам иметь скрины охота, а объяснять - ломает. Поэтому добавили "ножницы". Сделайте такую же. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
А я не хочу устанавливать CnPack Добавлено через 1 минуту и 40 секунд ![]() |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 2 Всего: 51 |
Так уже есть много хороших, удобных и бесплатных. BugShooting, например, очень хороша. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
||||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 2 Всего: 51 |
Free version: Version: 1.9.3 Раньше платной версии не было. Была только версия 1.х. А программка чудо как хороша. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Я так понял, что для этой программы нужно устанавливать ещё какие-то программы в зависимости от выбранного сервера?
Снимки экрана-то она делает, но не могу понять, как отправлять на тот или иной сервер. |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 2 Всего: 51 |
А на какой сервер ты пытаешься отправить? Один нюанс, эта программа не умеет отправлять скриншоты на хостинги картинок без дополнительной настройки. Зато она умеет отправлять скриншоты по мейлу, закачивать на FTP, слать по скайпу, и передавать картинку сторонним программам через командную строку. BugShooting умеет отправлять скриншоты в следующие системы: 1) FogBugz - платный bug-tracker. хостится у авторов 2) Gemini - не знаю такого 3) OnTime - не знаю такого 4) BugTracker.NET - не знаю такого 5) Mantis BT - бесплатный open-source древний баг-трекер 6) Done.Done. - не знаю такого 7) JIRA - платный баг-трекер. Считается одним из лучших. 8) SpiraTest - не знаю такого 9) elementool - не знаю такого 10) Unfuddle - не знаю такого 11) Skype 12) Outlook 13) MS Paint 14) FTP 15) Send screenshots to every Application by using the command line. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Мне всё равно. Принцип простой. Такой же, как и у iPicture. Программа IPictureScreenShooter по нажатию кнопки делает снимок и отправляет на свой сайт, сразу предоставляя несколько вариантов ссылок. можно отправить ссылку товарищу, можно отправить на сайт или форум. А в этой проге я такого не нашёл :( |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
вот в этом-то её большой минус |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Ребят, конечно спасибо, что вы сюда пишите, но я уже давно всё сделал
![]() -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Всё - это что? показывай
|
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Как сертификат придёт о регистрации так выложу в готовых проектах ![]() ![]() -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
ChessMag |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 15.2.2010 Репутация: нет Всего: нет |
Парни нужна помощь. Я написал прогу, для перевода цифр из десятичной системы счисления в двоичную систему. Вот код
Парни помогите написать прогу которая будет переводить двоичные числа в десятичные! Сам пробывал нифига не получаеться! Модератор: создайте отдельную тему + используйте подсветку кода |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
Я смотрю, всё больше "программистов", которые даже не знают, что такое форумы и как, и где правильно задать вопрос.
Это сообщение отредактировал(а) Akella - 15.2.2010, 22:23 |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Akella - это не программист, а так, он ещё недоэволюционировал раз 5 минутную прогу написать не может, да и вообще лепит сообщение куда не надо -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: нет Всего: 9 |
О боже там еще есть goto. Я даже забыл о его существование
З. Ы. Извиняюсь за оффтоп -------------------- Фсё будет хорошо!!! |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Ну это значит что плохо язык знаешь, да -------------------- Обижено школьников: 8 |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Ну знаешь вообще этим goto вообще пользоваться вредно, т.к. ещё до моего рождения было решено, что только ламера используют это безобразие, а нормальные прогальщики должны писать нормальные коды где всё просто и понятно, а этот опреатор вносит "неразбериху в код" -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
||||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
=> первый автор ядра линукс - ламер а это что за звери? ![]() -------------------- Обижено школьников: 8 |
|||
|
||||
Keeper89 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: нет Всего: 58 |
Почитай, у Макконелла написано, что это редкость но есть просто необходимые случаи. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
||||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Конечно есть такие случаи, в первую очередь когда пишешь на asm'e ![]() -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
-------------------- Обижено школьников: 8 |
|||
|
||||
chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: нет Всего: 9 |
Забыл и не знаю вещи разные. И это плохо, что вы не знаете ![]() -------------------- Фсё будет хорошо!!! |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Ну наскоко я знаю одни работают как goto а другие как типа if+goto,я точно не уверен, потому что в asm'e не шарю :( -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
"Вы" это и я тоже, да? я как раз знаю, лол. -------------------- Обижено школьников: 8 |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
-------------------- Обижено школьников: 8 |
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
Недавно читал статью в википедии про "спагетти-код". Это как раз то что получается когда используешь GOTO. ![]() -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
profesiachuvak, у тебя логическая ошибка.
"Существует как минимум один спагетти код, инспирированый использованием goto" - верно. "Каждое использование goto ведет к спагетти-коду" - неверно. -------------------- Обижено школьников: 8 |
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
![]() В защиту ![]() Я не писал каждое, хоть и из контекста кажется именно так. Скорее это неправильное построение предложения, нежели логическая ошибка. -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
profesiachuvak, спагетти бывает и без гоуту. Не использовать вообще никаких операторов?
-------------------- Обижено школьников: 8 |
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
bems, Вы не хотите меня понять. Ваше утверждение очевидно, и я непонимаю к чему Вы объясняете мне это. ![]() Речь идёт о операторе безусловного перехода. О других операторах речь не идёт. -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
profesiachuvak, ну смотри. Есть макароны с гоуту, и макароны без гоуту. Нельзя использовать именно гоуту.
Почему? Потому что про остальные операторы речь не идет. Я правда не понимаю ![]() -------------------- Обижено школьников: 8 |
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
Использую Ваш стиль:
- верно - неверно //не понимаю от куда вы это взяли - верно //это ответ на Ваш нелогичный вопрос : . - верно //естественно используя такую нелогичную цепочку. По мне так всё понятно ![]() -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
отсюда
-------------------- Обижено школьников: 8 |
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
Вот тут я согласился, что сделал ошибку в этом утверждении:
![]() -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Ну раз согласился, значит нет причин не использовать goto
-------------------- Обижено школьников: 8 |
|||
|
||||
THandle |
|
|||
![]() Хранитель Клуба ![]() Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 7 Всего: 372 |
Интересно рассуждаете
![]() Продолжайте пожалуйста ![]() |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Причин то его не использовать нет, но использовать его это неправильно, мне в своё время все уши проездили с этим преподы по программированию, а посему с тех пор я этим и не пользуюсь Я уже писал, раньше, что ещё до моего рождения(ну может уже родился точно не помню ![]() ![]() -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
Логика железная ![]() Перефразирую Ваше высказывание: Ну раз согласился, значит нет причин использовать goto Вот с этим я согласен ![]() Добавлено @ 20:08
Вот это истина. Это сообщение отредактировал(а) profesiachuvak - 22.2.2010, 20:09 -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
bems |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
на какой? Прям всего-всего? Держу пари, индусов там не было. Так что выборочка-то того, хромает.
может неча на goto пенять? ![]() Вот и славненько, вот и договорились ![]() Добавлено через 4 минуты и 50 секунд profesiachuvak, так ті согласился с тем что утверждениеневерно? -------------------- Обижено школьников: 8 |
||||||
|
|||||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
Ну нас не слышите, так прочтите рассуждение умного человека на этот счёт: Доводы против goto -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
-------------------- Обижено школьников: 8 |
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
41 страница, Вы издеваетесь. Ссылку скопирую, но прочту позже.
Конечно. Грамотное, а главное действительное необходимое, употребление GoTo иногда даже полезна и не вносит "неразбериху" в код. bems, Но Вы же должны понимать, что мы не выбираем единичные случаи, а рассматриваем нечто вроде среднего арифметического среди всех случаев использования Goto. Общее обсуждение того что оно не есть "хороший тон" не беспочвенно. Я думаю это аксиома и я не буду даже приводить примеров. Но я согласен, что Goto может помочь скажем при выходе из кучи вложенных циклов, не искажая реальности после прочтения программы другим человеком. (Хотя опять же как насчёт break) -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
bems |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
нууу... А если я начну утверждать что goto привносит господню благодать в код, и скажу что это аксиома? Не надо множить аксиомы, доказывайте.
![]() -------------------- Обижено школьников: 8 |
||||||
|
|||||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
![]()
Да ради Бога. Аксиомы доказывать не умею. Не учили такому. ![]() -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Ну это не в большей степени юмор чем все обсужение
-------------------- Обижено школьников: 8 |
|||
|
||||
profesiachuvak |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
Это с юморком сказал да. Понятно, что в действительности я не сидел и не трясся от страха. ![]()
Едва ли. Моя точка зрения остаётся такой же какой была до нашего обсуждения. И я говорю не потому что мне не хочется признавать это, а так есть на самом деле. Я лишь согласился что допустил лексическую ошибку в своём первом утверждении.
Вот тут Вы согласились со мной. 1:1 -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
||||
|
|||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Совсем, нет. Я согласился с таким направлением дискуссии (так сказать по регламенту), а не с выводом. Но вы почему-то не хотите быть последовательным и предложить выборку. -------------------- Обижено школьников: 8 |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: нет Всего: 19 |
Хм, Кнут, а это интересно, надеюсь будет время и почитаю ![]() -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
Совсем да. Соглашаясь с таким направлением дискуссии, которое предложил я, Вы соглашаетесь со мной. Логично? 1:1
Играю в такую же игру как мой оппонент. Это сообщение отредактировал(а) profesiachuvak - 23.2.2010, 20:07 -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
CodeMonkey |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
...там стоит 68-й год...
Окей, сколько программ вы лично видели со злоупотреблениями goto? А сколько без? (а теперь то же самое, только для with ![]() За свою жизнь я видел довольно много кода с goto ("довольно много" = "не раз и не два"). Но ни разу не видел спагетти-кода с ним. Так в чём проблема? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
||||
|
|||||
bems |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
О! Как я мог забыть про этот топик?!
Ну и что изменилось с тех пор в этом отношении?
-------------------- Обижено школьников: 8 |
||||
|
|||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Мир вокруг ![]() Реалии, которые были в то время, сейчас уже не актуальны. Я не имею ввиду, что теоретические выкладки, что любую программу можно написать без goto, стали неверны. Я имею ввиду, что с практической точки зрения все эти акции "нет goto" начались не с пустого места, а с вполне реальной (в то время) практики его злоупотребления. Ну и как это применимо сегодня (к Delphi)? Никак. Потому что никакого злоупотребления сегодня нет.
Ну, а значит-то это что, по-вашему? Что goto - зло? Или что это полезный инструмент, который иногда необходим, но использовать его лучше бы правильно? Вон, with есть чуть ли не в трети программ, где ж тут было всё "прогрессивное человечество"? -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Второй раз with протаскиваешь. Он хороший!
-------------------- Обижено школьников: 8 |
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
Вообще вся дискуссия как раз на эту тему. К ответу на этот вопрос мы так и не пришли. И не придём. Вопрос в другом: Фор-ла такая : ЛАПША = GOTO <=> GOTO = ЛАПША. Проводить доказательство? P.S. Я уже подумал, что Вы сдались ![]() -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
profesiachuvak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 7.11.2009 Где: Беларусь, Минск Репутация: нет Всего: 4 |
Отлично! Золотые времена, тогда люди действительно думали, а не копировали чужие статьи, приписывая своё авторство. -------------------- Закон Мерфи :если есть вероятность того, что какая-нибудь неприятность может случиться, то она обязательно произойдет. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Рановато. Для начала дайте определение вашему "=", потому что если понимать его так как понимаю я, то формула при внутренней непротиворечивости противоречит вашему утверждению
Это же значит что в формуле не привычное мне "=", а какое-то ваше "в основном равно, на множестве, которое я отказываюсь определить" Добавлено через 2 минуты и 38 секунд Да, и на всякий случай скобки в формуле проставь. Так, для ясности Добавлено через 8 минут и 41 секунду Ну да, реалии изменились. Но они изменились именно благодаря появлению в то время всех этих выкладок, и этой статьи в том числе. Так что когда кто-то пытается вернуться к гоуту то вполне логично напомнить ему статью датируемую дремучим годом. -------------------- Обижено школьников: 8 |
|||
|
||||
CodeMonkey |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Скорее благодаря языкам, где использование goto обычно не нужно. В примере с лапшой на вики не просто так пример кода на бейсике ;) - он вас просто подталкивает к использованию goto. Да, языки менялись под воздействием различных работ, но программерская масса (не все, а только мясо) ничего этого не читала, а просто юзала текущий инструмент. Меняется инструмент - меняются и программы. Поэтому:
имеет смысл только в том случае, если человек нацеливается на лапшу. Поскольку никто, очевидно, этого не делает (в Delphi нет необходимости), то заморачиваться по этому вопросу обычно смысла не имеет. Человек, "пытающийся вернуться к goto", ограничится организацией бесконечного цикла или там выходом из двойного. В голову больше не приходит сценариев, зачем ещё нужен goto. Предостерегать-то и нечего. Right. Только почему-то я очень часто видел, как с его помощью простреливали себе ногу. Да и сам не раз обжигался. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
||||
|
|||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
я так понимаю (по своему опыту, делфи-2006, может сейчас по-другому), что проблема у with в том, что оно неправильно выстраивает precedence-list (или не выстраивает его вообще), т.е. например при использовании в качестве объекта with какого-нибудь экземпляра TTable внутри метода формы, в теле with частенько компилируются методы не TTable, а TForm (то ли Next, то ли Append, не помню точно), хотя хотелось бы, чтобы преимущество имели методы и свойства объекта with по поводу goto: если алгоритм требует его, то можно 1) вместо goto перестроить код с использованием исключений -- получается "жирнее", но более правильно с точки зрения структурного подхода; 2) попробовать выделить участок кода в отдельную подпрограмму и использовать Exit -- тоже "жирнее", но правильней наиболее оптимальным решением видится включение в язык поддержки конструкции наподобии особой формы block из Common Lisp:
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
bems |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Не праильно понимаешь, все так как и заявлено. Проблема with не техническая, и имхо надуманая Добавлено через 2 минуты и 7 секунд
Использование исключений не по назначению это тоже big no. Не вижу чем одно могло бы быть лучше другого Добавлено через 3 минуты и 11 секунд
-------------------- Обижено школьников: 8 |
||||
|
|||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
ок, а в чем проблема? и что значит "так и заявлено"? т.е. такое поведение -- норма? имхо тупость, объект with должен рассматриваться в первую очередь, иначе смысла от такого with мало
оно лучше идеологически -- более структурный подход, чем goto. Если Вас беспокоит назначение, введите в паскаль/делфи продолжения (continuations) -- будет самое то
дык никто и не боится, только единственное обоснованое применение goto -- нелокальный выход, а для этого есть более правильные решения, чем сам goto Это сообщение отредактировал(а) k0rvin - 10.3.2010, 23:49 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Оно так и есть
Не лучше. Тоже плохо.
-------------------- Обижено школьников: 8 |
|||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
по моему опыту -- нет. пример я привел. если в делфи страше 2006 исправили, то ок, проблема решена.
обоснуй. моё обоснование: использование исключений позволяет писать структурированный код и реализовывать нелокальные выходы. альтернативные способы решения этой задачи: продолжения, goto. goto менее всего соответствует структурированному подходу. Ваши возражения? Это сообщение отредактировал(а) k0rvin - 11.3.2010, 00:00 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Суть возражения в том, что структурность это еще не все. Если в программе исключения являются частью нормального хода выполнения, а не возникают в исключительных ситуациях, то это ###.
Тестовый проект был бы примером. -------------------- Обижено школьников: 8 |
|||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
это уже другой вопрос
ок, вечером запощу Это сообщение отредактировал(а) k0rvin - 11.3.2010, 07:41 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
эммм.. за"что"?
|
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
эксперимент не удался, повторить код не получилось, видимо память меня подводит и в том коде причина указанного эффект была в другом. посему можно считать вопрос закрытым.
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
k0rvin, нет, нельзя. Собственно поскольку оказалось что with работает правильно, то значит его проблема в другой плоскости. Имхо проблемы и нет вовсе, но нужно раскрыть причину его упоминания здесь. Сейчас нарою ссылку.
-------------------- Обижено школьников: 8 |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
я имел в виду, что можно закрыть вопрос конкретно по моей претензии, не более =) -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Ну да, у кого бы я еще мог это видеть
![]() Вот цитатка
-------------------- Обижено школьников: 8 |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
[QUOTE=profesiachuvak,5.3.2010, 18:14]
вообще не совсем корректная формула, лапша = (в том числе и goto) например некоторые товарищи утверждают, что с помощью продолжений (continuations) можно довольно легко написать гораздо более запутанный код, чем тот, что может позволить использование goto =) -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Но в то же время и goto = (и лапша тоже)
![]() -------------------- Обижено школьников: 8 |
|||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
мда, действительно неприятность. видимо стоит отказаться от использования with и юзать "переменные-псевдонимы" Добавлено @ 20:59 хотя по большому счёту проблема здесь не в with, а в кривых руках автора TSomeClass, который меняет интерфейс класса. нужно было вначале писать интерфейс и в будущем не отступать от него, в крайнем же случае, если без изменения интерфейса никак -- создавать новый класс Это сообщение отредактировал(а) k0rvin - 11.3.2010, 21:00 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Ну прям и интерфейс не дополнить
-------------------- Обижено школьников: 8 |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Ну, вообще-то при разработке класса (class) не менять интерфейс - это перебор. Классы живут и развиваются очень динамично (рефакторинг и т.п.). А вот при разработке интерфейсов (interface) это - обязательное правило. Как только вы закончили разработку, интерфейс более не меняется. Иначе будут происходить страшные вещи.
У with не было бы вообще никаких проблем, если бы он требовал использования алиасов. А так - это бомба с часовым механизмом, которая может взорваться при совершенно безобидных действиях. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
1) а не нужно классы разрабатывать, нужно разрабатывать интерфейсы (и/или интерфейсы (interface), а классы нужно реализовывать согласно интерфейсам/интерфейсам 2) в паскале/делфи классы не живут и не развиваются, а являются статичными объектами (объектами не в смысле экземплярами классов, а в более общем смысле =)) -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
![]() Neal Stephenson thinks it's cute to name his labels 'dengo'. Это сообщение отредактировал(а) CodeMonkey - 16.3.2010, 09:30 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
bems |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
"Alt" attribute, mothefucker! Do you use it!?
Добавлено через 2 минуты и 13 секунд
Добавлено через 5 минут и 37 секунд
![]() С умом нужно, и эти случаи будут не частыми. Это сообщение отредактировал(а) bems - 14.3.2010, 17:26 -------------------- Обижено школьников: 8 |
||||
|
|||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Да, такое случается не часто. Проблема в том, что вы не можете это контролировать. В случае с goto - вы всегда можете предотвратить его плохой эффект. В случае с with - нет. Вы установили новую версию компонента и теперь ваша программа с кучей with странно себя ведёт. Удачи вам отладить это. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
CodeMonkey, а то что было в alt хоть внизу подпиши.
-------------------- Обижено школьников: 8 |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
они должны это делать только на стадии проектирования, никак не на стадии реализации. конечно это идеальный случай, а практика далека от идеала. поэтому я пожалуй соглашусь с обезьянкой, with с обязательным использованием алиасов -- оптимальное решение. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 7 Всего: 329 |
||||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
всяко проще, чем без него -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
k0rvin, нет with нужно переделать подругому
Порядок классов обрабатывается как в except -------------------- Обижено школьников: 8 |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
Может быть я не в тему(хотя тут все посты оффтоп), а кто нибудь сталкивался в живую с неправильно работающим "with" ?
|
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Смотря что вы понимаете под "неправильным". -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
имхо, Вы усложняете -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Это было бы усложнением если бы я пытался так решить проблему о которой говорил CodeМonkey. А я тут двух зайцев.
Согласись, бывают же случаи (и не то что бы редко), когда приходится писать так
Мой вариант как раз для вот таких случаев, но добавляет сервис компилятора: в then-ветке объект имеет тот тип, который только что был успешно протестирован. Это безопаснее, потому что не требует приведения типа. И пример не совсем мой, нечто подобное кажется есть в Обероне. -------------------- Обижено школьников: 8 |
|||
|
||||
k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
ясно... сегодня я вдруг подумал, а ведь у uses такое же поведение, как и у with, т.е. например
выведет в stdin "Unit1.Foo", но стоит добавить декларацию Foo в интерфейсную часть Unit2, как мы получаем тот же эффект, что и с with. -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
обсуждение надуманной проблемы, ни разу не испытывал каких то проблем при использовании with, как и при поиске методов в модулей. Если и возникает ошибочное обращение, то это легко отлавливается.
|
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Ты наверное хотел сказать stdout Ну да, этот эффект от порядка юнитов известен и даже используется (для тспользования базового компонента в дизайнтайме и подмены его кастомным наследником в рантайме) -------------------- Обижено школьников: 8 |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Это не надуманная проблема. Часто ли вы используете with и модифицируете классы, участвующие в нём? Если бы вы делали это достаточно часто, то уже набили бы себе несколько шишек. И ловится это не так просто, как вам кажется - потом будете долго плеваться. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
||||
|
||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
да, хотел... но перепутал =) а зачем "использовать базовый компонент в дизайнтайме и подменять его кастомным наследником в рантайме"? и, ты наверное хотел сказать в compile-time'е, а не рантайме? =) -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 4 Всего: 89 |
Что-то мне подсказывает, что все они - однотиповые использования статических классов VCL ;) Если у вас есть динамически развивающаяся иерархия классов и вы так часто используете with - лично мне странно, что вы с этим не сталкивались. Когда-то я тоже довольно часто использовал with. И для меня выглядели странными высказывания некоторых людей, которые говорили об опасности использования with и о том, что они теперь его используют очень редко или не используют вообще (кажется, это был DRON на DK). Я тоже думал: "ну, с мной же такого не может произойти, ведь я внимательно слежу за своим кодом!". Поэтому я выкинул это из головы и продолжил жить дальше. Пока, в один прекрасный день программа не стала себя странно вести. Нет, она не вылетала, не выкидывала исключение - она просто вела себя "как-то не так". Я потратил чуть ли не день, закопавшись в отладчик, пытаясь понять как же это "не так". В итоге я выяснил, что нужный метод не вызывается вовсе - бряк, поставленный на него не срабатывает. Мои глаза чуть не вылезли, когда я увидел, что код вызова этого метода вообще-то выполняется. Да, про то обсуждение with я уже забыл, и даже не обратил внимание, что он здесь используется - блок кода был большим. Поэтому я закопался в ассемблерный отладчик только для того, чтобы увидеть, что вызывается метод не того объекта. После чего я увидел with и долго стучал головой о стол. Когда такое произошло во второй раз (окей, в этот раз я потратил меньше времени), я вспомнил о том обсуждении with на DK и сказал себе: всё, стоп, хватит с меня этого. Не пойти ли этому with в баню. С того момента я не использую with. Каждый раз, когда у меня длинная переменная или цепочка (кандидаты для использования with) - я завожу переменную-псевдоним. Всё, точка. Теперь у меня нет и не может быть таких проблем. Кроме того, в новых Delphi завести псевдоним даже проще, чем написать with - благо есть рефакторинг "Introduce variable". Ладно, может быть такие временные отказы и не слишком серьёзная причина, но, как я уже сказал, настоящая проблема не столько в них, сколько в том, что вы не можете это контролировать. Вы можете изменить какой-то класс и даже не заметить как поплыла ваша программа. Вы сдаёте программу заказчику, а через два месяца он вам звонит и говорит: "а какого чёрта не работает функционал X, если мы его проверяли в январе?". И когда вы начнёте копаться в этом, вы обнаружите, что with стал вызывать другой метод, из-за чего нарушилась вся логика уже отлаженного кода, который вы полгода уже не трогали. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
cemick |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 416 Регистрация: 6.7.2006 Где: Санкт-Петербург Репутация: 3 Всего: 6 |
CodeMonkey
На счет динамичности, то тут все я бы сказал через чур динамично и не детерменированно, но все таки больших проблем именно из-за with не имел. Ну на самом деле With мне никогда не нравился, правда в других аспектах: затруднение отладки и разбор чужого кода. Может действительно, стоит не ждать удара граблей по лбу и взять на вооружение практику "никакого with, псевдоним наше все". Это сообщение отредактировал(а) cemick - 22.3.2010, 11:44 |
|||
|
||||
bems |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
k0rvin, я хотел сказать то что сказал.
Добавлено через 6 минут и 19 секунд
Если нужен именно наследник, и ты хочешь полноценную работу с дизайнером. Тут можно зарегистрировать наследник и ложить на форму его, но это не всегда удобно, многие любят чтобы проект собирался без манипуляций со средой вроде установки компонент. -------------------- Обижено школьников: 8 |
|||
|
||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
зачем менять класс в рантайме, если лучше и правильней в случае делфи/паскаля это сделать при компиляции. вообще хотелось бы посмотреть как Вы будете менять класс объекта в рантайме в делфи =) -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
bems |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Во-первых, документированная альтернатива подсовыванию юнита с одноименным классом, это именно обработка события в рантайме (при этом не изменяется класс существующего объекта, а перед созданием читаемого из ресурса компонента есть возможность указать свой класс). Но как показывает практика, подмена класса при компиляции выгоднее. Во-вторых можно сменить класс и существующему объекту, но это допустимо только в исследовательских целях. -------------------- Обижено школьников: 8 |
||||
|
|||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 0 Всего: 5 |
эээ... разве компоновка модулей в экзешник происходит в рантайме? -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
bems |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3400 Регистрация: 5.1.2006 Репутация: 2 Всего: 88 |
Тут я говорил про альтернативу. Она да, рантаймовая. Ну ясно что при компиляции. Но тут
-------------------- Обижено школьников: 8 |
||||
|
|||||
Argilius |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 1.7.2010 Где: Москва Репутация: нет Всего: 0 |
Это как физическая модель может не относится к физике ![]() Напиши графики биоритмов человека или предсказание судьбы по дате рождения. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi" | |
|
Добро пожаловать в форум группы "Delphi". В разделе разрешается:
Строго запрещено:
Если Вам понравилась атмосфера форума, заходите к нам чаще! Люблю, целую, вечно Ваш, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Форум группы: delphi | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |