JavaRush /Java блогу /Random-KY /Java. Иш-аракеттер планы

Java. Иш-аракеттер планы

Группада жарыяланган
Java.  Иш-чаралар планы - 1

Мазмуну:

  1. Section Zero - Java Core
  2. Куралдар
  3. JDK API
  4. Java 8де эмне жаңылык
  5. SQL, маалымат базалары, JDBC
  6. Frameworks
  7. Сыноо үчүн китепканалар жана алHowтар
  8. Кызмат китепканалары
  9. API кардарлары
  10. Дизайн үлгүлөрү
  11. Кошумча бorм
Потенциалдуу Java Junior биринчи жумушка орношуу же жок дегенде жакшы компанияда Стажер кызматына кайрылуу үчүн эмнени бorши керек? Java программистине кийинки деңгээлге жетүү үчүн кандай куралдар жардам берет? Кайсы технологияларды изилдеп, кайсынысын кийин калтырыш керек? Бул суроолорго стандарттуу жооп жок, ошондой эле бардыгына ылайыктуу иш-аракеттердин бирдиктүү планы жок. Кээ бир компаниялар өнүгүүгө умтулуп, тынымсыз жаңы технологияларды киргизип, тилдин жаңы versionларынын мүмкүнчүлүктөрүн сынашат, ал эми башкалары өжөрлүк менен эскилерине жабышат. Ошондой эле "орто" варианттары бар, жана, балким, алар дагы бар. Бирок, биз умтулган Java иштеп чыгуучусу үчүн жол картасын же жол картасын түздүк. Мүмкүн болушунча жөнөкөйлөштүрүүгө аракет кылып, биз "жавачылардын" басымдуу бөлүгүнө керектүү технологияларды жана темаларды гана көрсөттүк . Баарын майда-чүйдөсүнө чейин изилдеп чыгуунун кажети жок экенин эстен чыгарбоо керек (жогоруда айтылгандардын айрымдарын бир командада иштөө менен гана өздөштүрүүгө болот), бирок алар жөнүндө жалпы түшүнүккө ээ болуу зыян келтирбейт.

0. Section Zero - Java Core

Жаңы эле Java тorн үйрөнүүнү пландап, эмнеден баштоону билбеген адам бул жерге келип калса, биз макалага нөл бөлүмүн киргиздик. Java Core - бул жаңы башталгыч да жакшы бorши керек болгон нерсе. Башкача айтканда, негизги нерселерди билүү, белгилүү бир маселени чечүү үчүн тил эмнени сунуштай турганын түшүнүү жана жөнөкөй учурларда бул бorмди колдоно билүү. Сиз JavaRush боюнча Java Core менен машыксаңыз болот, эгер сиз муну кыла элек болсоңуз, биз сизди курска чакырабыз ! Башкалар үчүн Java Coreнун негизги этаптарын эске салалы:
  • Негизги Java конструкциялары, операторлору жана маалымат түрлөрү
  • OOP жана аны Javaда ишке ашыруу
  • Өзгөчө учурлар
  • Java жыйнактары
  • Generics
  • Multithreading

1. Куралдар

IDE же интеграцияланган өнүктүрүү чөйрөсү

Заманбап иштеп чыгуучунун негизги куралы - IDE. Бүгүнкү күндө рынокто алардын көбү бар, бирок Java профессионалдык өнүгүүсүндө, адатта, эки гана ысым бар. Бул плагиндерге курулган акысыз Eclipse , ал көп жылдар бою алаканды кармап турат жана акыркы жылдарда Eclipseди активдүү алмаштырып келе жаткан IntelliJ IDEA жана бул Ultimate versionсына жазылуу үчүн зарыл болгонуна карабастан. адистер акча талап кылат. Эске сала кетсек, JavaRush курсунда биз Community IntelliJ IDEAнын акысыз чыгарылышын колдонобуз, анын Ultimate менен салыштырганда белгилүү бир функционалдык чектөөлөрү бар. "Мен IDEди билем" деген сөз айкашы сиз иштеп чыгуу чөйрөсүнүн негизги мүмкүнчүлүктөрү менен тааныш экениңизди, файлдарды компиляциялоону, иштетүүнү, мүчүлүштүктөрдү оңдоону жана сынап алууну, ошондой эле рефактор codeун билесиз дегенди билдирет. Ыкчам баскычтарды өздөштүрүү жумушуңузду тездетүүгө жакшы жардам берет. Жалкоо болбоңуз, бир нече саат бою сиз билбеген IDE функцияларын үйрөнүңүз жана аларды иш жүзүндө колдоно баштаңыз. Жана мүчүлүштүктөрдү оңдоого көңүл бурбаңыз, бул абдан пайдалуу чеберчorк. Бул иш-аракеттердин бардыгы сиздин ишиңиздин ылдамдыгын жана сапатын бир кыйла жогорулатууга жардам берет.

Автоматтык монтаждоо үчүн аспаптар

Бүгүнкү күндө Java долбоорлору көбүнчө Maven жана Gradle сыяктуу куралдарды колдонушат. Аларды кылдат изилдөөнүн кажети жок, бирок алар бири-биринен кандайча айырмаланарын, эмнеге негизделгенин, кандай тапшырмалар (Градлда) жана Мавенде максаттары бар фазаларды түшүнүү пайдалуу болот. Бул системалар жөнүндө окуп, алар боюнча бир нече чакан долбоорлорду жайылтуу үчүн жетиштүү болот. Бул абдан жөнөкөй, жана сиз чыныгы иш шарттарында майда-чүйдөсүнө чейин түшүнүшөт.

Версияны башкаруу системалары жана онлайн хостинг кызматтары

Версияларды башкаруу системасы - бул программисттерге командада жалпы долбоор боюнча аны "бузбастан" иштөөгө, ар кандай адамдар жасаган codeдун бир-биринен айырмаланган бөлүктөрүн синхрондоштурууга, ийгorксиз жаңыртууларды артка кайтарууга жана жаңыларын кошууга жардам берген нерсе. Эң кеңири тараган эки version башкаруу системасы. Алардын бири бөлүштүрүлгөн жана Гит деп аталат, экинчиси борборлоштурулган, SVN (aka Subversion) деп аталат. Бүгүнкү күндө Git де-факто стандарты болуп саналат. Бул система менен иштөө ыңгайлуу жана жеңил, аны бардык IDE (ошондой эле SVN) колдойт. Сиз Git менен тез жана оңой иштөөгө аракет кылсаңыз болот, бактыга жараша, Интернетте бул тема боюнча көп маалымат бар. Мисалы, орус тorнде жеткorктүү GitHowTo интерактивдүү окуу китеби (өтө тез өтөт). Жаңы баштаган иштеп чыгуучу үчүн versionны башкаруу системалары үчүн онлайн хостинг кызматтарын өздөштүрүү абдан маанилүү. Көбүнчө алар Gitтин негизинде түзүлөт жана Git платформалары деп аталат (бирок алардын айрымдары ар кандай versionларды башкаруу системалары менен иштей алат). Алардын эң популярдуусу GitHub. BitBucket жана GitLab да кеңири таралган. Бул системалар сизге codeду сактоого жана алууга жардам берет, ошондой эле Git кыла ала турган нерселерди буйрук сабы аркылуу эмес, интерфейс аркылуу аткарат. GitHub ошондой эле codeду текшерүүгө жана көйгөйлөрдү чечүү жолдорун түздөн-түз сайттан сунуштоого мүмкүнчүлүк берет. Ал жерден сиз башка бирөөнүн ачык булак долбоорун таап, аны жакшыртуу үчүн өзүңүздүн чечимдериңизди сунуштоого аракет кыла аласыз. Негизи, GitHub иштеп чыгуучулар үчүн социалдык тармактын бир түрү. Андыктан, эгер сизде буга чейин жок болсо, анда GitHubда аккаунт түзүп, долбоорлоруңузду ошол жерде жайгаштырууну унутпаңыз. Ошондой эле GitLab жана BitBucket жөнүндө окуңуз, эгер убакытыңыз болсо, аларды сынап көрүңүз, алардын акысыз versionлары бар. Айтмакчы, бул платформалардын баары заманбап IDEлер менен толук интеграцияланган. Java.  Иш-чаралар планы - 2

2. JDK API

