JavaRush /Java Blog /Random-TL /Java. Plano ng aksyon

Java. Plano ng aksyon

Nai-publish sa grupo
Java.  Plano ng Aksyon - 1

Nilalaman:

  1. Seksyon Zero - Java Core
  2. Mga gamit
  3. JDK API
  4. Ano ang Bago sa Java 8
  5. SQL, mga database, JDBC
  6. Mga Framework
  7. Mga aklatan at balangkas para sa pagsubok
  8. Mga aklatan ng serbisyo
  9. Mga kliyente ng API
  10. Mga Pattern ng Disenyo
  11. Karagdagang kaalaman
Ano ang dapat malaman ng isang potensyal na Java Junior para makakuha ng unang trabaho o mag-aplay man lang para sa posisyon ng Trainee sa isang magandang kumpanya? Anong mga tool ang makakatulong sa isang Java programmer na maabot ang susunod na antas? Aling mga teknolohiya ang pag-aaralan at alin ang iiwan sa ibang pagkakataon? Walang karaniwang sagot sa mga tanong na ito, tulad ng walang iisang plano ng pagkilos na ganap na angkop sa lahat. Ang ilang mga kumpanya ay nagsusumikap para sa pag-unlad, patuloy na nagpapakilala ng mga bagong teknolohiya at sinusubukan ang mga kakayahan ng mga bagong bersyon ng wika, habang ang iba ay matigas ang ulo na kumapit sa mga luma. Mayroon ding mga opsyon na "gitna", at, marahil, marami pa sa kanila. Gayunpaman, naglagay kami ng roadmap o roadmap para sa isang naghahangad na developer ng Java. Sa pagsusumikap na gawin itong simple hangga't maaari, ang mga teknolohiya at paksang iyon lamang ang aming ipinahiwatig para sa karamihan ng mga "javistes". Dapat tandaan na hindi lahat ng bagay ay kailangang pag-aralan nang detalyado (ang ilan sa mga nasa itaas ay maaari lamang ma-master sa pamamagitan ng pagtatrabaho sa isang pangkat), ngunit hindi masasaktan na magkaroon ng pangkalahatang pag-unawa sa kanila.

0. Seksyon Zero - Java Core

Inilagay namin ang seksyong zero sa artikulo kung sakali, kung sakaling pumasok dito ang isang taong nagpaplano lamang na matuto ng Java at hindi alam kung saan magsisimula. Ang Java Core ay isang bagay na kahit isang baguhan ay dapat alam na alam. Iyon ay, upang malaman ang mga pangunahing bagay, upang magabayan ng kung ano ang inaalok ng wika upang malutas ang isang partikular na problema, at sa mga simpleng kaso upang mailapat ang kaalamang ito. Maaari kang magsanay ng Java Core sa JavaRush, at kung hindi mo pa ito nagagawa, iniimbitahan ka naming kumuha ng kurso ! Well, para sa lahat, ipaalala natin sa iyo ang mga pangunahing milestone ng Java Core:
  • Mga Pangunahing Konstruksyon ng Java, Mga Operator, at Mga Uri ng Data
  • OOP at ang pagpapatupad nito sa Java
  • Mga pagbubukod
  • Mga Koleksyon ng Java
  • Generics
  • Multithreading

1. Mga kasangkapan

IDE o integrated development environment

Ang pangunahing tool ng isang modernong developer ay isang IDE. Marami sa kanila ang nasa merkado ngayon, ngunit sa propesyonal na pag-unlad ng Java ay karaniwang dalawa lang ang pangalan. Ito ang libreng Eclipse , na binuo sa mga plugin , na humawak sa palad sa loob ng maraming taon nang sunud-sunod, at IntelliJ IDEA , na aktibong nagpalit ng Eclipse sa mga nakaraang taon, at ito sa kabila ng katotohanan na kailangan ng isang subscription sa Ultimate na bersyon ng ang mga propesyonal ay nagkakahalaga ng pera. Paalalahanan ka namin na sa kursong JavaRush ginagamit namin ang libreng edisyon ng Community IntelliJ IDEA, na may ilang partikular na limitasyon sa pagganap kumpara sa Ultimate. Ang pariralang "Alam ko ang IDE" ay nangangahulugang pamilyar ka sa mga pangunahing kakayahan ng kapaligiran sa pag-unlad, alam mo kung paano mag-compile, magpatakbo, mag-debug at sumubok ng mga file, at refactor code. Ang pag-master ng mga hot key ay isang magandang tulong sa pagpapabilis ng iyong trabaho. Huwag maging tamad, gumugol ng ilang oras sa pag-aaral tungkol sa mga feature ng IDE na hindi mo alam at simulang gamitin ang mga ito sa pagsasanay. At huwag pabayaan ang pag-debug, ito ay isang napaka-kapaki-pakinabang na kasanayan. Ang lahat ng mga pagkilos na ito ay makakatulong upang makabuluhang mapabuti ang bilis at kalidad ng iyong trabaho.

