Category: работа

Category was added automatically. Read all entries about "работа".

манул

(no subject)

Понадобилось мне сделать многошаговую форму (multistep form) aka wizard в Symfony2. Оказывается, это не так просто, как кажется.

Во-первых, стандартных средств для работы с формами недостаточно. В Symfony всё слишком заабстрагировано, так что непосредственно управлять действиями, которые ты хочешь совершить, нельзя. Когда пытаюсь из первой формы передать управление контроллеру второй формы, Symfony считает, что форма _уже_ завершена, т.к. я нажал кнопку submit (судя по всему, она скрыто передаёт какое-то поле с этим признаком) - и вторая форма не отображается, а сразу отрабатывается, как завершённая.

Далее, пришлось искать расширение для этой цели. Нашёл некий Craue Formflow Bundle, установил. Вроде бы работает, но наткнулся на другую засаду. Во второй форме мне нужно показывать набор единообразных полей в количестве, заданном в первой форме. Набор единообразных полей в Symfony реализуется типом поля collection. Пробую - не работает, зараза. Говорит, что это поле лишнее (мол, в классе данных такого поля нет), и выдаёт его значение = null.

Вчера весь день провёл в чтении нараспев священных текстов документации и шаманских плясках с бубном - ничего не помогло. Сегодня с утра на свежую голову сделал ещё одно шаманское па: зарезервировал заранее в этом поле массив размером 100, а потом его обрезал до нужного размера. Помогло! Эта зараза (craue formflow bundle) _запоминает_ размер поля, заданный при инициализации, и выставляет его именно такого размера, несмотря на то, что в процессе перехода от первой формы ко второй этот размер поменялся. Ну а поскольку раньше я инициализировал это поле массивом нулевого размера, она и резала его до нуля. Причём теперь мне необходимо обрезать этот массив до нужного мне размера два раза: в первый раз при переходе ко второй форме (иначе вторая форма выведет мне 100 полей, а мне столько не нужно), а во второй раз - после завершения второй формы (иначе craue formflow bundle расширяет обрезанный массив опять до размера 100).

И самое главное: в документации об этом - ни слова.

P.S. Ненавижу свою работу.
манул

асса! :)

Вчера на работе мысленно сплясал лезгинку на радостях: после 3 месяцев чтения талмудов, биения головой об стенку и криков «ничего не понимаю!» заработал даже не прототип, а зародыш новой программы: 3-уровневое (3-tier) приложение на NetBeans Platform + Java Enterprise Beans, веб-сервисы, Glassfish, все дела... К тому же на клиентской стороне — таблица с пэйджингом (подкачкой по необходимости) данных с сервера, да ещё с lazy loading (т. е. пока данные не подкачались, в соответствующих строках пишется «загрузка...», приложение не затормаживается, а по приходе данных эти строки заменяются данными).

Конечно, там ещё год надо писать функционал, но главное, есть основа, на которой можно строить.

В общем, три месяца долбёжки книжек на английском не пропали зря. А то были моменты, когда я думал уже бросить это всё...
манул

работа

После долгих исканий и метаний (например, пытались смотреть OpenSwing), всё-таки решили остановиться на «классике»: NetBeans Platform. Пришло осознание, что систему нужно полностью переписать, причём не изобретать велосипед, а сделать так, как люди делают. Поэтому поставил себе NetBeans IDE (кстати, потыкавшись и пообвыкшись, понял, что оно не многим хуже Eclipse и даже IDEA, зато в него интегрировано многое) и пытаюсь разобраться с фреймворком. Пока не очень понятно (но что-то начинает проясняться), и ещё пока не ясно, как организовать 3-tier-архитектуру (не знаю даже, как это сказать по-русски: трёхъярусную архитектуру?) — а она нам очень нужна. Судя по всему, надо будет использовать что-то вроде Hibernate на серверной стороне (ещё и с ним придётся разбираться).

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