JavaRush /Java Blogu /Random-AZ /Java. Hərəkət planı

Java. Hərəkət planı

Qrupda dərc edilmişdir
Java.  Fəaliyyət Planı - 1

Məzmun:

  1. Bölmə Sıfır - Java Core
  2. Alətlər
  3. JDK API
  4. Java 8-də yeniliklər
  5. SQL, verilənlər bazası, JDBC
  6. Çərçivələr
  7. Sınaq üçün kitabxanalar və çərçivələr
  8. Xidmət kitabxanaları
  9. API müştəriləri
  10. Dizayn Nümunələri
  11. Əlavə bilik
Potensial Java Junior ilk işi əldə etmək və ya ən azı yaxşı bir şirkətdə Təcrübəçi vəzifəsinə müraciət etmək üçün nə bilməlidir? Hansı alətlər Java proqramçısına növbəti səviyyəyə çatmağa kömək edəcək? Hansı texnologiyaları öyrənmək və hansıları daha sonra tərk etmək lazımdır? Bu suallara standart cavab yoxdur, necə ki, tamamilə hər kəsə uyğun olacaq vahid fəaliyyət planı yoxdur. Bəzi şirkətlər inkişafa can atırlar, daim yeni texnologiyalar tətbiq edirlər və dilin yeni versiyalarının imkanlarını sınaqdan keçirirlər, digərləri isə inadla köhnələrindən yapışırlar. "Orta" variantlar da var və bəlkə də onlardan daha çoxu var. Bununla belə, biz həvəskar Java proqramçısı üçün yol xəritəsi və ya yol xəritəsi hazırlamışıq. Mümkün qədər sadələşdirmək üçün biz yalnız “javistlərin” böyük əksəriyyəti üçün zəruri olan texnologiyaları və mövzuları göstərdik . Yadda saxlamaq lazımdır ki, hər şeyi ətraflı öyrənmək lazım deyil (yuxarıda göstərilənlərdən bəziləri yalnız komandada işləməklə mənimsənilə bilər), lakin onlar haqqında ümumi bir anlayışa sahib olmaq zərər verməyəcəkdir.

0. Section Zero - Java Core

Java dilini yenicə öyrənməyi planlaşdıran və haradan başlayacağını bilməyən bir şəxs bura gələ bilər deyə məqaləyə sıfır bölməsini daxil etdik. Java Core hətta yeni başlayanların çox yaxşı bilməli olduğu bir şeydir. Yəni, əsas şeyləri bilmək, dilin müəyyən bir problemi həll etmək üçün nə təklif etdiyini başa düşmək və sadə hallarda bu bilikləri tətbiq edə bilmək. Siz JavaRush-da Java Core ilə məşq edə bilərsiniz və əgər bunu hələ etməmisinizsə, sizi kursa dəvət edirik ! Yaxşı, hamı üçün Java Core-un əsas mərhələlərini xatırladaq:
  • Əsas Java konstruksiyaları, operatorları və məlumat növləri
  • OOP və onun Java-da tətbiqi
  • İstisnalar
  • Java Kolleksiyaları
  • Generiklər
  • Çoxmilli

1. Alətlər

IDE və ya inteqrasiya olunmuş inkişaf mühiti

Müasir tərtibatçının əsas vasitəsi IDE-dir. Bu gün bazarda onların çoxu var, lakin peşəkar Java inkişafında adətən yalnız iki ad var. Bu , uzun illər ardıcıl olaraq xurma üzərində qurulmuş pulsuz Eclipse və son illərdə Eclipse-i fəal şəkildə əvəz edən IntelliJ IDEA və buna baxmayaraq Ultimate versiyasına abunə lazımdır. peşəkarlar pula başa gəlir. Nəzərinizə çatdıraq ki, JavaRush kursunda biz Ultimate ilə müqayisədə müəyyən funksional məhdudiyyətlərə malik Community IntelliJ IDEA-nın pulsuz buraxılışından istifadə edirik. “Mən IDE-ni tanıyıram” ifadəsi o deməkdir ki, siz inkişaf mühitinin əsas imkanları ilə tanışsınız, faylları necə tərtib etməyi, işə salmağı, sazlama və sınaqdan keçirməyi, həmçinin kod refaktorunu bilirsiniz. İsti düymələri mənimsəmək işinizi sürətləndirməyə yaxşı kömək edəcəkdir. Tənbəl olmayın, bilmədiyiniz IDE xüsusiyyətlərini öyrənməyə bir neçə saat sərf edin və onlardan praktikada istifadə etməyə başlayın. Sazlamağı laqeyd yanaşmayın, bu çox faydalı bir bacarıqdır. Bütün bu tədbirlər işinizin sürətini və keyfiyyətini əhəmiyyətli dərəcədə yaxşılaşdırmağa kömək edəcəkdir.

Avtomatik montaj üçün alətlər

Bu gün Java layihələrində ən çox Maven və Gradle kimi alətlərdən istifadə edilir. Onları hərtərəfli öyrənmək lazım deyil, lakin onların bir-birindən nə ilə fərqləndiyini, nəyə əsaslandığını, hansı tapşırıqların (Gradle-də) və Mavendə məqsədləri olan mərhələləri başa düşmək faydalı olacaq. Sistemlər haqqında oxumaq və onlara bir neçə kiçik layihə yerləşdirmək kifayətdir. Bunu etmək olduqca sadədir və siz real iş şəraitində təfərrüatları başa düşəcəksiniz.

Versiya nəzarət sistemləri və onlayn hostinq xidmətləri

Versiyaya nəzarət sistemi proqramçılara ümumi layihə üzərində onu “sındırmadan” komandada işləməyə, müxtəlif insanlar tərəfindən hazırlanmış ayrı-ayrı kod hissələrini sinxronlaşdırmağa, uğursuz yeniləmələri geri qaytarmağa və yenilərini əlavə etməyə kömək edən şeydir. Ən çox yayılmış iki versiya idarəetmə sistemidir. Onlardan biri paylanmışdır və Git adlanır, ikincisi mərkəzləşdirilmişdir, SVN (aka Subversion) adlanır. Bu gün Git faktiki standartdır. Bu sistemlə işləmək daha rahat və asandır, bütün IDE-lər (həmçinin SVN) tərəfindən dəstəklənir. Git ilə tez və asanlıqla işləməyi sınaya bilərsiniz; xoşbəxtlikdən, İnternetdə bu mövzuda çoxlu məlumat var. Məsələn, GitHowTo interaktiv dərsliyi rus dilində mövcuddur (çox tez keçir). Təcrübəsiz bir tərtibatçının versiyaya nəzarət sistemləri üçün onlayn hosting xidmətlərini mənimsəməsi çox vacibdir. Çox vaxt onlar Git-ə əsaslanır və Git platformaları adlanır (baxmayaraq ki, onlardan bəziləri müxtəlif versiya idarəetmə sistemləri ilə işləyə bilər). Onlardan ən populyarı GitHub-dır. BitBucket və GitLab da olduqca yaygındır. Bu sistemlər sizə kodu saxlamağa və əldə etməyə kömək edir, həmçinin Git-in edə biləcəyini yalnız komanda xətti ilə deyil, interfeys vasitəsilə edir. GitHub həmçinin kodu yoxlamağa və problemlərin həllini birbaşa saytda təklif etməyə imkan verir. Orada siz başqasının açıq mənbə layihəsini də tapa bilərsiniz və onu təkmilləşdirmək üçün öz həll yollarınızı təklif etməyə çalışa bilərsiniz. Əslində, GitHub tərtibatçılar üçün bir növ sosial şəbəkədir. Buna görə də, əgər hələ də etməmisinizsə, GitHub-da hesab yaratdığınızdan və layihələrinizi orada yerləşdirdiyinizdən əmin olun. GitLab və BitBucket haqqında da oxuyun və vaxtınız varsa, onları sınaya bilərsiniz, onların pulsuz versiyaları var. Yeri gəlmişkən, bütün bu platformalar müasir IDE-lərlə tam inteqrasiya olunub. Java.  Fəaliyyət Planı - 2

2. JDK API

