LINUX.ORG.RU

Быдлокодим с ActiveObjects и Qt Jambi


0

0

Разработчики на Ruby on Rails и, не побоюсь этого слова, CakePHP знают, как удобно в этих фреймворках реализована работа с базами данных через ORM, а конкретно Active Record.

Вдоволь после этого намаявшись в Java с прямой работой с SQL и получавшимся АБСОЛЮТНО нечитаемым и нерасширяемым кодом, решил, что без ORM я теперь никуда. Но хотелось чего-нибудь легковесного, для чего не нужно было бы писать несколько страниц кода для связи одной таблицы. Остановился на ActiveObjects.

Для связи таблицы достаточно создать не класс даже, а интерфейс. Как видно на скриншоте, первичные ключи поддерживаются автоматически, а внешние можно отображать в соответствующие связям интерфейсы.

Аннотации можно не писать, если база тоже создаётся с нуля - в этом случае таблицы можно создавать по описаниям интерфейсов, и ActiveObjects применит свои собственные представления о том, как должны называться поля. В моём случае была уже существующая база MSSQL с названиями полей на русском, отсюда и необходимость в аннотациях.

Для гуя используется Qt Jambi - он быстрее Swing и ест меньше памяти, да и дизайнер гораздо шустрее, чем (о ужас) Eclipse Visual Editor. Правда, дизайнер я запускаю отдельно, потому что встроенная в Eclipse версия - то ещё глюкалово.

rdesktop подключён к ноутбуку с оффтопиком XP и SQL Server Express с рабочей версией базы (на нормальном сервере стоит нормальный SQL Server). Поскольку я человек ленивый и набирать параметры rdesktop мне лень, использую gnome-rdp. Переключалка раскладок работает.

Шрифты - говно.

>>> Просмотр (1280x1024, 272 Kb)

★★★

Проверено: Shaman007 ()

> Вдоволь после этого намаявшись в Java с прямой работой с SQL и получавшимся АБСОЛЮТНО нечитаемым и нерасширяемым кодом

Просто скажи, что ты не умеешь писать на Java. Или вообще не умеешь программировать. Книги бы почитал что-ли.

Ian ★★
()

> Для гуя используется Qt Jambi - он быстрее Swing и ест меньше памяти, да и дизайнер гораздо шустрее, чем (о ужас) Eclipse Visual Editor.

А зачем для свинга вообще использовать дизайнер? Руками не получается?

kda ★★★★★
()
Ответ на: комментарий от kda

Когда-то делал руками. Но это муторно.

Sikon ★★★
() автор топика

Прикольненько, прикольненько. А нахрена вам MS SQL?

Aceler ★★★★★
()

>>Прикольненько, прикольненько. А нахрена вам MS SQL?

Для совращений собственного мозга

А шрифты ок(вы моих не видали;))

AntiWindows
()

Если бы я контроллировал твой код - то ты бы его переписывал до синей смерти. Уже просто отработанный шаблон: если где то в коде встречаются русские символы (в джава доках и то не кошерно), а У тебя в аннотациях русские литералы, то практика говорит, что с таким человеком лучше не стоит и связываться. Пропихивая русские лексемы в аннотации - ты показал все свое умение. Разговор окончен.

П.С. Вот вообще не понимаю людей, которые безо всякой подготовки скотом прут и говорят, что умеют, знают... Книжки и доки еще никто не отменял. Так что, прежде чем кодить, хотя бы элементарные правила "этикета" надо усвоить.

anonymous
()
Ответ на: комментарий от anonymous

О, Копец, да тут еще и МС СКЛ, да и в нем таблицы на русском названы - Гм...ГМ... Парень ты вообще учился где-нить а... или сразу посля бурсы возомнил себя разработчиком?...

anonymous
()
Ответ на: комментарий от anonymous

Остыньте, парниша. База уже существующая, как и сказал. В оригинале (то, что было до меня написано быдлокодером(ами) из подвида "офисный планктон") это вообще было на MS Access и VBA, и код там был не для слабонервных.

Sikon ★★★
() автор топика
Ответ на: комментарий от Sikon

>Остыньте, парниша. База уже существующая, как и сказал. В оригинале (то, что было до меня написано быдлокодером(ами) из подвида "офисный планктон") это вообще было на MS Access и VBA, и код там был не для слабонервных.

Ну тогда сорри за наезд )).

anonymous
()
Ответ на: комментарий от anonymous

Я бы тоже не использовал русские символы в названии объектов БД Русские символы можно использовать в диалогах или web'e. То есть в интерфейсе вашего продукта Но, честно говоря, странная какая-то критика. Не по существу. Больше похоже на эмоции. В вашей организации нельзя использовать русские буквы. А в какой-нибудь другой можно. Кстати, 1С кажется использует русские символы в программах и ничего! ;-) Живут себе припеваючи! Их продукцию многие любят. Есть, правда, много и таких, кто не любит их. Но 1С стоит на каждом 2-м компе в бухгалтерии. С этим не поспоришь! Гораздо важнее качество кода, архитектура продукта! А скрин ничего так - нормальный. К тому же показан технологический подход к разработке. Это хорошо! :-)

anonymous
()
Ответ на: комментарий от Sikon

>В оригинале (то, что было до меня написано быдлокодером(ами) из подвида "офисный планктон") это вообще было на MS Access и VBA, и код там был не для слабонервных.

Жестко с тобой обошлись. Яб не вжисть не стал бы это поднимать из разрухи. Легче переписать.

vada ★★★★★
()

А не стремно поднимать проект на ActiveObjects у которого еще молоко на губах не обсохло, нет устоявшегося community, нет кучи функционала.
Имеет только два преимущества: маленький и простой, как деревенский валенок.

Не боишься, что твой проект очень быстро "вырастит" из возможностей ActiveObjects?

Korwin ★★★
()
Ответ на: комментарий от Oceanborn

это АБСОЛЮТНАЯ жесть !!!!!!!!

/me убежал в ужасе....

anonymous
()
Ответ на: комментарий от Legioner

@Legioner: ты не пробовал читать спеки прежде чем писать на лор?! EJB3 может использовать разные движки, включая hibernate.

автору: HIBERNATE!!! епрст....

svyatogor ★★★★★
()
Ответ на: комментарий от svyatogor

пробовал. J2EE это убогий EJB 2.1. А Java EE 5 — урезанный хибернейт, т.е. либо юзать нормальный хибернейт, но не называть это EJB 3 (т.к. на другой реализации не пойдёт), либо юзать урезанный EJB 3 и облизываться на хибернейт. Как то так.

В общем то Java EE 5 мне нравится, вот только она не поддерживается WebSphere (хотя вроде в последних фикспаках что то экспериментальное есть), поэтому пока отдыхает.

Legioner ★★★★★
()

а зачем в таблице ID и КодовоеНазвание ? как я понимаю, оба поля будут иметь уникальное значение

за ненормализированную таблицу низачод

Crocodille
()

По скриншоту: сразу видно, как компактно и хорошо смотрится виндовое ГУИ и отвратительно и размазанно GTK.

По Java: кури Hibernate и не морочь людям голову своей малограмотностью, а то ведь ещё поверят.

DOKA
()
Ответ на: комментарий от vada

> Яб не вжисть не стал бы это поднимать из разрухи. Легче переписать.

И в 99% случаев создал бы необоснованные затраты для своей фирмы. Рефакторинг - наше всё. Только мало кто может его по-нормальному осуществить.

DOKA
()
Ответ на: комментарий от DOKA

>По скриншоту: сразу видно, как компактно и хорошо смотрится виндовое ГУИ и отвратительно и размазанно GTK.

У мосье ностальгия по родной Win98? :) Если так прет - пересобери freetype с BCI, Tahoma+Courier из Винды и будя тябе счастие в этой жизни :))) Ах, да... Желательно все это под КДЕ с Ot-to-Gtk примочкой. На Пластике Еклипс более-менее человечески смотрится.

Linfan ★★★★★
()

Здрасьте. А подскажите, как панелька "в третье измерение" поворачивается? Всмысле, как это сделать?

xzander
()

Шрифты, кстати, даже очень, а вот температура -14С - не рулит ;)

anonymous
()

Очень много буковок.

А чем-таки уважаемого коллегу Hibernate или TopLink не устроил?

PS. док a la Leopard - это моветон. Фи!

Bioreactor ★★★★★
()

молодой человек, не надо громких слов про ROR и уж тем более про CackePHP. ActiveRecord удобен первые пол часа, до первой сложной выборки. потом либо полноценный ORM нужен либо raw sql. (ORM != ActiveRecord, rtfm)

barbuza
()
Ответ на: комментарий от xzander

> Здрасьте. А подскажите, как панелька "в третье измерение" поворачивается? Всмысле, как это сделать?

Это avant-window-navigator, там в настройках есть такой режим.

Sikon ★★★
() автор топика
Ответ на: комментарий от Crocodille

> а зачем в таблице ID и КодовоеНазвание ? как я понимаю, оба поля будут иметь уникальное значение

ID - число, автоинкремент, ключ.

КодовоеНазвание - строка, вводится пользователем.

Да, в большинстве случаев ID, Имя и КодовоеНазвание будут уникальными для каждой записи. Но таблица как раз нормализована. Не нормализована она была бы, к примеру, если бы кроме поля "Менеджер" (которое ID менеджера) была бы ещё какая-нибудь информация о менеджере.

Sikon ★★★
() автор топика
Ответ на: комментарий от barbuza

> (ORM != ActiveRecord, rtfm)

ActiveRecord - один из видов ORM. По крайней мере так утверждает Википедия. Не согласны - поправьте.

http://en.wikipedia.org/wiki/ActiveRecord_%28Rails%29

> The Rails ActiveRecord Framework implements the like-named object-relational mapping (ORM) pattern described by Martin Fowler: ...

А сложные запросы мне не нужны, даже join'ы вряд ли понадобятся. Нужны были бы - может, и посмотрел бы в сторону Hibernate. Принцип KISS никто ещё не отменял.

Sikon ★★★
() автор топика
Ответ на: комментарий от Sikon

>> Здрасьте. А подскажите, как панелька "в третье измерение" поворачивается? Всмысле, как это сделать?

>Это avant-window-navigator, там в настройках есть такой режим. Sikon (*) (19.02.2008 11:43:11) Спасиб!

xzander
()
Ответ на: комментарий от Sikon

>> Здрасьте. А подскажите, как панелька "в третье измерение" поворачивается? Всмысле, как это сделать?

>Это avant-window-navigator, там в настройках есть такой режим. Sikon (*) (19.02.2008 11:43:11) Спасиб!

xzander
()
Ответ на: комментарий от Crocodille

>за ненормализированную таблицу низачод

Ну таблицы не всегда можно нормализовать. Зачастую, это сильно все усложняет, но за "КодовоеНазвание" проектиоровщикам яйца вырвать надо. Если яиц не было с рождения, то дырку зашить.

vada ★★★★★
()
Ответ на: комментарий от DOKA

>Только мало кто может его по-нормальному осуществить.

Золотые слова :)

vada ★★★★★
()
Ответ на: комментарий от Korwin

>Это как же нужно рефакторить чтобы из VB получить проект на Java :)

Компилим VB в бат код, потом назад в JAVA. Телемаркет. :)

Такая херня получится!!!!!!!!!!!!!!!!!!

vada ★★★★★
()
Ответ на: комментарий от Sikon

> ActiveRecord - один из видов ORM.
ORM - слишком общее понятие, под него много всего подходит. Тут не поспоришь.

> А сложные запросы мне не нужны, даже join'ы вряд ли понадобятся.
Это пока, в начале.
Если проект будет развиваться, сложность данных возрастать. Потребности в выборках тоже (аналитика, как вариант), то рано или поздно придется переписывать с нуля используя уже другой ORM. Как минимум DAL + часть GUI.

Korwin ★★★
()
Ответ на: комментарий от Sikon

т.е. значение из КодовоеНазвание допускается изменять? Если так, то согласен, таблица нормализована

Crocodille
()
Ответ на: комментарий от vada

> Ну таблицы не всегда можно нормализовать а можно пример, когда нормализовать нельзя?

> Зачастую, это сильно все усложняет imho это наоборот упрощает, и делает модель БД более понятной. Хотя из соображений производительности, иногда, рациональнее использовать денормализованные таблицы. Но именно "иногда"

Crocodille
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.