JavaRush /בלוג Java /Random-HE /Java. תוכנית פעולה

Java. תוכנית פעולה

פורסם בקבוצה
Java.  תוכנית פעולה - 1

תוֹכֶן:

  1. סעיף אפס - ליבת Java
  2. כלים
  3. JDK API
  4. מה חדש ב-Java 8
  5. SQL, מסדי נתונים, JDBC
  6. מסגרות
  7. ספריות ומסגרות לבדיקה
  8. ספריות שירות
  9. לקוחות API
  10. תבניות עיצוב
  11. ידע נוסף
מה צריך ג'אווה ג'וניור פוטנציאלי לדעת כדי לקבל עבודה ראשונה או לפחות להגיש מועמדות לתפקיד מתאמן בחברה טובה? אילו כלים יעזרו למתכנת ג'אווה להגיע לשלב הבא? אילו טכנולוגיות ללמוד ואילו להשאיר להמשך? אין תשובה סטנדרטית לשאלות אלו, בדיוק כפי שאין תוכנית פעולה אחת שתתאים לחלוטין לכל אחד. חלק מהחברות שואפות לפיתוח, מציגות כל הזמן טכנולוגיות חדשות ובודקות את היכולות של גרסאות חדשות של השפה, בעוד שאחרות נאחזות בעקשנות בישנות. יש גם אפשרויות "אמצעיות", ואולי, יש יותר מהן. עם זאת, הרכבנו מפת דרכים או מפת דרכים עבור מפתח ג'אווה שואף. במאמץ להפוך את זה לפשוט ככל האפשר, ציינו רק את הטכנולוגיות והנושאים ההכרחיים עבור הרוב המכריע של "ג'אביסטים". צריך לזכור שלא כל דבר צריך ללמוד בפירוט (בחלק מהדברים לעיל אפשר לשלוט רק בעבודה בצוות), אבל לא יזיק להבנה כללית שלהם.

0. סעיף אפס - ליבת Java

הכנסנו את סעיף אפס למאמר למקרה שאדם שרק מתכנן ללמוד ג'אווה ולא יודע מאיפה להתחיל יגיע לכאן. Java Core הוא משהו שאפילו מתחיל צריך לדעת היטב. כלומר, לדעת דברים בסיסיים, להבין מה השפה מציעה כדי לפתור בעיה מסוימת, ובמקרים פשוטים להצליח ליישם את הידע הזה. אתה יכול לתרגל Java Core ב-JavaRush, ואם עדיין לא עשית זאת, אנו מזמינים אותך לקחת את הקורס ! ובכן, לכל השאר, בואו נזכיר לכם את אבני הדרך העיקריות של Java Core:
  • מבני Java בסיסיים, אופרטורים וסוגי נתונים
  • OOP והטמעתו בג'אווה
  • חריגים
  • אוספי Java
  • גנריות
  • ריבוי השרשורים

1. כלים

IDE או סביבת פיתוח משולבת

הכלי העיקרי של מפתח מודרני הוא IDE. יש היום הרבה כאלה בשוק, אבל בפיתוח ג'אווה מקצועי יש בדרך כלל רק שני שמות. מדובר ב- Eclipse החינמי, שנבנה על תוספים , שמחזיק את כף היד שנים רבות ברציפות, וב- IntelliJ IDEA , אשר מחליפה את Eclipse באופן פעיל בשנים האחרונות, וזאת למרות שמנוי לגרסת ה-Ultimate נדרש על ידי מקצוענים עולים כסף. נזכיר לכם שבקורס JavaRush אנו משתמשים במהדורה החינמית של Community IntelliJ IDEA, שיש לה מגבלות פונקציונליות מסוימות בהשוואה ל-Ultimate. הביטוי "אני מכיר את ה-IDE" פירושו שאתה מכיר את היכולות הבסיסיות של סביבת הפיתוח, אתה יודע לקמפל, להריץ, לנפות באגים ולבדוק קבצים, ולשנות קוד. שליטה במפתחות חמים יעזור להאיץ את העבודה שלך. אל תתעצלו, הקדישו כמה שעות ללמוד על תכונות IDE שלא הכרתם והתחילו להשתמש בהן בפועל. ואל תזניח איתור באגים, זו מיומנות שימושית מאוד. כל הפעולות הללו יעזרו לשפר משמעותית את המהירות ואיכות העבודה שלך.

כלים להרכבה אוטומטית

כיום, פרויקטי Java משתמשים לרוב בכלים כגון Maven ו- Gradle. אין צורך ללמוד אותם ביסודיות, אבל זה יהיה שימושי כדי להבין איך הם שונים זה מזה, על מה הם מבוססים, מהן משימות (ב-Gradle) ושלבים עם יעדים ב-Maven. זה יספיק לקרוא על המערכות ולפרוס עליהן כמה פרויקטים קטנים. זה די פשוט לביצוע, ותבינו את הפרטים בתנאי עבודה אמיתיים.

מערכות בקרת גרסאות ושירותי אירוח מקוונים

מערכת בקרת גרסאות היא מה שעוזר למתכנתים לעבוד בצוות על פרויקט משותף מבלי "לשבור" אותו, לסנכרן פיסות קוד שונות שנעשו על ידי אנשים שונים, להחזיר עדכונים לא מוצלחים ולהוסיף חדשים. הנפוצות ביותר הן שתי מערכות בקרת גרסאות. אחד מהם מופץ ונקרא Git, השני הוא ריכוזי, הנקרא SVN (aka Subversion). כיום, Git הוא הסטנדרט דה פקטו. העבודה עם מערכת זו נוחה וקלה יותר; היא נתמכת על ידי כל ה-IDEs (כמו גם SVN). עבודה עם Git יכולה להתנסות במהירות ובקלות; למרבה המזל, יש הרבה מידע על נושא זה באינטרנט. לדוגמה, ספר הלימוד האינטראקטיבי GitHowTo, זמין ברוסית (עובר מהר מאוד). חשוב מאוד למפתח מתחיל לשלוט בשירותי אירוח מקוונים עבור מערכות בקרת גרסאות. לרוב הן מבוססות על Git ונקראות Git platforms (למרות שחלקן יכולות לעבוד עם מערכות בקרת גרסאות שונות). הפופולרי שבהם הוא GitHub. BitBucket ו- GitLab הם גם נפוצים למדי. מערכות אלו עוזרות לך לאחסן ולאחזר קוד, וגם לעשות מה ש-Git יכול לעשות, רק לא דרך שורת הפקודה, אלא דרך הממשק. GitHub גם מאפשר לך לבדוק קוד ולהציע פתרונות לבעיות ישירות באתר. שם אתה גם יכול למצוא פרויקט קוד פתוח של מישהו אחר ולנסות להציע פתרונות משלך כדי לשפר אותו. בעיקרו של דבר, GitHub היא סוג של רשת חברתית למפתחים. אז אם עדיין לא עשית זאת, הקפד ליצור חשבון ב-GitHub ולארח את הפרויקטים שלך שם. קראו גם על GitLab ו-BitBucket, ואם יש לכם זמן, תוכלו לנסות אותם, יש להם גרסאות חינמיות. אגב, כל הפלטפורמות הללו משולבות במלואן עם IDEs מודרניים. Java.  תוכנית פעולה - 2

2. JDK API

סעיף זה מדגיש את ממשקי ה-API של JDK שמפתח ג'אווה מודרני צריך לדעת בביטחון רב. לא יזיק למתכנת לבדוק את קוד המקור של הספריות הללו מעת לעת, לנווט בהן ולהבין מתי צריך להשתמש בהן ומדוע. תופעת לוואי: אם אתה בקיא בממשקי ה-API הללו, סביר להניח שיהיה לך הרבה יותר קל לעמוד בראיון שלך.

Java Collections Framework

ה-Java Collection Framework הוא אחד מממשקי ה-API החשובים ביותר של שפת Java וכל מפתח צריך לדעת זאת. הוא מייצג היררכיה של ממשקים והטמעות של מבני נתונים סטנדרטיים ב-Java כגון רשימה, רשימה מקושרת, סט, מחסנית, תור, טבלת hash ועוד רבים אחרים. על היזם להיות בעל הבנה טובה של המחלקות ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet ואחרים, ולדעת על המאפיינים שלהם. בפרט, אתה צריך להבין את עלויות הזמן והזיכרון של אוסף מסוים עבור פעולות סטנדרטיות (אינדקס, חיפוש, הכנסה, מחיקה) ועל סמך זה, ליישם אותם בצורה נכונה בפרויקטים שלך. אוספים בג'אווה מיושמים היטב, אך אם יש צורך, המפתח יכול להציע יישום משלו. מתכנת שמכיר היטב אוספים יכול להרחיב או להגדיר מחדש את ההיגיון בשיעורים שכבר נכתבו, או ליישם הכל מאפס.

Java Concurrency API

Java תוכננה במקור כדי לתמוך בתכנות מקביל, ומאז גרסה 5.0, השפה כוללת ממשקי API ברמה גבוהה עבור שרשורים מקבילים. אז מפתח ג'אווה מוכשר פשוט חייב להיות בעל הבנה טובה בריבוי הליכי שרשור ולהבין את ממשקי ה-API העיקריים מחבילות java.util.concurrent.* . לכל הפחות, אתה צריך לדעת ולהבין בבירור מה הם Thread, Runnable, נעילת אובייקטים וסנכרון. הקפד להבין את המושגים של מבוי סתום, חיה, תנאי מירוץ, ומה לעשות עם כל זה. כדי להרגיש בטוח, למד סנכרון מ-java.util.concurrent.*, כגון Semaphore, CyclicBarrier, CountDownLatch, Phaser, Exchanger<V>, CompleteableFuture וכן הלאה. וגם ממשקי Callable ו-Future.

Java I/O API

מפתחים מתחילים מתעלמים לעתים קרובות ממחקר מעמיק של Java I/O ו- Java Non-blocking I/O . אבל לשווא: ממשקי API אלה של Java הופכים את העבודה עם שרשורים לקלה יותר והם נמצאים בשימוש קבוע ביישומים אמיתיים. במיוחד שיעורים כמו File, InputStream, OutputStream, Reader ו-Writer מחבילת java.io, שהיא הליבה של Java IO API. Java Non-blocking I/O (java.nio) הוא אוסף של ממשקי תכנות יישומים שנועדו ליישם פעולות I/O בעלות ביצועים גבוהים. אלה כוללים, במיוחד, ByteBuffer, FileChannel ו-Selector, בין היתר. טרח להבין את ממשקי ה-API האלה, אתה לא תצטער על כך.

Device class Object

ברגע שאתה מבין את מחלקת העל של Object, במובן מסוים אתה הופך ל"דובר ג'אווה יליד", מודע הרבה יותר למבנה ה-OOP ולתהליכים רבים. המחלקה java.lang.Object נמצאת בראש היררכיית המחלקות. בנוסף להבנה טובה יותר של המתרחש, הכרת השיטות של הכיתה תהפוך את הראיון להרבה יותר קל - מראיינים פשוט אוהבים לבדוק מועמדים עם המחלקה Object והאובייקטים שלה.

3. תכונות חדשות ב-Java 8

למרות העובדה שחלף זמן מאז יציאת Java 8, וכבר הופיעו עדכונים ממוספרים אחרים, זו הייתה הגרסה השמינית שהפכה לאיקונית. הוא הציג חידושים חשובים שמפשטים, ובמובן מסוים משנים, גישות לתכנות ב-Java. עליך להבין כיצד להשתמש בביטויי למבדה, כמו גם ב-Stream API ב-Java 8 ובממשקי ה-API החדשים של תאריך ושעה.

4. SQL, מסדי נתונים, JDBC

מפתחי Java מעטים אינם נתקלים בשאילתות SQL ובבסיסי נתונים בעבודתם. לכן, חשוב להבין מה הם SQL ומסדי נתונים יחסיים, כיצד הם עובדים, ולהיות מסוגל לכתוב שאילתות פשוטות כדי להצטרף לשתי טבלאות. להדרכה, אתה יכול לנסות לעבוד עם אחד מה-DBMSs, למשל, PostgreSQL או MySQL . זה יהיה גם נחמד לצבור ידע בסיסי של מסדי נתונים לא-רלציוניים, גישות noSQL והיכרות שטחית עם DBMS MongoDB מונחה מסמכים . כדי לעבוד עם מסדי נתונים ב-Java טהור, אתה יכול להשתמש בתקן JDBC יחד עם ה-API באותו שם. הוא מיושם כחבילת java.sql, הכלולה ב-JDK. כיום כמעט ולא נעשה בו שימוש בצורתו הטהורה, אך לעתים קרובות ניתן למצוא אותו ביישומי תמיכה ישנים יותר, וכלים מודרניים ומקובלים יותר לרוב מבוססים על תקן זה.

5. מסגרות

בין הדרישות למפתח ג'אווה ג'וניור כיום, אתה יכול למצוא יותר ויותר "ידע ב-Spring, Hibernate, Spring Boot". ללמוד את הטכנולוגיות הללו לבד זו משימה קשה מאוד, אבל בכל זאת, זה אפשרי, במיוחד ברמה השטחית. הבנה עמוקה יותר תגיע תוך כדי עבודה. כך.

מסגרת אביב

כמעט כל יישום שנבנה ב-Java בימינו משתמש ב-Spring Framework. מסגרת עוצמתית זו מספקת מערכת קואורדינטות ספציפית, עמוד השדרה שבאמצעותו האפליקציה בנויה. יישום Spring הוא הרבה יותר קל לבדיקה ולתחזוקה. והכל בזכות הזרקת תלות.

שינה

עוד מסגרת חשובה ביותר עבור מפתחי Java היא Hibernate. הוא מיישם את מפרט ה-JPA (Java Persistence API), הפותר בעיות של מיפוי יחסי אובייקט (ORM). רוב יישומי Java מקיימים אינטראקציה עם מסדי נתונים, ואם אנחנו מדברים על מסדי נתונים יחסיים, העבודה איתם ללא Hibernate היא לא נוחה. מסגרת זו מספקת למפתחים מספר תכונות חשובות, בפרט, שמירה במטמון ועסקאות מחוץ לקופסה, אשר בתורו מאפשרת להם למקד את מאמציהם בפיתוח לוגיקה של אפליקציה ומשחררת את המתכנת ממשימות רבות ברמה נמוכה בעבודה עם מסדי נתונים יחסיים. . זה משפר משמעותית את פרודוקטיביות המפתחים.

אביב MVC

מסגרת זו מבטיחה פיתוח אפליקציות על פי תבנית Model - View - Controller, תוך שימוש ברכיבים מוכנים מחוברים באופן רופף. למד דפוס זה (דפוסי עיצוב נדונים להלן) ואת ההיגיון של Spring MVC. בפועל משתמשים בו לעתים קרובות למדי.

מגף אביב

עם המיומנות הנכונה, Spring מקל על יצירת יישום Java. בתורו, Spring Boot מקל על יצירת יישום Java המבוסס על Spring. Spring Boot מאפשר לך ליצור בקלות יישומי Enterprise Spring מן המניין שניתן להפעיל במינימום מאמץ: תצורה אוטומטית מבטלת את רוב הטרדות הקשורות בהגדרת יישומי Spring.

6. ספריות ומסגרות לבדיקה

חלק מהמפתחים העתידיים בטוחים שקוד בדיקה אינו עניין שלהם כלל, אלא של אנשים מיוחדים שנקראים בודקים. בפועל, זה לא ממש כך. בדיקה, במיוחד בדיקת יחידות (נקראת לרוב בדיקת יחידות), היא מיומנות חשובה מאוד עבור כל מתכנת. יתר על כן, עולים חדשים שזה עתה התחילו את תפקידם מוטלים לעיתים קרובות לכסות את הקוד של מישהו עם בדיקות יחידה. אז אנו ממליצים בחום ללמוד את ספריית JUnit ולפתח את ההרגל לכתוב מבחני יחידות עבור הקוד שלך. בדוק גם את המסגרת של Mockito, שבה ניתן להשתמש עם JUnit ליצירת מחלקות תלות מדומה.

7. ספריות שירות

ל-Java יש מספר עצום של ספריות שירות המסייעות לפתור כמעט כל בעיה העומדת בפני מפתח. אי אפשר ללמוד את כולם, ואין טעם מיוחד לעשות זאת. אבל ניווט דרכם הוא רעיון נהדר. כאן נדגיש רק כמה מאלה המשמשים לעתים קרובות מאוד בפועל.

ספריות לרישום

קודם כל, אנו יכולים להזכיר את log4j ו- Slf4j . ספריות אלו נועדו להסתיר את היישום של פעולות רישום שגרתיות המתרחשות בזמן שאפליקציות Java פועלות.

ספריות עבור JSON

JSON, הפורמט להעברת מידע מלקוח לשרת, הוא הפורמט הנפוץ ביותר כיום. ישנן מספר ספריות טובות שעובדות עם JSON, הפופולריות ביותר הן Jackson ו- google-gson .

גוגל גויאבה

Guava הוא פרויקט עם ספריות ליבה של Java שפותחו על ידי גוגל. כאן תוכלו למצוא סוגים חדשים של אוספים (Multimap, Multiset ואחרים), אוספים בלתי ניתנים לשינוי, גרפים, פונקציונליים, כלי עזר למקביליות, I/O, hashing, עיבוד מחרוזות ועוד.

אפאצ'י קומונס

Commons הוא פרויקט ענק המכיל הרבה כלי עזר שימושיים של Java למטרות שונות. לפיכך, ספריות Apache Commons עומדות בבסיס Tomcat, Hibernate ומספר פרויקטים גדולים אחרים. יש הרבה ספריות ב- Apache Commons. נזכיר את Commons IO המפשט פעולות I/O, Commons CSV לעבודה עם קבצי csv, Commons Math לעבודה עם פעולות וחישובים מתמטיים וסטטיסטיים מורכבים, Commons CLI לניתוח ארגומנטים של שורת הפקודה.

8. לקוחות API

REST הוא סגנון מתן שמות לנקודות קצה לגישה למשאבים דרך הרשת בפורמט קריא אנושי. עדיף למפתח ג'אווה מודרני להבין את אידיאולוגיית ה-REST וגם להכיר את Spring RestTemplate , ספרייה שימושית מאוד ליצירת לקוח REST.

9. דפוסי עיצוב

אם מפתח מתחיל מכיר את דפוסי העיצוב, כלומר את כללי הנימוס בתכנות ג'אווה, ואפילו יודע ליישם אותם בפועל, הוא יעלה באופן מיידי את ערכו בשוק העבודה. מתחילים לעיתים קרובות מזלזלים בדפוסים מכיוון שהם כמעט ולא יוצרים יישומים מורכבים בזמן הלימודים. עם זאת, אם דפוסים אינם מיושמים בפרויקטים רציניים, תחזוקה והתאמת קוד הופכת למשימה קשה ביותר. אז אל תתעצלו, למדו את הדפוסים ויישמו אותם בפרויקטים האישיים שלכם. המעסיק העתידי שלך יהיה אסיר תודה על כך.

10. ידע נוסף

אלגוריתמים ומבני נתונים

"אלגוריתמים ומבני נתונים" הוא שמו של קורס שלם הנלמד באוניברסיטאות טכניות. הוא חושף את הבסיס התיאורטי לבניית מבני נתונים שונים. ובשיעורי הנדסאי הם לומדים לעבוד איתם - לשים ולשחזר נתונים, לחפש ולמיין אותם. למעשה, "אלגוריתמים" בביטוי הזה פירושם בדיוק מיון וחיפוש. במהלך השנים פיתחו מדעני מחשבים אלגוריתמים רבים. חלקם חינוכיים בטבעם, שכן למרות הקלות היחסית בביצוע, הם אינם יעילים במיוחד בתפעול. לדוגמה, הם עובדים לאט, מה שיכול להיות מורגש על מאגרי נתונים גדולים. או שהם צורכים הרבה זיכרון. אלגוריתמים אחרים הוכחו כיעילים מאוד. עד כדי כך שהם נכללו בספריות הרשמיות של רוב שפות התכנות. בהתאם לכך, כיום אין צורך לפתח אלגוריתמים כאלה באופן עצמאי. מספיק לדעת היכן הם נמצאים. ועדיין, רוב המפתחים המנוסים ממליצים למתחילים לעבור "בית ספר לאלגוריתמים" - ליישם אותם בעצמם בזמן הלימודים. זה מפתח חשיבה של מתכנת. זה גם עוזר בראיונות; הם מאוד אוהבים לשאול בעיות מיון וחיפוש.

סרבלים

servlet הוא דרך לטפל בבקשת משתמש. היום הם לא בשימוש בכל מקום ולא תמיד, אבל זה יהיה שימושי כדי לקבל מושג לגביהם.

HTML ו-CSS

כולם צריכים לדעת את היסודות של פריסה. די קל להשיג את הידע הזה, ואם עדיין לא עשית אותו, הקדישו כמה ימים לפעילות זו. במקביל, תקחו הפסקה מהנושאים המורכבים יותר.

XML

שפת סימון מתרחבת הייתה נפוצה בכל מקום בפיתוח Java. זה מוחלף בהדרגה על ידי JSON, אבל XML עדיין בשימוש היום. זה לא קשה ללמוד, אז אתה יכול לתת שפה זו קצת תשומת לב.

JavaScript

סקרים של מפתחים מראים שגם מי שאין לו שום קשר לפיתוח חזיתי כתב מדי פעם סקריפטים ב-JavaScript. ידיעת היסודות של שפה זו יכולה להיחשב כלל של נימוסים טובים, אז אל תתעצלו, קראו על זה וצרו תריסר או שניים סקריפטים. זה לא יהיה מיותר.
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION