Jak rozprowadzić swoją bibliotekę tak żeby "wyszła na światło dzienne"?

0

Napisałem sobie takiego małego toola, który akurat był mi potrzebny do projektu ale pomyślałem że spakuje to do jara i sobie zatrzymam gdybym miał to wykorzystać gdzieś indziej.

Pomyślałem że fajnie by było napisać jakąś dokumentację do tego i upublicznić, myślałem o tym żeby zrobić szybko jakąś stronę www do tego, oraz wrzucić to na gita, ale ogólnie w ogóle nie wiem co jeszcze? Umieścić ją gdzieś w jakimś innym serwisie? Skąd ktoś będzie się mógł o niej dowiedzieć? O czym należy pamiętać wrzucając jakiś swój produkt? Często korzystam z bibliotek innych, ii starałem się w miarę zachować konwencjęę ale nie wiem jak mi to wyszło.

1

github

2

GitHub to repozytorium, nie scena do chwalenia się osiągnięciami - nie nadaje się na reklamę;

@TomRiddle - jeśli chcesz opublikować kod, to wrzuć go na GitHub; Ale to nie wystarczy - przyda się dedykowana strona www z opisem oraz dokumentacją; A reszta zależy od tego, czym to Twoje dzieło jest, bo z opisu nie można wywnioskować, kto będzie miał z "tego czegoś" korzystać;

PS: Zacznij od sygnatury postów.

7

GitHub: https://github.com/
Maven Central Repository: http://search.maven.org/
JitPack - Alternatywa dla Maven Central Repository: https://jitpack.io/

Dla projektów javowych najpopularniejszym sposobem publikacji bibliotek jest Maven Central Repository. Znajdują się tam chyba wszystkie najbardziej znane i najpowszechniej używane biblioteki javowe. Proces publikacji biblioteki w tym miejscu jest ciężki. Trzeba wygenerować klucze, założyć konto na OSS Sonatype, podpisać bibliotekę, wysłać archiwa, następnie stworzyć ticket (issue) na Jirze Sonatype. Trzeba tam wcześniej założyć konto. Ticket jest weryfikowany przez pracownika Sonatype. Ważne, abyś poprawnie nazwał parametr GROUP (np. com.github.username) oraz artifactId (libraryname). Najlepiej, żeby te informacje odzwierciedlały nazwy pakietów Twojej biblioteki. Jeżeli coś źle ponazywasz dostaniesz zwrotkę. Następnie Twoja biblioteka zostanie zaakceptowana i będziesz mógł ją zrealeasować poprzez stronę: https://oss.sonatype.org/ (trzeba tam wcześniej założyć konto). Potem po releasie musisz odczekać od 24h do 48h i w końcu Twoja biblioteczka ląduje na Maven Central Repository i można ją znaleźć w wyszukiwarce.
Po tym procesie możesz wbić zależność do biblioteki dla dowolnego build systemu. Najpopularniejsze znane mi systemy dla Javy, to Maven i Gradle. Podczas publikacji kolejnych bibliotek z tej samej grupy (np. com.github.username) możesz już to robić bez zakładania ticketu na Jirze. Jedynie nazwa grupy musi przejść weryfikację, której dokonuje człowiek. Jest to zrozumiałe, bo nikt nie chciałby, aby jakiś "hakier" nadpisał biblioteki z grupy: com.google. Dużo z tym zabawy, ale myślę, że warto spróbować, żeby zobaczyć, jak to wygląda i móc się potem pochwalić libeczką na Maven Central. Przeszedłem osobiście ten proces i da się. ;)

Alternatywna metoda, to wrzucenie projektu na GitHuba i import przez JitPacka. Wtedy nie trzeba się bawić w ten cały proces opisany przeze mnie z grubsza wyżej. Nie wiem, jedynie jak JitPack radzi sobie z zależnościami do innych bibliotek (Maven Central to ogarnia bez problemu dla wszystkich bibliotek, które się tam znajdują, a jest ich tam mnóstwo).

O czym należy pamiętać wrzucając jakiś swój produkt?

  • Dobre API zewnętrzne - tzn. czytelne, możliwie jak najmniejsze, jak najprostsze, z dokumentacją w JavaDoc
  • Hermetyzacja - nie udostępniaj na zewnątrz metod, których użytkownik biblioteki nie potrzebuje
  • Niemutowalność (Immutability) - nie pozwól aby, użytkownik biblioteki mógł w niepożądany sposób zmodyfikować jakiś obiekt, który nie powinien być zmieniany
  • Prostota użycia
  • Czysty kod
  • Testy jednostkowe
  • Obsługa błędów i rzucanie odpowiednich wyjątków
  • Czytelne komunikaty błędów
  • Zamieszczenie pliku README.md z opisem projektu
  • Zamieszczenie code snippetów przedstawiających użycie biblioteki
  • Zamieszczenie przynajmniej jednej przykładowej aplikacji używającej biblioteki

Dla mnie wzorem do naśladowania są biblioteki firmy Square: https://github.com/square . Polecam przejrzeć kilka projektów wraz z kodem, dokumentacją i testami. Przykładowy projekt: https://github.com/square/picasso oraz jego strona: http://square.github.io/picasso/ . Właśnie tak powinno się pisać biblioteki.

Pozdrawiam.

0

Najważniejsza jest dokumentacja - najlepiej z przykładami użycia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1