Головна

Керівництво програмістів

Ці речі, які мають право на роботуERDDAPРJavaДля того, щоб дізнатися більше про класи.

Отримання коду джерела

 

  • Код джерела на GitHub Початковий код для останніх публічних версій і версій розробки також доступний черезГітХубй Про насВікідля цього проекту. Якщо ви хочете змінити вихідний код (і, можливо, мати зміни, внесені в стандартERDDAP™Розсилка) , це рекомендований підхід.

ERDDAP™залежності

ERDDAP™використовує Maven для залежності коду завантаження, а також деякі статичні файли посилань (Статус на сервери) й Це робиться, щоб уникнути зберігання багатьох великих файлів в репозиторію. Ви можете використовувати mvn compile, і це буде фіксувати залежності та файли реф. Ви також можете використовувати mvn пакет для створення військового файлу. Ви можете вручну завантажити файли реф:

НЕ: За замовчуванням Maven буде кеш статичний посилання і тестовий архів даних завантаження і тільки витягти їх, коли нова версія завантажується. Ви можете повністю завантажити sskipResourceЗавантажити та/або skipTestResourceЗавантажити властивості Maven (mvn -DskipResourceЗавантажити пакет й) й Видобуток сил, набір -Ddownload.unpack=true і -Ddownload.unpackWhenChanged=false.

  • ERDDAP™і його субкомпоненти мають дуже ліберальний, відкритийліцензії, так що ви можете використовувати і змінити вихідний код для будь-якого призначення, для отримання прибутку або не для отримання прибутку. ПриміткаERDDAP™і багато субкомпонентів мають ліцензію, які вимагають, що ви визнаєте джерело коду, який ви використовуєте. Про насКредитуванняй Будь ласка, будь ласка, будь ласка, будь ласка, зв'яжіться з нами.

  • Використовуйте код для інших проектів

Під час використання деталейERDDAP™Введіть номер мобільного, який Ви вказали при укладаннi договору з банком - для ідентифікації. Ми не обіцяємо підтримувати інші використання нашого коду. Git і GitHub стануть вашими основними рішеннями для боротьби з цим -- Git дозволяє об'єднати наші зміни в ваші зміни. Для багатьох ситуацій, де можна захопитиERDDAP™у вашому проекті ми думаємо, що ви знайдете набагато простіше встановити і використовуватиERDDAP™як це, а потім писати інші послуги, які використовуютьERDDAPПослуги Ви можете налаштувати самостійноERDDAP™установка сирого в годину або два. Ви можете налаштувати самостійноERDDAP™установка в полірований спосіб за кілька днів (залежно від кількості та складності Ваших даних) й Але зламати частиниERDDAP™для власного проекту, ймовірно, приймають тижні (і місяці зловити тонкощі) і ви втратите можливість включення змін і виправлення помилок з подальшихERDDAP™релізи. Ми (очевидно) думаю, що існує багато переваг для використанняERDDAP™як і зробити вашERDDAP™встановлення загальнодоступних. Однак, в деяких випадках, ви не можете зробити вашуERDDAP™встановлення загальнодоступних. Після того, як ваша послуга може отримати доступ і використовувати Ваш приватнийERDDAP™і Ваші клієнти не знаютьERDDAP™й

Півлюкс

Або, є ще один підхід, який ви можете знайти корисний, який знаходиться на відстані між дайвінгомERDDAPКод і використанняERDDAP™як самостійний веб-сервіс: У класі EDD існує статичний метод, який дозволяє зробити екземпляр гарнітура (на основі специфікаціїdatasets.xml) : oneЗ альбомуDataset Хмл (Ступінь TDatasetID) It повертає екземпляр EDDTable абоEDDGridдатасет. Зважаючи на це, ви можете викликати \ makeNewFileForDapQuery (String userDapQuery, String dir, String fileName, String файл Головна) Вкажіть екземпляр, щоб зробити файл даних, конкретний файлType, з результатами запиту користувача. Таким чином, це простий спосіб використанняERDDAP- способи запиту даних і отримання файлу у відповідь, так само як клієнт буде використовуватиERDDAP™веб-додаток. Але цей підхід працює в межах вашого проектуJavaПрограма та об’єднує необхідність сервера додатків, таких як Tomcat. Ми використовуємо цей підхід для багатьох тестів на блок EDDTable таEDDGridПідкласи, тому ви можете побачити приклади цього в початковому коді для всіх класів.

Розробка середовища

  • Є налаштуванняКошикіДокерв GitHub, хоча релізи очікується запуску в Tomcat.

  • Додатково : НалаштуванняERDDAP™в Tomcat ЗERDDAP™Ми рекомендуємо дотримуватися стандартуІнструкція по монтажущоб встановити Tomcat, а потім встановитиERDDAP™в каталозі Tomcat. Серед інших речей,ERDDAP™Призначений для встановлення в структуру каталогу Tomcat і очікує Tomcat, щоб забезпечити деякі файли .jar.

  • ERDDAP™не вимагає конкретного IDE (Кріс в основному використовує Visual Studio Code, Боб використовується EditPlus) й Ми не використовуємо Eclipse, Ant та ін.;ERDDAP- пов'язана з ними підтримка. Проект використовує Maven.

  • Ми використовуємо пакетний файл, який видаляє всі файли .class у вихідного дерева, щоб переконатися, що у нас є чистий компіляція (з javaC) й

  • В даний час ми використовуємо плагін Adoptium jdk-21.0.3+9 для компіляції gov.noaa.pfeg.coastwatch.TestAll (вона має посилання на кілька класів, які не будуть скомпільовані інакше) і запустити тести. З причин безпеки, практично завжди краще використовувати останні версіїJava21 і Tomcat 10.

    • Коли ми запускаємо javaC або java, поточний каталог tomcat/webapps/erddap/WEB-INF .

    • Наш javascript і java-класпат classes;./././lib/servlet-api.jar;lib/*

    • Так твоїй javaC командний рядок буде щось схоже\ `javac -encoding UTF-8 -cp class;././lib/servlet-api.jar;lib/* class/gov/noaa/pfel/coastwatch/TestAll.java```

    • І твоїй java командний ряд буде щось схоже\ java -cp class;././lib/servlet-api.jar;lib/* -Xmx4000M -Xms4000M JavaScript licenses API Веб-сайт Optional: Ви можете додати -verbose:gc, який розповідаєJavaдля друку статистика збору сміття.

    • Тестування Всі компіляції, всеERDDAP™скомпільовано потреби. Кілька класів скомпільовані, які не потрібні дляERDDAP™й Якщо компіляція TestAll досягається, але не компілює певного класу, що клас не потрібен. (Є кілька незакінчених класів.)

  • У декількох випадках ми використовуємо 3-й код джерела замість файлів .jar (необов'язково дляDODS) і трохи змінили їх, щоб уникнути проблем, що компілюють зJava21. Ми часто зробили інші незначні модифікації (необов'язковоDODS) з інших причин.

  • Більшість класів мають тестові методи в їх пов'язаних файлах src/test. Ви можете запустити тести JUnit з командою mvn test. Це завантажить кілька поштових файлів даних, які тести спираються на останні релізиERDDAPУкраїнська Тестий   НЕБЕ: Maven кеш завантажує, але розпакувати завантажені архіви на кожному виконанні, що займає час. Пропустити завантаження Ви можете вказати на sskipTestResourceЗавантажити нерухомість до Maven (mvn -DskipTestResourceЗавантажити пакет й) й

Важливі категорії

Якщо ви хочете подивитися на вихідний код і спробувати дізнатися, якERDDAP™робота, будь ласка,

  • Код маєJavaКоментарі до Doc, алеJavaНе було створено Docs. Відчуйте їх безкоштовно.

  • Найголовіші заняття (в тому числі зазначених нижче) gov/noaa/pfel/erddap.

  • Про насERDDAP™Клас має найвищі методи рівня. Подовжує HttpServlet.

  • ERDDAP™передається запит на екземпляри підкласівEDDGridабо EDDTable, які представляють собою індивідуальні дані.

  • EDStatic має більшу частину статичної інформації та налаштувань (e.g., з налаштування.xml та повідомлень.xml) і пропонує статичні послуги (Наприклад, відправлення електронної пошти) й

  • EDDGridі EDDTable підкласи задають запит, отримайте дані від специфічних методів підкласу, потім відформатуйте дані для відповіді.

  • EDDGridПідкласи відштовхують дані в GridDataAccessor (контейнер внутрішніх даних для сітчастих даних) й

  • EDDTable subclasses штовхати дані в субкласи TableWriter, які напишіть дані на конкретний тип файлу на-fly.

  • Інші заняття (Наприклад, курси низького рівня) Також важливо, але, швидше за все, ви будете працювати, щоб змінити їх.  

Код Внески

  • GitHub Питання Якщо ви хочете допомогти, але не маєте проекту, див. списокGitHub ПитанняБагато хто з яких проектів можна взяти на себе. Якщо ви хочете працювати над питанням, будь ласка, вказавши себе, щоб вказати на інші, які ви працюєте на ньому. Питання GitHub - це найкраще місце для обговорення будь-яких питань, як приступити до роботи з цим питанням.

  • Якщо зміни, які ви хочете зробити, є одним з наступних випадків, будь ласка, створітьGitHub Питаннявказуючи зміни, які ви хочете зробити. Після того, як зміни завершуються, зробіть запит, щоб запитувати злиття. Загальні зміни включають:

    • Ви хочете писати інший підкласEDDGridабо EDDTable для обробки іншого типу джерела даних. Якщо так, рекомендуємо вам знайти найближчий існуючий підклас і використовувати цей код як початкова точка.

    • Ви хочете написати інший метод SaveAs_FileType_. Якщо так, рекомендуємо вам знайти найближчий існуючий метод SaveAs_FileType_EDDGridабо EDDTable і використовувати цей код як початкова точка.

Ці ситуації мають перевагу, що код, який ви пишете, є самодотриманням. Не потрібно знати всі деталіERDDAP- внутрішні. І це буде просто для нас, щоб включити ваш код вERDDAPй Зверніть увагу, що якщо ви подаєте код, ліцензія буде потрібно сумісна зERDDAP™ ліцензія (Наприклад,АфішайБДСабоМІТ-X) й Ми зараховуємо ваш внесок укредитий

  • Якщо у вас є функція, яку ви хочете додатиERDDAP, рекомендується спочатку створити дискусійну нитку вGitHub Обговоренняй Для значних функцій / змін Технічна дошка обговорюватиме їх і вирішується, чи затверджувати її додаватиERDDAP™й

Рішення про внесення змін до коду

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

  • Про насERDDAP™Проект реалізується НАТД (NOAAТехнічний директор) з входом з технічної дошки. З 2007 (початок початкуERDDAP) через 2022, що був Боб Симони (також Засновник-Лідер) й Почати в Січень 2023, тобто Кріс Джон. В основному НАТД несе відповідальність заERDDAP, так s/he має остаточне слово про рішенняERDDAP™код, недорогий про дизайн і чи буде прийняти надана заявка на витяжку чи ні. Необхідно бути таким чином, частково з точки зору ефективності (він працює відмінно для торвальнірів Linus та Linux) і частково з причин безпеки: Для забезпечення безпеки та цілісності коду необхідно повідомити про те, що люди ІТ-безпеки, які мають відповідальність за безпеку та цілісність коду.  

  • NATD не гарантує, що ви приймаєте свій код. Якщо проект не працює, і ми сподівалися, і якщо його не можна скинути, НАТД не буде включати проект в проектERDDAP™розподіл. Будь ласка, не відчуйте себе погано. Інколи проекти не працюють і сподіваються. Це відбувається для всіх розробників програмного забезпечення. Якщо ви дотримуєтесь інструкцій нижче, ви значно збільшите свої шанси на успіх.  

  • Найкраще, якщо зміни мають загальний інтерес і корисність. Якщо код відрізняється Вашою організацією, то, ймовірно, краще підтримувати окрему гілкуERDDAP™для вашого використання. Осьом це робить. На щастя, Git робить це легко зробити. NATD хоче підтримувати послідовне бачення дляERDDAP, не дозволяючи йому стати проектом мийки кухні, де кожен додає особливу функцію для свого проекту.  

  • ПідписатисяJavaКодові конвенції. В цілому, ваш код повинен бути гарним, і слідувати оригінальнимJavaКодові конвенції: покласти файли .class в належному місці в структурі каталогів, дати .class файли відповідне ім'я, включають правильне ім'я, включають в себе правильне місце в структуру каталогу, дати .class файли відповідне ім'я, включають в себе правильне ім'я,JavaКоментарі до Doc, включають //comments при старті кожного пункту коду, відступ з 4 просторами (не вкладка) , уникнути рядків >80 символів і т.д. Зміни конвенцій і вихідний код не завжди повністю до дати. При сумніві код матчу до конвенцій і не існуючого коду.

  • Використовуйте дескриптивний клас, метод і змінні імена. Що робить код простіше для інших для читання.  

  • Уникайте коду конфіденційності. У довгостроковій перспективі ви або інші люди повинні розібратися в коді, щоб зберегти його. Так, будь ласка, використовуйте прості методи кодування, які простіше для інших (в тому числі в майбутньому) щоб з'ясувати. Очевидно, що якщо є реальна перевага для використання деяких фантазійJavaФункція програмування, використовувати його, але великий документ, що ви зробили, чому, і як це працює.  

  • Робота з технічною радою перед початком роботи. Якщо ви сподіваєтесь на те, щоб отримати ваші зміни коду, виведені вERDDAP™, Технічна дошка обов'язково сподобається поговорити про те, що ви збираєтеся зробити і як ви збираєтеся це зробити, перш ніж зробити будь-які зміни до коду. Таким чином, ми можемо уникнути змін, які NATD, в кінці, не приймаємо. Коли ви виконуєте роботу, NATD та технічна дошка готові відповісти на питання, щоб допомогти вам розібратися в існуючому коді та дізнатися існуючий код. (загальний) Як зробити свій проект.  

  • Робота самостійно (якомога простіше) після запуску. На відміну від вищезазначеної "Робота з технічною дошкою", після того, як ви приступите до проекту, NATD заохочує вас працювати самостійно. Якщо НАТД має розповісти вам практично все і відповісти на багато питань (особливо, що ви можете відповісти на читання документації або коду) , після чого ваші зусилля не заощаджують час на NATD і s/he, можливо, також роблять роботу самостійно. ЦеМіфічний ман Місяцьпроблеми. Звичайно, ми повинні спілкуватися. Щоб переконатися, що проект знаходиться на трасі. Але чим більше можна працювати самостійно (після технічної дошки погоджується з поставленим завданням і загальним підходом) , краще.  

  • Уникайте помилок. Якщо помилка не спіймана до релізу, це викликає проблеми для користувачів (на краще) , повертає неправильну інформацію (в найгіршому) , є сином наERDDAP- репутація, і буде зберігатися на застаріломуERDDAP™установки на роки. Робота дуже важко уникнути помилок. Частина цього написання чистого коду (так легко бачити проблеми) й Частина цього - тести для написання блоків. Частина цього є постійним ставленням помилок, коли ви пишете код. Не робіть шкоду NATD, додавши кодERDDAP™й  

  • Написати тест або тести на блок. Для нового коду слід писати JUnit тести в тестовому файлі. Будь ласка, напишіть принаймні один конкретний метод тестування, який ретельно перевірить код, який ви пишете і додайте його до файлу тесту класу JUnit, щоб він автоматично працює. Навігація (і пов'язані) Тести є одним з кращих способів зловити помилки, спочатку і в довгостроковій перспективі (як інші речі змінятьсяERDDAP™) й Як сказав Боб, "Не тести, що дає мені сон вночі."  

  • Щоб зрозуміти та приймати зміни у бажанні. Частина того, що написано метод тестування блоку (й) й Частина, яка обмежує ваші зміни до одного розділу коду (або один клас) якщо це можливо. NATD не прийматиме жодних запитань про внесення змін до коду. НАТД розповідає про людей з ІТ-безпеки, які мають відповідальність за безпеку та цілісність коду. Якщо є занадто багато змін або вони занадто важко розібратися, то це просто занадто важко перевірити зміни правильні і не вводити помилки або проблеми безпеки.  

  • Збережіть його просто. Хороша загальна тема для вашого коду: зберегти його просто. Простий код для інших (в тому числі в майбутньому) читати і підтримувати. Ми можемо самі зателефонувати одержувачу і узгодити зручний час.  

  • Підбір довгострокової відповідальності за ваш код. У довгостроковій перспективі краще, якщо ви берете на себе відповідальність за збереження вашого коду і відповіді на питання про це (Наприклад, вERDDAP™Українська) й Як зазначається деякі автори, код є відповідальністю, а також активом. Якщо ви не знаєте, що ваш код краще, ніж ви (також так, що є стимулом, щоб уникнути помилок в першому місці) й Компанія NATD не просить твердих зобов’язань забезпечити постійний супровід. НАТД - це просто казка, що робить технічне обслуговування буде значно оцінено.