Bu bölmə müasir Java tərtibatçısının tam əminliklə bilməli olduğu JDK API-lərini vurğulayır. Bir proqramçı üçün vaxtaşırı bu kitabxanaların mənbə koduna baxmaq, onları naviqasiya etmək və onlardan nə vaxt və nə üçün istifadə edilməli olduğunu başa düşmək zərər verməz. Yan təsir: Əgər bu API-ləri yaxşı bilirsinizsə, çox güman ki, müsahibənizi daha asan keçirəcəksiniz.

Java kolleksiyaları çərçivəsi

Java Collection Framework Java dilinin ən vacib API-lərindən biridir və hər bir tərtibatçı bunu bilməlidir. O, Java-da siyahı, əlaqəli siyahı, dəst, yığın, növbə, hash cədvəli və bir çox başqaları kimi standart məlumat strukturlarının interfeyslərinin və tətbiqlərinin iyerarxiyasını təmsil edir. Tərtibatçı ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet və digər sinifləri yaxşı başa düşməli və onların xassələrini bilməlidir. Xüsusilə, standart əməliyyatlar (indeks, axtarış, daxiletmə, silmə) üçün müəyyən bir kolleksiyanın vaxt və yaddaş xərclərini başa düşməli və buna əsaslanaraq layihələrinizdə düzgün tətbiq etməlisiniz. Java-da kolleksiyalar çox yaxşı həyata keçirilir, lakin ehtiyac olarsa, tərtibatçı öz tətbiqini təklif edə bilər. Kolleksiyaları yaxşı bilən proqramçı artıq yazılmış dərslərdə məntiqi genişləndirə və ya yenidən təyin edə və ya hər şeyi sıfırdan həyata keçirə bilər.

Java Concurrency API

Java əvvəlcə paralel proqramlaşdırmanı dəstəkləmək üçün nəzərdə tutulmuşdu və 5.0 versiyasından bəri dil paralel mövzular üçün yüksək səviyyəli API-ləri ehtiva edir. Belə ki, səriştəli Java tərtibatçısı sadəcə olaraq multithreading haqqında yaxşı anlayışa malik olmalı və java.util.concurrent.* paketlərindən əsas API-ləri başa düşməlidir . Ən azı Thread, Runnable, obyekt kilidləmə və sinxronizasiyanın nə olduğunu bilməli və aydın başa düşməlisiniz. Çıxılmaz vəziyyət, canlı kilid, yarış şərtləri və bütün bunlarla nə edəcəyinizi anladığınızdan əmin olun. Özünüzü əmin hiss etmək üçün java.util.concurrent.* saytından sinxronizatorları öyrənin, məsələn Semaphore, CyclicBarrier, CountDownLatch, Phaser, Exchanger<V>, CompleteableFuture və s. Həm də Callable və Future interfeysləri.

Java I/O API

Təcrübəsiz tərtibatçılar tez-tez Java I/OJava Bloklanmayan I/O- nun dərin öyrənilməsinə məhəl qoymurlar . Ancaq boş yerə: bu Java API-ləri iplərlə işləməyi asanlaşdırır və müntəzəm olaraq real tətbiqlərdə istifadə olunur. Xüsusilə Java IO API-nin nüvəsi olan java.io paketindən File, InputStream, OutputStream, Reader və Writer kimi siniflər. Java Bloklanmayan I/O (java.nio) yüksək performanslı I/O əməliyyatlarını həyata keçirmək üçün nəzərdə tutulmuş tətbiq proqramlaşdırma interfeyslərinin toplusudur. Bunlara, xüsusən ByteBuffer, FileChannel və Selector daxildir. Bu API-ləri başa düşmək üçün çətinlik çəkin, peşman olmayacaqsınız.

Cihaz sinfi Obyekt

Obyekt superklassını başa düşdükdən sonra, müəyyən mənada siz OOP strukturu və bir çox proseslərdən daha yaxşı xəbərdar olan “doğma Java spikeri” olursunuz. java.lang.Object sinfi sinif iyerarxiyasının ən yuxarı hissəsində yerləşir. Nə baş verdiyini daha yaxşı başa düşməkdən əlavə, sinfin metodlarını bilmək müsahibəni xeyli asanlaşdıracaq – müsahibəçilər sadəcə namizədləri Object sinfi və onun obyektləri ilə sınaqdan keçirməyi sevirlər.

3. Java 8-də yeni funksiyalar

Java 8-in buraxılışından vaxt keçməsinə və digər nömrəli yeniləmələrin artıq ortaya çıxmasına baxmayaraq, bu, simvollaşan səkkizinci versiya idi. Java-da proqramlaşdırmaya yanaşmaları sadələşdirən və müəyyən mənada dəyişdirən mühüm yeniliklər təqdim etdi. Siz lambda ifadələrindən, həmçinin Java 8-də Stream API-dən və yeni tarix və vaxt API-lərindən necə istifadə edəcəyinizi başa düşməlisiniz.

4. SQL, verilənlər bazası, JDBC

Az sayda Java tərtibatçıları işlərində SQL sorğuları və verilənlər bazası ilə qarşılaşmırlar. Buna görə də SQL və relyasiya verilənlər bazalarının nə olduğunu, onların necə işlədiyini başa düşmək və iki cədvələ qoşulmaq üçün sadə sorğular yaza bilmək vacibdir. Təlim üçün siz DBMS-lərdən biri ilə işləməyə cəhd edə bilərsiniz, məsələn, PostgreSQL və ya MySQL . Qeyri-relational verilənlər bazası, noSQL yanaşmaları və sənəd yönümlü DBMS MongoDB ilə səthi tanışlıq haqqında əsas biliklər əldə etmək də gözəl olardı . Təmiz Java-da verilənlər bazası ilə işləmək üçün eyni adlı API ilə birlikdə JDBC standartından istifadə edə bilərsiniz . O, JDK-ya daxil olan java.sql paketi kimi həyata keçirilir. Bu gün təmiz formada nadir hallarda istifadə olunur, lakin onu tez-tez köhnə dəstək proqramlarında tapmaq olar və daha müasir və ümumi qəbul edilmiş alətlər çox vaxt bu standarta əsaslanır.

5. Çərçivələr

Bu gün Junior Java Developer üçün tələblər arasında siz getdikcə “Bahar, Hibernate, Spring Boot biliklərini” tapa bilərsiniz. Bu texnologiyaları təkbaşına öyrənmək çox çətin işdir, lakin buna baxmayaraq, xüsusilə səthi səviyyədə mümkündür. İşlədikcə daha dərin bir anlayış gələcək. Belə ki.

Bahar Çərçivəsi

Bu günlərdə Java-da qurulmuş demək olar ki, hər bir proqram Spring Framework-dən istifadə edir. Bu güclü çərçivə xüsusi koordinat sistemini, tətbiqin qurulduğu onurğa sütununu təmin edir. Bahar tətbiqini sınaqdan keçirmək və saxlamaq daha asandır. Və hamısı asılılıq inyeksiyası sayəsində.

Qışlama

Java tərtibatçıları üçün digər ən vacib çərçivə Hibernate-dir. O, obyektlə əlaqəli xəritələşdirmə (ORM) problemlərini həll edən JPA (Java Persistence API) spesifikasiyasını həyata keçirir. Java proqramlarının əksəriyyəti verilənlər bazası ilə qarşılıqlı əlaqədə olur və əgər relyasiya verilənlər bazalarından danışırıqsa, onlarla Hibernate olmadan işləmək əlverişsizdir. Bu çərçivə tərtibatçılara bir sıra vacib xüsusiyyətlər, xüsusən də keşləmə və qutudan kənar əməliyyatlar təqdim edir ki, bu da öz səylərini tətbiq məntiqini inkişaf etdirməyə yönəltməyə imkan verir və relational verilənlər bazası ilə işləyərkən proqramçını bir çox aşağı səviyyəli tapşırıqlardan azad edir. . Bu, tərtibatçının məhsuldarlığını əhəmiyyətli dərəcədə artırır.

Bahar MVC

Bu çərçivə, boş birləşdirilmiş hazır komponentlərdən istifadə edərək, Model - Görünüş - Nəzarətçi nümunəsinə uyğun olaraq tətbiqin inkişafını təmin edir. Bu nümunəni (dizayn nümunələri aşağıda müzakirə olunur) və Spring MVC-nin məntiqini öyrənin. Praktikada olduqca tez-tez istifadə olunur.

Yaz çəkmə

Düzgün bacarıqla Spring Java proqramı yaratmağı asanlaşdırır. Öz növbəsində, Spring Boot Spring-ə əsaslanan Java proqramı yaratmağı asanlaşdırır. Spring Boot asanlıqla minimum səylə işə salına bilən tam hüquqlu Enterprise Spring proqramları yaratmağa imkan verir: avtomatik konfiqurasiya Spring proqramlarının konfiqurasiyası ilə bağlı əngəllərin əksəriyyətini aradan qaldırır.

6. Sınaq üçün kitabxanalar və çərçivələr

Bəzi gələcək tərtibatçılar əmindirlər ki, test kodu ümumiyyətlə onları deyil, testerlər adlanan xüsusi insanları narahat edir. Praktikada bu, tam belə deyil. Test, xüsusən də vahid testi (ən çox vaxt vahid testi adlanır) hər bir proqramçı üçün çox vacib bir bacarıqdır. Üstəlik, vəzifələrinə yeni başlayanlara tez-tez kiminsə kodunu vahid testləri ilə əhatə etmək tapşırılır. Odur ki, JUnit kitabxanasını öyrənməyi və kodunuz üçün vahid testləri yazmaq vərdişini inkişaf etdirməyi çox tövsiyə edirik. Həm də saxta asılılıq sinifləri yaratmaq üçün JUnit ilə istifadə edilə bilən Mockito çərçivəsinə baxın.

7. Xidmət kitabxanaları

Java, bir tərtibatçının qarşılaşdığı demək olar ki, hər hansı bir problemi həll etməyə kömək edən çox sayda xidmət kitabxanasına malikdir. Onların hamısını öyrənmək qeyri-mümkündür və bunu etməyin xüsusi bir mənası yoxdur. Lakin onların arasından keçmək əla fikirdir. Burada praktikada çox istifadə olunanlardan yalnız bir neçəsini qeyd edəcəyik.

Giriş üçün kitabxanalar

Hər şeydən əvvəl log4jSlf4j-i qeyd edə bilərik . Bu kitabxanalar Java proqramları işləyərkən baş verən müntəzəm giriş əməliyyatlarının həyata keçirilməsini gizlətmək üçün nəzərdə tutulmuşdur.

JSON üçün kitabxanalar

Məlumatın müştəridən serverə ötürülməsi formatı olan JSON bu gün ən çox istifadə edilən formatdır. JSON ilə işləyən bir neçə yaxşı kitabxana var, ən populyarları Jacksongoogle-gsondur .

Google Guava

Guava Google tərəfindən hazırlanmış əsas Java kitabxanaları olan bir layihədir. Burada siz kolleksiyaların yeni növlərini (multimap, multiset və s.), dəyişməz kolleksiyalar, qrafiklər, funksionallar, paralellik üçün utilitlər, giriş/çıxış, hashing, sətirlərin işlənməsi və s. tapa bilərsiniz.

Apache Commons

Commons müxtəlif məqsədlər üçün çoxlu faydalı Java proqramlarını özündə cəmləşdirən nəhəng layihədir. Beləliklə, Apache Commons kitabxanaları Tomcat, Hibernate və bir sıra digər böyük layihələrin əsasını təşkil edir. Apache Commons-da çoxlu kitabxanalar var. Giriş/çıxış əməliyyatlarını asanlaşdıran Commons IO, csv faylları ilə işləmək üçün Commons CSV, mürəkkəb riyazi və statistik əməliyyatlar və hesablamalarla işləmək üçün Commons Math, komanda xətti arqumentlərinin təhlili üçün Commons CLI-ni qeyd edək.

8. API müştəriləri

REST insan tərəfindən oxuna bilən formatda şəbəkə üzərindən resurslara daxil olmaq üçün son nöqtələr üçün adlandırma üslubudur. Müasir Java tərtibatçısının REST ideologiyasını başa düşməsi və həmçinin REST müştəri yaratmaq üçün çox faydalı kitabxana olan Spring RestTemplate-i bilməsi daha yaxşıdır .

9. Dizayn nümunələri

Təcrübəsiz tərtibatçı dizayn nümunələri, yəni Java proqramlaşdırmasında yaxşı davranış qaydaları ilə tanışdırsa və hətta onları praktikada necə tətbiq etməyi bilirsə, o, əmək bazarında dəyərini dərhal artıracaq. Yeni başlayanlar çox vaxt nümunələri düzgün qiymətləndirmirlər, çünki onlar nadir hallarda oxuyarkən mürəkkəb proqramlar yaradırlar. Bununla belə, nümunələr ciddi layihələrə tətbiq edilmirsə, kodu saxlamaq və uyğunlaşdırmaq son dərəcə çətin bir işə çevrilir. Buna görə tənbəl olmayın, nümunələri öyrənin və onları şəxsi layihələrinizdə tətbiq edin. Gələcək işəgötürəniniz bunun üçün çox minnətdar olacaq.

10. Əlavə biliklər

Alqoritmlər və məlumat strukturları

“Alqoritmlər və Məlumat Strukturları” texniki universitetlərdə tədris olunan bütöv bir kursun adıdır. Müxtəlif məlumat strukturlarının qurulması üçün nəzəri əsasları ortaya qoyur. Praktik dərslərdə isə onlarla işləməyi öyrənirlər - məlumatların qoyulması və alınması, axtarışı və çeşidlənməsi. Əslində bu ifadədəki “Alqoritmlər” dəqiq çeşidləmə və axtarış mənasını verir. Bu illər ərzində kompüter alimləri bir çox alqoritmlər hazırlamışlar. Onlardan bəziləri təhsil xarakteri daşıyır, çünki icrasının nisbi asanlığına baxmayaraq, istismarda çox təsirli deyildir. Məsələn, onlar yavaş işləyirlər ki, bu da böyük məlumat hovuzlarında nəzərə çarpır. Ya da çox yaddaş sərf edirlər. Digər alqoritmlərin çox effektiv olduğu sübut edilmişdir. O qədər ki, onlar əksər proqramlaşdırma dillərinin rəsmi kitabxanalarına daxil ediliblər. Müvafiq olaraq, bu gün belə alqoritmləri müstəqil şəkildə hazırlamaq lazım deyil. Onların harada olduğunu bilmək kifayətdir. Bununla belə, əksər təcrübəli tərtibatçılar yeni başlayanlara “alqoritm məktəbi”ndən keçməyi tövsiyə edir – onları oxuyarkən özləri həyata keçirsinlər. Bu proqramçı təfəkkürünü inkişaf etdirir. Bu, həm də müsahibələrdə kömək edir; onlar həqiqətən problemlərin çeşidlənməsini və axtarışını soruşmağı sevirlər.

Servletlər

Servlet istifadəçi sorğusunu idarə etmək üsuludur. Bu gün onlar hər yerdə və həmişə istifadə edilmir, lakin onlar haqqında bir fikir əldə etmək faydalı olacaq.

HTML və CSS

Hər kəs layoutun əsaslarını bilməlidir. Bu biliyi əldə etmək olduqca asandır və əgər bunu hələ etməmisinizsə, bu fəaliyyətə bir neçə gün ayırın. Eyni zamanda daha mürəkkəb mövzulara da ara verəcəksiniz.

XML

Genişlənən İşarələmə Dili əvvəllər Java inkişafında hər yerdə istifadə olunurdu. O, tədricən JSON ilə əvəz olunur, lakin XML bu gün də istifadə olunur. Öyrənmək çətin deyil, ona görə də bu dilə bir az diqqət yetirə bilərsiniz.

JavaScript

Tərtibatçıların sorğuları göstərir ki, hətta front-end inkişafı ilə heç bir əlaqəsi olmayanlar da vaxtaşırı JavaScript-də skriptlər yazıblar. Bu dilin əsaslarını bilmək yaxşı davranış qaydası sayıla bilər, buna görə də tənbəl olmayın, bu barədə oxuyun və onlarla və ya iki skript yaradın. Bu artıq olmayacaq.
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION