|
|
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Посоветуйте пару-тройку хороших LAF-ов, бесплатных. А то стандартный свинговский набор из JDK довольно ущербный... И еще: если приложение планируется гонять на терминальном сервере, будет ли проигрыш в скорости обмена с терминалом при применении LAF? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 17:37:48 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovПосоветуйте пару-тройку хороших LAF-ов, бесплатных. А то стандартный свинговский набор из JDK довольно ущербный...www.jgoodies.com, https://substance.dev.java.net/webstart/test.jnlp И еще: если приложение планируется гонять на терминальном сервере, будет ли проигрыш в скорости обмена с терминалом при применении LAF? А можно обосновать этот пунктик? Какова необходимость использования ТС, и почему нельзя использовать веб-интерфейс, я так понимаю, приложение интранетное, т.е. внутрикорпоративное? Неужели опять пользователю будет необходимо вываливать списки по 500 строк? И что он с ними будет делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 22:50:05 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Plaf Vladimir KozlovПосоветуйте пару-тройку хороших LAF-ов, бесплатных. А то стандартный свинговский набор из JDK довольно ущербный...www.jgoodies.com, https://substance.dev.java.net/webstart/test.jnlp jgoodies - видел. Понравилось, скачал. Но больше понравился Tonic. A substance как я понял еще пока в стадии беты находится... Plaf И еще: если приложение планируется гонять на терминальном сервере, будет ли проигрыш в скорости обмена с терминалом при применении LAF? А можно обосновать этот пунктик? Какова необходимость использования ТС, и почему нельзя использовать веб-интерфейс, я так понимаю, приложение интранетное, т.е. внутрикорпоративное? Неужели опять пользователю будет необходимо вываливать списки по 500 строк? И что он с ними будет делать? Приложение первоначально написано на делфе, сейчас портируется на яву. Юзеры все равно сидят в терминальной сессии с 1С, так что вебинтерфейс им ни к чему (плюс в гридах логика хитрозамороченная, ее на веб-парадигму пока даже не представляю как перенести). А списки по 500 строк - дык давно уж я не из тех кто такое вываливает :) Вопрос к тому, что, как я понимаю, терминал передает графику "умно", и кнопочки/тулбары с градиентами и прочие графические красивости способны эту умность ему резко понизить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2006, 10:54:16 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovПриложение первоначально написано на делфе, сейчас портируется на яву. Юзеры все равно сидят в терминальной сессии с 1С, так что вебинтерфейс им ни к чему (плюс в гридах логика хитрозамороченная, ее на веб-парадигму пока даже не представляю как перенести). А списки по 500 строк - дык давно уж я не из тех кто такое вываливает :)Так ведь гриды это и есть то, что вываливает таблицу пользователю по 500 и более строк. А потом бестолочи задают вопросы в конференциях "Как мне показать клиенту миллион строк" Ну какая в гридах может быть логика хитрозамороченная? Хитрее, чем страница например ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2006, 12:25:31 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Plaf Vladimir KozlovПриложение первоначально написано на делфе, сейчас портируется на яву. Юзеры все равно сидят в терминальной сессии с 1С, так что вебинтерфейс им ни к чему (плюс в гридах логика хитрозамороченная, ее на веб-парадигму пока даже не представляю как перенести). А списки по 500 строк - дык давно уж я не из тех кто такое вываливает :)Так ведь гриды это и есть то, что вываливает таблицу пользователю по 500 и более строк. А потом бестолочи задают вопросы в конференциях "Как мне показать клиенту миллион строк" Ну какая в гридах может быть логика хитрозамороченная? Хитрее, чем страница например ? Ты думаешь что назначение грида только в том чтобы всякие недопрограммеры в нем тысячами строки крутили? :) У меня грид предназначен для редактирования табличной части документа. Но ячейки грида (их эдиторы и рендереры) кастомизируются НА ЛЕТУ в зависимости от содержимого соседних ячеек. В одной и той же ячейке "субконто2" в зависимости от содержимого ячейки "счет" может выпасть лукап с видами статей P&L, а может диалоговое окно со списком клиентов... а может колонка из соседнего грида выпадающим списком вылезти... причем модель присоединенная к этому гриду таскает словарь данных с бэк-энда, и в зависимости от него распихивает эдиторы/рендереры/форматтеры/валидаторы/листенеры. PS: логика приложения у меня и так работает, я не про нее спрашивал. А про то, насколько применение LAF-ов просадит трафик терминала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2006, 12:44:55 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovA substance как я понял еще пока в стадии беты находится...А Windows XP SP2 по твоему что, не бета? Но ведь пользуешься же, не жужжишь? Исправно качаешь исправления. Что по-твоему тогда бета? Бета, это законченная в своем развитии программа, к которой не выходят исправления. Да, Substance еще бета, и Java 6 еще бета, но ими как и Windows, уже пользуются и не жужжат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2006, 13:59:00 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
PlafА Windows XP SP2 по твоему что, не бета? Но ведь пользуешься же, не жужжишь? Исправно качаешь исправления. Не пользуюсь я Windows XP SP2 :) Избавлен я от тяжкого креста ежедневной медитации на биллино поделие - у меня Debian и на серваках и на десктопе. PlafБета, это законченная в своем развитии программа, к которой не выходят исправления. Главное, в бане не сказать такое - мужики тазиками закидают ;) PlafДа, Substance еще бета, и Java 6 еще бета, но ими как и Windows, уже пользуются и не жужжат. JDK6 - пользуюсь. Правда не бетой и даже не бетой-2. Прилежно качаю свежатинку из SDN. Тем более что Netbeans-6M4 (сюрпрайз! даже не бета!) на другой JDK смотрит как Ленин на буржуазию. Но под промежуточные билды, которые уходят к юзверям, держу JDK5. Кроме того, бета за которой стоит большая и толстая контора типа Sun и бета за которой стоит группка энтузиастов - две большие разницы. В продакшне стараюсь юзать только плотнооттоптанные вещи, дабы не пришлось ночью в холодном поту вскакивать и к терминалу бежать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2006, 14:22:43 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov PlafБета, это законченная в своем развитии программа, к которой не выходят исправления. Главное, в бане не сказать такое - мужики тазиками закидают ;)Тьфу ты блин, думал одно, а написал другое. Я имел в виду релиз - это законченная программа. А программа, к которой выходят патчи, заплатки, это перманентная бета, еще начиная с Windows 95 все это знают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2006, 16:36:18 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
PlafТьфу ты блин, думал одно, а написал другое. Я имел в виду релиз - это законченная программа. А программа, к которой выходят патчи, заплатки, это перманентная бета, еще начиная с Windows 95 все это знают Ну к JDK5 тоже регулярно выходят обновления, но бетой я б его не назвал... А в девелопменте я придерживаюсь такого принципа - если не уверен на 99.99% что используемая цацка не поставит систему на продакшне в позу молящегося египтятина - цацка базжалостно отбрасывается несмотря на ее блестючесть :) Или стабильные вещи с десятками тысяч инсталяций, или свой код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.10.2006, 16:54:31 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
"Ты думаешь что назначение грида только в том чтобы всякие недопрограммеры в нем тысячами строки крутили? :) " Убило... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 09:08:59 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
alexx726"Ты думаешь что назначение грида только в том чтобы всякие недопрограммеры в нем тысячами строки крутили? :) " Убило... Дык, если бы на дельфе было написано "детям до 18 лет смотреть запрещается" и "Минздрав предупреждает: неумеренный датабиндинг может вызвать необратимые повреждения головного мозга" - сейчас бы мы не имели то что имеем (http://sql.ru/forum/actualthread.aspx?tid=351180). А свинговский грид именно _красив_ - он не пытается "помочь программисту". Надо вложенные заголовки - пишешь модель колонок и рендерер, надо непрокручиваемые столбцы - пишешь наследника от скроллвью. И никаких управлений адвансед-поведением через десятки непонятнокакработающих пропертей, всё в своём коде и всё управляемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 10:03:16 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovА свинговский грид именно _красив_ - он не пытается помочь программисту. О! Наконец-то мы узнали истинный смысл стандартных подпрограмм. Они не должны помогать программисту, они должны быть красивы истинно внутренней красотой, красотой дао. Как буддист, повторяющий "падме хум" десять тысяч раз в день, так и программист, реализующий толпы одинаковых наследников от скроллвью, совершенствуется духовно, а уж если он полез в интернет и нашел 9285 равно кривых реализаций resultset-модели для JTable, это просто нирвана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 10:21:39 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer Vladimir KozlovА свинговский грид именно _красив_ - он не пытается помочь программисту. О! Наконец-то мы узнали истинный смысл стандартных подпрограмм. Они не должны помогать программисту, они должны быть красивы истинно внутренней красотой, красотой дао. Как буддист, повторяющий "падме хум" десять тысяч раз в день, так и программист, реализующий толпы одинаковых наследников от скроллвью, совершенствуется духовно, а уж если он полез в интернет и нашел 9285 равно кривых реализаций resultset-модели для JTable, это просто нирвана. Гм, "помогать программисту" в оригинале было написано в кавычках, ты обратил внимание? Дельфийский датасет/грид в этом плане ничуть не лучше чем "9285 равно кривых реализаций resultset-модели для JTable". И зачем толпы одинаковых наследников-то? Мы ж не демографическую проблему решаем; впрочем если за каждого наследника от скроллвью начиная со второго будут платить по 250 тысяч - тогда с удовольствием :) А так - один раз написал, отладил, запхнул в jar, засунул в bean palette и забыл. Но при этом знаешь, что если попрут глюки то ковырять будешь свой код, а не судорожно листать тысячи строк кода дельфийского VCL в поисках "ну чего ж эта зараза криво отрисовывается". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 10:30:38 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov Но при этом знаешь, что если попрут глюки то ковырять будешь свой код, а не судорожно листать тысячи строк кода дельфийского VCL в поисках "ну чего ж эта зараза криво отрисовывается". Железобетонная... логика ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 11:40:00 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov alexx726"Ты думаешь что назначение грида только в том чтобы всякие недопрограммеры в нем тысячами строки крутили? :) " Убило... Дык, если бы на дельфе было написано "детям до 18 лет смотреть запрещается" и "Минздрав предупреждает: неумеренный датабиндинг может вызвать необратимые повреждения головного мозга" - сейчас бы мы не имели то что имеем (http://sql.ru/forum/actualthread.aspx?tid=351180). А свинговский грид именно _красив_ - он не пытается "помочь программисту". Надо вложенные заголовки - пишешь модель колонок и рендерер, надо непрокручиваемые столбцы - пишешь наследника от скроллвью. И никаких управлений адвансед-поведением через десятки непонятнокакработающих пропертей, всё в своём коде и всё управляемо. Дык убило как раз то, что я как и всякий недопрограммист, ХОЧУ показать пользователю тысячи записей. И самое идиотское, что все эти недопользователи хотят их увидеть. Но не все сразу!!! И в остальных недоязыках у меня такая возможность есть. ВЕЗДЕ, кроме "красивого" JTable. Который почему-то решает за меня - "я(JTable) встал на последнюю запись, поэтому данных больше не будет". Или при paintComponent() например хочет также отрисовать невидимые ячейки :)) (ну тут уж я его совсем не понимаю) Вот и приходится ему всякие фичи рисовать. И реализовывать 9465-ую равнокривую реализацию абсолютно бесполезного ResultSet (кроме MetaData), который настолько умен, что не дает мне вьюхи например изменять (он за меня решает, что он умеет редактировать, а что нет - тоже внутренне красив). А что делать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 13:35:17 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
alexx726 Дык убило как раз то, что я как и всякий недопрограммист, ХОЧУ показать пользователю тысячи записей. И самое идиотское, что все эти недопользователи хотят их увидеть. Но не все сразу!!! И в остальных недоязыках у меня такая возможность есть. ВЕЗДЕ, кроме "красивого" JTable. JTable - это раб, он за тебя не думает. Он по каждому вопросу бежит к тебе и спрашивает: "Большой белый Хозяин, а тут как быть?". И если ты ему правильно объяснишь как быть - он сделает то что ты хочешь. И не сделает больше того что ты ему объяснил. alexx726 Который почему-то решает за меня - "я(JTable) встал на последнюю запись, поэтому данных больше не будет". Или при paintComponent() например хочет также отрисовать невидимые ячейки :)) (ну тут уж я его совсем не понимаю) Вот и приходится ему всякие фичи рисовать. JTable понятия не имеет о последней записи! Он про количество записей узнает из модели. Сколько в модели в public int getRowCount() вернешь - столько и нарисует. А перекрывая в модели public Object getValueAt(int row, int col) ты можешь показывать записи не все сразу или реализовывать нужное тебе поведение. И это дает офигительную гибкость. alexx726 И реализовывать 9465-ую равнокривую реализацию абсолютно бесполезного ResultSet (кроме MetaData), который настолько умен, что не дает мне вьюхи например изменять (он за меня решает, что он умеет редактировать, а что нет - тоже внутренне красив). А что делать... Не трогай ResultSet. Прочитал данные в модель - и прибей его чтоб глаза не мозолил. А редактирование засунь в перекрытый public void setValueAt(Object value, int row, int col) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 14:31:27 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
секундочку, секундочку... Я понимаю все про модель и про JTable. Просто когда я говорю - JTable, я модель и подразумеваю. Но как же я могу прибить ResultSet ежель мне из него данные тягать надо по мере перемещения по табличке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 15:13:18 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
alexx726секундочку, секундочку... Я понимаю все про модель и про JTable. Просто когда я говорю - JTable, я модель и подразумеваю. Но как же я могу прибить ResultSet ежель мне из него данные тягать надо по мере перемещения по табличке? Ой, да сколько там тех данных-то... закэшируй их в наследнике от модели и все дела :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 16:21:27 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
А как это реализовано в Oracle ADF? Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 16:38:01 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
данных-то у меня как раз тыщ 200 в общем случае и наберется, если все показать )) а ADF реализовано как в 5600-ом кривом варианте - "сделаем сначала select count(*) из запроса", после чего я и снес JDeveloper вместе c ADF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 16:59:57 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
alexx726данных-то у меня как раз тыщ 200 в общем случае и наберется, если все показать )) Пусть печатают через генератор отчетов, кладут в авоську и медитируют дома с карандашом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 17:22:26 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovГм, "помогать программисту" в оригинале было написано в кавычках, ты обратил внимание? Обратил, как ты наверное догадался. И подсветил твою замечательную логику: вместо того, чтобы учиться пользоваться стандартным решением, пишем собственное. Vladimir KozlovДельфийский датасет/грид в этом плане ничуть не лучше чем "9285 равно кривых реализаций resultset-модели для JTable". Хм. Слова "дельфийский датасет/грид" сами по себе довольно забавны и показывают отличное знание, но это отдельный вопрос. Лучше они - хотя бы тем, что их 0001, а не 9285. Vladimir KozlovИ зачем толпы одинаковых наследников-то? Дык строго в соответствии с описанным тобой алгоритмом. Vladimir KozlovА так - один раз написал, отладил, запхнул в jar, засунул в bean palette и забыл. Уже лучше. Итого - пользуешься своей кривой поделкой вместо стандартной, уже написанной и отлаженной. Писать свое интересно, опять же, на вопрос начальника "чем ты таким занимался, что ни хрена не готово", можно ответить "компонент писал". Потом ты уйдешь, придет другой, выскажет все, что думает о кривой поделке, выбросит и начнет делать собственную. Опять же, будет чем заняться на работе.. Vladimir KozlovНо при этом знаешь, что если попрут глюки Прежде всего, я предпочитаю знать, что глюки не попрут. Это знание, которое у меня было в VCL, и которого я наивно ожидал, начиная работать с JDK. Разочаровался :( Vladimir Kozlovто ковырять будешь свой код, а не судорожно листать тысячи строк кода дельфийского VCL в поисках "ну чего ж эта зараза криво отрисовывается". Я был бы просто счастлив, если бы все вокруг писали код на уровне дельфийского VCL. Чужой код, в котором приходится ковыряться в поисках "ну чего ж эта зараза криво отрисовывается" в 99% случаев написан куда хуже, и ковыряться в нем куда противнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 17:39:48 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovПрочитал данные в модель - и прибей его чтоб глаза не мозолил. Угу. Пока резалтсет на двести тысяч записей читается в модель, каждый из десяти тысяч пользователей как раз успеет чайку попить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 17:42:19 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
У меня работа атрибута rangeSize для итератора не вызывала нареканий. С темы сошли полностью. Nai tiruvantel ar varyuvantel i Valar tieyanna nu vilya ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 17:43:13 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer Обратил, как ты наверное догадался. И подсветил твою замечательную логику: вместо того, чтобы учиться пользоваться стандартным решением, пишем собственное. Вместо того чтобы пользоваться стандартным решением, которое заточено под общенародные нужды, пишем своё с требуемым функционалом. А "пользоваться стандартным решением" в применении к дельфе означает научиться нажимать кнопку мыши над палитрой компонентов и отпускать над дизайнером формы, после чего вынуть палец из носа и засунуть в проперти-инспектор. softwarer Vladimir KozlovДельфийский датасет/грид в этом плане ничуть не лучше чем "9285 равно кривых реализаций resultset-модели для JTable". Хм. Слова "дельфийский датасет/грид" сами по себе довольно забавны и показывают отличное знание, но это отдельный вопрос. Да, за время работы с дельфёй я узнал что там есть датасет с наследниками типа ттабле, тквери, и есть грид который к нему подключается через датасорс. Это сакральное знание я буду трепетно хранить всю жизнь :) softwarerЛучше они - хотя бы тем, что их 0001, а не 9285. Один гнилой помидор ничем не отличается от 9285. softwarer Vladimir KozlovА так - один раз написал, отладил, запхнул в jar, засунул в bean palette и забыл. Уже лучше. Итого - пользуешься своей кривой поделкой вместо стандартной, уже написанной и отлаженной. Писать свое интересно, опять же, на вопрос начальника "чем ты таким занимался, что ни хрена не готово", можно ответить "компонент писал". Пользуюсь поделкой которая работает так как мне надо и в коде которой я свободно ориентируюсь. softwarer Потом ты уйдешь, придет другой, выскажет все, что думает о кривой поделке, выбросит и начнет делать собственную. Опять же, будет чем заняться на работе.. Если написано левой ногой - выкинет и отматерит. А если в соответствии с принятой парадигмой - почитает 5 минут комменты в коде и пофиксит. softwarer Vladimir KozlovНо при этом знаешь, что если попрут глюки Прежде всего, я предпочитаю знать, что глюки не попрут. Это знание, которое у меня было в VCL, и которого я наивно ожидал, начиная работать с JDK. Разочаровался :( Старик Дейкстра сказал - глюки попрут. Значит попрут :) softwarer Vladimir Kozlovто ковырять будешь свой код, а не судорожно листать тысячи строк кода дельфийского VCL в поисках "ну чего ж эта зараза криво отрисовывается". Я был бы просто счастлив, если бы все вокруг писали код на уровне дельфийского VCL. Чужой код, в котором приходится ковыряться в поисках "ну чего ж эта зараза криво отрисовывается" в 99% случаев написан куда хуже, и ковыряться в нем куда противнее. На уровне того кода который написал Андерс Хейлсберг сотоварищи - да. Полностью с тобой согласен. А на уровне того кода на котором написаны 90% хлама на www.cooldelphycomponents.vasyapupkin.org - эхехехехе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 17:58:37 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer Vladimir KozlovПрочитал данные в модель - и прибей его чтоб глаза не мозолил. Угу. Пока резалтсет на двести тысяч записей читается в модель, каждый из десяти тысяч пользователей как раз успеет чайку попить. Когда понимающий в программировании шеф заглянет в код в котором "резалтсет на двести тысяч записей" - тут уж не до чайку, тут вазелин бы не закончился.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:00:36 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
А всего-то спросил - как LAF влияет на терминальный трафик... а флейма развелось - SKL отдыхает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:06:14 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovВместо того чтобы пользоваться стандартным решением, которое заточено под общенародные нужды, пишем своё с требуемым функционалом. Этюд на тему. Беру стандартное решение aka ODAC, размер его *.pas - около двух мегабайт. Беру свои кастомизации к нему, размер его *.pas - около 55Кб, то есть меньше 3%. Результат меня полностью устраивает, когда перестанет устраивать, допишу еще пару килобайт. Контрольный вопрос - сколько процентов кода надо дописать к JTable, чтобы получить готовое к использованию решение? Интересна твоя цифра. У меня, когда я делал это, получилось - более 100%. Vladimir KozlovА "пользоваться стандартным решением" в применении к дельфе означает научиться нажимать кнопку мыши над палитрой компонентов и отпускать над дизайнером формы, после чего вынуть палец из носа и засунуть в проперти-инспектор. Ой, напугал :)) Само собой, пыхтеть и писать тот же самый код, что и сосед, гораздо интереснее. Vladimir KozlovДа, за время работы с дельфёй я узнал что там есть датасет с наследниками типа ттабле, тквери, и есть грид который к нему подключается через датасорс. Это сакральное знание я буду трепетно хранить всю жизнь :) Ты не представляешь, сколько еще ты не успел узнать. Даже тсторедпроц, и тот не назвал. Vladimir KozlovОдин гнилой помидор ничем не отличается от 9285. Согласен. В то же время один спелый помидор куда как отличается от 9285 гнилых, в каждом из которых есть 0,01077% спелой части. Vladimir KozlovПользуюсь поделкой которая работает так как мне надо и в коде которой я свободно ориентируюсь. То есть приходим к тому, с чего начали - стандартные решения изучать лень, куда интереснее делать свое и "свободно ориентироваться" в нем. Vladimir KozlovЕсли написано левой ногой - выкинет и отматерит. А если в соответствии с принятой парадигмой - почитает 5 минут комменты в коде и пофиксит. С какой это стати? Ему разбираться в твоей поделке ничуть не интереснее, чем тебе - в VCL. Ему, как и тебе, интересно писать собственную. Если ты выкинул стандартное решение и написал собственное - он поступит ровно так же. И ты, придя на новую работу, поступишь точно так же. Vladimir KozlovСтарик Дейкстра сказал - глюки попрут. Значит попрут :) Старик Дейкстра сказал существенно иное. softwarer Vladimir Kozlovто ковырять будешь свой код, а не судорожно листать тысячи строк кода дельфийского VCL в поисках "ну чего ж эта зараза криво отрисовывается". Я был бы просто счастлив, если бы все вокруг писали код на уровне дельфийского VCL. Чужой код, в котором приходится ковыряться в поисках "ну чего ж эта зараза криво отрисовывается" в 99% случаев написан куда хуже, и ковыряться в нем куда противнее. На уровне того кода который написал Андерс Хейлсберг сотоварищи - да. Полностью с тобой согласен. А на уровне того кода на котором написаны 90% хлама на www.cooldelphycomponents.vasyapupkin.org - эхехехехе.[/quot] Ну если ты без разбора тянешь себе в проект всякий мусор - чертовски странно потом говорить о кривом VCL и тем более более странно считать, что когда ты придешь на новую работу, и встретишь там поделку Васи Пупкина, работающую как ему надо и в которой Вася свободно ориентируется, ты почему-то "почитает пять минут коменты и пофиксит". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:17:49 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovКогда понимающий в программировании шеф заглянет в код в котором "резалтсет на двести тысяч записей" - тут уж не до чайку, тут вазелин бы не закончился.. Угу, начинается стандартная песня тех, кому такие резалтсеты мешают. Я, помнится, однажды показал, что резалтсет размером порядка sqr(55000) вполне себе нормально работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:23:13 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovА всего-то спросил - как LAF влияет на терминальный трафик... а флейма развелось - SKL отдыхает :) SKL - шо це тэкэ? http://www.google.com/search?q=SKL Тут всегда так. зато нескучно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:32:11 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
TimmSKL - шо це тэкэ? su.kaschenko.local ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:35:35 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
А мне кажется, что технология должна выбираться под задачу, а не наоборот. Если есть необходимость написать двухзвенное клент-серверное приложение, у которых на клиентских машинах Windows,то лучше Delphi наверно нет инструмента. А вот если трех-звенка или более звенка (с формированием контента какого-нибудь сайта и вводом данных пользователями)- это конечно Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:37:22 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer товарищ, может хватит оффтопить? про любовь к дельфи все уже поняли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:38:19 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarerКонтрольный вопрос - сколько процентов кода надо дописать к JTable, чтобы получить готовое к использованию решение? Интересна твоя цифра. У меня, когда я делал это, получилось - более 100%. Directory of C:\Projects\JAVA\FXDJ\src\FXDRowDB CalcFieldEvent.java CalcFieldListener.java FXDField.java FXDFieldList.java FXDRow.java FXDRowCollection.java 7 File(s) 11.497 bytes Directory of C:\Projects\JAVA\FXDJ\src\FXDCustTable ColumnGroup.java ColumnHeaderTools.java GroupableTableCellRenderer.java GroupableTableColumnModel.java GroupableTableHeader.java GroupableTableHeaderUI.java 7 File(s) 21.813 bytes softwarer Ты не представляешь, сколько еще ты не успел узнать. Даже тсторедпроц, и тот не назвал. Ну давай: TADOStoredProc, TODACStoredProc, TSDACStoredProc, TDOAStoredProc, TIBOStoredProc, TIB_StoredProc, TSDBStoredProc, ... Мне уж как-то с одним jdbc CallableStatement проще... softwarer Vladimir KozlovПользуюсь поделкой которая работает так как мне надо и в коде которой я свободно ориентируюсь. То есть приходим к тому, с чего начали - стандартные решения изучать лень, куда интереснее делать свое и "свободно ориентироваться" в нем. если к капоту мерседеса вместо колёсика приварить бритвенный станок - то при определенных навыках возюкания об него мордой удастся побриться. А можно наточить топор. softwarer Ну если ты без разбора тянешь себе в проект всякий мусор - чертовски странно потом говорить о кривом VCL и тем более более странно считать, что когда ты придешь на новую работу, и встретишь там поделку Васи Пупкина, работающую как ему надо и в которой Вася свободно ориентируется, ты почему-то "почитает пять минут коменты и пофиксит". Я к себе в проект давно уж мусор не тяну... первоначально речь шла о тех горе-дельфистах которые накачают с торри.ру всякого хлама и тащатся от того что у них есть готовые решения на все случаи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:44:34 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Товарищ, я буду вполне рад, если модератор вычистит оффтопик начиная с /topic/355410&pg=1#3327617 и досюда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:45:41 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer TimmSKL - шо це тэкэ? su.kaschenko.local ? Ага :) По секрету - я там в пивной молодости комодератором был. Вот уж где скучать не приходилось :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:48:54 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarerТоварищ, я буду вполне рад, если модератор вычистит оффтопик Не буди лиха, пока оно тихо. А то придет лесник и всех прогонит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:51:18 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov 7 File(s) 11.497 bytes 7 File(s) 21.813 bytes То есть, если я правильно вижу, порядка 30Кб кастомизаций к одному классу. Не помню размер JTable.java, но по сравнению с 50Кб к библиотеке доступа - внушает. Vladimir KozlovМне уж как-то с одним jdbc CallableStatement проще... Верю. Правда, мне пришлось приделать к нему нехилую обертку, чтобы добиться разумной с моей точки зрения функциональности. Vladimir Kozlovесли к капоту мерседеса вместо колёсика приварить бритвенный станок - то при определенных навыках возюкания об него мордой удастся побриться. А можно наточить топор. Можно. Ты, как я понимаю, точишь топор. Я предпочитаю - положить в бардачок мерседеса бритву с питанием от прикуривателя. Vladimir KozlovЯ к себе в проект давно уж мусор не тяну... первоначально речь шла о тех горе-дельфистах которые накачают с торри.ру Первоначально речь шла о том, что ты не хочешь разбираться в тысячах строк VCL. Горе-дельфистов ты притянул попозже, при этом почему-то не притянув горе-яверов. Vladimir Kozlovвсякого хлама и тащатся от того что у них есть готовые решения на все случаи. Я не вижу принципиальной разницы по сравнению с "полным интернетом дурацких примеров", ожидающих тех же горе-яверов. В любом случае результат определяется количеством и качеством мозгов ищущего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 18:52:07 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer Vladimir Kozlovесли к капоту мерседеса вместо колёсика приварить бритвенный станок - то при определенных навыках возюкания об него мордой удастся побриться. А можно наточить топор. Можно. Ты, как я понимаю, точишь топор. Я предпочитаю - положить в бардачок мерседеса бритву с питанием от прикуривателя. А у соседа в мерседесе окажется разъем прикуривателя не той системы... И придется ходить как Карла Маркса с Львом Толстым... :) softwarer Vladimir KozlovЯ к себе в проект давно уж мусор не тяну... первоначально речь шла о тех горе-дельфистах которые накачают с торри.ру Первоначально речь шла о том, что ты не хочешь разбираться в тысячах строк VCL. Горе-дельфистов ты притянул попозже, при этом почему-то не притянув горе-яверов. Как показывает практика, в каждом отдельно взятом проекте 85% фич VCL-евских компонентов оказываются невостребованными. А зачем мне в приложении лишние ктулхи, ждущие момента всплыть с глубины? softwarer Vladimir Kozlovвсякого хлама и тащатся от того что у них есть готовые решения на все случаи. Я не вижу принципиальной разницы по сравнению с "полным интернетом дурацких примеров", ожидающих тех же горе-яверов. В любом случае результат определяется количеством и качеством мозгов ищущего. Горе-яверов как раз меньше чем горе-дельфистов, потому что у начинающего дельфиста много готовых инструментов, и это его портит; у явера готовых инструментов меньше и ему приходится напрягаться. В результате - через год этот дельфист спрашивает "где взять?" а явер спрашивает "как сделать?" Готовый компонент вызывает искушение засунуть его в проект и бежать дальше, а пример - посмотреть, подумать, взять какие-то идеи и написать самому. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 19:05:30 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer Vladimir Kozlov 7 File(s) 11.497 bytes 7 File(s) 21.813 bytes То есть, если я правильно вижу, порядка 30Кб кастомизаций к одному классу. Не помню размер JTable.java, но по сравнению с 50Кб к библиотеке доступа - внушает. ... JDK 1.4 JTable.java 217 KB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 19:08:12 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov Горе-яверов как раз меньше чем горе-дельфистов, потому что у начинающего дельфиста много готовых инструментов, и это его портит; у явера готовых инструментов меньше и ему приходится напрягаться... Но не все на это способны, и не все способны сделать это разумно/быстро/качественно, поэтому "Горе-яверов как раз меньше чем горе-дельфистов" - спорно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 19:11:44 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Timm Vladimir Kozlov Горе-яверов как раз меньше чем горе-дельфистов, потому что у начинающего дельфиста много готовых инструментов, и это его портит; у явера готовых инструментов меньше и ему приходится напрягаться... Но не все на это способны, и не все способны сделать это разумно/быстро/качественно, поэтому "Горе-яверов как раз меньше чем горе-дельфистов" - спорно. Не осилившие скажут "фигня эта ваша ява", соберут чемодан и отправятся домой в делфю :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 19:15:31 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov Timm Vladimir Kozlov Горе-яверов как раз меньше чем горе-дельфистов, потому что у начинающего дельфиста много готовых инструментов, и это его портит; у явера готовых инструментов меньше и ему приходится напрягаться... Но не все на это способны, и не все способны сделать это разумно/быстро/качественно, поэтому "Горе-яверов как раз меньше чем горе-дельфистов" - спорно. Не осилившие скажут "фигня эта ваша ява", соберут чемодан и отправятся домой в делфю :) Нееет, это не самое плохое. Гораздо хуже когда продолжают... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 19:20:09 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovА у соседа в мерседесе окажется разъем прикуривателя не той системы... Ну как явер, Вы вроде бы должны знать паттерны на этот случай :) Паттерн "применение топора" среди них если и числится, то далеко не на первом месте. Vladimir KozlovКак показывает практика, в каждом отдельно взятом проекте 85% фич VCL-евских компонентов оказываются невостребованными. Не знаю, откуда ты взял эту цифру, но допустим. И? Что заставляет тебя думать, что для твоих кастомизаций цифра будет иной? Или свои глюки приятнее? Vladimir KozlovА зачем мне в приложении лишние ктулхи, ждущие момента всплыть с глубины? Хм. Как пикантная подробность - при обычной для большинства дельфи-приложений схеме линковки эти "лишние ктулхи" в exe-шник просто не попадают. Vladimir KozlovГоре-яверов как раз меньше чем горе-дельфистов Cомнительно. Не готов спорить о конкретных числах, но по моим ощущениям, и тех, и тех, на пару порядков больше, чем мне хотелось бы видеть. Vladimir Kozlov, потому что у начинающего дельфиста много готовых инструментов, и это его портит; Хм. Вы свой дом сами строили? Канализацию сами копали? Ах, какой Вы испорченный..... хотя мне почему-то кажется, что если бы Вы занимались вышеперечисленным, Вы либо жили бы в очень плохой квартире, либо были бы очень плохим программистом. На то и другое времени бы не хватило. Vladimir Kozlovу явера готовых инструментов меньше и ему приходится напрягаться. В результате - через год этот дельфист спрашивает "где взять?" а явер спрашивает "как сделать?" В результате, через год дельфист видел полно примеров качественного кода, а явер привык искать по интернету левые поделки авторства упомянутого Вами Васи Пупкина. Vladimir KozlovГотовый компонент вызывает искушение засунуть его в проект и бежать дальше, а пример - посмотреть, подумать, взять какие-то идеи и написать самому. Угу. Итого в первом случае имеем: применяется хороший компонент и есть куча времени чтобы подумать и сделать на его основе свое хорошее решение. Во втором случае - смотрим наколеночный пример, наспех "пишем сами", потом так же наспех пишем то, для чего это собственно требовалось. В итоге то и другое плохо, зато новому спрашивающему "как сделать" гордо подсовываем свое наспех-решение и цикл переходит на новую итерацию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 21:15:08 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
TimmJDK 1.4 JTable.java 217 KB Спасибо. То есть, в данном конкретном случае получается порядка 15% объема "доработок". То есть в пять-шесть раз больше, чем у меня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 21:17:15 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Смотрю, дискуссия выдалась удачная ) А с чего все началось? А вот именно с этого - "недопрограммеры пытаются на экране показать тысячи строчек". Кстати, о птичках, попробуй Borland LaF, похоже на JGoodies, но не совсем они. Надеюсь, Borland не будет в обиде. Немного поломал Alloy, но мне не понравилось, лучше без него обойдусь. Я себя не считаю "недопрограммером", учитывая мой 10-и летний опыт разработок под СУБД. И не надо меня (и других) взахлеб убеждать, что 200,000 записей (которые МОГУТ БЫТЬ ВЫТЯНУТЫ из БД), означают ровно столько записей ПОКАЗАННЫХ на экране. С ЭТИМ JTable с его моделью не справляется. Ну разумеется, есть единственный вариант - getValueAt на предпоследней записи должен вызывать fetch из базы (гы, сам удивился - как в Borland JdbTable, но там такое кол-во глюков, что уж действительно лучше самому написать). Более того, реальное программирование с этим монстром (JTable) выявляет все слабости концепции MVC (ну если я хочу получить currentRow(), я вынужден обращать внимание на SelectionModel, а где же независимость модели от данных?) и т.д. и Т.П. Абсолютно не против Java, но визуальная составляющая меня просто бесит. Вот уже 2 месяца занимаюсь своим корявым DataSet +DbGrid + DBSInspector на Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 21:29:40 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
И кстати, я вообще удивляюсь - почему все путают термины "вытащить из базы n строк", и "показать на экране n строк". Наводит на размышления о проф.пригодности программистов (особенно на Java) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 22:18:46 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer TimmJDK 1.4 JTable.java 217 KB Спасибо. То есть, в данном конкретном случае получается порядка 15% объема "доработок". То есть в пять-шесть раз больше, чем у меня. неправда! JTable.java не единственный класс, использующийся в UI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2006, 22:43:50 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer TimmJDK 1.4 JTable.java 217 KB Спасибо. То есть, в данном конкретном случае получается порядка 15% объема "доработок". То есть в пять-шесть раз больше, чем у меня. Да бросьте вы, чесслово. Доказывать преимущества Delphi перед Java, или наоброт - это настолько же неблагодарное занятие, как и доказывать преимущества Oracle перед Interbase. Упорство сознательного невежества субъекта на грани искажения объективной реальности - это... непробиваемая вешь. Это образ такой, поведенческая, блин, модель на уровне диагноза, с известным исходом. И кому что нравится, тот то и пользует, при том что в подобном мире, как известно рулят только танки и ковровые бомбометания. Вкупе с NullPointerException, дикими тормозами и нестандартными LAF-ами. Впрочем, и с AV at address также. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 03:08:11 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
grexhideДа бросьте вы, чесслово. Доказывать преимущества Delphi перед Java, или наоброт Я не пытаюсь доказать то или другое. Мой оппонент попытался обосновать преимущества некоего подхода, который равно реализуем что на Java, что на Delphi, что на ассемблере. Я сомневаюсь в эффективности именно подхода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 09:34:33 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer Хм. Как пикантная подробность - при обычной для большинства дельфи-приложений схеме линковки эти "лишние ктулхи" в exe-шник просто не попадают. Агащаз (с). А вызовы методов посредством RTTI как тогда работают? softwarer Vladimir Kozlov, потому что у начинающего дельфиста много готовых инструментов, и это его портит; Хм. Вы свой дом сами строили? Канализацию сами копали? Ах, какой Вы испорченный..... хотя мне почему-то кажется, что если бы Вы занимались вышеперечисленным, Вы либо жили бы в очень плохой квартире, либо были бы очень плохим программистом. На то и другое времени бы не хватило. Не путай ложку с гамбургером. softwarer Vladimir Kozlovу явера готовых инструментов меньше и ему приходится напрягаться. В результате - через год этот дельфист спрашивает "где взять?" а явер спрашивает "как сделать?" В результате, через год дельфист видел полно примеров качественного кода, а явер привык искать по интернету левые поделки авторства упомянутого Вами Васи Пупкина. Возможен другой вариант развития событий: через год у делфиста палитра трещит от компонентов, а явер научился писать сам. softwarer Vladimir KozlovГотовый компонент вызывает искушение засунуть его в проект и бежать дальше, а пример - посмотреть, подумать, взять какие-то идеи и написать самому. Угу. Итого в первом случае имеем: применяется хороший компонент и есть куча времени чтобы подумать и сделать на его основе свое хорошее решение. Во втором случае - смотрим наколеночный пример, наспех "пишем сами", потом так же наспех пишем то, для чего это собственно требовалось. В итоге то и другое плохо, зато новому спрашивающему "как сделать" гордо подсовываем свое наспех-решение и цикл переходит на новую итерацию. Опять же возможно другое развитие событий: компонент по-быстрому воткнут в палитру, а своего на его основе не сделано ибо и так сойдет. А при выходе новой версии дельфей начинается поиск новой версии компонента, ибо старая почему-то не компилится... За примером далеко ходить не надо: мне в жабе понадобилась таблица с фиксированными столбцами, которые не трогает горизонтальная прокрутка. Лезу в инет. Самое популярное у широких народных масс решение - 2 таблицы на одной модели, фиксированные колонки в одной таблице а прокручиваемые в другой, прокрутка по вертикали синхронизируется листенером. Кое-кто сделал умнее - присвоил вертикальный скроллер второй скроллеру первой. Посмотрел я на это, почесал репу и отправился искать дальше. Нашел намного более красивое решение, где всё сделано на одной таблице, а кастомиризуется контейнер-прокрутчик в которой она лежит. Взял код, протестил. Идея - замечательная, реализация - из рук вон. В общем 40% кода было нафиг выброшено а оставшиеся 60% - переписано, зато сейчас я имею компонент в работе которого полностью уверен :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 09:41:48 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
alexx726200,000 записей (которые МОГУТ БЫТЬ ВЫТЯНУТЫ из БД), означают ровно столько записей ПОКАЗАННЫХ на экране. А для чего тянуть на клиента кучу записей? Неужто для того чтобы из там обрабатывать? Думаю, что на клиента нужно тянуть только то что необходимо отобразить, а перелопачивать десятки тысяч записей - дело сервера... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 09:53:07 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer grexhideДа бросьте вы, чесслово. Доказывать преимущества Delphi перед Java, или наоброт Я не пытаюсь доказать то или другое. Мой оппонент попытался обосновать преимущества некоего подхода, который равно реализуем что на Java, что на Delphi, что на ассемблере. Я сомневаюсь в эффективности именно подхода. В большой команде, где четко расписаны все стандарты, и особое внимание уделяется надежности и качеству кода - подход обычно именно такой. Чужие готовые куски с подводными ктулхами применяют только в случаях, когда абсолютно уверены в том что из-за применения этих кусков система на продакшне не встанет раком в самый ответственный момент. Если это десктопное приложение типа "домашние финансы" - там можно и расслабиться, но есть системы где надежность жизненно важна, и там большая часть времени уходит отнюдь не на по-быстрому-написание кода :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 09:59:38 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov alexx726200,000 записей (которые МОГУТ БЫТЬ ВЫТЯНУТЫ из БД), означают ровно столько записей ПОКАЗАННЫХ на экране. А для чего тянуть на клиента кучу записей? Неужто для того чтобы из там обрабатывать? Думаю, что на клиента нужно тянуть только то что необходимо отобразить, а перелопачивать десятки тысяч записей - дело сервера... ;))) Да ну ? А сам подход J2EE ? Берем и проектируем виртуальные параллельные миры. Сервер БД - это просто хранилище, даешь тотальную мегаобработку обработку через резалтсеты и EQL (учитывая - незафиксированность транзакции) в массы! Говорите подход ? Ну ну.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 10:32:18 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer grexhideДа бросьте вы, чесслово. Доказывать преимущества Delphi перед Java, или наоброт Я не пытаюсь доказать то или другое. Мой оппонент попытался обосновать преимущества некоего подхода, который равно реализуем что на Java, что на Delphi, что на ассемблере. Я сомневаюсь в эффективности именно подхода. а) это в любом случае - спор - бесполезная штука по определению б) он остаивает подход, активно культивируемый "лучшими практиками" java строения. Ничего, кстати, удивительного в его доводах нет. Говоря проще - это не баг в головах, это фича ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 10:34:21 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovВ общем 40% кода было нафиг выброшено а оставшиеся 60% - переписано, зато сейчас я имею компонент в работе которого полностью уверен :) Извиняюсь, что влезаю в середину разговора. Почему бы тогда не писать на ассемблере, чтобы быть совсем уверенным в работе кода. А то ведь, кто их знает, как они реализовали эти высокоуровневые джавиные объекты и функции. PS. Не пытаюсь защитить дельфи или джаву, но аргументы, на мой взгляд, какие-то странные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 11:31:45 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
grexhide Vladimir Kozlov alexx726200,000 записей (которые МОГУТ БЫТЬ ВЫТЯНУТЫ из БД), означают ровно столько записей ПОКАЗАННЫХ на экране. А для чего тянуть на клиента кучу записей? Неужто для того чтобы из там обрабатывать? Думаю, что на клиента нужно тянуть только то что необходимо отобразить, а перелопачивать десятки тысяч записей - дело сервера... ;))) Да ну ? А сам подход J2EE ? Берем и проектируем виртуальные параллельные миры. Сервер БД - это просто хранилище, даешь тотальную мегаобработку обработку через резалтсеты и EQL (учитывая - незафиксированность транзакции) в массы! Говорите подход ? Ну ну.. Ээээ... а ты под сервером что имеешь в виду? Я печатными буквами написал "перелопачивать десятки тысяч записей - дело сервера" а ты пишешь "Сервер БД - это просто хранилище, даешь тотальную мегаобработку обработку через резалтсеты". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 11:41:34 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
pamir Vladimir KozlovВ общем 40% кода было нафиг выброшено а оставшиеся 60% - переписано, зато сейчас я имею компонент в работе которого полностью уверен :) Извиняюсь, что влезаю в середину разговора. Почему бы тогда не писать на ассемблере, чтобы быть совсем уверенным в работе кода. А то ведь, кто их знает, как они реализовали эти высокоуровневые джавиные объекты и функции. PS. Не пытаюсь защитить дельфи или джаву, но аргументы, на мой взгляд, какие-то странные. Выше в треде я писал: или то, что проверено на десятках тысяч инсталяций, или своя реализация. Так что к джавным объектам претензий нет :) Изначально речь шла о том, что в мире дельфи значительно больше "готовых компонентов", чем в джаве, и соответственно больше искушение их заюзать "as is". Анекдот в тему: Детский сад на прогулке в лесу. Воспитательница объявляет: "Дети, если будете рвать ягоды, одну ешьте а вторую оставляйте для судмедэкспертизы". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 11:54:11 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov Изначально речь шла о том, что в мире дельфи значительно больше "готовых компонентов", чем в джаве, и соответственно больше искушение их заюзать "as is". Да, это именно так. Значительно больше и на два порядка большей функциональности и на несколько порядков большей производительности и продуктивности. При наличии - десятков альтернатив. То, что есть проходные и просто отбросные варианты - так никто их и не принуждает пользовать. Этот же подход - вовсю разворачивается в C#/.NET А в мире... Java мда... Попробуйте найти нечто подобное DevExpress -овским компонентам. Лично мне - это не удалось в принципе. И большие сомнения, что подобный функционал - в принципе, практически и теоретически возможен в релизации хоть на SWT, хоть каких тупиковых Swing-ах. Скажете - пользователю это нафиг не нужно ? Угум, а вы этих пользователей - спрашивали ? У меня - даже пенсионерки вовсю уже пользуют и группировки, и промежуточные итоги, и фильтрации (особенно). И находят их - весьма удобными. И самое главное - они (делфийские и C#ные компоненты) позволяют все делать именно декларативно за считанные минуты, а не кодить постоянно сотни строк безумного "правильного" кода для примитивных операций, с конечным выходом - примитивный и глюкающий на пустом месте интерфейс (именно так и можно охарактеризовать поделия на Swing-ах). Далеко ходить не нужно - достаточно сравнить, вон - Oracle SQL Developer (с его довольно неплохим, на первый взгляд EWT Java фрейморком) и PL/SQL Developer или TOAD (писанные на презренных Delphi). При этом - если SQL Developer - внешне тянет даже на прорыв (во мнениях о способностях Java), то все равно - работать на нем, имея возможность сравнить - по сути, просто - себя не уважать (и по стабильности, и по производительности, и по многим параметрам, не говоря уже - про фунциональность). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 12:19:04 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
2Vladimir Kozlov Читал, много думал... Я может быть буковки какие-то пропускаю. Но понимания не нахожу... Итак, поведение гридов. 1) Выполняем select * from table. В таблице имеем 200,000 записей. Вопрос: Сколько записей поступило на клиент? Ответ: ни одной до fetch'a 2) делаем fetch (executeQuery() да што угодно) Вопрос: Сколько записей поступило на клиент? Ответ: Столько, сколько уместится на экране (задано в параметрах и т.д.) делаем PgDown, PgDown Вопрос: Сколько записей поступило на клиент? Ответ: 2 экрана Это стандартная работа ВСЕХ клиент-серверных DataSet (Oracle Forms, Centura, PowerBuilder, Delphi, Visual FoxPro, Oracle Objects и прочей братии) Теперь итоговые вопросы: 1) Где здесь проскочила фраза про перелопачивание тысяч записей. 2) Где это реализовано в стандартной Java-модели. Да, ResultSet заточен для этого, но Grid-то не заточен. Ну да, можно сделать (кстати отрисовочка получается - пальчики оближешь при fireTableRowsInserted во время getValueAt, пользователь испугается, selectedRow() скачет как мустанг при PgDown ;))). Все можно сделать. Можно вообще свой Grid нарисовать. Но зачем мне такой Swing, где должен все с нуля делать? Обидно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 12:26:28 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovВыше в треде я писал: или то, что проверено на десятках тысяч инсталяций, или своя реализация. Так что к джавным объектам претензий нет :) Совершенно случайно наткнулся, читая про JFormattedTextField Так что, баги есть у всех. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 13:41:09 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovАгащаз (с). А вызовы методов посредством RTTI как тогда работают? RTTI относится только к published коду. Published методов - довольно немного. Впрочем, если ты при отладке никогда не получал в watch окне ответ типа symbol was eliminated by linker - это всего лишь значит, что ты не слишком активно использовал отладчик. Vladimir KozlovНе путай ложку с гамбургером. А зачем их путать, если поедание гамбургера в твоем подходе начинается с топора - идешь в лес, рубишь сук, вырезаешь ложку.... Vladimir KozlovВозможен другой вариант развития событий: через год у делфиста палитра трещит от компонентов, а явер научился писать сам. Возможен. Только немного странен - дельфер на примерах хорошего кода пришел к плохому результату, а джавер на примерах плохого - к хорошему. Похоже, ты изобрел новую методику обучения. Vladimir KozlovОпять же возможно другое развитие событий: компонент по-быстрому воткнут в палитру, а своего на его основе не сделано ибо и так сойдет. Бывают компоненты, править которые действительно незачем. Но "по-быстрому воткнут в палитру" возможно только у совсем одиночек - в любой команде компонент потребуется положить в VCS, то есть он пройдет через самого грамотного человека в команде. Vladimir KozlovА при выходе новой версии дельфей начинается поиск новой версии компонента, ибо старая почему-то не компилится... Хм. Я готов поверить, что у тебя такое бывало, но сейчас, в связи с отсутствием вменяемого прогресса в версиях дельфей, этот аргумент неактуален. Vladimir KozlovЗа примером далеко ходить не надо: мне в жабе понадобилась таблица с фиксированными столбцами, которые не трогает горизонтальная прокрутка. Лезу в инет. Самое популярное у широких народных масс решение - 2 таблицы на одной модели, фиксированные колонки в одной таблице а прокручиваемые в другой, прокрутка по вертикали синхронизируется листенером. Кое-кто сделал умнее - присвоил вертикальный скроллер второй скроллеру первой. Посмотрел я на это, почесал репу и отправился искать дальше. Нашел намного более красивое решение, где всё сделано на одной таблице, а кастомиризуется контейнер-прокрутчик в которой она лежит. Взял код, протестил. Идея - замечательная, реализация - из рук вон. В общем 40% кода было нафиг выброшено а оставшиеся 60% - переписано, зато сейчас я имею компонент в работе которого полностью уверен :) Замечательно. Давай разберем чуть подробнее. 1. Идея переписывать контейнер под нужды его детей представляется мне малость... неконцептуальной. Собственно, ScrollPane в яве - вообще весьма спорный компонент; у него есть несомненные достоинства, но применять его как минимум малость надоедает (мне сразу вспоминаются мои компоненты, у которых был метод getScrollPane(), делавший что-то типа return new ScrollPane().add (this). 2. Существенным же я назвал бы тот факт, что Вы не нашли хорошего решения и потратили на его создание кучу времени, примерно столько же, сколько потратили бы на создание с нуля. Это имхо хуже, чем "найти решение, разобраться в нем и увидеть, что оно хорошо подходит". grexhideа) это в любом случае - спор - бесполезная штука по определению Ээ... Вы действительно уверены, что готовы рассказать, что именно мне полезно? Тогда я был бы рад консультации по применению view в StarTeam :) Vladimir KozlovИзначально речь шла о том, что в мире дельфи значительно больше "готовых компонентов", чем в джаве, и соответственно больше искушение их заюзать "as is". Не очень понимаю "искушения". Грубо говоря, из вариантов 1. Заюзать хорошее и во всех смыслах подходящее решение as is либо с мелкими доработками 2. Заюзать дерьмо as is либо с мелкими доработками 3. Писать свое или кардинальную переработку найденного в случае дельфы первый встречается довольно часто, в случае явы - очень редко (это уже мой опыт. Даже скачанное с sun.com приходилось изрядно обрабатывать напильником). Итого в случае дельфы есть искушение заюзать "as is", в случае явы есть искушение заюзать "дерьмо as is". Не уверен, что второй вариант лучше. pamirТак что, баги есть у всех. Не то слово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 15:29:36 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
бла-бла-бла. нечетал красивый лаф (раньше не встречал) http://regis.risp.pl/ а вообще можно из разных прог тупо надёргать. Из оракловых компонентов например, из борландового жбилдера и пр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 15:39:18 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
отсюда можно взять ещё http://javootoo.l2fprod.com/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 15:41:18 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
alexx7262Vladimir Kozlov 1) Выполняем select * from table. В таблице имеем 200,000 записей. Вопрос: Сколько записей поступило на клиент? Ответ: ни одной до fetch'a Ответ: В сегменты отката СУБД записалось 200 000 записей, в зависимости от СУБД клиент либо блокирует всех писателей (в некоторых СУБД), либо просто рискует нарваться на snupshot too old (как в ORACLE). Клиент терпеливо ждет завершения не нужного ему select (пусть пока на сервере). При многих таких "клиентах", резко падает масштабируемость СУБД, подвисают важные отчеты ... Ну нам то по-фигу, мы же умные - вот хотим 200000 записей и все тут. :) 2) делаем fetch (executeQuery() да што угодно) Вопрос: Сколько записей поступило на клиент? Ответ: Столько, сколько уместится на экране (задано в параметрах и т.д.) Ответ: зависит от того применяет ли клиент базы (не путайте со своим самописным кодом - это обычно стандратный класс для работы с СУБД) локальный буфер на жеском диске клиента. По хорошему - на клиентский компьютер, в буферный файл (это если очень грубо) поступили ВСЕ 200 000 записей (ну, или см. ниже про lazy read), но ваше приложение (похоже и вас тоже) пока это "не колеблет". :) Пользователь опять же ждет. В локальной сети вы этого почти и не замечаете, в WEB или ежели у вас реально нашруженное приложение - разговор с таким подходом уже закончен. делаем PgDown, PgDown Вопрос: Сколько записей поступило на клиент? Ответ: 2 экрана Ответ: см. выше + теперь еще в само приложение реально отобразилось (использует RAM) либо ОДИН экран, либо уже два (это зависит от механизма буферизации уже самого приложения). Кстати, если в это момент вы захотите сделать столь любимую многими произвольную сортировку или добавить фильтр - интересно, вы понимаете, что придется проделать "за кулисами" такого требования при 200 000 записях? :) 1) Где здесь проскочила фраза про перелопачивание тысяч записей. Увы, не пытайтесь изобрести чуда - в реальной базе, если это не read-only tables + lazy fetch или логика допускает чтение несогласованных записей (последнее IMHO верх уродства), то ваше приложение ОБЯЗАНО сожрать все, что оно запросило в максимально короткий срок. Иначе НЕ БЫВАЕТ. Точнее, если вы такое наваяли, а ваш DBA немедленно не настучал вам по мозгам, то его надо уволить. 2) Где это реализовано в стандартной Java-модели. Да, ResultSet заточен для этого, но Grid-то не заточен. Что реализовано? ResultSet с перемещением в обоих направлениях - это и есть ваша "серебряная пуля" с буферизацией на диск - никакого отличия по принципу действия со всем, что вам знакомо. Нужно действительное lazy read? Ну так читайте порциями, а гриду сразу скажите реальный count (если знаете приблизительное кол-во, то можно просто заведомо большее число). И еще раз - GRID это отображение данных в удобной графической форме. Это НЕ ОТЧЕТ! Если клиент тянет в GRID даже 1000 записей, то вам надо срочно переделывать логику своей программы. В GRIDe от SWING очень напрягает отсутствие наличия вариантов "для чайников" - ну всякие там фиксированные колонки и ряды, удобное форматирование числовых и строковых данных и т.п., т.е. налицо IMHO ослиные уши просто ленивых разработчиков. И мне действительно пофигу, что я научился (более или менее) все это менять под свои интересы - спрашивается на кой ляд мне это надо, если меня стандартная GUI функциональность подобных гридов в других средах устраивала в 80% случаев? А вот работа с данными тут реализована очень правильно и не надо нападать на MVC - очень грамотное решение. Между прочим, по существу, в той же Delphi это приблизительно так и реализовано, только сокрыто от пользователя за семью замками, что отнюдь не способствует созданию хороших приложений. Кстати, если не подходить к GRID как к "чудо огромно, озорно и лаяще" и выбирать действительно нужные данные, то всякие там мечты про сортировки, фильтры, группировки и другие извращения реализуются на порядок проще, чем в той же Delphi. Несмотря на все вышесказанное, считаю, что SWING проработан недостаточно, отсутствует много функционала, который он обязан содержать, мало нормальных стандратных решений, и вообще, производит впечатление продукта, который ПОЧТИ довели, но помешало что-то другое. Вот только раздражает, когда ему в вину ставят совсем уж к нему не относящееся, как в странном примере с 200 000 записей. Или, того лучше, сильные свойства - например, мощнейшие возможности по самому изощренному форматированию объявляют отсутствующими просто потому, что сами ими пользоваться не умеют/ не хотят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 16:15:41 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
carper[quot alexx726]2Vladimir Kozlov 1) Выполняем select * from table. В таблице имеем 200,000 записей. Вопрос: Сколько записей поступило на клиент? Ответ: ни одной до fetch'a Ответ: В сегменты отката СУБД записалось 200 000 записей, ... [quot] Ага. щаз. на каждый селект еще будем чето в роллбэки песать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 16:21:54 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
1024бла-бла-бла. нечетал красивый лаф (раньше не встречал) http://regis.risp.pl/ а вообще можно из разных прог тупо надёргать. Из оракловых компонентов например, из борландового жбилдера и пр. отсюда можно взять ещё http://javootoo.l2fprod.com/ Уррра!!! Кроме оффтопиков ответ по делу, спасибо большое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 16:39:41 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
carper Ответ: В сегменты отката СУБД записалось 200 000 записей, в зависимости от СУБД клиент либо блокирует всех писателей (в некоторых СУБД), либо просто рискует нарваться на snupshot too old (как в ORACLE). Клиент терпеливо ждет завершения не нужного ему select (пусть пока на сервере). При многих таких "клиентах", резко падает масштабируемость СУБД, подвисают важные отчеты ... Ну нам то по-фигу, мы же умные - вот хотим 200000 записей и все тут. :) А я вот никак понять не могу - даже при суперумном гриде (кстати, энтузиастам DevExpress рекомендую отселектить 200000 записей и включить в гриде фильтрацию) - неужели найдется такой пользователь который осилит все 200000 в гриде просмотреть? :) carper Ответ: зависит от того применяет ли клиент базы (не путайте со своим самописным кодом - это обычно стандратный класс для работы с СУБД) локальный буфер на жеском диске клиента. По хорошему - на клиентский компьютер, в буферный файл (это если очень грубо) поступили ВСЕ 200 000 записей (ну, или см. ниже про lazy read), но ваше приложение (похоже и вас тоже) пока это "не колеблет". :) Пользователь опять же ждет. В локальной сети вы этого почти и не замечаете, в WEB или ежели у вас реально нашруженное приложение - разговор с таким подходом уже закончен. А какие при этом финты ушами вытворяет ADODataset в связке с MSSQL - вообще не передать словами... carper И еще раз - GRID это отображение данных в удобной графической форме. Это НЕ ОТЧЕТ! Если клиент тянет в GRID даже 1000 записей, то вам надо срочно переделывать логику своей программы. +1. Хотя на свинговском гриде офигенно удобно лепить кубический грид. carper В GRIDe от SWING очень напрягает отсутствие наличия вариантов "для чайников" - ну всякие там фиксированные колонки и ряды, удобное форматирование числовых и строковых данных и т.п., т.е. налицо IMHO ослиные уши просто ленивых разработчиков. И мне действительно пофигу, что я научился (более или менее) все это менять под свои интересы - спрашивается на кой ляд мне это надо, если меня стандартная GUI функциональность подобных гридов в других средах устраивала в 80% случаев? Но можно написать своё. Да, время теряется, которое можно было бы потратить на собственно логику программы. Но - время теряется один раз. Пишешь один раз - юзаешь везде. carper А вот работа с данными тут реализована очень правильно и не надо нападать на MVC - очень грамотное решение. Между прочим, по существу, в той же Delphi это приблизительно так и реализовано, только сокрыто от пользователя за семью замками, что отнюдь не способствует созданию хороших приложений. У меня в наследнике TableModel живет более-менее похожий на дельфийский FieldsCollection :) Ну и соответственно всякие FindField, GetFieldByName, SetFieldByName. А теперь сюрприз - для вычисляемых полей есть флажок - вычислять один раз в пределах жизни модели или при каждом обращении. Причем это где-то там в кишках модели кэшируется и совершенно не озабочивает приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 16:55:24 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Timm carper alexx7262Vladimir Kozlov 1) Выполняем select * from table. В таблице имеем 200,000 записей. Вопрос: Сколько записей поступило на клиент? Ответ: ни одной до fetch'a Ответ: В сегменты отката СУБД записалось 200 000 записей, ... Ага. щаз. на каждый селект еще будем чето в роллбэки песать. Воткни в список полей селекта UDF-ку апдейтящую данные :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 16:56:38 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
2Carper )))))))))))))))))) Мы с Вами по-моему разговариваем на разных языках. Знание Java не освобождает от ответственности за незнание работы СУБД. Настучать по мозгам исчо мне нужно оказывается :). Я рассказывал о том, как работают СТАНДАРТНЫЕ DataSets для работы с базой. Вы мне рассказываете видимо о существующих реализациях DataSet в Java (какие-то файлы локальные :0) Разумеется, ведь ни в одном из увиденных я не встречал понятия fetchSize. База не выдает ничего на клиента, пока он не попросит. Более того, при отсутствии каких-либо агрегатов или OLAP-функций она даже с диска их не считает в DataBuffers. Только минимальную выборку. И вот именно ее я хочу увидеть (и увижу) на клиенте. Захотел увидеть еще - сделал fetchNext(). Видимо серьезные разработчики Java еще не дошли до таких "мудреных" операций. Вот и получаются у них CachedDataSet, JdbcDataSet, Hibernate, ADF (с своей прослойкой объектов базы - вот умора, так и не понял как произвольный SQL запрос сделать в этих монстрах) и прочая мутотень (может быть и необходимая для браузера, хотя не думаю, ну отвалилась сессия - будь добр reconnect() сделать) абсолютно не пригодная в Desktop-приложениях. Дочитал до "Если клиент тянет в GRID даже 1000 записей, то вам надо срочно переделывать логику своей программы." и понял, что отвечать не надо было :)) Никогда с TOAD или MS-SQL Explorer не работали? Что, сильно клиента выборки из больших таблиц напрягають? Может компьютер вешается? Как думаете, почему - да потому что см.выше А вообще дискуссия даже на спор не тянет. Да и тема другая была. Опять же - вспылил, прочитав первую хохму автора про "недопрограмммеров" и "тысячи записей на клиента" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 17:05:03 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov А я вот никак понять не могу - даже при суперумном гриде (кстати, энтузиастам DevExpress рекомендую отселектить 200000 записей и включить в гриде фильтрацию) - неужели найдется такой пользователь который осилит все 200000 в гриде просмотреть? :) Да не осилит никто, это все тайно понимают. Но иначе ведь придется ломать голову как клиенту не дать этого сделать не вызвав неудовольствия последнего, а психология это слабое место программистов. :) А какие при этом финты ушами вытворяет ADODataset в связке с MSSQL - вообще не передать словами... А какие, а то я не разбирался? Что-то особенного? :) Но можно написать своё. Да, время теряется, которое можно было бы потратить на собственно логику программы. Но - время теряется один раз. Пишешь один раз - юзаешь везде. Просто далеко не всем это нужно, а вхождение новичка в JAVA неоправдано замедляет. Чисто психологически очень приятно, когда тебе подставляют надежное плечо, а не бросают в прорубь - может последний метод и хорош, но почему-то мало кому нравится. :) У меня в наследнике TableModel живет более-менее похожий на дельфийский FieldsCollection :) Ну и соответственно всякие FindField, GetFieldByName, SetFieldByName. А теперь сюрприз - для вычисляемых полей есть флажок - вычислять один раз в пределах жизни модели или при каждом обращении. Причем это где-то там в кишках модели кэшируется и совершенно не озабочивает приложение. Я бы все же вынес это, хотя бы частично, в шлюз таблицы данных. А с вычисляемыми данными не совсем понял - зачем флажок? null - считаем, что-то другое либо пересчитываем, либо нет, в зависимости от флажка? Я правильно понял? Если так, то для сложных вычислений IMHO правильное решение, а для простых вычислений, я бы лучше не кэшировал - память тоже штука дорогая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 17:10:08 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
alexx7262Carper )))))))))))))))))) А вообще дискуссия даже на спор не тянет. Извините, думаю, погорячился, вступив в дискуссию, можете продолжать в том же духе. :) Ну разве что заступлюсь за TOAD - вы бы помониторили, что он реально делает на вашем примере из 200 000тыс. записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 17:17:45 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
можно документацию почитать void setFetchSize(int rows) throws SQLException Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed. The number of rows specified affects only result sets created using this statement. If the value specified is zero, then the hint is ignored. The default value is zero. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 17:18:01 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
carper Vladimir Kozlov А я вот никак понять не могу - даже при суперумном гриде (кстати, энтузиастам DevExpress рекомендую отселектить 200000 записей и включить в гриде фильтрацию) - неужели найдется такой пользователь который осилит все 200000 в гриде просмотреть? :) Да не осилит никто, это все тайно понимают. Но иначе ведь придется ломать голову как клиенту не дать этого сделать не вызвав неудовольствия последнего, а психология это слабое место программистов. :) Да тут даже не психология нужна а книги по юзабилити :) carper А какие при этом финты ушами вытворяет ADODataset в связке с MSSQL - вообще не передать словами... А какие, а то я не разбирался? Что-то особенного? :) На больших запросах - таки да, вплоть до наглого пожирания виртуальной памяти в момент открытия датасета. Шаманство с серверными курсорами тоже не всегда помогает. А вот SQLDirect от российского автора работает на тех же запросах прекрасно. carper Но можно написать своё. Да, время теряется, которое можно было бы потратить на собственно логику программы. Но - время теряется один раз. Пишешь один раз - юзаешь везде. Просто далеко не всем это нужно, а вхождение новичка в JAVA неоправдано замедляет. Чисто психологически очень приятно, когда тебе подставляют надежное плечо, а не бросают в прорубь - может последний метод и хорош, но почему-то мало кому нравится. :) Согласен. Влезая в жабу нужно быть готовым к тому что попотеть придется. carper У меня в наследнике TableModel живет более-менее похожий на дельфийский FieldsCollection :) Ну и соответственно всякие FindField, GetFieldByName, SetFieldByName. А теперь сюрприз - для вычисляемых полей есть флажок - вычислять один раз в пределах жизни модели или при каждом обращении. Причем это где-то там в кишках модели кэшируется и совершенно не озабочивает приложение. Я бы все же вынес это, хотя бы частично, в шлюз таблицы данных. А с вычисляемыми данными не совсем понял - зачем флажок? null - считаем, что-то другое либо пересчитываем, либо нет, в зависимости от флажка? Я правильно понял? Если так, то для сложных вычислений IMHO правильное решение, а для простых вычислений, я бы лучше не кэшировал - память тоже штука дорогая. Нет, с вычисляемыми данными у меня так: если данное поле данной записи уже посчитано - возвращаем из кэша, если не посчитано, считаем и кладем в кэш. Если флажок не выставлен - игнорируем кэш и считаем всегда. Всё это живет в onGetValue, расчет вычисляемых полей вынесен в листенер, которому в эвенте приезжает имя поля и номер строки в модели. А что ты под шлюзом имеешь в виду? У меня наследник AbstractTableModel, в котором живут собственно данные и информация о полях, т.е. метаданные; там же через интерфейсы подвешены форматтеры и код создания рендереров. Далее он может подключаться к гриду напрямую (в простейшем случае) или через набор статических методов, если требуется кастомизация грида в плане непрокручиваемых столбцов или сгруппированных заголовков. Всё это получилось прекрасно расширяемым и уже вовсю юзается в тестовой версии проекта :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 17:51:03 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
alexx726Дочитал до "Если клиент тянет в GRID даже 1000 записей, то вам надо срочно переделывать логику своей программы." и понял, что отвечать не надо было :)) Не надо. Это стандартная песня. Ровно так же, когда дело доходит до веба, оказывается, что клиенту очень даже удобно (..длинный список глупостей..) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 18:07:43 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov[quot carper][quot Vladimir Kozlov] На больших запросах - таки да, вплоть до наглого пожирания виртуальной памяти в момент открытия датасета. Ага, понял, спасибо. Согласен. Влезая в жабу нужно быть готовым к тому что попотеть придется. Попотеть-то многие может и не отказались, только лично у меня при общении со SWING сначала закралось (хорошо хоть рискнул разобраться) подозрение, что меня сильно обманывают, насчет возможностей языка. :) А что ты под шлюзом имеешь в виду? Нет, я малек погорячился, здесь настоящий шлюз не причем, точнее не причем в данном контексте. Мне показался несколько тяжеловатым получающийся класс - возникла мысль о выносе всяких там FieldByName в отдельный класс - далее сработала аналогия по работе шлюза с реальной базой с аналогичными функциями - в общем поток сознания... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 18:08:33 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
carper Нет, я малек погорячился, здесь настоящий шлюз не причем, точнее не причем в данном контексте. Мне показался несколько тяжеловатым получающийся класс - возникла мысль о выносе всяких там FieldByName в отдельный класс - далее сработала аналогия по работе шлюза с реальной базой с аналогичными функциями - в общем поток сознания... :) Собственно сам FieldCollection (содержащий инфу о типах полей и прочие приблуды) вынесен в отдельный класс. У него есть int FindField(String). Экземпляр класса живет в модели. Ну а дальше всё просто :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 18:21:04 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer alexx726Дочитал до "Если клиент тянет в GRID даже 1000 записей, то вам надо срочно переделывать логику своей программы." и понял, что отвечать не надо было :)) Не надо. Это стандартная песня. Ровно так же, когда дело доходит до веба, оказывается, что клиенту очень даже удобно (..длинный список глупостей..) На вебе, кстати, 1000 записей на узком линке - утонченный садизм :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 18:24:16 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
бла-бла-бла показывать юзеру грид с миллионом записей и при каждом запросе перекачивать на клиента миллион с сервера это разные вещи. Не умеешь - не берись, не зная броду не лезь в воду, ученье свет и т.д. Ну или просто купить типа такого http://www.jidesoft.com/products/grids.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 19:21:08 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
1024бла-бла-бла Ну или просто купить типа такого http://www.jidesoft.com/products/grids.htm Ни хрена себе контролы! Кстати Product Bundle по цене вполне конкурентоспособен с девэкспрессом ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 20:46:14 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
"Ну разве что заступлюсь за TOAD - вы бы помониторили, что он реально делает на вашем примере из 200 000тыс. записей." Ох уж эти ламеры... Ты понимаешь, разницу между executeQuery() и last() Если твое приложение last() делает - это ТВОЁ приложение. И не надо ля-ля. Это ТЫ написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 21:03:44 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov А я вот никак понять не могу - даже при суперумном гриде (кстати, энтузиастам DevExpress рекомендую отселектить 200000 записей и включить в гриде фильтрацию) - неужели найдется такой пользователь который осилит все 200000 в гриде просмотреть? :) В DevExpress ? а) просмотреть все 200 тыс. записей- нет б) запросить (задав слишком широкие критерии) - всегда пожалуйста (криминала тут нет) в) в DevExpress - есть режим PartialLoad - когда на клиента тянутся только записи по мере скролла, т.е. - куммулятивно по требованию. Если пользователю припечет держать 10-20 мин. зажатым PgDn, то 200 тыс. записей ему, вероятно, удастся отфетчить (а Ctrl+PgDn - в "конец" - тут не пройдет) г) фильтры, общие суммы и прочая радость - все это также работает в данном случае на режимах частичной загрузки, и с возможностью перекрытия (можно заменить тупые обработки массивов и деревьев на базовую логику SELECT DISTINCT // значения для фильтров SELECT SUM() // итоги SELECT FROM WHERE <Filter> // данные для фильтров SELECT SUM() GROUP BY GROUPING SETS // итоги для групп.... - и т.д. - и т.п. ---- Вся суть программирования Grid View-Controller-а (в подходе к DevExpress) - сводится к простому - найти функционал, освоить, начать применять. - А не - "не найти функционал, изобрести велосипед с дестким функционалом, попробовать научиться на нем ездить, набить шишек, порвать с десяток штанишек и т.д." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 21:15:49 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovНа вебе, кстати, 1000 записей на узком линке - утонченный садизм :) Особенно с учетом компактности html как средства передачи информации - безусловно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 21:29:56 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
А о чем собственно разговор? Судя по репликам, Casper - вообще никогда в жизни не писал DB-приложения. Сам автор имеет весьма смутное представление о СУБД (очередная хохма на тему "вставьте UDF-Делающую Упдейт в запрос" меня лично очень сильно рассмешила, шутка принята...) А остальные "дискуссионеры-противники" таки не понимают разницы между next() и last(). Причем можно видимо удавицо или перейти на чисто олбанский - всё равно не понимают. Ребята, флаг вам в руки!!! "- Мы не будем петь дуэтом. - А почему? - Ну разве ты не слышишь? - Нет. - Ну вот видишь..." (c) "Берегите женщин" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2006, 22:09:20 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
grexhideИ самое главное - они (делфийские и C#ные компоненты) позволяют все делать именно декларативно за считанные минуты, а не кодить постоянно сотни строк безумного "правильного" кода для примитивных операций, с конечным выходом - примитивный и глюкающий на пустом месте интерфейс (именно так и можно охарактеризовать поделия на Swing-ах). Далеко ходить не нужно - достаточно сравнить, вон - Oracle SQL Developer (с его довольно неплохим, на первый взгляд EWT Java фрейморком) и PL/SQL Developer или TOAD (писанные на презренных Delphi). При этом - если SQL Developer - внешне тянет даже на прорыв (во мнениях о способностях Java), то все равно - работать на нем, имея возможность сравнить - по сути, просто - себя не уважать (и по стабильности, и по производительности, и по многим параметрам, не говоря уже - про фунциональность).Т.е. можно кинуть в sun.com мыльце дескать "мы тут посовещались и grexhide решил, выпуск Java SE 6.0, а равно и Java 7.0 SE отменяется, так Гослингу и передайте, ибо никому это нефункциональное гугно не нужно. А Дельфи на самом деле не умер, а живее всех живых, ибо DevEx еще нужно продавать, не все средства, затраченные на разработку, отбить успели". Так, чтоли? Кстати, DevEx для .NET ты почем купил? Весь пакет или только часть? Ась? [q]Вопрос: Сколько записей поступило на клиент? Ответ: Столько, сколько уместится на экране (задано в параметрах и т.д.) делаем PgDown, PgDown Вопрос: Сколько записей поступило на клиент? Ответ: 2 экрана Это стандартная работа ВСЕХ клиент-серверных DataSet (Oracle Forms, Centura, PowerBuilder, Delphi, Visual FoxPro, Oracle Objects и прочей братии)[/q]Мда? Ну тогда объясни, почему возникают темы вроде этой http://forum.ixbt.com/topic.cgi?id=26:32933 ? Люди что, себе специально в ногу стреляют? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 00:35:37 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer Vladimir KozlovНа вебе, кстати, 1000 записей на узком линке - утонченный садизм :) Особенно с учетом компактности html как средства передачи информации - безусловно. В html помимо собственно самих данных будут приезжать обрамляющие их теги <td>, <tr> и прочее. Плюс к тому - если нужны какие-то действия по щелчку на строке - еще href, плюс class для css-оформления (и не исключено что для разных td-шек он будет разным, т.е. должен приходить с каждой строкой). Так что в результате объем трафика раза в 2-3 вырастет. Ну это конечно в том случае если втупую плоский html гонять. Если xml передавать и лепить контент на клиенте - опять всё не очень весело, поскольку теги xml-я тоже трафика покушать хотят. Ну хотя с xml-ем полегче будет, но все равно не сахар. Да и на голых данных, предполагая что вообще тегов никаких нет - если средний размер данных одной строки принять 100 байт - то на 1000 строках это 100кило. Диалапный пользователь от таких страничек быстро озвереет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 09:37:23 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovТак что в результате объем трафика раза в 2-3 вырастет. Это изрядно скромная оценка. Реальная повыше, особенно если не заниматься онанизмом и не экономить байты, называя классы как-нибудь типа p1, p2, p3.... Vladimir KozlovДа и на голых данных, предполагая что вообще тегов никаких нет - если средний размер данных одной строки принять 100 байт - то на 1000 строках это 100кило. Диалапный пользователь от таких страничек быстро озвереет :) У меня было приложение, где диалапные пользователи сидели на модемах 9600. И ничего, нормально работали, не жаловались, единственно dataset.last() был доработан для возможности прерывания его выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 09:44:00 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
alexx726 Сам автор имеет весьма смутное представление о СУБД (очередная хохма на тему "вставьте UDF-Делающую Упдейт в запрос" меня лично очень сильно рассмешила, шутка принята...) Могу рассказать тебе где я применяю именно UDF-Делающую Упдейт в запросе. Итак, есть большой-пребольшой каталог товара. Есть субконто "Фирма" и "место хранения". И есть таблица с бухпроводками двойной записи, формирующаяся при проведении документов. Задача: оперативно получать остатки и себестоимости товара. Что я сделал: завел таблицу с кэшем остатков/себестоимостей. Навешенный на таблицу проводок триггер на вставку/удаление грохает записи в кэше с кодом товара соответствующим вставляемым/удаляемым записям. Просто втупую вычищает из кэша соответствующие строки. И есть UDF-ка, которой передается код товара и субконто. Первым делом она смотрит в кэш - если данные есть, значит с момента ее последнего вызова новых проводок с данным товаром не было и старых не удалялось, в этом случае она просто достает данные из кэша и отдает наружу. Если в кэше данных не было - пересчитывает на основании таблицы проводок и кладет в кэш. В результате, вставив эту удф-ку в селект из таблицы товаров, я прозрачно и быстро получаю текущее состояние склада. Пересчитывать и апдейтить этой удф-ке приходится-то намного меньше, чем просто из кэша доставать; для примера полный селект по каталогу с вытаскиванием в грид 6000 записей в ява-приложении происходит 0.7 секунды, а если предварительно грохнуть весь кэш - 18-20 секунд. Спросишь - почему я не пересчитываю кэш в триггере на таблицу проводок? А потому. Потому что в этом варианте реализации я могу, засомневавшись вдруг в правильности расчетов (запущенный случай паранойи), грохнуть кэш и пересчитать заново. Потому что, если вдруг придет в голову добавить расчет по LIFO, я добавлю еще пару строк кода внутри UDF-ки, и при следующем вызове в кэше окажутся дополнительные строки с новыми цифрами безо всякого вмешательства с моей стороны и ручного запуска процедуры перерасчета из-за изменений алгоритма. В системе - 60 клиентов. Терминалка. Юзеры не жужжат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 09:55:51 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer Vladimir KozlovТак что в результате объем трафика раза в 2-3 вырастет. Это изрядно скромная оценка. Реальная повыше, особенно если не заниматься онанизмом и не экономить байты, называя классы как-нибудь типа p1, p2, p3.... Можно пропускать код перед загрузкой на сервак через самописный обфускатор, который нормальные имена классов поменяет на p1,p2,p3 :) Кстати, очень нехилый выигрыш удается получить на компрессии (юзаю OpenVPN, там неплохая lzo-компрессия, выигрыш в трафике примерно в 1.8 раза получается по моим тестам). softwarer Vladimir KozlovДа и на голых данных, предполагая что вообще тегов никаких нет - если средний размер данных одной строки принять 100 байт - то на 1000 строках это 100кило. Диалапный пользователь от таких страничек быстро озвереет :) У меня было приложение, где диалапные пользователи сидели на модемах 9600. И ничего, нормально работали, не жаловались, единственно dataset.last() был доработан для возможности прерывания его выполнения. 9600? Круто. А на клиенте был браузер или tty ? :) Кстати, как ты прерывал с клиента dataset.last() - через ajax-вызов или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 10:04:00 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
PlafНу тогда объясни, почему возникают темы вроде этой http://forum.ixbt.com/topic.cgi?id=26:32933 ? Люди что, себе специально в ногу стреляют? Обрати внимание, что там человек страдает с ADO :) да еще и 300000 записей через адо пытается вытянуть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 10:07:11 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Предлагаю создать форум для людей с ломкой после перехода на java с дельфей. Там они смогут проходить реабилитацию, рассказывая друг другу какая дельфи мощная штука и как многого им не хватает в жаве. Говорить о том как здорово кидать на форму TDataSet и TDBGrid и завязывать их друг с другом через TDataSource.... потом они будут рассказывать какой великолепный интерфейс они лепили используя quantum grid и как туда легво грузилось 200k записей... которые у них "бабульки" потом группировали на клиенте softwarer Не надо. Это стандартная песня. Ровно так же, когда дело доходит до веба, оказывается, что клиенту очень даже удобно (..длинный список глупостей..) Очень интересно послушать когда и где это удобно в вебе :) И как это реализуется с помощью открытого server-side курсора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 11:04:29 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
funikovyuriПредлагаю создать форум для людей с ломкой после перехода на java с дельфей. ... Там будут апщаться 2 пэрца. Не будем показывать пальцем кто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 11:10:11 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
да балаболки какие-то. Ну привык чел к дельфи, ну не хочет видеть очевидного ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 11:11:36 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Timm funikovyuriПредлагаю создать форум для людей с ломкой после перехода на java с дельфей. ... Там будут апщаться 2 пэрца. Не будем показывать пальцем кто Когда человек первый раз пробует закурить - у него кружится голова, тошнит, слабеют ноги... но проходит время - и без сигареты он уже не может. Так же и ява - сначала плюешься, но потом есть риск втянуться. А Минздрав предупреждал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 11:35:16 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov Timm funikovyuriПредлагаю создать форум для людей с ломкой после перехода на java с дельфей. ... Там будут апщаться 2 пэрца. Не будем показывать пальцем кто Когда человек первый раз пробует закурить - у него кружится голова, тошнит, слабеют ноги... но проходит время - и без сигареты он уже не может. Так же и ява - сначала плюешься, но потом есть риск втянуться. А Минздрав предупреждал :) Здесь другой случай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 11:36:52 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Timm Здесь другой случай. Да, после палёной водки бордо урожая 1963 года кажется жуткой кислятиной :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 11:40:22 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
TimmЗдесь другой случай. Конечно другой. И никакой ломки ни у кого нет. Просто есть - неудачный опыт и трезвый взгляд на вещи с обеих сторон, возможно - вполне достаточный, чтобы не заниматься самоубеждением на грани отрицания очевидного (в каких случаях и что на практике считается гуаном). Проблема только в том, что грамотный делфиец достаточно просто раскатает техническими доводами любые поползновения против. А типовой джавер - ничем, кроме пустопорожнего пафоса, взять не сможет: "Дескать вы вообще все ламо, вера у вас неправильная, да и понять вам изначально не дано, наш тонкий лейтмотив мироздания, на мотив буддо/гуру созерцания, процесса рефлексии грид-в-еар-через-скроллпане-кодирования...." - Говоря проще - кому чего в жизни не хватает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 11:57:51 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
grexhide TimmЗдесь другой случай. И никакой ломки ни у кого нет. Просто есть - неудачный опыт и трезвый взгляд на вещи с обеих сторон Ну в общем это достаточно распространенный случай, когда больной отрицает факт болезни авторПроблема только в том, что грамотный делфиец достаточно просто раскатает техническими доводами любые поползновения против. А типовой джавер - ничем, кроме пустопорожнего пафоса, взять не сможет: В принципе возможно что "грамотный" дельфиец чего и раскатает, но я такого не в стречал. Грамотные все и так понимает и хер№;№%й на форумах заниматья не будет. Тут же мы наблюдаем сплошное надувание щек точно так как по вашим словам делает "типовой джавер". Есть мнение что дельфийцы здесь тоже типовые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 12:05:58 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
funikovyuri softwarer Не надо. Это стандартная песня. Ровно так же, когда дело доходит до веба, оказывается, что клиенту очень даже удобно (..длинный список глупостей..)Что там в вебе неудобно? Можно эту песню спеть на бис, а то я премьеру пропустил Такое впечатление, что software engineering сводится у вас к написанию формочек для обезьянок, вбивающих в них циферки с бумажек. Как будто эти вбитые данные потом никто не будет запрашивать. Не будет делать поиск. Обрати внимание, что там человек страдает с ADO :) да еще и 300000 записей через адо пытается вытянуть...Ну и что? Чем ADO ну угодил? Разве это не драйвер доступа к данным? Разве есть лучше? А то вот тут делаем PgDown, PgDown Вопрос: Сколько записей поступило на клиент? Ответ: 2 экрана доказывают, что дескать и 300000 можно запросить, на клиента ведь всего 2 экрана поступят, ну или сколько там раз PgDown клиент нажмет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2006, 22:02:34 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
PlafТакое впечатление, что software engineering сводится у вас к написанию формочек для обезьянок, вбивающих в них циферки с бумажек. Как будто эти вбитые данные потом никто не будет запрашивать. Не будет делать поиск. Вовсе нет. Просто в номальных RAD средах никто из этих формочек - не делает особой инженерной трагедии, требующей недюжинного кодирования, проектирования и прочего прототипирования. Просто декларативная модель, и все. При том, что в Java-way, как посмотреть - строго нужно закатывать рукава и наворачивать сотни строк слегка безумного кода, там где суть - банальна и тривиальна (элементарный дизайн и привязка data aware контролов). Опять же, чудо инженерной мысли, представленное, к примеру, в "прогрессивном" ADF Framework (новомодные DataBinding-и c Faces-ами и прочими Struts-о Springa-ми). Все отлично, все красиво, все - абсолютно грамотно (MVC) и в целом - просто замечательно (даже визуализация есть). Да вот беда на те самые элементарные спиномозговые двухкликовые операции в Oracle Forms или в Delphi... тут уже нужны двадцатишаговые действия строго по бумажке. И не дай бог ты ошибся где то на полпути - лови RunTime exception-ы за счет позднего тотального XML связывания..... - Ну ладно там, Oracle со своими индусами - пишут не правильные и не идейные Framework-и. Берем pure sun JSF или JSP + J2EE подход.... И что ? Видим еще более прозаическую картину (разглядывая Toy Store). И вы хотите сказать, что на этом "мегатехнологичномстеке" - можно нормально и быстро декларативно писать протитипы ? 95% думая о конечном приложении, а не о том, как нужно правильно сделать увязки, да так - чтобы еще и обеспечить нормальную работу back операции в браузере, и не развалить последовательность состояний в session бинах, держа в уме стейтчарты и прочие лайфциклы страниц ? - Как можно объяснить этот сознательный мазохизм, кроме как любовью к большим в среднем в отрасли зарплатам ? Для меня это - честно говоря, пока - загадка (в смысле - глобальные перспективы... остаются глобальными перспективами, а проектам и клиентам - относительно все равно, как они и на чем будут сделаны, лишь бы качественно, в срок и без привлечения десятка кодеров вместо одного-двух). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 00:17:36 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
2grexhide +5 Только ты еще очень мягко по поводу ADF Swing сказал (его кстати не индусы делали - европейцы). Честно говоря, после 8 лет рисования интерфейса на Oracle Forms (ну в основном на них) я думал, что отступать дальше некуда - позади остался только наверное Pascal для Windows (после общения с которым народ уходил обратно в Turbo Vision). Но нет, есть еще резервы!!! DataBinding организован - просто прелесть. Oracle Forms нервно курит в сторонке. Статичные именованные XML-контейнеры (не дай Бог с ними чего в рунтайме сделать, запрос там поменять), фиксированные master-details и LOV, отсутствие нормальных editors (ну зачем они - у нас же Swing есть!!!), выполнение select count(*) from (sql) перед каждым запросом, игры с Connection не приветствуются, с валидацией надо попариться. Ну и венец творческой мысли - наконец в III тысячелетии был изобретен Action-Based DataSet Navigator Такое впечатление, что Ктулху спал все 90-ые годы и наконец проснулся. Все наработки клиент-серверных технологий забыты, интерфейсные решения DataBinding на уровне SQL*Forms или G.D. Edwards. В этот продукт надо тыкать всех начинающих на Java и говорить - "посмотри что взрослые дядьки нарисовали, и никогда так больше не делай". И слать на сайт Фрэнка Нимфиуса (одного из ведущих жрецов Культа), где он пускает розовые слюни восторга от того, что смог в HTML-ной табличке быстро multi-select сделать. Такое впечатление, что все мозговые ресурсы разработчиков ушли на создание IDE. Дальше мысль остановилась... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 08:18:37 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
grexhide... Я бы советовал перед тем как начинать "обличать" какую-либо технологию сначало хорошо ее изучить. Дело в том что N лет на делфи автоматически в годы на Java не засчитываются и кое во что видимо нужно врубаться с нуля... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 09:53:28 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
grexhideВовсе нет. Просто в номальных RAD средах никто из этих формочек - не делает особой инженерной трагедии, требующей недюжинного кодирования, проектирования и прочего прототипирования. Просто декларативная модель, и все. Никогда не слышал о том, что Delphi уже стал декларативным ЯП. Всегда был императивным. Опять же, чудо инженерной мысли, представленное, к примеру, в "прогрессивном" ADF Framework (новомодные DataBinding-и c Faces-ами и прочими Struts-о Springa-ми). Да вот беда на те самые элементарные спиномозговые двухкликовые операции в Oracle Forms или в Delphi... тут уже нужны двадцатишаговые действия строго по бумажке. И не дай бог ты ошибся где то на полпути - лови RunTime exception-ы за счет позднего тотального XML связывания..... И вы хотите сказать, что на этом "мегатехнологичномстеке" - можно нормально и быстро декларативно писать протитипы ? 95% думая о конечном приложенииЭто и объясняется тем, что люди 95% времени думают о конечном приложении, о том, что получится в результате, а не о том, как расположить гриды на формочке, как будто это для пользователя имело когда-либо какое-то значение. Зато потом, когда эти пресловутые гриды на ADO тормозят неподеццки, пользователи рвут и мечут. Кстати, ты уже кинул в Sun письмо о том, что выпуск Java отменяется? Чего же ты медлишь? Нельзя же, чтобы люди продолжали мучаться, используя это гэ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2006, 22:42:21 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
ХехеНикогда не слышал о том, что Delphi уже стал декларативным ЯП. Всегда был императивным. А где было сказано про декларативный ЯЗЫК программирования Delphi ? Хехе а не о том, как расположить гриды на формочке, как будто это для пользователя имело когда-либо какое-то значение. Дизайн и эргономику в мире Java отменили как не имеющую значения ? Хм. Хехе Зато потом, когда эти пресловутые гриды на ADO тормозят неподеццки, пользователи рвут и мечут. Коментарии, как говорится, излишни. "Обвини другого в собственных недостатках, прежде чем успеют обвинить тебя" (с) -- В целом - пластинка эта (о гридокидании) уже довольно заезжена. А чуть блеснуть оригинальностью ? Фантазия или знания не позволяют ? Хехе Кстати, ты уже кинул в Sun письмо о том, что выпуск Java отменяется? Чего же ты медлишь? Нельзя же, чтобы люди продолжали мучаться, используя это гэ. Зачем ? У них и так, уверен, есть чем заняться. К примеру - изучить ASP.NET, сравнить попунктно с JSP/JSF. А то и весь технологический стек прямого конкурента. А то мало ли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 00:22:55 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
grexhideВ целом - пластинка эта (о гридокидании) уже довольно заезжена. Дык другой-то нет. Действует принцип "возьми то, чего не умеешь, и объяви неумение этого достоинством, это позволит увести разговор в сторону". Точно так же мы много лет выслушивали, что версионность не только не нужна, но даже вредна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 06:57:00 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
softwarer grexhideВ целом - пластинка эта (о гридокидании) уже довольно заезжена. Дык другой-то нет. Действует принцип "возьми то, чего не умеешь, и объяви неумение этого достоинством, это позволит увести разговор в сторону". Точно так же мы много лет выслушивали, что версионность не только не нужна, но даже вредна. Дельфистам предложение: А чего мы собственно спорим. Давайте решим проблему как в старые добрые царскоофицерские времена - дуэлью: Итак, вы берете за компонент-предок TDBGrid или его предка. Я беру JTable. Субклассировать вам TDataSource и TDataSet можно как угодно. Я соответственно беру AbstractTableModel или мой субкласс от него. задача: в верхней строке получить выпадающие списки по которым будет работать фильтрация. Наподобие того как реализовано в девэкспрессе. Потом дельфисты кидают сюда свой код и я свой (если прочие джаверы хотят поучаствовать в contest-е - давайте запинаем дельфистов сообща :) ) Итак, перчатка брошена. Понеслись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 18:45:14 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov Покупаем DevExpress Quantum Grid и не пудрим себе мозги. Цена вопроса - четыре дня работы программиста (цена продукта и срок "платежа/доставки") - А как только уважаемый "перчаточный дуэлянт на велосипеде" самостоятельно реализует функционал, подобный DevExpress хоть в 20-30% их функционала (не забыв, естественно, про адекватный DataBinding, с возможностью хоть какого плагина в Eclipse), и желательно - на SWT/Swing по выбору - милости просим об этом уведомить сообщество. Я даже соглашусь подождать ещё два-три человеко-года, потому как среднесрочная перспектива ещё даёт возможность разрабатывать Native Win32 приложения, да и переходить на C#, тоже, пока не особо (совсем не) припекает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 22:56:41 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov Дельфистам предложение: А если серьезно, то предложение Java разработчикам: То, что ув. г-н Козлов не напишет свой DevExpress подобный framework и за пять и за двадцать пять человеко-лет, это очевидно (впрочем, и объективно). - А вот теперь - вопрос по существу. Подскажите, пожалуйста, есть ли в природе средства, подобные Oracle ADF Framework ( JDeveloper 10.1.3 и соответствующий JHeadstart под него), но, со следующими критериями: - RCP (Rich Client Platform). Желательно - на SWT, но если и только на Swing-ах, то тоже подойдет - с возможностью получения исходных кодов этого самого Framework-a (не обязательно OSS, можно и в варианте - купить) - с полноценной поддержкой в какой-либо IDE (двунаправленные дизайнеры форм, как минимум) - с фирмой разработчиком, хотя бы имеющей реальное комьюнити, не обязательно с правом голоса в JCP на уровне JSR) В принципе, меня в бытность (для пробного пилота) всем устраивал (с натяжкой) - ADF Framework. Оттолкнуло только невозможность получения исходных текстов (и не понятная стратегия с Oracle Fuision...) Но вот хотелось бы - именно подобного. ---- Я конечно понимаю, что, возможно, спросил в "никуда", но честно говоря - интересно (потому что уже порядком поднадоело (за последний год два) "врубаться" не понятно во что, мало похожее на прикладное RAD программирование). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2006, 23:20:01 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
grexhide Покупаем DevExpress Quantum Grid и не пудрим себе мозги. Цена вопроса - четыре дня работы программиста (цена продукта и срок "платежа/доставки") А как только уважаемый "перчаточный дуэлянт на велосипеде" самостоятельно реализует функционал, подобный DevExpress хоть в 20-30% их функционала (не забыв, естественно, про адекватный DataBinding, с возможностью хоть какого плагина в Eclipse), и желательно - на SWT/Swing по выбору - милости просим об этом уведомить сообщество. DataBinding? А зачем? В наследнике от грида получить данные из SelectionModel и вытащить соответствующий элемент живущей в модели коллекции - не более 5-10 строк кода. Точно так же для не-гридовых контролов, сделать в модели коллекцию интерфейсов, реализованных в наследниках от JEdit и прочих контролов - тоже 5-10 строк. Реализовать FieldByName для элемента коллекции строк - также весьма тривиальная задача, включая перегрузку методов get/set для разных типов данных. На написание фильтрации в гриде - ушло 4 часа, включая поиск кое-каких идеек на koders.com (оттуда почерпнута идея поместить контролы фильтрации не в заголовки а в нулевую строку). Фиксированные столбцы в моем гриде есть, группировка заголовков - есть. Нет группировки строк по выбранным полям, как в девэкспрессе, и нет сортировки по щелчку на столбце (встроенный гридовый сортировщик JDK6 меня не устраивает по ряду причин, если в ближайших билдах шестерки поведение сортировщика не поменяется - напишу свой). Объем кода реализующего фильтрацию в гриде - 7 килобайт. Реализованный набор функционала меня полностью устраивает, если понадобятся дополнительные фичи - допишу. Кстати насчет "плагина в Eclipse" - нету у меня эклипса... стер я его... netbeans удобнее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2006, 09:37:51 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
grexhide То, что ув. г-н Козлов не напишет свой DevExpress подобный framework и за пять и за двадцать пять человеко-лет, это очевидно (впрочем, и объективно). А я и не гонюсь за всем функционалом. Мне достаточно такого набора как в EhGrid, но при условии управляемости кода. grexhide Покупаем DevExpress Quantum Grid и не пудрим себе мозги. Цена вопроса - четыре дня работы программиста (цена продукта и срок "платежа/доставки") Анекдот: новый русский с сыном идут по берегу моря и видят художника за мольбертом. НР наставительно говорит сыну: "видишь, у него нет полароида, и он мучается" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2006, 09:54:19 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov grexhide Покупаем DevExpress Quantum Grid и не пудрим себе мозги. Цена вопроса - четыре дня работы программиста (цена продукта и срок "платежа/доставки") Анекдот: новый русский с сыном идут по берегу моря и видят художника за мольбертом. НР наставительно говорит сыну: "видишь, у него нет полароида, и он мучается" :) Раскрыт секрет программистов Java! Они не программируют. Они искусством занимаются. "Картины" рисуют. Это, конечно, дольше и более трудоемко, но зато глядя на код видишь внутреннюю красоту :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2006, 11:00:02 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
pamirРаскрыт секрет программистов Java! Они не программируют. Они искусством занимаются. "Картины" рисуют. Это, конечно, дольше и более трудоемко, но зато глядя на код видишь внутреннюю красоту:))Да нет уж, это как раз "программисты" на Дельфи не программируют.Разработчик выполняет эти операции в окне Конструктора формы, исполь-зуя Палитру компонентов и Инспектор объектов. При этом действия разра-ботчика похожи на работу в среде графического редактора, а сам процесс создания интерфейса приложения больше напоминает конструирование или рисование, чем традиционное программирование.Это цитата из книжки по Дельфи, надеюсь знаешь, какой. Так что "программисты на дельфи" это на самом деле не программисты, а "конструкторы интерфесов", которые они конструируют в своем графическом редакторе. Неудивительно, что работоспособная прога написанная на дельфи это редкий, вымирающий зверь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2006, 11:21:07 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
pamir Раскрыт секрет программистов Java! Они не программируют. Они искусством занимаются. "Картины" рисуют. Это, конечно, дольше и более трудоемко, но зато глядя на код видишь внутреннюю красоту :)) Это... а книжка Кнута почему-то называется "Искусство программирования" а не "К вопросу об оптимальных траекториях движения мыши при применении RAD Drag-n-Drop" :) Ну что поделаешь - консервативный был дед... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2006, 17:30:24 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Plafкоторые они конструируют в своем графическом редакторе. Обозвать дельфю графическим редактором - это жестоко )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2006, 17:34:57 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir Kozlov Это... а книжка Кнута почему-то называется "Искусство программирования" а не "К вопросу об оптимальных траекториях движения мыши при применении RAD Drag-n-Drop" :) Ну что поделаешь - консервативный был дед... Господа, я задал конкретный вопрос (по поводу примера целостного технологического RCP стека, подобного технологиям Delphi и Oracle), а вы начали опять, извините, "засирать" топик своим напыщенным бредом, к тому же - мало имеющим отношения к реальной действительности. Вам просто не чего сказать или вы просто решили еще раз продемонстрировать свое "ослоумие на тему формогридокидания" ? -- Извините, я могу привести единственный довод (хотя сомневаюсь, что он покажется вам разумным). Если мне нужно.. банально... поесть, то я иду или в ресторан, или в магазин. Где покупаю готовое блюдо или продукт-полуфабрикат (соответственно) нужного мне качества и степени готовности. Имея, естественно, возможность выбора и моделирования конечной ситуации (в удовлетворении своих потребностей, или потребностей своего клиента/собеседника/жены/друга и т.д.) И у меня как-то не возникает комплекса на том месте, что я не могу и не должен для этого брать ружье, сеть или копье, ломиться на природу, выслеживать дичь, собственноручно ей забивать, свежевать, разводить костёр и пр. (хотя иногда - и это тоже, является, неплохим развлечением, в виде исключения, разумеется). И не возникает комплекса на том месте, что мне естественно, не нужно собственноручно заранее выращивать виноград (в Подмосковье ???), делать из него вино, заодно ещё и осваивать технологию гончарного производства....... -- Повторяюсь - я просто иду в ресторан или в магазин, и заказываю тот уже готовый продукт или полуфабрикат, того качества, который мне нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2006, 17:47:36 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
да-да, а в недельфи как-то подругому как будто. Так же идёшь и берёшь. Только в англииском пункте общепита нужно заказывать на англ. языке а в германии на немецком как ни странно. Иначе принесут макароны вместо картошки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2006, 17:59:13 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
кстати, кода значит не будет? Обойдёмся разговорами? Слив защитан. 8) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2006, 18:01:04 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
2Vladimir Kozlov "DataBinding? А зачем? В наследнике от грида получить данные из SelectionModel и вытащить соответствующий элемент живущей в модели коллекции - не более 5-10 строк кода. Точно так же для не-гридовых контролов, сделать в модели коллекцию интерфейсов, реализованных в наследниках от JEdit и прочих контролов - тоже 5-10 строк. Реализовать FieldByName для элемента коллекции строк - также весьма тривиальная задача, включая перегрузку методов get/set для разных типов данных." наповал ))) А я всё думаю - почему это в Java нет DataSet? Все ж так просто... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 00:32:46 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
небольшая подборка лафов со скриншотами, чтоб сравнить можно было http://sss1024.googlepages.com/home ссылок га производителей не ставил т.к. можно в гугле найти а самому искать лень, не помню уж откуда брал. надёргано из разных мест, если у кого есть какие-то ещё - предлагаю запостить тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 00:40:58 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Положительные эмоции оставили JGoodies, Skin LookAndFeel (от команды L2FProd), Borland и Substance. Учитывая большое кол-во тем, пользователю должно покатить. Единственное, Substance немного тормозит (очень уж "навернули" они). Ну, ораклевый еще можно (хотя он своеобразный) Остальными (вроде и симпатичными) пользоваться стремно после JDK 1.5 (по крайней мере, у меня после переключения между LnF начинаются проблемы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 09:06:53 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
grexhide Господа, я задал конкретный вопрос (по поводу примера целостного технологического RCP стека, подобного технологиям Delphi и Oracle) А где ты в Delphi увидел "целостный технологический RCP стек"? Насчет Оракла - судить не берусь, к ихнему серверу баз данным я отношусь с большим уважением, а насчет клиентских платформ - особой радости при мысли о смене Билла Гейтса на Ларри Эллисона не испытываю. Если нужен RCP который позволяет вести разработку "сам-в-себя" - посмотри в сторону Netbeans Platform (да и вообще полного пакета NetBeans 5.5 - это решение типа "всё-в-одном-флаконе-открывай-и-наливай"). Хотя применение готовых RCP-платформ - опять же штука ограничивающая. Тот же NBP - отличное решение для типового круга задач, но шагнуть за пределы органичений архитектуры тяжелее (хотя и возможно) чем при написании своего фреймворка. grexhide Если мне нужно.. банально... поесть, то я иду или в ресторан, или в магазин. Где покупаю готовое блюдо или продукт-полуфабрикат (соответственно) нужного мне качества и степени готовности. И у меня как-то не возникает комплекса на том месте, что я не могу и не должен для этого брать ружье, сеть или копье, ломиться на природу, выслеживать дичь, собственноручно ей забивать, свежевать, разводить костёр и пр. (хотя иногда - и это тоже, является, неплохим развлечением, в виде исключения, разумеется). Пример не совсем корректен. Вот когда я окончательно распрощаюсь с остатками здравого смысла и решу написать собственную виртуальную машину, собственный аналог swing-а и собственное IDE под это всё - тогда да, это уже и изготовлением копья из срубленного дерева и подобранных на берегу кусков кремня запахнет... Но - если задачу можно адекватно решить без привлечения дополнительных сущностей, лучше ее решать без привлечения дополнительных сущностей. Имея набор базовых элементов, предлагаемых явой/свингом, можно в конечные сроки изготовить из них требуемые компоненты интерфейса с требуемым функционалом. Да, тот же DevExpress предлагает более богатый функционал и позволяет минимизировать затраты времени на разработку приложения. Да, применение готовых компонентов позволяет больше времени уделить собственно бизнес-процессам ради которых пишется приложение, а не фреймворку. Но не надо забывать о том что есть еще такая вещь как code maintainability. Всё-таки готовые приложения - это фастфуд. Можно и несварение кишечника получить (каждый релиз DevExpress VCL, выходящий ежемесячно, сопровождается очень немаленьким набором багофиксов). Для быстрой разработки короткоживущих и среднеживущих приложений - да, фастфуд-решения подходят. Но если предполагается долгоживущий проект, который будет сопровождаться и развиваться - лучше когда весь критический код находится под контролем и управлением разработчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 10:44:41 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
alexx7262Vladimir Kozlov "DataBinding? А зачем? В наследнике от грида получить данные из SelectionModel и вытащить соответствующий элемент живущей в модели коллекции - не более 5-10 строк кода. Точно так же для не-гридовых контролов, сделать в модели коллекцию интерфейсов, реализованных в наследниках от JEdit и прочих контролов - тоже 5-10 строк. Реализовать FieldByName для элемента коллекции строк - также весьма тривиальная задача, включая перегрузку методов get/set для разных типов данных." наповал ))) А я всё думаю - почему это в Java нет DataSet? Все ж так просто... Там еще и DataSource нет. Еще раз - весь функционал датасета строится вокруг TableModel. У TableModel есть fireXXXX, у грида - SelectionModel. Этого достаточно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 10:48:05 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
alexx726Положительные эмоции оставили JGoodies, Skin LookAndFeel (от команды L2FProd), Borland и Substance. Учитывая большое кол-во тем, пользователю должно покатить. Единственное, Substance немного тормозит (очень уж "навернули" они). Ну, ораклевый еще можно (хотя он своеобразный) Остальными (вроде и симпатичными) пользоваться стремно после JDK 1.5 (по крайней мере, у меня после переключения между LnF начинаются проблемы) Не все LnF одинаково полезны. На мой вкус - Tonic оптимальный выбор, ведь LnF нужен не только для изготовления красивых скриншотов, но и для того чтоб смотрящий в приложение по 8 часов в день пользователь к вечеру не начинал тереть покрасневшие глаза. Один из показательнейших в этом отношении примеров - Eyeon Digital Fusion. Проработка интерфейса - на твердую пятерку. Ну или SoftImage XSI. Оба этих продукта предназначены для людей которые не тарабанят вслепую по цифровой клавиатуре, а очень неслабо напрягают зрение в процессе работы, и интерфейсы в них отполированы до совершенства, чтобы снизить ненужные напряжения до минимума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 10:58:24 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
1024небольшая подборка лафов со скриншотами, чтоб сравнить можно было http://sss1024.googlepages.com/home ссылок га производителей не ставил т.к. можно в гугле найти а самому искать лень, не помню уж откуда брал. надёргано из разных мест, если у кого есть какие-то ещё - предлагаю запостить тут Спасибо большое, очень хорошая подборка. Lipstik, JGoodies, Tiny, Tonic - отличные варианты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2006, 11:02:39 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Вот чего получилось с Tonic LnF: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.11.2006, 13:38:23 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
Vladimir KozlovВот чего получилось с Tonic LnF:Классный Tonic LaF, мне понравился. А как, интересно, он под Виста выглядит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2006, 15:06:57 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
А с клиентом SAP кто-нить имел дело? Можно от него лаф отковырять? Просто так, чтоб было ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2006, 18:43:18 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
1024А с клиентом SAP кто-нить имел дело? Можно от него лаф отковырять? Просто так, чтоб было Я думаю что где-то среди евонных jar-ов должен лежать и laf. По именам классов можно сориентироваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 11:44:10 |
|
||
|
Где взять хорошие LAF-ы?
|
|||
|---|---|---|---|
|
#18+
так я и спрашиваю, есть ли у кого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 15:13:14 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2146756]: |
0ms |
get settings: |
18ms |
get forum list: |
23ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
63ms |
get topic data: |
22ms |
get forum data: |
6ms |
get page messages: |
422ms |
get tp. blocked users: |
2ms |
| others: | 289ms |
| total: | 859ms |

| 0 / 0 |
