juan_gandhi: (Default)
		catch ( RuntimeException re ) {
			log().info( "could not bind value '" + nullSafeToString( value ) + "' to parameter: " + index + "; " + re.getMessage() );
			throw re;
		}
		catch ( SQLException se ) {
			log().info( "could not bind value '" + nullSafeToString( value ) + "' to parameter: " + index + "; " + se.getMessage() );
			throw se;
		}
......
	public String nullSafeToString(Object value) throws HibernateException {
		return value == null ? null : toString( value );
	}

.......
	public Object stringToObject(String xml) throws Exception {
		return xml;
	}

	public String toString(Object value) {
		return (String) value;
	}

	public Object fromStringValue(String xml) {
		return xml;
	}

Now again

May. 10th, 2011 11:17 pm
juan_gandhi: (Default)

  1. a not totally trivial example implemented using JPA and Scala

  2. an event sourced implementation using explicit state changes

  3. a straightforward translation of the mutable event sourced implementation into an immutable implementation

  4. encoding domain knowledge into the type system to make the domain easier to understand and reduce the number of runtime error checks

  5. Towards an immutable domain model – monads (part 5) the stuff above translated into monads (where it should be)
juan_gandhi: (Default)
I'm pretty much tired of using so-called "DAO objects", automatically hibernate-generated classes that are dumb and simple; they are being used everywhere throughout the code; I was always willing to fill them with functionality, but, thank god, there was no chance.

Now I think this. Thanks to [livejournal.com profile] mikkim08 ideas for Scala. They should be all wrapped in decorators; and decorators should be returned from DAOs or factories. Performance-wise, it is just one level of indirection, and one more reference per instance. Conceptually, it is an implicit mapping.

E.g. I get "CountryData" from db; it is dumb and know nothing about life, just data. Wrap it in a subclass, and kaboom, an intelligent guy who can tell you this and that... and yes, immutable, since all "setters" are blocked by police.

So there.
juan_gandhi: (Default)
Шозанахом, как писали где-то полгода назад, умные люди называют Гибернейт.

Я тут чего задумал. Есть у меня таблица на миллион записей, не ахти какая, но, чтобы тест бежал внутри эклипса (внутри эллипса, если эллипс определить как эклипс), надо как-то "оптимизировать" - и вот я впендюрил вью в базу, чтобы мне не все колонки выдёргивать - дальше сгенерировал хабеме файл и джавный файл с "сущностью" этого вью (как по-русски вью называется? Неужели вид? А по-испански виста? А по-украински?)

Короче, получились почему-то два джавных файла. Один для вью, другой для его "айди". И все колонки от вью - в "айди". Ну хорошо, и пишу я к нему Даоса, чтобы читать этот вью, по странам. И этот Даос, будучи не вполне просветлённым, говорит, что у вью нету какого-то то ли рендерера, то ли ещё чего-нить. Тогда я подставляю "айди" класс. И чё, хотя в этом классе все поля определены, Даос Шозанах говорит мне, что у него нет страны. Космополит хренов, этот класс.

Тогда я игнорирую эти все шозанаховы трюки и пишу простой сиквел-запрос, чтобы Даос его исполнял. Но Шозанах и тут не дремлет, и сообщает, что таких полей он не знает, ну и т.д. Я знаю, а он не знает.

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

Буду впредь проще. Постараюсь по крайней мере. Мне в предыдущей конторе, забыл как звать, хватило приключений с Шозанахом; мне даже инкриминировали какие-то баги этого Шозанаха, я не успел спросить, да и интереса не было, т.к. эта инкриминация произошла уже при расставании, а в момент расставания лучше не вспоминать плохое, а сосредоточиться на хорошем, поблагодарить за выходное пособие и доставленное удовольствие, посмеяться и пойти по своим делам.

Profile

juan_gandhi: (Default)
Juan-Carlos Gandhi

May 2025

S M T W T F S
    1 2 3
456 7 8 9 10
11 121314151617
18192021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 15th, 2025 02:12 pm
Powered by Dreamwidth Studios