Mga tool para sa awtomatikong pagpupulong

Ngayon, ang mga proyekto ng Java ay kadalasang gumagamit ng mga tool tulad ng Maven at Gradle. Hindi kinakailangang pag-aralan ang mga ito nang lubusan, ngunit magiging kapaki-pakinabang na maunawaan kung paano sila naiiba sa isa't isa, kung ano ang kanilang batayan, kung ano ang mga gawain (sa Gradle) at mga yugto na may mga layunin sa Maven. Sapat na basahin ang tungkol sa mga system at mag-deploy ng ilang maliliit na proyekto sa kanila. Ito ay medyo simpleng gawin, at mauunawaan mo ang mga detalye sa totoong mga kondisyon sa trabaho.

Mga sistema ng pagkontrol sa bersyon at mga serbisyo sa online na pagho-host

Ang isang version control system ay ang tumutulong sa mga programmer na magtrabaho sa isang team sa isang karaniwang proyekto nang hindi ito "sinisira", i-synchronize ang magkakaibang piraso ng code na ginawa ng iba't ibang tao, ibalik ang mga hindi matagumpay na update at magdagdag ng mga bago. Ang pinakakaraniwan ay dalawang bersyon ng control system. Ang isa sa kanila ay ipinamahagi at tinatawag na Git, ang pangalawa ay sentralisado, tinatawag na SVN (aka Subversion). Ngayon, ang Git ang de facto na pamantayan. Ang pagtatrabaho sa system na ito ay mas maginhawa at mas madali; ito ay suportado ng lahat ng mga IDE (pati na rin ang SVN). Ang pagtatrabaho sa Git ay maaaring subukan nang mabilis at madali; sa kabutihang palad, mayroong maraming impormasyon sa paksang ito sa Internet. Halimbawa, ang interactive na aklat-aralin na GitHowTo, na available sa Russian (napakabilis na dumaan). Napakahalaga para sa isang baguhang developer na makabisado ang mga serbisyo sa online na pagho-host para sa mga sistema ng kontrol ng bersyon. Kadalasan sila ay batay sa Git at tinatawag na mga Git platform (bagaman ang ilan sa mga ito ay maaaring gumana sa iba't ibang mga sistema ng kontrol ng bersyon). Ang pinakasikat sa kanila ay ang GitHub. Ang BitBucket at GitLab ay karaniwan din. Tinutulungan ka ng mga system na ito na mag-imbak at kumuha ng code, at gawin din ang magagawa ng Git, hindi lamang sa pamamagitan ng command line, ngunit sa pamamagitan ng interface. Pinapayagan ka rin ng GitHub na suriin ang code at mag-alok ng mga solusyon sa mga problema nang direkta sa site. Doon ay makakahanap ka rin ng open source na proyekto ng ibang tao at subukang mag-alok ng sarili mong mga solusyon para mapabuti ito. Sa esensya, ang GitHub ay isang uri ng social network para sa mga developer. Kaya kung hindi mo pa nagagawa, tiyaking gumawa ng account sa GitHub at i-host ang iyong mga proyekto doon. Basahin din ang tungkol sa GitLab at BitBucket, at kung may oras ka, maaari mong subukan ang mga ito, mayroon silang mga libreng bersyon. Sa pamamagitan ng paraan, ang lahat ng mga platform na ito ay ganap na isinama sa mga modernong IDE. Java.  Plano ng Aksyon - 2

2. JDK API

Itinatampok ng seksyong ito ang mga JDK API na kailangang malaman ng isang modernong developer ng Java nang may kumpiyansa. Hindi masasaktan para sa isang programmer na tingnan ang source code ng mga library na ito paminsan-minsan, i-navigate ang mga ito, at maunawaan kung kailan kailangan itong gamitin at bakit. Side effect: kung bihasa ka sa mga API na ito, malamang na magkakaroon ka ng mas madaling panahon para sa iyong pakikipanayam.

Java Collections Framework

Ang Java Collection Framework ay isa sa pinakamahalagang API ng wikang Java at dapat malaman ito ng bawat developer. Ito ay kumakatawan sa isang hierarchy ng mga interface at pagpapatupad ng mga karaniwang istruktura ng data sa Java tulad ng listahan, naka-link na listahan, set, stack, queue, hash table, at marami pang iba. Dapat ay may mahusay na pag-unawa ang developer sa mga klase ng ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet at iba pa, at alam ang tungkol sa kanilang mga katangian. Sa partikular, kailangan mong maunawaan ang mga gastos sa oras at memorya ng isang partikular na koleksyon para sa mga karaniwang operasyon (index, paghahanap, pagpasok, pagtanggal) at, batay dito, wastong ilapat ang mga ito sa iyong mga proyekto. Ang mga koleksyon sa Java ay ipinatupad nang napakahusay, ngunit kung may pangangailangan, maaaring mag-alok ang developer ng sarili niyang pagpapatupad. Ang isang programmer na bihasa sa mga koleksyon ay maaaring pahabain o muling tukuyin ang lohika sa mga nakasulat na klase, o ipatupad ang lahat mula sa simula.

Java Concurrency API

Ang Java ay orihinal na idinisenyo upang suportahan ang parallel programming, at mula noong bersyon 5.0, kasama sa wika ang mga high-level na API para sa mga parallel na thread. Kaya't ang isang karampatang developer ng Java ay dapat lamang magkaroon ng mahusay na pag-unawa sa multithreading at magkaroon ng pag-unawa sa mga pangunahing API mula sa java.util.concurrent.* packages . Sa pinakamababa, kailangan mong malaman at malinaw na maunawaan kung ano ang Thread, Runnable, object locking at synchronization. Tiyaking maunawaan ang mga konsepto ng deadlock, livelock, kundisyon ng lahi, at kung ano ang gagawin sa lahat ng ito. Para kumpiyansa, alamin ang mga synchronizer mula sa java.util.concurrent.*, gaya ng Semaphore, CyclicBarrier, CountDownLatch, Phaser, Exchanger<V>, CompleteableFuture at iba pa. At gayundin ang Callable at Future na mga interface.

Java I/O API

Madalas na binabalewala ng mga baguhang developer ang malalim na pag-aaral ng Java I/O at Java Non-blocking I/O . Ngunit walang kabuluhan: ginagawang mas madali ng mga Java API na ito ang pagtatrabaho sa mga thread at regular itong ginagamit sa mga totoong application. Lalo na ang mga klase tulad ng File, InputStream, OutputStream, Reader at Writer mula sa java.io package, na siyang core ng Java IO API. Ang Java Non-blocking I/O (java.nio) ay isang koleksyon ng mga application programming interface na idinisenyo upang ipatupad ang mataas na pagganap ng mga operasyon ng I/O. Kabilang dito, sa partikular, ang ByteBuffer, FileChannel at Selector, bukod sa iba pa. Magkaroon ng problema upang maunawaan ang mga API na ito, hindi mo ito pagsisisihan.

Bagay ng klase ng device

Kapag naunawaan mo na ang Object superclass, sa isang kahulugan, ikaw ay magiging isang "katutubong tagapagsalita ng Java", mas alam mo ang istraktura ng OOP at maraming mga proseso. Ang klase ng java.lang.Object ay nasa pinakatuktok ng hierarchy ng klase. Bilang karagdagan sa isang mas mahusay na pag-unawa sa kung ano ang nangyayari, ang pag-alam sa mga pamamaraan ng klase ay magpapadali sa pakikipanayam—gusto lang ng mga tagapanayam na subukan ang mga kandidato sa klase ng Object at mga bagay nito.

