Re[14]: Смотрел на Java код. ...много думал.
От: Павел Кузнецов  
Дата: 08.11.05 15:09
Оценка:
savaDAN,

> ПК> А ведь можно было вместо этих "приседаний" завести специальный тип указателя, обозначавшего именно эту семантику, и тогда компилятор стоял бы на страже, и комментарии/документация подобного содержания не понадобились бы...


> А давайте вы мне дадите конкретный пример,


Запросто. Только давайте проясним один момент...

> а я покажу вам как вследствие невнимательности/неопытности разработчика можно допустить ошибку в его использовании


Расшифруйте, что такое в вашем понимании "неопытность". Это незнание каких-то вещей, или общее отношение, при котором человек не стремится разобраться в классе/компоненте, которые начинает использовать?

> В общем у меня начинает складываться впечатление, что мы спорим об очевидном, просто ради спора.

> Если бы в С++ все было хорошо с управлением памятью никто бы GC не изобретал.

GC не решает одной из существенных проблем
Автор: FlyDN
Дата: 08.11.05
: определения семантики владения объектами. Т.е. кроме освобождения памяти при удалении объекта еще нужно совершать некоторые действия. В C# это делается с помощью Dispose. Попробуйте применить ваши рассуждения к Dispose, чтобы я лучше понял, о чем идет речь...
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[3]: Смотрел на Java код. ...много думал.
От: Павел Кузнецов  
Дата: 08.11.05 15:13
Оценка: 1 (1)
savaDAN,

> ИТ индустрия молодая, поэтому еще не успела дойти до конвейера.


Конвеер неприменим к разработке дизайна продуктов, каковым является программирование при построении аналогий с производством "материальных" продуктов.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[22]: Смотрел на Java код. ...много думал.
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.11.05 19:42
Оценка:
Здравствуйте, eao197, Вы писали:

E>N-ный участник форума задает этот вопрос. Тенденция, однако.

E>Пора на заставке Януса написать: Использован Jet, поскольку .Net-овского аналога пока нет. Ждем-с.

Вообще-то есть SQL Server-ный вариант. И он вроде как летает.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: Смотрел на Java код. ...много думал.
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.11.05 19:58
Оценка:
Здравствуйте, CreatorCray, Вы писали:

VD>>Такое сообщение бывает если параллельно запустить Эксес и открыть в нем БД Януса. Вот только это проблемы джета написанного на С++.

CC>Дык нету аксесса. Из офиса стоит только ворд+excel. Все остальное принудительно не ставилось.

Короче, приведи стэк-трэйс и поговорим конкретно. Пока что я склоняюсь к мысли, что ты что-то путашь.

CC>Шож ета такие правильные .нет девелоперы да такой неправильный Jet использовали? Почему не .нет-овское что нить? ась?


Альтернатива? Написать для проекта создающегося в свободное от отдыха иработы время собственную БД?

Кого не устраивает Эксес может попробовать использовать Сиквел. Текущая версия Януса это позволяет.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[22]: Смотрел на Java код. ...много думал.
От: CreatorCray  
Дата: 08.11.05 22:54
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Короче, приведи стэк-трэйс и поговорим конкретно. Пока что я склоняюсь к мысли, что ты что-то путашь.

Как только в очередной раз вывалится — постараюсь не забыть что обещал тебе показать трейс.
Re[6]: Смотрел на Java код. ...много думал.
От: c-smile Канада http://terrainformatica.com
Дата: 08.11.05 23:22
Оценка: -1 :)
Здравствуйте, NotGonnaGetUs, Вы писали:

CS>>Это вот родной код фирмы Sun:


CS>>
CS>>


CS>>Вопрос: означенная фирма до конца ли понимает "назначение управляемых сред"? Как думаешь?


NGG>Проблема с Dimension не в том, что "фирма не понимает".

NGG>"Просто" был допущен архитектурный просчёт, пока все ещё были молодые и не опытные

Архитектурный просчет называется "GC он умный, сам все уберет" я так понимаю.

CS>>ПыСы: Там еще кстати замечательное такое слово synchronized используется. "Для знатоков штучка".


NGG>Не скажешь в какой версии jdk ты нашёл этот код? А то я всё перерыл — нет такого


Это из Personal Java сейчас это по-моему J2ME называется.
Первое что попалось под руку.

Вот пример из стандартного набора примеров стандартного SDK

Я выделил те места где в методе on paint аллоцируются новые объеты:

public class BullsEye extends DemoSurface {

    public void drawDemo(int w, int h, Graphics2D g2) {

        Color reds[] = { Color.red.darker(), Color.red };
        for (int N = 0; N < 18; N++) {
            float i = (N + 2) / 2.0f;
            float x = (float) (5+i*(w/2/10));
            float y = (float) (5+i*(h/2/10));
            float ew = (w-10)-(i*w/10);
            float eh = (h-10)-(i*h/10);
            float alpha = (N == 0) ? 0.1f : 1.0f / (19.0f - N);
            if ( N >= 16 )
                g2.setColor(reds[N-16]);
            else
                g2.setColor(new Color(0f, 0f, 0f, alpha));
            g2.fill(new Ellipse2D.Float(x,y,ew,eh));
        }
    }


Т.е. приложение ничего не делает но аллокация идет непрерывно.

Вот характерный скриншот: справа — memory monitor.
Видим явную пилу. Провалы — это сборка мусора — приложение застывает.



Извиняюсь но такое решение UI грамотным я называть не могу.
Re[7]: Смотрел на Java код. ...много думал.
От: NotGonnaGetUs  
Дата: 09.11.05 08:07
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Архитектурный просчет называется "GC он умный, сам все уберет" я так понимаю.


Сарказм — это хорошо. Только в просчёт был в другом

CS>Вот пример из стандартного набора примеров стандартного SDK

CS>[java]
CS>public class BullsEye extends DemoSurface {

Это не библиотеки java — это демки, а в них, хоть это и не красиво, но не фатально писать плохой код.

reds[] тоже надо было выделить жирным
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Смотрел на Java код. ...много думал.
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.11.05 09:53
Оценка: +3
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Конвеер неприменим к разработке дизайна продуктов, каковым является программирование при построении аналогий с производством "материальных" продуктов.


Черт его знает. С одной стороны в плане аналогий ты конечно прав (и вобще меня последнее время дурацкие аналогии софтостроения с автомобилями, зданиями, табуретками и прочей фигней задолбали, а особенно задолбали далеко идущие из этих аналогий выводы). С другой стороны не могу не согласится, что точка приложения интеллектуальных усилий смещается все больше со стороны машинных кодов в сторону проектирования и планирования. В этом отношении весьма показателен подход Team System, когда управление требованиями, разработка архитектур на разных уровнях, написание кода, его тестирование и, наконец, сценарии развертывания объединяются в один непрерывный итеративный процесс, в котором непосредственно написатели кода играют отнюдь не самую главную роль.
... << RSDN@Home 1.2.0 alpha rev. 617>>
AVK Blog
Re[5]: Смотрел на Java код. ...много думал.
От: Павел Кузнецов  
Дата: 09.11.05 14:31
Оценка: 1 (1)
AndrewVK,

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


Это всегда так было.

> В этом отношении весьма показателен подход Team System, когда управление требованиями, разработка архитектур на разных уровнях, написание кода, его тестирование и, наконец, сценарии развертывания объединяются в один непрерывный итеративный процесс, в котором непосредственно написатели кода играют отнюдь не самую главную роль.


Я отрицательно отношусь к "архитекторам", непосредственно не пишущим код: ИМХО, они достаточно быстро "теряют нюх". Итеративные процессы не являются новинкой, введенной Team System, а существовали уже задолго до, и начались именно с небольших команд, где все что-то делают "руками": Lead Developer/Architect ощутимую часть времени пишет код, Lead QA ощутимую часть времени занят непосредственным исполнением тестов и т.п.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[6]: Смотрел на Java код. ...много думал.
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 09.11.05 14:42
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

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


ПК>Это всегда так было.


Ну вобщем да. Единственное, происходит этот процесс не линейно, а скачками.

ПК>Я отрицательно отношусь к "архитекторам", непосредственно не пишущим код: ИМХО, они достаточно быстро "теряют нюх".


Одно другому не мешает. Архитектор конечно писать код должен, но деньги ему платят совсем за другое.

ПК> Итеративные процессы не являются новинкой, введенной Team System, а существовали уже задолго до,


Дело не в императивности, дело в подходе. Когда нет жестко очерченой границы между разработкой и деплойментом, к примеру.
... << RSDN@Home 1.2.0 alpha rev. 617>>
AVK Blog
Re[4]: Смотрел на Java код. ...много думал.
От: Stoune  
Дата: 10.11.05 01:00
Оценка:
Здравствуйте, savaDAN, Вы писали:


DAN>Брукс об этом писал за 20 лет до Джоэла, ДеМарко с Листером об этом писали, МкКоннел об этом писал. Лучше бы их в пример привели, чем статьи глубоко уважаемого Джоэла, который по сути колумнист и автор системы багтрекинга.

Привёл его потому как его читал недавно и он быстрее вспомнился. Кроме того в его статьях кратко и с юмором делается квинтессенция из процитированых вами авторов, кроме того с конкретнымы примерами в современных реальных условиях разработки.

DAN>Теперь по теме: Забивать гвозди микроскопом, во-первых, очень дорого, во-вторых, неэффективно, в-третьих, микроскоп сломается и уйдет в другую фирму потому как хочет чтобы им микробов смотрели, а не гвозди забивали.

Ну это уже задача руководства как этот микроскоп удержать.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[5]: Смотрел на Java код. ...много думал.
От: Stoune  
Дата: 10.11.05 01:00
Оценка:
Здравствуйте, savaDAN, Вы писали:


DAN>Обществу, грубо говоря, важнее 5 млн. табуреток, чем 1 один стул выполненный как произведение искусства, даже не смотря на то, что у табуретки качество куда ниже.

При Союзе вырабатывалось много безполезных вещей, которые тут же шли на свалку, обувь в которой невозможно было ходить, мебли которые без ножовки и молотка нельзя было собрать.
В начале топика автор привёл результат такой идеологии система просто не работает, всегда есть какой-то критерий минимального качества, если им пренебречь то получаем плачевные результаты.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[11]: Смотрел на Java код. ...много думал.
От: Павел Кузнецов  
Дата: 10.11.05 05:03
Оценка:
eao197,

> Добавленный в C# unsing уже упрощает работу с ресурсами. Но это не RAII. Нормально сделан RAII в сочетании со сборкой мусора в языке D. Да только D пока в таком состоянии, что очень стремно на нем проекты делать.


Еще в C++/CLI или C++ плюс внешнаяя GC (например, Hans Boehm).
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[14]: Смотрел на Java код. ...много думал.
От: Павел Кузнецов  
Дата: 10.11.05 05:43
Оценка: 12 (1)
VladD2,

> E>Статьи:

> E>Handling memory leaks in Java programs
> E>Java memory leaks -- Catch me if you can
>
> Не, ты мне вот покажи на нашем форуме... Ну, должно же быть такое же засилие вопросов как по ликам в С++?

Вопросы по GC и управлению временем жизни объектов задают каждые несколько дней:
08.11. Еще раз о IDisposable и using
Автор: max314
Дата: 08.11.05

07.11. Не понимаю поведение GC
Автор: FlyDN
Дата: 08.11.05

07.11. Сообщения и делегаты
Автор: Gaset
Дата: 07.11.05

07.11. NullReferenceException в System.Drawing.dll
Автор:
Дата: 07.11.05

02.11. Принудительная выгрузка COM-объёкта Excel 2003 из памяти
Автор: Ej. Pulsar
Дата: 02.11.05

02.11. Простой вопрос про потоки
Автор:
Дата: 02.11.05
(в случае своевременного закрытия файла и flush был бы не нужен)
01.11. A failure occurred while attempting to start the compilation
Автор: VaDima
Дата: 01.11.05
(это уже в студии ошибка, но вполне в тему)
29.10. Неужели для того что бы удалить объект нужно отписать...
Автор:
Дата: 29.10.05

28.10. Надо ли отписываться от событий?
Автор:
Дата: 28.10.05

27.10. Чем отличается Form.Dispose от Application.Exit()?
Автор: DmitriAl
Дата: 27.10.05
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[11]: Смотрел на Java код. ...много думал.
От: Павел Кузнецов  
Дата: 10.11.05 05:48
Оценка: :)
Sinclair,

> Кстати, о птичках. Управление неуправляемыми ресурсами из управляемого кода — та еще песня

> Особенно это касается взаимодействия нескольких Disposable-объектов. <...>

C++/CLI поможет отцу русской демократии (ессно, кроме ошибок в .Net Framework)
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[6]: Смотрел на Java код. ...много думал.
От: savaDAN  
Дата: 10.11.05 06:52
Оценка:
DAN>>Обществу, грубо говоря, важнее 5 млн. табуреток, чем 1 один стул выполненный как произведение искусства, даже не смотря на то, что у табуретки качество куда ниже.
S>При Союзе вырабатывалось много безполезных вещей, которые тут же шли на свалку, обувь в которой невозможно было ходить, мебли которые без ножовки и молотка нельзя было собрать.
Аналогии неуместны. Мы в свободном рынке, ПО с недостаточным уровнем качества либо слишком дорогое покупать никто не будет.

S> В начале топика автор привёл результат такой идеологии система просто не работает, всегда есть какой-то критерий минимального качества, если им пренебречь то получаем плачевные результаты.

Приведенный автором код отлично работал там, где он и должен был работать (на клиентской машине), после перетаскивания без адаптации на сервер работать перестал, что логично, т.к. я уверен в требованиях нигде не было написано "должен работать под любой нагрузкой".
И я думаю РМ этого проекта, во-первых, на эту функциональность поставил кого-нить послабей, а, во-вторых, ревью не делал, что в данной ситуации является вполне верным решением.
Да, код не самый лучший, да, более опытный разработчик написал бы его куда оптимальней, но опытных разработчиков надо ставить на наиболее важные задачи, а не разбрасываться этим ресурсом куда попало, иначе стоимость проекта возрастет до заоблачных высот.
... << RSDN@Home 1.1.4 stable rev. 510>>
Re[6]: Смотрел на Java код. ...много думал.
От: Кузнецов Денис Викторович Казахстан  
Дата: 10.11.05 08:07
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Я отрицательно отношусь к "архитекторам", непосредственно не пишущим код: ИМХО, они достаточно быстро "теряют нюх". Итеративные процессы не являются новинкой, введенной Team System, а существовали уже задолго до, и начались именно с небольших команд, где все что-то делают "руками": Lead Developer/Architect ощутимую часть времени пишет код, Lead QA ощутимую часть времени занят непосредственным исполнением тестов и т.п.


Именно. Так и работаем. Иначе очень быстро можно от реальности оторваться. А если ты становишься неадекватен как руководитель, то наиболее адекватные работники того, голосуют ногами.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[15]: Смотрел на Java код. ...много думал.
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.11.05 15:50
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

>> Не, ты мне вот покажи на нашем форуме... Ну, должно же быть такое же засилие вопросов как по ликам в С++?


ПК>Вопросы по GC и управлению временем жизни объектов задают каждые несколько дней:


Ненадо поменять суть вопроса. Вопросы по внутреннему встройсву или поведению могут быть в люой области, ты мне покажи засилие вопросв типа "у меня течет ххх... ничего не помогает... как быть?". Вот в форуме "С++" я тебе их тоннами раною.

Точ то приводишь ты в большинстве слвучае вообще к ликам тоношения не имеет.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Смотрел на Java код. ...много думал.
От: Павел Кузнецов  
Дата: 10.11.05 16:03
Оценка:
VladD2,

> ты мне покажи засилие вопросв типа "у меня течет ххх... ничего не помогает... как быть?"


Ты вопросы читал?

> Точ то приводишь ты в большинстве слвучае вообще к ликам тоношения не имеет.


Речь не об утечках (кто там против "калек" с английского боролся?), а о тех или иных проблемах с GC и управлении временем жизни объектов. "Утечки" -- одна из разновидностей проблем.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[17]: Смотрел на Java код. ...много думал.
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.11.05 23:46
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

>> ты мне покажи засилие вопросв типа "у меня течет ххх... ничего не помогает... как быть?"


ПК>Ты вопросы читал?



Я его писал.

>> Точ то приводишь ты в большинстве слвучае вообще к ликам тоношения не имеет.


ПК>Речь не об утечках (кто там против "калек" с английского боролся?), а о тех или иных проблемах с GC и управлении временем жизни объектов. "Утечки" -- одна из разновидностей проблем.


Так есть пробемы или нет? Если нет, то закроем тему. Если есть, то хотелось бы их видеть. Я вот помню только проблему с событиями синглтонов. Явно редкая проблема. Уж точно ни в какое сравнение с постоянным отслеживанием политик владения объектами не идет.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.