| No | Правило/Причина |
| 1 | Всегда пытайтесь создать новый элемент декларативно (через персонализацию страницы). Определяйте программно, Только если невозможно создать декларативно. |
| Программно созданный элемент невозможно персонализировать, сложнее расширять и использовать. | |
| 2 | Если вы создаёте новый элемент программно, Никогда не использовать конструктор
new OA*Bean(). Всегда использовать createWebBean. |
| Не все свойства элемента инициализируются корректно, когда используется конструктор new | |
| 3 | Никогда не искать элемент по индексу, для изменения его свойств. |
| Индекс элемента может изменяться в процессе работы. | |
| 4 | Никогда не изменять свойства элемента в processFormRequest(). Всегда изменять свойства в processRequest(). Любая информация, которая влияет на отображение элемента, должна быть добавлена в URL в виде параметра. |
| Гарантирует постоянное состояние при формировании страницы. | |
| 5 | Никогда не изменяйте свойства родительского элемента из дочернего. |
| Эта плохая практика препятствует повторному использованию кода. | |
| 6 | Для доступа к методу, имеющему разные версии [ например setText(String text) или setText(OAPageContext pageContext, String text)], всегда используйте метод в котором присутствует параметр OAPageContext. |
| Обеспечивает наиболее безопасный способ изменения объекта. | |
| 7 | Никогда программно не использовать неявную структуру созданную OA Framework.
Выполнять findChildRecursive() для поиска элементов. |
| Определённые элементы — defaultRenderers, PageLayoutBean, TableBean – создают добавочные объекты. Эти объекты могут меняться в разных версиях, вы не можете достоверно распарсить данную структуру. | |
| 8 | Когда необходим доступ к Application module, использовать getApplicationModule(webBean) вместо getRootApplicationModule() там где это возможно. |
| Улучшает модульность и повторное использование. | |
| 9 | При переходе на первую страницу определенного функционала, всегда использовать функцию меню, вместо прямой сслыки на страницу. |
| Позволяет изменять адресс назначения меняя только описание функции. Не требуется изменение и перекомпиляция кода. | |
| 10 | Никогда не создавать программно OAFormBean. |
| Страница должна иметь только один OAFormBean и он определяется декларативно для региона pageLayout | |
| 11 | Всегда устанавливать точность (размер) для всех колонок view objecs (VO).
Всегда указывать точность вызывая registerOutParameters. |
| Например: eсли не установить точность, то для колонки типа String размер по умолчанию 4KB. | |
| 12 | Всегда использовать Oracle-style binding (:1, :2) и не использовать JDBC style binding (?). |
| Это отменяет разбор SQL во время выполнения для замены строковых значений. | |
| 13 | Всегда используйте спроектированные VO вместо динамических (программно созданных). |
| Динамические VO осуществляют дополнительный вызов для разбора запроса и возможный результат может иметь различные комбинации. | |
| 14 | Никогда не рассчитывать, что Application module будет использовать одно соединение с БД для запросов. |
| Для быстродействия, Framework организует пул соединений и переиспользует их. Не держит одно соединение в течении жизни Application module. | |
Похожие записи:
Categories: OA Framework, Oracle e-Business Suite Guidelines, OAF, OEBS, правила, разработка, советы


Последние комментарии