
DevDocs je web aplikacija otvorenog koda koja kombinira dokumentaciju za puno razvojnih alata u jedno sučelje za pretraživanje.
Koristim DevDocs od prije nego što je freeCodeCamp uopće postojao i tijekom godina sam ga pjevao.
Brzina i jednostavnost DevDocsa pravi su dašak svježeg zraka. Svaki je API postavljen u istoj jasnoj hijerarhiji.

Dakle, kad je došlo vrijeme za dizajn vodiča za freeCodeCamp prošlog ljeta, već sam imao na umu jasan predložak. Htjeli smo stvoriti sučelje nalik DevDocsu za istraživanje programskih koncepata.
Posavjetovao sam se s tvorcem DevDocsa Thibautom Couroubleom. Bio je koristan u objašnjenju kako je DevDocs radio i obrazloženju nekih od njegovih dizajnerskih odluka.

On i ja smo održavali kontakt. Razmijenili smo ideje kako napraviti alate koji će biti pristupačniji programerima u dijelovima svijeta bez pouzdanih brzih internetskih veza.
Tada mi se prije nekoliko mjeseci Thibaut obratio o mogućnosti darovanja projekta DevDocs zajednici freeCodeCamp, kako bismo mogli nastaviti razvijati projekt više od onoga što je on u stanju raditi kao usamljeni održavatelj.
I danas - točno 5 godina nakon što je Thibaut stvorio DevDocs - uzbuđen sam što mogu objaviti da je DevDocs sada službeno dio zajednice freeCodeCamp!
Kratka povijest DevDocsa
Thibaut je francuski programer koji sada radi kao stariji voditelj razvoja u Shopifyu u Ottawi u Kanadi.
Thibaut je stvorio DevDocs prije točno 5 godina danas, 26. ožujka 2013. U to je vrijeme želio bolji način za brzi pristup dokumentaciji Mozilla Developer Network.
Izvorno, DevDocs je bio samo obična mapa s dokumentacijom na njegovom tvrdom disku, za njegovu osobnu upotrebu - kakvu su mnogi programeri imali pri ruci za referencu. Zatim, nakon nekoliko mjeseci razvoja, Thibaut je 18. lipnja 2013. godine pokrenuo DevDocs kao besplatnu web aplikaciju.
Thibaut je isprva držao DevDocs zatvorenim. Ali 24. listopada 2013. otvorio ga je.
Od tada je projekt DevDocs akumulirao više od 17 000 GitHub zvijezda, zajedno s 66 suradnika (iako je Thibaut i dalje njegov najplodniji suradnik).

Thibaut je napisao desetke skripti za struganje kako bi izašao i automatski preuzeo dokumentaciju iz različitih projekata, od kojih je svaka pažljivo podešena kako bi stvorila dosljedno iskustvo čitanja i generirala dobre rezultate pretraživanja.
Tijekom sljedeće dvije godine Thibaut je dodao mnoga poboljšanja poput nove dokumentacije, prečaca na tipkovnici, boljeg pretraživanja, mobilne podrške i mogućnosti prebacivanja na tamnu temu za noćno gledanje.
Tada je 2015. Thibaut DevDocs učinio potpuno funkcionalnim offline. Odjednom je svatko mogao preuzeti čitav niz dokumentacije za pristup izvan mreže. Sve ove datoteke pohranile bi se u pregledniku, zahvaljujući pametnom korištenju nove tehnologije nazvane IndexedDB.
Početkom 2016. Thibaut je dodao podršku za izradu verzija. Umjesto da se ograniči samo na najnoviju verziju dokumentacije, DevDocs je sada počeo podržavati više verzija za svaki projekt i knjižnicu.
Ispostavilo bi se da su te dvije glavne nove značajke točka preokreta u DevDocsovoj korisničkoj bazi. Projekt je rastao i postao jedan od najčešće korištenih alata u zajednici programera.

Ako želite vidjeti dokle je DevDocs stigao u posljednjih pet godina, usporedite ove dvije teme Hacker News:
- Prva nit iz lipnja 2013. - uglavnom ljudi nepovoljno uspoređuju DevDocs s drugim projektima dokumentacije (od kojih su mnogi sada neaktivni).
- Druga nit s kraja 2017. - u jednoj od najcjenjenijih tema svih vremena Hacker News, ljudi hvale DevDocs - posebno zbog njegove brzine. Poruka je jasna: vaš projekt ne mora biti prvi takve vrste - jednostavno ga se morate pridržavati i neprestano ga poboljšavati i možete postati vodeći.
Danas više od 100 000 programera koristi DevDocs kao referencu svakog mjeseca.
Kako DevDocs radi ispod haube
Jedno od najčešćih pitanja koje ljudi postavljaju Thibautu: kako je DevDocs postao tako brz?
Thibaut pripisuje brzinu DevDocsa mnogim čimbenicima:
- DevDocs je web-aplikacija Ruby s jednom stranicom s malom pozadinom.
- Kada posjetite DevDocs.io, nakon početnog učitavanja stranice, sve se sljedeće datoteke (uključujući datoteke s dokumentacijom) dohvaćaju putem munjevite mreže za isporuku sadržaja (CDN).
- Koristi GZIP, HTTP predmemoriranje, predmemoriju aplikacija, povezane i umanjene JavaScript i CSS
- Nema oglasa (oglasi sve usporavaju)
- Koristi localStorage kao dodatnu razinu predmemoriranja nekih sredstava
- Koristi predmemoriju u memoriji za stvari poput trenutne navigacije unatrag i naprijed
- Koristi IndexedDB za lokalno predmemoriranje cijelog skupa dokumentacije na vašem računalu
- Iz dokumentacije se uklanja sva udaljena imovina i nepotrebno označavanje, što rezultira manjim datotekama
- Koristi optimizirano pretraživanje na strani klijenta
- Ima neblokirajuće i asinkrono korisničko sučelje
- Sadrži optimizirano DOM stablo s paginiranim popisom bočne trake, tako da ne mora odmah generirati 1.000 čvorova
- Ima jednostavno korisničko sučelje koje izbjegava užitke poput sjena ili animacija
Napokon, DevDocs ne koristi nijedan jQuery niti bilo koji JavaScript okvir. Sve DOM operacije implementiraju se ručno, što ih čini najbržim što mogu. (Thibaut kaže da ne bi preporučio ovaj pristup bez okvira za većinu aplikacija, ali dobro funkcionira za DevDocs.)
Kako se možete uključiti
Trenutno tražimo strastvenog i iskusnog programera za Ruby koji je zainteresiran da postane dugogodišnji suradnik DevDocsa.
Također tražimo ljude zainteresirane za olakšavanje doprinosa DevDocsu pisanjem dokumentacije i refaktoring koda.
Također možete pomoći prijavljivanjem grešaka ili zahtjeva za značajkama koje imate u programu za praćenje problema i pomažući ih u trijaži ili ispravljanju.
Možete se pridružiti chat sobi suradnika DevDocs na Gitteru i predstaviti se.
I na kraju, možete pomoći koristeći DevDocs i podijeliti ga sa svojim prijateljima i kolegama. Sljedeći put kad budete trebali potražiti dokumentaciju, idite na DevDocs.io.
DevDocs možete pretraživati i tako što ćete u adresnu traku Chromea pritisnuti "devdocs" i pritisnuti karticu. A DuckDuckGo ima posebnu !dd
naredbu za pretraživanje i DevDocsa.
Pridružite mi se pozdravljajući Thibauta i DevDocse u zajednici freeCodeCamp cvrkućući mu.
Zabavite se i sretno kodiranje!