Бул бөлүмдө заманбап Java иштеп чыгуучусу ишенимдүү бorши керек болгон JDK API'лери баса белгиленет. Программист үчүн мезгил-мезгor менен бул китепканалардын баштапкы codeун карап, аларды багыттоо жана аларды качан жана эмне үчүн колдонуу керектигин түшүнүү зыян келтирбейт. Терс таасири: эгерде сиз бул API'лерди жакшы билсеңиз, анда интервьюңузга оңой убакыт табасыз.

Java Collections Framework

Java Collection Framework Java тorнин эң маанилүү APIлеринин бири жана аны ар бир иштеп чыгуучу бorши керек. Бул тизме, шилтемеленген тизме, топтом, стек, кезек, хэш tableсы жана башкалар сыяктуу Java тorндеги стандарттык маалымат структураларынын интерфейстеринин жана ишке ашырууларынын иерархиясын билдирет. Иштеп чыгуучу ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet жана башка класстарды жакшы түшүнүшү керек жана алардын касиеттери жөнүндө бorши керек. Атап айтканда, сиз стандарттуу операциялар (индекс, издөө, киргизүү, жок кылуу) үчүн белгилүү бир коллекциянын убактысын жана эс тутумунун чыгымдарын түшүнүшүңүз керек жана ошонун негизинде аларды долбоорлоруңузда туура колдонуу керек. Javaдагы жыйнактар ​​абдан жакшы ишке ашырылган, бирок зарылчылык болсо, иштеп чыгуучу өзүнүн ишке ашыруусун сунуштай алат. Коллекцияларды жакшы билген программист буга чейин жазылган класстарда логиканы кеңейтип же кайра аныктай алат же баарын нөлдөн баштап ишке ашыра алат.

Java Concurrency API

Java башында параллелдүү программалоону колдоо үчүн иштелип чыккан жана 5.0 versionсынан бери тил параллелдүү жиптер үчүн жогорку деңгээлдеги API'лерди камтыйт. Ошентип, компетенттүү Java иштеп чыгуучусу жөн гана көп теманы жакшы түшүнүшү жана java.util.concurrent.* пакеттериндеги негизги APIлерди түшүнүшү керек . Жок дегенде, Thread, Runnable, an objectти кулпулоо жана синхрондоштуруу деген эмне экенин бorп, так түшүнүшүңүз керек. Туюктук, тирүүлүк, жарыш шарттары жана мунун баарын эмне кылуу керек деген түшүнүктөрдү түшүнүүнү унутпаңыз. Өзүңүздү ишенимдүү сезүү үчүн java.util.concurrent.* сайтынан синхронизаторлорду үйрөнүңүз, мисалы, Semaphore, CyclicBarrier, CountDownLatch, Phaser, Exchanger<V>, CompleteableFuture жана башкалар. Ошондой эле Callable жана Future интерфейстери.

Java I/O API

Жаңы баштаган иштеп чыгуучулар көбүнчө Java I/O жана Java Non-blocking I/O программаларын терең изилдөөгө көңүл бурушпайт . Бирок бекер: бул Java API'лери жиптер менен иштөөнү жеңилдетет жана реалдуу тиркемелерде дайыма колдонулат. Айрыкча Java IO APIнин өзөгү болгон java.io пакетинен File, InputStream, OutputStream, Reader жана Writer сыяктуу класстар. Java Non-blocking I/O (java.nio) – бул жогорку өндүрүмдүүлүктөгү киргизүү/чыгаруу операцияларын ишке ашыруу үчүн иштелип чыккан колдонмо программалоо интерфейстеринин жыйындысы. Аларга, атап айтканда, ByteBuffer, FileChannel жана Selector жана башкалар кирет. Бул API'лерди түшүнүү үчүн көп кыйынчылыктарды алыңыз, сиз өкүнбөйсүз.

Түзмөк классы Объект

Объекттин суперклассын түшүнгөндөн кийин, кандайдыр бир мааниде сиз "анчалык Java баяндамачысы" болосуз, OOP түзүмүн жана көптөгөн процесстерди жакшыраак билесиз. java.lang.Object классы класс иерархиясынын эң башында жайгашкан. Эмне болуп жатканын жакшыраак түшүнүүдөн тышкары, класстын ыкмаларын билүү интервью алууну бир топ жеңилдетет — интервьючулар талапкерлерди Object классы жана анын an objectтери менен сынап көрүүнү жакшы көрүшөт.

3. Java 8деги жаңы функциялар

Java 8 чыккандан бери убакыт өткөнүнө жана башка номерлүү жаңыртуулар пайда болгонуна карабастан, бул секизинчи version болуп калды. Ал Java тorнде программалоо ыкмаларын жөнөкөйлөткөн жана кандайдыр бир мааниде өзгөрткөн маанилүү инновацияларды киргизди. Сиз lambda туюнтмаларын, ошондой эле Java 8деги Stream API жана жаңы дата жана убакыт API'лерин кантип колдонууну түшүнүшүңүз керек.

4. SQL, маалымат базалары, JDBC

Бир нече Java иштеп чыгуучулары өз ишинде SQL сурамдарын жана маалымат базаларын кезиктирбейт. Ошондуктан, SQL жана реляциялык маалымат базалары деген эмне экенин, алар кантип иштешерин түшүнүү жана эки tableга кошулуу үчүн жөнөкөй сурамдарды жаза билүү маанилүү. Окутуу үчүн, сиз DBMS бири менен иштөөгө аракет кылсаңыз болот, мисалы, PostgreSQL же MySQL . Ошондой эле реляциялык эмес маалымат базалары, noSQL ыкмалары жана documentке багытталган DBMS MongoDB менен үстүртөн таанышуу жөнүндө негизги бorмге ээ болуу жакшы болмок . Таза Javaдагы маалымат базалары менен иштөө үчүн, сиз ошол эле аталыштагы API менен бирге JDBC стандартын колдоно аласыз. Ал JDK камтылган java.sql пакети катары ишке ашырылат. Бүгүнкү күндө ал сейрек гана таза түрүндө колдонулат, бирок аны көп учурда эски колдоо тиркемелеринен табууга болот жана заманбап жана жалпы кабыл алынган куралдар көбүнчө ушул стандартка негизделет.

5. АлHowтар

Жаш Java Иштеп чыгуучусуна коюлган талаптардын арасында бүгүн "Жаз, Күтүү, Жазгы Бут жөнүндө бorмдерди" көбүрөөк таба аласыз. Бул технологияларды өз алдынча үйрөнүү - бул өтө татаал маселе, бирок ошентсе да, мүмкүн, өзгөчө үстүртөн деңгээлде. Иштеген сайын тереңирээк түшүнүк пайда болот. Ошентип.

Жазгы алHow

Бүгүнкү күндө Java-да курулган дээрлик ар бир тиркеме Spring Framework колдонот. Бул күчтүү алHow белгилүү бир координаттар системасын, тиркеме курулган таянычты камсыз кылат. Жазгы тиркемени сынап көрүү жана тейлөө оңой. Жана баары көз карандылык инъекциясынын аркасында.

Күтүү

Java иштеп чыгуучулары үчүн дагы бир эң маанилүү алHow - Hibernate. Ал JPA (Java Persistence API) спецификациясын ишке ашырат, ал an object-реляциялык карта түзүү (ORM) көйгөйлөрүн чечет. Көпчүлүк Java тиркемелери маалымат базалары менен иштешет, жана эгерде биз реляциялык маалымат базалары жөнүндө сөз кылсак, алар менен Hibernate режимисиз иштөө ыңгайсыз. Бул фреймворк иштеп чыгуучуларга бир катар маанилүү функцияларды, атап айтканда, кэштөө жана кутудан тышкары транзакцияларды камсыз кылат, бул өз кезегинде алардын күч-аракетин тиркеме логикасын иштеп чыгууга багыттоого мүмкүндүк берет жана реляциялык маалымат базалары менен иштөөдө программистти көптөгөн төмөнкү деңгээлдеги тапшырмалардан бошотот. . Бул иштеп чыгуучунун өндүрүмдүүлүгүн кыйла жакшыртат.

Жазгы MVC

Бул алHow Модель - Көрүү - Контроллер үлгүсүнө ылайык тиркемени иштеп чыгууну камсыздайт, эркин бириктирилген даяр компоненттерди колдонуу менен. Бул үлгүнү (дизайн үлгүлөрү төмөндө талкууланат) жана Spring MVC логикасын изилдеңиз. Иш жүзүндө ал абдан көп колдонулат.

Жазгы бут

Туура чеберчorк менен Spring Java тиркемесин түзүүнү жеңилдетет. Өз кезегинде Spring Boot Spring негизинде Java тиркемесин түзүүнү жеңилдетет. Spring Boot минималдуу күч менен ишке киргизилүүчү толук кандуу Enterprise Spring тиркемелерин оңой түзүүгө мүмкүндүк берет: авто-конфигурация Жазгы тиркемелерди конфигурациялоо менен байланышкан көп кыйынчылыктарды жок кылат.

6. Сыноо үчүн китепканалар жана алHowтар

Келечектеги кээ бир иштеп чыгуучулар тестирлөө codeу аларды эмес, тестерлер деп аталган атайын адамдарды кызыктыраарына ишенишет. Иш жүзүндө бул такыр андай эмес. Тестирлөө, өзгөчө бирдикти тестирлөө (көбүнчө бирдик тести деп аталат) ар бир программист үчүн абдан маанилүү жөндөм. Мындан тышкары, өз милдеттерин жаңыдан баштаган жаңы келгендерге көбүнчө бирөөнүн codeун бирдик тесттери менен жабуу милдети жүктөлөт. Андыктан биз JUnit китепканасын үйрөнүүнү жана codeуңуз үчүн бирдик тесттерин жазуу адатын өнүктүрүүнү сунуштайбыз. JUnit менен жасалма көз карандылык класстарын түзүү үчүн колдонула турган Mockito алHowтарын дагы текшериңиз.

7. Тейлөө китепканалары

Java иштеп чыгуучуга туш болгон дээрлик бардык көйгөйлөрдү чечүүгө жардам берген көптөгөн тейлөө китепканаларына ээ. Алардын баарын изилдөө мүмкүн эмес жана мунун өзгөчө мааниси жок. Бирок алар аркылуу чабыттоо - эң сонун идея. Бул жерде биз практикада абдан көп колдонулган бир нечесин гана бөлүп көрсөтөбүз.

Каттоо үчүн китепканалар

Биринчиден, биз log4j жана Slf4j айта алабыз . Бул китепканалар Java тиркемелери иштеп жатканда пайда болгон күнүмдүк каттоо операцияларын жашыруу үчүн иштелип чыккан.

JSON үчүн китепканалар

JSON, маалыматты кардардан serverге өткөрүү форматы, бүгүнкү күндө эң көп колдонулган формат. JSON менен иштеген бир нече жакшы китепканалар бар, алардын эң популярдуусу Джексон жана google-gson .

Google Guava

Guava Google тарабынан иштелип чыккан негизги Java китепканалары бар долбоор. Бул жерден сиз коллекциялардын жаңы түрлөрүн (multimap, multiset жана башкалар), өзгөрүлбөс коллекцияларды, графиктерди, функционалдык коллекцияларды, параллелизм үчүн утorталарды, киргизүү/чыгаруу, хэшинг, саптарды иштетүү жана башка көптөгөн нерселерди таба аласыз.

Apache Commons

Commons ар кандай максаттар үчүн көптөгөн пайдалуу Java утorталарын камтыган чоң долбоор. Ошентип, Apache Commons китепканалары Tomcat, Hibernate жана башка бир катар ири долбоорлордун негизин түзөт. Apache Commonsто көптөгөн китепканалар бар. Киргизүү/чыгаруу операцияларын жөнөкөйлөтүүчү Commons IO, csv файлдары менен иштөө үчүн Commons CSV, татаал математикалык жана статистикалык операциялар жана эсептөөлөр менен иштөө үчүн Commons Math, буйрук сабынын аргументтерин талдоо үчүн Commons CLI жөнүндө айта кетели.

8. API кардарлары

REST – бул адам окуй турган форматта тармак аркылуу ресурстарга жетүү үчүн акыркы чекиттерди атоо стor. Заманбап Java иштеп чыгуучусу REST идеологиясын түшүнүп, ошондой эле Spring RestTemplate , REST кардарын түзүү үчүн абдан пайдалуу китепкананы билгени жакшы .

