JavaRush /בלוג Java /Random-HE /מגמות Java לשנת 2021: Kotlin, Microservices Architecture ...

מגמות Java לשנת 2021: Kotlin, Microservices Architecture ו-Kubernetes

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

לאילו תחומים Java עדיין הפתרון היחיד?

Java בעתיד הקרוב תישאר אחת הפלטפורמות העיקריות לפיתוח יישומים ארגוניים ( כלומר, יישומים ארגוניים המשמשים חברות גדולות להרוויח כסף. ליישומים כאלה יש בסיס קוד גדול ודרישות אמינות גבוהות - ed. ) ו-backend. Java משתלבת היטב בארכיטקטורת המיקרו-שירותים, אם כי היא לא האלטרנטיבה היחידה לכתיבת מיקרו-שירותים.

מה הם הסיכויים לשפות JVM אחרות, בפרט Kotlin, בהשוואה ל-Java?

לאחר ההייפ סביב שפות Groovy ו-Scala, קוטלין היא כיום שפת ה-JVM המובילה . זה כבר הפך לסטנדרט לפיתוח אנדרואיד, אבל בעולם הארגונים של Java הוא עדיין לא זכה במקומו. מסגרות פופולריות רבות ( Spring , Vert.x , gRPC , RSocket ) מסתמכות גם על זה, ומאפשרות להשתמש בו בתוך עצמן.

Kotlin היא שפת תכנות מונחה עצמים בהקלדה סטטית הפועלת על גבי ה-Java Virtual Machine ומפותחת על ידי JetBrains. כמו כן, קומפילציה ל-JavaScript ולקוד הפעלה במספר פלטפורמות באמצעות תשתית LLVM.

תכונות Kotlin: קומפילציה ל-JVM bytecode או JavaScript, קוד פתוח, תחביר קל לקריאה, תוכניות Kotlin יכולות להשתמש במסגרות וספריות Java קיימות.

האם תהיה ירידה באיכות Java עקב מרווחי שחרור קצרים יותר?

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

מסגרת אביב: האם היא תמשיך להרחיב את המערכת האקולוגית שלה כדי להתאים לצרכים מגוונים?

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

Project Reactor היא ספריית Java 8 המיישמת את מודל התכנות הריאקטיבי. הוא בנוי על גבי מפרט Reactive Streams, תקן לבניית יישומים ריאקטיביים.

R2DBC (Reactive Relational Database Connectivity) הוא פרויקט קוד פתוח המוקדש לתכנות ריאקטיבי עבור SQL.

מהן המגמות בפיתוח תשתיות ענן IaaS, SaaS, PaaS? כיצד הענן מקל על פיתוח, פריסה, תחזוקה והרחבה של תשתית?

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

Kubernetes (K8s) היא תוכנת קוד פתוח לאוטומציה של פריסה, קנה מידה וניהול של יישומים מכולים.

Kubernetes מקבץ את המכילים המרכיבים אפליקציה ליחידות לוגיות לניהול וגילוי קל יותר.

Kubernetes מנהלת ומפעילה קונטיינרים על פני מספר רב של מארחים, ומאפשרת מיקום משותף ושכפול של מספר גדול של קונטיינרים. הפרויקט הוקם על ידי גוגל ונתמך כעת על ידי חברות רבות, ביניהן מיקרוסופט, RedHat, IBM ו- Docker.

לאילו מגמות פיתוח נוספות כדאי לשים לב ב-2021?

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

האם הדרישות למפתחים צעירים השתנו לאחרונה עקב הפיתוח של Java?

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

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

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

Docker היא תוכנה לאוטומציה של פריסה וניהול של יישומים בסביבות מכולות.

הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION