Java-бібліотека: створення, обробка, робота з файлами

Межі функціональності: вхід і вихід

Проблема в тому, що не всі дизайнери Java-бібліотек думають про своїх користувачів, про те, як API буде застосовуватися на практиці і як буде виглядати і тестуватися код.

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

Також розробники завжди повинні пропонувати користувачам більш одного конструктора. Клієнти повинні працювати зі String і Integer, щоб вони могли передавати ByteArrayInputStream при оцінюванні модулів.

Наприклад, кілька способів створення точки входу API Github з допомогою jcabi-github:

  • Github noauth = new RtGithub();
  • Github basicauth = new RtGithub(“username”, “password”);
  • Github oauth = new RtGithub(“token”).

В якості другого прикладу, як працювати з charles, Java-бібліотекою професіонала для веб-сканування, можна прописати наступне.

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

Для цього потрібно прописати щось на зразок цього:

WebCrawl graph = new GraphCrawl(…);List pages = graph.crawl();