9. Дизайн үлгүлөрү

Эгерде башталгыч иштеп чыгуучу дизайн үлгүлөрү менен, башкача айтканда, Java программалоодогу адептүүлүктүн эрежелери менен тааныш болсо, жада калса аларды иш жүзүндө кантип колдонууну билсе, ал эмгек рыногунда өзүнүн баалуулугун заматта жогорулатат. Жаңы баштагандар көбүнчө үлгүлөрдү баалаbyte, анткени алар окуу учурунда татаал тиркемелерди сейрек түзүшөт. Бирок, эгерде үлгүлөр олуттуу долбоорлорго колдонулбаса, codeду сактоо жана ыңгайлаштыруу өтө татаал иш болуп калат. Андыктан жалкоо болбоңуз, үлгүлөрдү изилдеп, аларды жеке долбоорлоруңузда колдонуңуз. Сиздин келечектеги иш берүүчүңүз бул үчүн абдан ыраазы болот.

10. Кошумча бorм

Алгоритмдер жана маалымат структуралары

"Алгоритмдер жана маалымат структуралары" техникалык университеттерде окутулган бүтүндөй курстун аталышы. Ал ар кандай маалымат структураларын куруунун теориялык негиздерин ачып берет. Ал эми практикалык сабактарда алар менен иштөөнү үйрөнүшөт - маалыматтарды коюу жана алуу, аларды издөө жана сорттоо. Чынында, бул сөз айкашындагы "Алгоритмдер" так сорттоо жана издөө дегенди билдирет. Көп жылдар бою компьютердик окумуштуулар көптөгөн алгоритмдерди иштеп чыгышты. Алардын айрымдары бorм берүүчү мүнөзгө ээ, анткени ишке ашыруунун салыштырмалуу жеңилдигине карабастан, алар иштөөдө анча натыйжалуу эмес. Мисалы, алар жай иштешет, бул чоң маалымат бассейндеринде байкалат. Же алар эс тутумун көп талап кылат. Башка алгоритмдер абдан натыйжалуу болуп чыкты. Ошентип, алар көпчүлүк программалоо тилдеринин расмий китепканаларына киргизилген. Демек, бүгүнкү күндө мындай алгоритмдерди өз алдынча иштеп чыгуу зарыл эмес. Алардын кайда экенин билүү жетиштүү. Бирок, тажрыйбалуу иштеп чыгуучулардын көбү үйрөнчүктөргө "алгоритм мектебинен" өтүүнү сунушташат - аларды окуп жатканда өз алдынча ишке ашыруу. Бул программисттин ой жүгүртүүсүн өнүктүрөт. Бул интервьюга да жардам берет; алар чындап эле көйгөйлөрдү сорттоо жана издөөнү жакшы көрүшөт.

Сервлеттер

Сервлет - бул колдонуучунун суроо-талаптарын башкаруу ыкмасы. Бүгүнкү күндө алар бардык жерде колдонулbyte жана ар дайым эмес, бирок алар жөнүндө түшүнүк алуу пайдалуу болот.

HTML жана CSS

Ар бир адам макеттин негиздерин бorши керек. Бул бorмди алуу абдан оңой, эгер сиз аны жасай элек болсоңуз, бул ишке бир нече күн арнаңыз. Ошол эле учурда татаалыраак темалардан тыныгуу аласыз.

XML

Кеңейтилген белгилөө тor мурда Java өнүктүрүүдө бардык жерде колдонулчу. Ал бара-бара JSON менен алмаштырылат, бирок XML бүгүнкү күндө дагы колдонулат. Бул тилди үйрөнүү кыйын эмес, ошондуктан бул тилге бир аз көңүл бурсаңыз болот.

JavaScript

Иштеп чыгуучулардын сурамжылоолору көрсөткөндөй, алдыңкы программаны иштеп чыгууга таптакыр тиешеси жок адамдар да мезгил-мезгor менен JavaScript скрипттерин жазышкан. Бул тилдин негиздерин билүү адептүүлүктүн эрежеси катары каралышы мүмкүн, андыктан жалкоо болбоңуз, бул жөнүндө окуп, ондогон же эки сценарийди түзүңүз. Бул ашыкча болбойт.
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION