Шлях камікадзе в середовищі Oracle, Інші СУБД, Бази даних, статті

Автор: © Дмитро Волков


Введення


У даній статті я зробив короткий огляд проблем, з якими стикаються розробники, які створюють проекти в середовищі Oracle.


Коротко розглядаються особливості ведення проектів та підбору команди розробників.


Робиться короткий огляд засобів проектування і розробки додатків, проводиться їх порівняльний аналіз. Наводяться найбільш типові допускаються помилки при проектуванні БД і розробці додатків.


Вибір БД і ОС


Вибір БД часто виявляється каменем спотикання на початку проекту. Якщо вибір ОС часто диктується апаратним забезпеченням, яке або вже є, або на яке є гроші, то вибір БД породжує суперечок не менше, ніж який автомобіль краще.


У чому ж тут справа? Напевно в тому, що на початку проекту ми слабо уявляємо собі всі завдання, які нам належить вирішувати.


Що може допомогти у виборі БД? Я б розставив пріоритети так:



Отже. Уважно подивіться, що говорять розробники, і що вони вміють. Не змушуйте стрибати їх вище своєї голови. Пам’ятайте, що Oracle це складний продукт. Документація тільки на БД включає в себе близько 20,000 сторінок!. Я пам’ятаю що, коли я вперше побачив документацію на Oracle, вона стояла в кімнаті розробників, займаючи цілу стіну! Здавалося неймовірним прочитати все це навіть за все життя!


Але якщо Вам вдалося наполягти на виборі Oracle і Unix – вітаю Вас. Ваш шлях камікадзе розпочався!


Організація проекту


Проект


Організовуючи проект, Ви повинні дуже добре уявляти собі терміни проекту, його бюджет і команду, яка покликана реалізувати цей проект. І якщо обговорення термінів і бюджету виходить за рамки цієї статті, то принципи підбору найважливіших членів Вашої команди ми обов’язково розглянемо далі.


Що стосується власне проекту, то вимагайте від нього тільки одного – щоб він був закінчений. Нічого не пригнічує морально більше ніж припинений проект.


Команда


Найважливішим ланкою команди, безсумнівно, є її лідер – project manager. Саме від нього залежить, чи буде успішним проект. Його найважливішими якостями є можливість протистояти зовнішньому тиску вищестоящого керівництва, вміння протистояти зовнішньому тиску.


Але не менш важливим є і його технічний background. Він повинен швидко, в розмові з керівництвом встигнути прорахувати скільки часу піде на реалізацію тієї чи іншої фічі системи. З іншого боку, оскільки він бачить всю картину цілком, він повинен підказувати іншому члену команди – DBA – що з можливостей БД слід використовувати в тій чи іншій частині проекту.







Якщо Вам вдалося застати Вашого лідера за написанням коду або перестановкою ОС на своєму комп’ютері негайно проженіть його. Він займається не своєю справою! А постраждати може проект в цілому.

Підкреслю ще раз – я вважаю важливим, щоб лідер проекту розбирався в технологіях. Він не повинен писати код, але повинен знати і відчувати що це таке. Тільки так він зможе підтримати свою команду у важкий період для неї. Тому що успішно працювати в колективі, в якому навіть твій начальник вважає, що ти займаєшся якоюсь асенізації неможливо.


Як правило, ступінь близькості лідера проекту до розуміння проблем розробки прямо пропорційна моральному клімату в колективі.


Іншим важливим членом команди є DBA – Database Administrator. Він гуру. Його поважають і слухають. Коли у розробника щось не виходить, він біжить до dba і уважно слухає його вказівки. Він повинен уважно перевіряти всі пропоновані технічні рішення, виносити свій вердикт – використовувати їх чи ні. Від його роботи залежить, наскільки безболісно система увійде в дію, і буде експлуатуватися. Важливо, щоб такий адміністратор був у вашій команді з самого початку проекту.


В кінці я б відзначив “закон бутерброда” для проектів. Отже, ви грамотно ведете проект. Ваша команда добре поінформована і тренована. Структура БД ясна і зрозуміла. Система відмінно виглядає і ефективно працює. Але не турбуйтеся. Завжди знайдуться додаткові фічі або паралельний проект який зруйнує вашу мирне життя (Jonathan Lewis)


Засоби проектування


Використання case-засобів при проектуванні сучасних систем вже перестало здаватися непотрібною надмірністю. І тим не менше все ще успішно ігнорується багатьма командами. Мені доводилося багато разів бачити і чути думку, що написати скрипти вручну набагато швидше і легше.


Це злочинне оману. По-перше, такий проект неможливо комусь продемонструвати. Як наслідок, ускладнене додавання членів команди.


По-друге, через рік, півроку написання пов’язаних запитів починає займати все більше і більше часу. Ніхто вже не орієнтується в структурі БД.


Ось як я визначаю, наскільки добре ведеться проектування. Якщо в кімнаті розробників є дошка, а на стінах важать ER-діаграми, то принаймні розробники обговорюють, що вони роблять. У мене в кімнаті зараз є і дошка та діаграми J.


Який засіб проектування використовувати? Те, що Ви знаєте …


Я ж вкрай рекомендую використовувати Oracle Designer. Це прекрасний засіб, перевірене у величезній кількості проектів, які мають усі Вам необхідними властивостями. До того ж Designer може виконати генерацію програмного коду, який ви далі зможете повністю або частково використовувати далі. Так, у проекті пов’язаному із створенням web інтерфейсів на perl і php я використав не тільки генерацію власне схеми даних, а й так званого table API – процедурного інтерфейсу для доступу до Ваших даних. Це вкрай зручно і економить масу часу.


Засоби розробки


Windows засоби (Delphi, Power Builder, Visual C + +)


До переваг цих засобів розробки варто віднести



До недоліків



Висока гнучкість цих засобів дозволяє розробнику зробити і масу помилок. Так, раптово може виявитися, що при перегляді в grid таблиці з пари мільйонів рядків можливість пересунути повзунок призводить до того, що додаток повністю зависає. Також дуже часто розробники захоплюються універсальними формами, які вміють “все”. При цьому вони намагаються генерувати sql код “на ходу”. З цього приводу краще дивитися главу “Список основних помилок”.


Perl/Php


Безкоштовно распространяемо засоби розробки, що мають мільйони розробників по всьому світу. Інтерфейси до БД Oracle написані волонтерами, і досить продуктивні. Правда, як правило, вони підтримують не всі можливості сервера (повернути колекцію або об’єкт). Тим не менш, для створення web інтерфейсів ці засоби широко і успішно використовуються. Тут по моєму досвіду розробники намагаються втриматися в рамках одного вибраного мови і геть заперечують використання збережених процедур сервера. З цього приводу краще дивитися главу “Список основних помилок”. Вартістю найбільшою гнучкості є час розробки – найбільше серед розглянутих засобів. Це пов’язано з отсутвие яких або графічних засобів розробки для цих мов.


Java


Oracle давно і послідовно підтримує java. Віртуальна машина вже знаходиться в БД – ви можете створювати збережені процедури на java. Для створення клієнтських додатків Oracle пропонує свій продукт JDeveloper. Драйвера для доступу до БД розробляються самим Oracle і підтримують майже всі можливості сервера. Технологія jsp дозволяє Вам створювати полегшений варіант вашого інтерфейсу. Так що якщо ви готові на додаткові накладні витрати на CPU і швидкість виконання не є для Вас критичною, ця технологія здається однією з найбільш привабливих.


Oracle засоби (Forms, Reports)


Це найбільш старі засоби розробки клієнтських додатків пропонованих корпорацією Oracle. Вони являють собою закінчене рішення для розробки програми для доступу до даних. Чесно кажучи, я до сих пір впевнений, що найбільш продуктивно створювати великі програми саме на Oracle Forms.


На жаль, зовнішній вигляд програм виходять за допомогою forms-reports залишає бажати кращого. До того ж вони як правило вимогливі до пам’яті. Що й змушує багатьох розробників вибирати інші засоби для своїх проектів. А дуже шкода! Співвідношення якість програми / швидкість у Forms дуже – дуже гарне!


Oracle засоби (Portal – WebDB)


Проект WebDb був спочатку написаний Tom Kyte як заміна важкому та незграбному Oracle Web Server і пізніше був включений до складу Oracle Internet Application Server як модуль mod_plsql. На додаток до можливості писати web форми на мові pl / sql, Portal додав величезна кількість можливостей –



  1. Створювати форми, звіти, графіки прямо за допомогою web-інтерфейсу

  2. Управляти доступом до цих об’єктів

  3. Створювати повноцінні корпоративні портали

Як і у випадку Oracle Forms цей продукт дозволяє швидко створювати грамотні програми, але не завжди дозволяє змінити зовнішній вигляд свого застосування. У порівнянні з Oracle Forms, цей продукт легше освоюється, простіше в експлуатації. Плата за це – обмежена функціональність.


Контроль версій


Це обов’язковий елемент будь-якого проекту. Тут навіть обговорювати нічого.


Потрібно лише розробити схему створення нових версій продукту, способи розстановки тегів. Також потрібно розробити процедуру встановлення нових версій у клієнтів.


Який продукт використовувати?


Я використовував при розробці на Unix платформах – зв’язку Emacs – CVS, в Windows – PVCS. На жаль останній є комерційним програмним забезпеченням.


На даний момент Oracle позиціонує свій продукт Oracle SCM – Software Configuration Manager як засіб роботи з версіями, але я ще його не використав.


Безпекової та надійність


Найбільш часто звичайно на практиці зустрічаються випадки, коли примірник (instance) Oracle перебувати в корпоративній мережі, за firewall. Тому відносно небагато відомо атак на собсвенно сервер через інтернет. Тим не менш, до найбільш поширених можна віднести



Список найбільш кричущих помилок можна прочитати за адресою www.nextgenss.com/papers/hpoas.pdf. Не лякайтеся відразу – ці помилки відомі Oracle і вони вже закриті патчами.


З іншого боку, зі зростанням програми, обсягів, які використовуються опцій сервера, виникають і непередбачені помилки Oracle, знамениті ora-600. З ними доводиться боротися, визначати можливі шляхи вирішення, іноді не тривіально. Хороший адміністратор намагається не допустити виникнення таких помилок, регулярно переглядаючи з’являються патчі і уважно читаючи виправлені помилки.


Список основних програмних помилок скоєних при розробці


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*