Java knjižnica: ustvarjanje, obdelava, delo z datotekami

Java je eden od stebrov odprtokodnega sveta. Vsak od njegovih projektov uporablja druge odprtokodne aplikacije, dovolj jih je v omrežju in uporabnikom ni treba "izumljati kolesa". Vendar pa se pogosto zgodi, da razvijalci potrebujejo posebno funkcionalnost Java knjižnice in nimajo pojma, kako jo ustvariti.

Ključna načela oblikovanja

Ponovna uporaba kode je ena izmed svetih gral računalniškega programiranja. Pisanje kode, ki jo je mogoče zlahka ponovno uporabiti, zahteva kompleksne spretnosti, vendar se jo lahko vsakdo nauči. Jezik Java lahko pomaga ustvariti dobro multi-platformo. Za to mora razvijalec imeti osnovno znanje programiranja, vključno z zmožnostjo ustvarjanja, prevajanja in izvajanja enostavnih programov iz ukazne vrstice.


Več ključnih načel dobre zasnove knjižnice Java:
  • Jasno mora prenesti svojo notranjo strukturo tako, da jo uporabnik pozna, tudi če ne razume, kako deluje od znotraj.
  • Inkapsulacija je togost in izboljšanje kode vmesnika, zaradi česar je bolj zanesljiva in razumljiva.
  • Razširljivost je ustvarjanje knjižnice Java, ki dobro opravlja svojo nalogo in omogoča izpolnjevanje manjkajočih delov za potrebe določenega razvijalca.
  • Dedovanje - zagotavlja način za nastavitev kode, ne da bi morali poznati vse podrobnosti kode,je prilagodljiv
  • Zagotavljanje načina za pridobivanje informacij o odpravljanju napak iz kode - pomaga uporabnikom najti lastne napake.
  • Funkcionalne meje: vhodni in izhodni

    Težava je v tem, da vsi oblikovalci Java knjižnic ne razmišljajo o svojih uporabnikih, kako se bo API uporabljal v praksi in kako izgleda koda in jo preizkuša.


    Meje funkcionalnosti so morda najpomembnejša tema. Dobra praksa je, da se vse odvisnosti prenesejo preko konstruktorjev in njihove konciznosti z več parametri. Če potrebujete konstruktorja z več kot tremi ali štirimi parametri, potem je jasno, da mora biti koda reorganizirana. Prav tako morajo razvijalci uporabnikom vedno ponuditi več kot enega oblikovalca. Stranke bi morale delati s String in Integer, tako da lahko pri ocenjevanju modulov posredujejo ByteArrayInputStream. Na primer, več načinov za ustvarjanje vhodne točke Github API z uporabo jcabi-github:
  • Github noauth = new RtGithub ();
  • Github basicauth = novo RtGithub ("uporabniško ime", "geslo");
  • Github oauth = novi RtGithub ("žeton").
  • Kot drugi primer, kako delati s charlesi, knjižnica Java Professional za pajkanje po spletu, lahko predpišete naslednje.
    Predloge se ne smejo prezreti. Spremenljivka indexPage je URL, iz katerega naj bi se vsebina pajkala, in gonilnik je uporabljen brskalnik. Privzeto ne more storiti ničesar, ker ni znano, kateri brskalnik je nameščen na delujočem računalniku. Izhod je potreben predvsem za knjižnico, ki komunicira z zunanjim svetom. Tukaj morate odgovoriti na vprašanje, kako boobdelati
    Za to morate predpisati nekaj takega: WebCrawl graph = new GraphCrawl (), List pages = graph.crawl ();

    Vmesnik in tretje osebe

    Razvijalec mora vedno uporabljati vmesnike in uporabnik mora sodelovati s kodo samo s strogimi pogodbami. Na primer, v knjižnici jcabi-github je razred RtGithub si edini, ki ga vidi.
    Zgornji fragment ustvari aplikacijo v skladišču eugenp /tutorials. Uporabljajo se kopije repo in izdaje, vendar dejanske vrste niso nikoli razkrite. Zgoraj opisani scenarij je mogoče razrešiti, potem pa bo razvit algoritem onesnažen z velikim številom standardne kode. Vmesniki prav tako zagotavljajo enostavno razširitev in združljivost z nazaj. Po eni strani morajo razvijalci spoštovati že izdane pogodbe, na drugi strani pa uporabnik razširja predlagane vmesnike: lahko jih okrasi ali napiše alternativne izvedbe. Dobra knjižnica je preprosta. Koda mora rešiti problem in biti funkcionalna. Če potrebujete veliko odvisnosti. Verjetno razvijalec poskuša pokriti preveč funkcij in mora projekt razdeliti v nekaj manjših. Projekt mora biti čim bolj pregleden. Najboljši primer je uporaba SLF4J z API-jem za beleženje. Ne bi smeli neposredno log4j, morda bo razvijalec želel uporabiti druga orodja za beleženje. Povezovanje knjižnic Java z dokumenti, ki potekajo skozi projekt, prehodno opravlja, da niso vključene nevarne odvisnosti, kot sta xalan ali xml-apis. Na svetu je na stotine tisočevprogramerji morajo poznati le majhno število najbolj funkcionalnih modulov.

    Knjižnica modula za testiranje

    Razvijalci imajo zelo pogoste modele dnevnikov, ki jih potrebujejo v vsakem projektu. Še posebej pomembno za strežniške aplikacije, saj so revije postavljene samo tam, kjer lahko vidite, kaj se dogaja v njih. Kljub temu, da JDK prihaja z lastno knjižnico dnevnikov, obstajajo boljše alternative, kot sta Log4j, SLF4j in LogBack. Razvijalec Java mora poznati prednosti in slabosti knjižnic revij in vedeti, zakaj je uporaba SLF4j boljša od preprostega Log4j.
    V sodobnem svetu spletnih storitev in interneta stvari je JSON postal protokol prenosa za prenos informacij od odjemalca v strežnik. XML je nadomestil kot najprimernejši način za prenos informacij, ne glede na platformo. Žal JDK nima knjižnice JSON. Vendar obstaja veliko dobrih modulov tretjih oseb, ki vam omogočajo analizo in ustvarjanje sporočil, kot je Jackson. Spletni razvijalec mora poznati vsaj eno od teh knjižnic. Modularno testiranje je najpomembnejša značilnost, ki loči rednega razvijalca od profesionalca. Programerjem je pogosto oproščeno, da ne napišejo modularnih testov, najpogostejša utemeljitev za pomanjkanje takšnega testiranja pa je pomanjkanje izkušenj in znanja priljubljenih knjižnic modularnih knjižnic, vključno z JUnit, Mockito in PowerMock.

    Za razvijalce Java je na voljo več dobrih knjižnic tretjih oseb splošnega pomena, kot sta Apache Commons in Google Guava. Poenostavljajo veliko nalog. Kako poštenoJoshua Blich je dejal: "Učinkovita Java", ni smiselno izumljati kolesa, bolje je uporabiti preizkušene in preizkušene module namesto pisanja lastnih podprogramov. Razvijalec Java je koristen za spoznavanje Google Guave in knjižnice Apache Commons.

    Platforma s podporo za HTTP

    Mnogim razvijalcem ni všeč pomanjkanje podpore HTTP s strani JDK. Povezavo HTTP lahko namestite z razredom java.net tretjih osebnih odprtokodnih knjižnic, kot sta Apache HttpClient in HttpCore. Čeprav ima JDK 9 podporo HTTP 2.0 in izboljšano podporo za HTTP, strokovnjaki priporočajo, da se razvijalci seznanijo s priljubljenimi knjižnicami odjemalcev HTTP, vključno s HttpClient in HttpCore.
    Obstajajo knjižnice za razčlenjevanje XML, vključno z Xerces, JAXB, JAXP, Dom4j in Xstream. Xerces2 je nova generacija visoko zmogljivih, popolnoma združljivih analizatorjev XML v družini Apache Xerces. Nova različica Xercesa predstavlja svoj Xercesov vmesnik (XNI), popolno platformo za ustvarjanje komponent in konfiguracij razčlenjevalnika, ki je izjemno modularna in enostavna za programiranje. Razčlenjevalnik Apache Xerces2 je referenčna izvedba XNI, toda druge konfiguracijske komponente se lahko zapišejo z uporabo lastnega vmesnika Xerces. Dom4j je še ena prilagodljiva struktura XML za ustvarjanje knjižnice Java.
    Programi v resničnem svetu morajo v eni ali drugi obliki delovati z Microsoft Officeom. Mnoge od njih bi morale zagotavljati funkcionalnost za izvoz podatkov v Excel, in če to potrebujete iz aplikacije Java, potrebujete API API za Apache. To je zelo bogata knjižnica, ki vam omogoča branje in branjenapišite datoteke XLS iz java programa. Če programer napiše okvir, ki generira kodo ali komunicira z bajtno kodo, potem potrebuje knjižnico z bajtno kodo. Omogoča vam branje in spreminjanje bajtne kode, ki jo generira program. Nekateri popularni knjižnični bajti so javassist in Cglib Nodep. Program Java Assistant Assistant omogoča preprosto manipulacijo bytecard. ASM je še en uporaben modul za njegovo urejanje.

    Razširjena oblika PDF

    Podobno kot v Microsoft Excelu so knjižnice PDF še ena pogosta oblika. Če želite podpirati funkcionalnost PDF v aplikaciji, na primer izvoz podatkov v datoteke PDF, lahko uporabite module iText in Apache FOP. Obe zagotavljata uporabno funkcionalnost, povezano s PDF-jem, vendar je iText boljši. Do Jave 8 so imeli podatki in časovni moduli JDK pomanjkljivosti, ker niso bili usmerjeni v tok in so bili predmet napak. Razvijalci Java so se oprli na JodaTime, da bi izpolnili zahteve glede datuma in časa. JDK 8 nima razloga za uporabo Jode, ker uporabnik prejme te funkcije v novem datumu in času API-ja, vendar je za staro različico Jave vredno raziskati to knjižnico. Kljub temu, da ima JDK bogato zbirko, obstajajo moduli drugih proizvajalcev, ki nudijo več funkcij, kot so Apache Commons, Goldman Sachs, Google in zbirka zakladov. Knjižnica Treasure je še posebej uporabna, ker zagotavlja visoke hitrosti rednih in primitivnih zbirk za Javo. Javax.mail in Apache Commons Email nudita API-je za pošiljanje e-pošte iz Jave. Zgrajen je na API-ju JavaMail, ki je zasnovan za poenostavitev dela.

    Kriptografski paket kodekov

    Apache Commons vsebuje preprost kodirnik indekoderji za različnih oblikah, kot so Base64 in šestnajstiški. Poleg tega se pogosto uporablja za kodiranje in sprejemnikov podpira fonetične kodiranje pripomočke. Knjižnice vgrajeni SQL baze podatkov, kot so H2, ki se lahko vgrajeni v Java-aplikacije, kot nalašč za testiranje SQL skripte in testov tek na enoto, ki zahtevajo baze podatkov. Vendar, H2 - ni edina baza podatkov pa je tudi izbira Apache Derby in HSQL. Odpravljanje JDBC knjižnica za lažjo ustanovitev, na primer, P6spy. Ta modul, ki omogoča enostavno prestreči podatkovne baze podatkov, in jih registrirati brez spreminjanja kode aplikacije. Lahko jih uporabite za prijavo SQL poizvedb in svoj čas. Na primer, če PreparedStatment in CallableStatement uporablja v kodeksu, ki jih lahko posnamete natančno Knjižnica klic s parametri in časa, potrebnih za izvedbo. Protokol Blažilniki Google - je način kodiranja strukturiranih podatkov v učinkovite, vendar razširljiv format. To je bogatejša in boljša alternativa serijsko Java. Nekateri uporabna spletna knjižnica - Netty in Apache MINA. Če razvijalec napiše program, v katerem se opravljajo naloge mreženje nizki ravni, da uporablja te module.

    Java JSON knjižnica

    je robustna knjižnica za JSON serijsko /deserializatsiyi. Tu lahko najdete informacije o Jackson GitHub skladišče.
    To je pod pogojem, Doug Krokfordom in je bil uveden v JavaEE platformi 7 kot del pobude 353 "Zahteva za specifikacijo Java» (JSR) je samostojen in izvajanje, ki jih je mogoče vključiti v SE, ki se začne z različico 8. Deveti sprememba zagotavlja svojo podporo JSON vPredlog za izboljšanje pobud (JEP) 198. Prednosti Jacksona:
  • Pogosto se uporablja, zlasti s strani spomladanske skupnosti.
  • Zagotavlja odlično funkcionalnost.
  • Delo dobro deluje dolgo.
  • Dejavna razvojna skupnost dobro podpira.
  • ​​
  • Ima dobro dokumentacijo.
  • Podpira fokus s spremljanjem ene knjižnice Java /JSON.
  • Tu so najpomembnejši Jacksonovi razredi in metode, ki zaporedno /deserializirajo v JSON:
  • ObjectMapper - Konstruira Javo in JSON.
  • ObjectMapper.writeValue - Pretvori podatkovni tip Java v JSON in v tem primeru izhodov iz Writerja.
  • ObjectMapper.readValue - Pretvori JSON v podatkovni tip Java.
  • Iz ukazne vrstice zaženite preskus z eno enoto na naslednji način: cd chapter-4 /speaker-test + test gradle - testi org.jsonatwork.ch4.BasicJsonTypesTest +

    Poučevanje knjig Horstmanna

    Raznolikost knjižnic prisili programerje, da najdejo izčrpen, a kratek vodnik do vseh funkcij Java SE 9. Tako pomagajo pri Horstmannovi knjigi, ki je še posebej zanimiva za začetnike pri deseti izdaji knjige "Java Professional Library". Kay S. Horstmann je profesor računalništva na Državni univerzi v San Joseju. Je izkušen profesionalni programer in svetovalec za velike korporacije, univerze in organizacije iz Java, C ++, Windows in programiranje na internetu. Horstmann je avtor številnih uspešnih strokovnih in akademskih knjig, vključno z Big C ++, C ++ za vse, Big Java, Object Oriented Design in Templates. Cornell Horstmann "Java Professional Library" pokriva vse pomembne vidike.jezike, ki jih mora poznati sodobni razvijalec, vključno z modularnostjo, pa tudi močnimi lambda izrazi, ki so predstavljeni v različici 8. Opisujejo osnove programiranja z uporabo Jave v bolj dostopnem in manj strogem pristopu. Knjiga zagotavlja bolj udobno in intenzivno grafično oblikovanje, ki preprosto in učinkovito prenaša kompleksne koncepte. Od drugih knjig na trgu se razlikuje po tem, da se osredotoča na teme, kot so zanke in grafični vmesniki, pri čemer se izogiba usmerjenosti k objektni orientaciji. Poudarek je na preprostih programih, ki uporabljajo že obstoječe podatkovne strukture in algoritme. Primeri in študije primerov obravnavajo praktične aplikacije, ki so lahko koristne za programerje, znanstvenike in inženirje, na primer za obdelavo tabelarnih podatkov, zbiranje informacij na internetu, grafične knjižnice Java za ustvarjanje grafičnih slik in vmesnikov.

    Načini za izboljšanje knjižnice produktivnosti

    JSON je enostaven za delo in postal je standardni format podatkov za skoraj vse. Stackify se pogosto uporablja v API-jih JSON za REST, serijski v sporočilih v čakalni vrsti in še več. Nekateri skupni nasveti za produktivnost JSON:
  • Za optimalno delovanje in funkcije uporabite več knjižnic JSON.
  • Kadar je mogoče, uporabite tokove.
  • Stisnite JSON po meri. Ker je samo besedilo, lahko računate na stiskanje do 90%. Zato uporabite "zip", kadar je to mogoče.
  • Izogibajte se analizi, če to ni potrebno.
  • Izvediteserializacija /deserizacija velikih in manjših JSON objektov. V nekaterih primerih, ko potrebujete paleto velikih predmetov, se razcepi na manjše kose.
  • Konfigurirajte analizator JSON Web API.
  • Ne zaporedjujte vseh polj, ničelnih vrednosti ali privzetih vrednosti.
  • Uporabite krajša imena polj.
  • Ročno serijsko ali razčlenjevanje je lahko hitrejše.
  • Dodatki so v bistvu standardni računalniški programi, ki se izvajajo na mnogih napravah v resničnem svetu. Imajo poseben dostop do senzorjev in strojne kontrole. Proizvajalci ponujajo tako imenovane programske knjižnice, ki omogočajo sorazmerno enostavno uporabo strojne opreme v programu.

    Sorodne publikacije