3. Mga bagong feature sa Java 8

Sa kabila ng katotohanang lumipas na ang oras mula nang ilabas ang Java 8, at lumitaw na ang iba pang may bilang na mga update, ito ang ikawalong bersyon na naging iconic. Ipinakilala nito ang mahahalagang inobasyon na nagpapasimple, at sa ilang kahulugan ay nagbabago, ang mga diskarte sa programming sa Java. Dapat mong maunawaan kung paano gumamit ng mga expression ng lambda, pati na rin ang Stream API sa Java 8 at ang mga bagong API ng petsa at oras.

4. SQL, mga database, JDBC

Ilang mga developer ng Java ang hindi nakakaranas ng mga SQL query at database sa kanilang trabaho. Samakatuwid, mahalagang maunawaan kung ano ang SQL at relational database, kung paano gumagana ang mga ito, at makapagsulat ng mga simpleng query para makasali sa dalawang talahanayan. Para sa pagsasanay, maaari mong subukang magtrabaho sa isa sa mga DBMS, halimbawa, PostgreSQL o MySQL . Magiging maganda rin na makakuha ng pangunahing kaalaman sa mga hindi nauugnay na database, mga diskarte sa noSQL at isang mababaw na pamilyar sa DBMS MongoDB na nakatuon sa dokumento . Upang gumana sa mga database sa purong Java, maaari mong gamitin ang pamantayan ng JDBC kasama ang API na may parehong pangalan. Ito ay ipinatupad bilang java.sql package, na kasama sa JDK. Sa ngayon, bihira na itong gamitin sa purong anyo nito, ngunit madalas itong matatagpuan sa mga lumang application ng suporta, at ang mas moderno at karaniwang tinatanggap na mga tool ay kadalasang nakabatay sa pamantayang ito.

5. Mga Framework

Kabilang sa mga kinakailangan para sa isang Junior Java Developer ngayon ay mas mahahanap mo ang "kaalaman sa Spring, Hibernate, Spring Boot". Ang pag-aaral ng mga teknolohiyang ito sa iyong sarili ay isang napakahirap na gawain, ngunit gayunpaman, ito ay posible, lalo na sa isang mababaw na antas. Darating ang mas malalim na pag-unawa habang nagtatrabaho ka. Kaya.

Framework ng Spring

Halos bawat application na binuo sa Java sa mga araw na ito ay gumagamit ng Spring Framework. Ang makapangyarihang balangkas na ito ay nagbibigay ng isang partikular na sistema ng coordinate, ang gulugod kung saan binuo ang application. Ang isang Spring application ay mas madaling subukan at mapanatili. At lahat salamat sa dependency injection.

Hibernate

Ang isa pang pinakamahalagang balangkas para sa mga developer ng Java ay ang Hibernate. Ipinapatupad nito ang detalye ng JPA (Java Persistence API), na nilulutas ang mga problema sa object-relational mapping (ORM). Karamihan sa mga application ng Java ay nakikipag-ugnayan sa mga database, at kung pinag-uusapan natin ang tungkol sa mga relational na database, ang pagtatrabaho sa kanila nang walang Hibernate ay hindi maginhawa. Ang balangkas na ito ay nagbibigay sa mga developer ng ilang mahahalagang feature, lalo na, ang pag-cache at mga transaksyon sa labas ng kahon, na nagbibigay-daan naman sa kanila na ituon ang kanilang mga pagsisikap sa pagbuo ng logic ng application at pinapalaya ang programmer mula sa maraming mga gawaing mababa ang antas kapag nagtatrabaho sa mga relational database. . Ito ay makabuluhang nagpapabuti sa pagiging produktibo ng developer.

Spring MVC

Tinitiyak ng framework na ito ang pagbuo ng application ayon sa pattern ng Model - View - Controller, gamit ang maluwag na pinagsamang mga bahaging handa na. Pag-aralan ang pattern na ito (tinalakay sa ibaba ang mga pattern ng disenyo) at ang lohika ng Spring MVC. Sa pagsasagawa, ito ay madalas na ginagamit.

Boot ng tagsibol

Gamit ang tamang kasanayan, pinapadali ng Spring ang paggawa ng Java application. Sa turn, pinapadali ng Spring Boot ang paggawa ng Java application batay sa Spring. Binibigyang-daan ka ng Spring Boot na madaling gumawa ng mga ganap na Enterprise Spring application na maaaring ilunsad nang may kaunting pagsisikap: inaalis ng auto-configuration ang karamihan sa mga abala na nauugnay sa pag-configure ng mga Spring application.

6. Mga aklatan at balangkas para sa pagsubok

Ang ilang mga developer sa hinaharap ay sigurado na ang pagsubok ng code ay hindi ang kanilang pag-aalala, ngunit ang mga espesyal na tao na tinatawag na mga tagasubok. Sa pagsasagawa, hindi ito ang kaso. Ang pagsubok, lalo na ang unit testing (pinaka madalas na tinatawag na unit testing), ay isang napakahalagang kasanayan para sa bawat programmer. Bukod dito, ang mga bagong dating na kakasimula pa lang sa kanilang mga tungkulin ay kadalasang naatasang sakupin ang code ng isang tao gamit ang mga unit test. Kaya lubos naming inirerekumenda ang pag-aaral sa JUnit library at pagbuo ng ugali ng pagsulat ng mga unit test para sa iyong code. Tingnan din ang balangkas ng Mockito, na maaaring gamitin sa JUnit upang lumikha ng mga mock dependency na klase.

7. Mga aklatan ng serbisyo

Ang Java ay may malaking bilang ng mga library ng serbisyo na tumutulong sa paglutas ng halos anumang problemang kinakaharap ng isang developer. Imposibleng pag-aralan ang lahat ng ito, at walang partikular na punto sa paggawa nito. Ngunit ang pag-navigate sa kanila ay isang magandang ideya. Dito ay i-highlight natin ang ilan lamang sa mga madalas na ginagamit sa pagsasanay.

Mga aklatan para sa pag-log

Una sa lahat, maaari nating banggitin ang log4j at Slf4j . Ang mga library na ito ay idinisenyo upang itago ang pagpapatupad ng mga nakagawiang pagpapatakbo ng pag-log na nangyayari habang tumatakbo ang mga Java application.

Mga aklatan para sa JSON

Ang JSON, ang format para sa paglilipat ng impormasyon mula sa kliyente patungo sa server, ay ang pinakakaraniwang ginagamit na format ngayon. Mayroong ilang magagandang library na gumagana sa JSON, ang pinakasikat ay Jackson at google-gson .

Google Guava

Ang Guava ay isang proyekto na may mga pangunahing Java library na binuo ng Google. Dito mahahanap mo ang mga bagong uri ng mga koleksyon (multimap, multiset at iba pa), mga hindi nababagong koleksyon, mga graph, mga functional, mga kagamitan para sa parallelism, I/O, hashing, pagproseso ng string at marami pang iba.

Apache Commons

Ang Commons ay isang malaking proyekto na naglalaman ng maraming kapaki-pakinabang na mga utility ng Java para sa iba't ibang layunin. Kaya, ang mga aklatan ng Apache Commons ay sumasailalim sa Tomcat, Hibernate at ilang iba pang malalaking proyekto. Mayroong maraming mga aklatan sa Apache Commons. Banggitin natin ang Commons IO, na nagpapasimple sa mga operasyon ng I/O, Commons CSV para sa pagtatrabaho sa mga csv file, Commons Math para sa pagtatrabaho sa mga kumplikadong mathematical at statistical operations at kalkulasyon, Commons CLI para sa pagsusuri ng mga argumento ng command line.

8. Mga kliyente ng API

Ang REST ay isang istilo ng pagbibigay ng pangalan para sa mga endpoint para sa pag-access ng mga mapagkukunan sa network sa isang format na nababasa ng tao. Mas mainam para sa isang modernong Java developer na maunawaan ang REST ideology at malaman din ang Spring RestTemplate , isang napaka-kapaki-pakinabang na library para sa paglikha ng isang REST client.

9. Mga Pattern ng Disenyo

Kung ang isang baguhan na developer ay pamilyar sa mga pattern ng disenyo, iyon ay, ang mga patakaran ng mabuting asal sa Java programming, at kahit na alam kung paano ilapat ang mga ito sa pagsasanay, agad niyang tataas ang kanyang halaga sa merkado ng paggawa. Madalas na minamaliit ng mga nagsisimula ang mga pattern dahil bihira silang gumawa ng mga kumplikadong application habang nag-aaral. Gayunpaman, kung ang mga pattern ay hindi ilalapat sa mga seryosong proyekto, ang pagpapanatili at pag-aangkop ng code ay nagiging isang napakahirap na gawain. Kaya huwag maging tamad, pag-aralan ang mga pattern at ilapat ang mga ito sa iyong mga personal na proyekto. Ang iyong magiging employer ay lubos na nagpapasalamat para dito.

10. Karagdagang kaalaman

Algorithm at istruktura ng data

Ang "Algorithms and Data Structures" ay ang pangalan ng isang buong kurso na itinuro sa mga teknikal na unibersidad. Inihayag nito ang teoretikal na batayan para sa pagbuo ng iba't ibang istruktura ng data. At sa mga praktikal na klase natututo silang makipagtulungan sa kanila - paglalagay at pagkuha ng data, paghahanap at pag-uuri sa kanila. Sa totoo lang, ang ibig sabihin ng "Algorithms" sa pariralang ito ay eksaktong pag-uuri at paghahanap. Sa paglipas ng mga taon, nakabuo ang mga computer scientist ng maraming algorithm. Ang ilan sa mga ito ay likas na pang-edukasyon, dahil sa kabila ng kamag-anak na kadalian ng pagpapatupad, hindi sila masyadong epektibo sa pagpapatakbo. Halimbawa, mabagal silang gumagana, na maaaring kapansin-pansin sa malalaking data pool. O kumonsumo sila ng maraming memorya. Ang ibang mga algorithm ay napatunayang napakaepektibo. Kaya't naisama sila sa mga opisyal na aklatan ng karamihan sa mga programming language. Alinsunod dito, ngayon ay hindi kinakailangan na bumuo ng mga naturang algorithm nang nakapag-iisa. Ito ay sapat na upang malaman kung nasaan sila. Gayunpaman, inirerekomenda ng karamihan sa mga may karanasang developer na ang mga baguhan ay dumaan sa "paaralan ng algorithm"—ipinatupad ang mga ito nang mag-isa habang nag-aaral. Nabubuo nito ang pag-iisip ng programmer. Nakakatulong din ito sa mga panayam; talagang gusto nilang magtanong ng mga problema sa pag-uuri at paghahanap.

Mga Servlet

Ang isang servlet ay isang paraan upang mahawakan ang isang kahilingan ng gumagamit. Ngayon hindi sila ginagamit sa lahat ng dako at hindi palaging, ngunit ito ay magiging kapaki-pakinabang upang makakuha ng ideya tungkol sa mga ito.

HTML at CSS

Dapat alam ng lahat ang mga pangunahing kaalaman sa layout. Ang kaalamang ito ay medyo madaling makuha, at kung hindi mo pa ito nagagawa, maglaan ng ilang araw sa araling ito. Kasabay nito, magpapahinga ka mula sa mas kumplikadong mga paksa.

XML

Ang Extensible Markup Language ay dating nasa lahat ng dako sa pagbuo ng Java. Ito ay unti-unting pinapalitan ng JSON, ngunit ang XML ay ginagamit pa rin ngayon. Hindi ito mahirap matutunan, kaya maaari mong bigyan ng kaunting pansin ang wikang ito.

JavaScript

Ipinapakita ng mga survey ng mga developer na kahit na ang mga talagang walang kinalaman sa front-end na development ay sumulat ng mga script sa JavaScript paminsan-minsan. Ang pag-alam sa mga pangunahing kaalaman ng wikang ito ay maaaring ituring na isang tuntunin ng mabuting asal, kaya huwag maging tamad, basahin ang tungkol dito at lumikha ng isang dosenang o dalawang script. Hindi ito magiging kalabisan.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION