Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2011, 17:16   #151
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,167
По умолчанию

одним словом, раз
>я не могу их даже прикинуть.
>иногда сажусь на час за это, а иногда вообще не сажусь
за топиком наверное забуду следить дальше, тогда моё мыло 89028912680@mail.ru, Вам ведь надо будет ЯП двигать, мнение услышать, дайте знать, ОК??
Ципихович Эндрю вне форума Ответить с цитированием
Старый 10.12.2011, 17:23   #152
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
за топиком наверное забуду следить дальше, тогда моё мыло 89028912680@mail.ru, Вам ведь надо будет ЯП двигать, мнение услышать, дайте знать, ОК??
просто следите за этой темой.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.12.2011, 17:29   #153
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,167
По умолчанию

я говорю за топиком наверное забуду следить дальше
а Вы мне просто следите за этой темой
Топик это не одежда, это и есть тема, ладно я Вас понял...
Ципихович Эндрю вне форума Ответить с цитированием
Старый 10.12.2011, 17:31   #154
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

я более насчет почты, что достаточно следить за этой темой, ибо если будут новости, то тут они точно будут.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.12.2011, 17:48   #155
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от anyx Посмотреть сообщение
Совсем. RAII как раз провоцирует не использовать деструкторы/финализаторы вручную.
Мне право не удобно говорить Вам это. Но почитайте о RAII. Первый и основной упор там делается прежде всего на инициализацию. А что оно там провоцирует это дело десятое.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 10.12.2011, 18:31   #156
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Мне право не удобно говорить Вам это. Но почитайте о RAII. Первый и основной упор там делается прежде всего на инициализацию. А что оно там провоцирует это дело десятое.
Стал бы я кидать ссылку на ресурс (несколькими страницами ранее), который недостаточно изучил, а потом ссылаться? Кидаю снова:
http://ru.wikipedia.org/wiki/Получен..._инициализация
И советую вам перечитать - автоматическому освобождению ресурса уделено много внимания. Даже приведу цитаты:
Цитата:
Суть идиомы RAII в том, что класс инкапсулирует владение (захват и освобождение) некоторого ресурса — например, открытого файлового дескриптора. Когда объекты-экземпляры такого класса являются автоматическими переменными, гарантируется, что когда они выйдут из области видимости, будет вызван их деструктор — а значит, ресурс будет освобождён. В данном примере файл будет закрыт корректно, даже если вызов std::fopen() вернёт ошибку и будет возбуждено исключение. Более того, если конструктор класса file завершился корректно, это гарантирует то, что файл действительно открыт. В случае ошибки при открытии файла конструктор возбуждает исключение
Я и про деструкторы не соврал, и про безопасность при исключениях

И вообще я думаю, что про RAII уже достаточно много сказано, так что просто оставим за Пеплом Феникса решение о том, как это будет реализовываться в его языке и будет ли вообще.

Последний раз редактировалось anyx; 10.12.2011 в 18:33.
anyx вне форума Ответить с цитированием
Старый 10.12.2011, 21:25   #157
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Я и про деструкторы не соврал, и про безопасность при исключениях
Я Вас не обвиняю во лжи. Речь идет о неточностях. Прежде всего об инициализации. В моем случае на этом не акцентируется внимание. Хотите - пожалуйста, хотите нет. Для RAII любое получение ресурса равно его инициализации. Вы не слышите мои аргументы. Я не даром приводил объявление переменных Дельфи и c#. Для Дельфи переменную надо инициализировать, если не хотите сюрпризов. Я же предлагаю создавать переменную явно, но можно инициализировать сразу - удобство, можно потом (тоже явно) - скорость. Сборка мусора не по таймеру, а по выходу контекста вычислений из зоны видимости данной переменной (то есть выход из блока в котором переменная объявлена).
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 11.12.2011, 03:39   #158
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Да ну нафиг, пытаешся подискутировать нормально, идеи свои подкидываешь, наблюдения, а тебя или не слушают или вовсе обарывают и перекручивают. Зачем оно надо мне? RAII, RAII. Ну вот всегда радовало когда челевек оперирует разными, уникальными терминами, а в деле то, не бум бум (я если вдруг что, не о ком то конкретном, может вы и бум бум). Я всегда когда пишу по программированию чего, опираются на свой опыт, проверенный + наблюдения, видимо это не нужное дело. Что хотите то и делайте. Причем тут иниициализация и корректное освобождение ресурсов определенного класса к методам сборки мусора, ума не приложу! Ваше RAII, может быть выполнение и в языке без коллектора, так что, это значит, что никакого отношение это не имеет к сборке мусора. Но можно продолжать еще на пару страниц дискутировать о том, как же все таки exception из блока, функции, или родительской функции, или может из UI или дочернего thread вылетит или может из процесса или вообще из ОС? Эта "паправка" конечно меня удивила, не ожидал.

Если в друг RAII все таки имеет отношение к сборщику, ну тогда почему "язык" не может сгенерить это
Код:
using (File f = File("oops.file")) { string line = f.readLine(); }
в это
Код:
{
    File f = File("oops.file");
    try {
        string line = f.readLine();
    } finally {
        f.close();
    }
}
Где тут нужен и причем тут сборщик мусора?

Давно меня так не цепляло, сразу воспоминания о родине.

UPD:
Если вдруг идея была встроить автоматический Close при удалении объекта, то это плохо:
1. Удаление объекта сборщиком должно быть быстрой операцией, если начнем проверять для каждого что, а он там открыт или это файла или это еще чего то, это вообще не должно касаться сборщика.
2. Нельзя в таком случае враппер над File, к примеру написать, который в деструкторе будет проверять открыт или нет, и закрывать автоматически. Вот вам решение из коробки так сказать. using это ведь в C#, а он основан на проверки IClosable интерфейс используемого класса. Собственно другой путь вместо враппера.

UPD:
Боже мой, думал все, а неет, заминусовали меня за это сообщение. Вот так вот, пытаешься вести беседу, как то показать что ты думаешь, и ждешь ответа и размышлений на вопрос, а оказывается люди на свой счет берут кажое слово, перековеркивают в оскорбительную форму, и потом оказывается я тут оскорбил пол форума, и вобще я не в теме. Мда, здравый смысл, где ты?!

Последний раз редактировалось BOBAH13; 11.12.2011 в 20:54.
BOBAH13 вне форума Ответить с цитированием
Старый 12.12.2011, 14:29   #159
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Речь идет о неточностях. Прежде всего об инициализации. В моем случае на этом не акцентируется внимание. Хотите - пожалуйста, хотите нет. <...> Для Дельфи переменную надо инициализировать, если не хотите сюрпризов. Я же предлагаю создавать переменную явно, но можно инициализировать сразу - удобство, можно потом (тоже явно) - скорость
Что? А как, по вашему, возможно, что переменная будет существовать и не будет инициализирована?

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Боже мой, думал все, а неет, заминусовали меня за это сообщение. Вот так вот, пытаешься вести беседу, как то показать что ты думаешь, и ждешь ответа и размышлений на вопрос, а оказывается люди на свой счет берут кажое слово, перековеркивают в оскорбительную форму, и потом оказывается я тут оскорбил пол форума, и вобще я не в теме. Мда, здравый смысл, где ты?!
Что? Я, по вашему, вот это:

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Да ну нафиг, пытаешся подискутировать нормально, идеи свои подкидываешь, наблюдения, а тебя или не слушают или вовсе обарывают и перекручивают. <...> Ну вот всегда радовало когда челевек оперирует разными, уникальными терминами, а в деле то, не бум бум
не должен был принимать на свой счёт? Да о чём вы вообще говорите?

Во-первых, в вопросе я хорошо разбираюсь. И здесь дело не только в парадигме RAII и в конструкции let ... in ... . Здесь дело в области видимости переменных - чем она больше, тем больше шанс совершить ошибку, используя её неправильно. Почитайте «Совершенный код». Или вы не заметили, что мы тем и занимаемся, что решаем вопросы минимизации область видимости переменной и создания безопасного при исключениях кода?

Во-вторых, я ответил только на две ваши фразы (вот тут: http://programmersforum.ru/showpost....&postcount=138), просто сделав два корректных замечания. Откуда столько злости в ответе?

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Если в друг RAII все таки имеет отношение к сборщику, ну тогда почему "язык" не может сгенерить это

Код:
using (File f = File("oops.file")) { string line = f.readLine(); }
в это

Код:
{
    File f = File("oops.file");
    try {
        string line = f.readLine();
    } finally {
        f.close();
    }
}
Где тут нужен и причем тут сборщик мусора?
Компилятор это может, и делает. А то, что вы задаёте такие вопросы, говорит о том, что мои сообщения вы читали невнимательно или не читали вовсе. Вот тут: http://programmersforum.ru/showpost....&postcount=141, я говорил о безопасности при исключениях предлагаемого мной решения.

Последний раз редактировалось anyx; 12.12.2011 в 14:46.
anyx вне форума Ответить с цитированием
Старый 12.12.2011, 19:21   #160
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
не должен был принимать на свой счёт? Да о чём вы вообще говорите?
Там все-таки не полное предложение вы привели, и после этого говорите что я не внимательно читаю?
Я читал совершенный код, и мы по моему, в то время говорили о сборщике мусора, а вы появились и начали рассказывать про области видимости переменной и RAII в том числе. Тут у меня и возник вопрос, и поэтому я привел этот код выше, какая связь области видимости переменных к сборщику мусора.

UPD:
http://programmersforum.ru/showpost....&postcount=121 #121 пост от Уткина сразу перед моим, речь идет о сборщике мусора. А на вопрос
Цитата:
Где тут нужен и причем тут сборщик мусора?
так и не ответили ссылаясь на мою не компитентность, жаль.

Последний раз редактировалось BOBAH13; 12.12.2011 в 19:29.
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли подобный текст перевести на человеческий язык? alexxx777 Помощь студентам 0 24.05.2010 19:56
Как создать вид подобный SolidWorks. KemanSR Общие вопросы C/C++ 6 04.05.2010 21:30
Добавить модуль в phpnuke-подобный движок Able2Know Фриланс 3 23.04.2010 16:29
В Access есть тип данных "Счетчик".Есть ли подобный тип данных в MS Sql Server 2000? An_ton SQL, базы данных 5 16.01.2009 17:55