Минус данного подхода — зависимость от Oracle SQL Developer'а. Это означает, что запускать тесты в любимом многими ораклистами TOAD'е скорее всего не получится. Прикрутить тесты к автоматизированному билду на jenkins с запуском через sqlplus тоже не выйдет.
Мы используем самописный pl/sql фреймворк для запуска тестов в стиле junit'а, который активно использует savepoint'ы. Перед запуском теста фреймворк сохраняет состояние базы, выполняет тест, затем откатывает состояние базы до сейвпоинта. После этого сохраняет результаты теста. Есть нюанс с автономными транзакциями, но это мелочи.
https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/savepoint_statement.htm
В довесок имеем набор вспомогательных процедур для дампа таблиц и кверей, сравнения курсоров, итд. Дебажиться сплошное удовольствие. 700+ pl/sql интеграционных тестов. Полет нормальный.
Мне очень нравится модульность Angular'a. В рамках же single-page приложения очень хочется избежать постоянной подгрузки темплейтов с сервера. А ввиду большого количества темплейтов, крайне не хочется хранить все темплейты в одной куче в рутовом index.html, а перенести их в конкретные модули. С простыми темплейтами нет проблем, но как всегда хочется большего. Нужна интернализация, автоматическая подстановка значений из разных scope'ов, быстрая динамическая перестройка html. Первого в angular'е нет, но можно самому написать через директивы; подстановка работает с некоторыми ограничениями; а вот динамически менять dom достаточно муторно. По сути, нужно каждый раз компилировать темплейты, чтобы работали подстановки и выполнялись директивы. Наверно тут нужно определенное мастерство, т.к. то же самое на jquery виджетах делается в 10 раз быстрее и занимает меньше кода. В идеале, возможно было бы здорово совместить jquery виджеты (UI) с angular'овскими модулями (logic), но что-то по-простому это не сращивается.
Не знаю что бы такого в качестве примера привести… За полгода уже подзабылось малость. Ниже идет простенькая директива с кнопками OpenID провайдеров. По сути, приходится темплейты описывать конкатенацией строк, т.е. все описывается декларативно. Если нужно динамически менять какой-нибудь css аттрибут — в темплейт добавляется директива. Если нужен action — добавляется директива. Нужна интернализация — добаляется директива. Форматирование? — директива итд. Так код очень быстро сильно захламляется ненужным синтаксисом. Если же нужно вставить новый блок с другим виджетом динамически… Тут уже траблы. В общем, чем больше виджеты, тем сложнее с ними работать ;)
Если кто подскажет как правильно и эффективно работать с директивами — буду только рад.
На документацию по AngularJS грех жаловаться. На официальном сайте её много. От туториалов, до продвинутых сценариев с примерами. Одни юнит тесты чего стоят! Если нужно что-то большее — есть поисковики и исходники.
Вот чего действительно не хватает, так это альтернативы директивам. Простенькие или многостраничные сайты на директивах нормально пишутся, но если заходит речь о динамических single-page приложениях, то с директивами тут трешак начинается. Очень неудобно с ними работать, особенно после jquery виджетов.
К JavaScript'у легко приделывается Java bridge с вызовами желанной библиотеки на c/c++. Конечно, для реал-тайм процессинга audio/video не подходит, а вот для других задач может быть в самый раз.
Не рекомендую использовать google docs ввиду бажности данного продукта. Если хотя бы в одной ячейке много строк, то такой документ в google docs не отображается и его больше нельзя редактировать. По сути, после первой же загрузки данных через ACRA, документ становится нередактируемым. Плюс существует ограничение на количество записей — необходимо сразу интегрировать скрипт для очистки лишних записей.
Information
Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Мы используем самописный pl/sql фреймворк для запуска тестов в стиле junit'а, который активно использует savepoint'ы. Перед запуском теста фреймворк сохраняет состояние базы, выполняет тест, затем откатывает состояние базы до сейвпоинта. После этого сохраняет результаты теста. Есть нюанс с автономными транзакциями, но это мелочи.
https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/savepoint_statement.htm
В довесок имеем набор вспомогательных процедур для дампа таблиц и кверей, сравнения курсоров, итд. Дебажиться сплошное удовольствие. 700+ pl/sql интеграционных тестов. Полет нормальный.
Вот чего хочется избежать, так это:
Темплейтов куча. Делать кучу запросов к серверу за темплейтами не хочется. Держать темплейты в одном месте тоже. Как быть?
Интернационализации в angular'е нет.
Не знаю что бы такого в качестве примера привести… За полгода уже подзабылось малость. Ниже идет простенькая директива с кнопками OpenID провайдеров. По сути, приходится темплейты описывать конкатенацией строк, т.е. все описывается декларативно. Если нужно динамически менять какой-нибудь css аттрибут — в темплейт добавляется директива. Если нужен action — добавляется директива. Нужна интернализация — добаляется директива. Форматирование? — директива итд. Так код очень быстро сильно захламляется ненужным синтаксисом. Если же нужно вставить новый блок с другим виджетом динамически… Тут уже траблы. В общем, чем больше виджеты, тем сложнее с ними работать ;)
Если кто подскажет как правильно и эффективно работать с директивами — буду только рад.
Вот чего действительно не хватает, так это альтернативы директивам. Простенькие или многостраничные сайты на директивах нормально пишутся, но если заходит речь о динамических single-page приложениях, то с директивами тут трешак начинается. Очень неудобно с ними работать, особенно после jquery виджетов.