JavaRush /مدونة جافا /Random-AR /جافا. خطة عمل

جافا. خطة عمل

نشرت في المجموعة
جافا.  خطة العمل - 1

محتوى:

  1. القسم صفر - جافا كور
  2. أدوات
  3. واجهة برمجة التطبيقات JDK
  4. ما الجديد في جافا 8
  5. SQL، قواعد البيانات، JDBC
  6. إطار أعمال
  7. المكتبات وأطر الاختبار
  8. مكتبات الخدمة
  9. عملاء API
  10. أنماط التصميم
  11. معرفة اضافية
ما الذي يجب أن يعرفه Java Junior المحتمل للحصول على الوظيفة الأولى أو على الأقل التقدم لوظيفة متدرب في شركة جيدة؟ ما هي الأدوات التي ستساعد مبرمج Java على الوصول إلى المستوى التالي؟ ما هي التقنيات التي يجب دراستها وأيها يجب تركها لوقت لاحق؟ لا توجد إجابة موحدة على هذه الأسئلة، كما لا توجد خطة عمل واحدة تناسب الجميع على الإطلاق. تسعى بعض الشركات إلى التطوير، وإدخال تقنيات جديدة باستمرار واختبار إمكانيات الإصدارات الجديدة من اللغة، والبعض الآخر يتشبث بعناد بالإصدارات القديمة. هناك أيضًا خيارات "متوسطة" وربما يكون هناك المزيد منها. ومع ذلك، فقد قمنا بتجميع خريطة طريق أو خريطة طريق لمطور Java الطموح. في محاولة لتبسيط الأمر قدر الإمكان، أشرنا فقط إلى تلك التقنيات والموضوعات الضرورية للغالبية العظمى من "الجافيين". يجب أن نتذكر أنه ليس كل شيء يحتاج إلى دراسة بالتفصيل (بعض ما سبق لا يمكن إتقانه إلا من خلال العمل ضمن فريق)، ولكن لن يضر أن يكون لديك فهم عام لها.

0. القسم صفر - جافا كور

لقد قمنا بإدراج القسم صفر في المقالة فقط في حالة وصول شخص يخطط لتعلم Java ولا يعرف من أين يبدأ إلى هنا. Java Core هو شيء يجب أن يعرفه حتى المبتدئ جيدًا. أي معرفة الأشياء الأساسية، وفهم ما تقدمه اللغة لحل مشكلة معينة، وفي الحالات البسيطة التمكن من تطبيق هذه المعرفة. يمكنك ممارسة Java Core على JavaRush، وإذا لم تكن قد فعلت ذلك بعد، فنحن ندعوك لحضور الدورة ! حسنًا، بالنسبة للآخرين، دعنا نذكرك بالمعالم الرئيسية لـ Java Core:
  • إنشاءات Java الأساسية والمشغلين وأنواع البيانات
  • OOP وتنفيذه في جافا
  • الاستثناءات
  • مجموعات جافا
  • الأدوية العامة
  • تعدد الخيوط

1. الأدوات

IDE أو بيئة التطوير المتكاملة

الأداة الرئيسية للمطور الحديث هي IDE. يوجد الكثير منهم في السوق اليوم، ولكن في تطوير Java الاحترافي، عادةً ما يكون هناك اسمان فقط. هذا هو Eclipse المجاني، المبني على مكونات إضافية ، والذي ظل مسيطرًا لسنوات عديدة متتالية، و IntelliJ IDEA ، الذي حل محل Eclipse بشكل نشط في السنوات الأخيرة، وهذا على الرغم من الحاجة إلى الاشتراك في الإصدار النهائي المهنيين يكلفون المال. دعنا نذكرك أننا نستخدم في دورة JavaRush الإصدار المجاني من Community IntelliJ IDEA، الذي يحتوي على قيود وظيفية معينة مقارنة بـ Ultimate. تعني عبارة "أعرف IDE" أنك على دراية بالإمكانيات الأساسية لبيئة التطوير، وتعرف كيفية تجميع الملفات وتشغيلها وتصحيح أخطائها واختبارها، بالإضافة إلى التعليمات البرمجية لإعادة البناء. سيكون إتقان المفاتيح الساخنة بمثابة مساعدة جيدة في تسريع عملك. لا تكن كسولًا، اقضِ بضع ساعات في التعرف على ميزات IDE التي لم تكن تعرفها وابدأ في استخدامها عمليًا. ولا تهمل تصحيح الأخطاء، فهي مهارة مفيدة للغاية. ستساعد كل هذه الإجراءات على تحسين سرعة وجودة عملك بشكل كبير.

أدوات للتجميع التلقائي

اليوم، تستخدم مشاريع Java في أغلب الأحيان أدوات مثل Maven وGradle. ليس من الضروري دراستها بدقة، ولكن سيكون من المفيد فهم مدى اختلافها عن بعضها البعض، وعلى ماذا تعتمد، وما هي المهام (في Gradle) والمراحل ذات الأهداف في Maven. سيكون كافيًا القراءة عن الأنظمة ونشر مشروعين صغيرين عليها. يعد هذا أمرًا بسيطًا جدًا، وسوف تفهم التفاصيل في ظروف العمل الحقيقية.

أنظمة التحكم بالإصدارات وخدمات الاستضافة عبر الإنترنت

نظام التحكم في الإصدار هو ما يساعد المبرمجين على العمل ضمن فريق في مشروع مشترك دون "كسره"، ومزامنة الأجزاء المتباينة من التعليمات البرمجية التي أنشأها أشخاص مختلفون، واستعادة التحديثات غير الناجحة وإضافة تحديثات جديدة. الأكثر شيوعًا هو نظامان للتحكم في الإصدار. يتم توزيع أحدهما ويسمى Git، والثاني مركزي، ويسمى SVN (المعروف أيضًا باسم Subversion). اليوم، Git هو المعيار الفعلي. يعد العمل مع هذا النظام أكثر ملاءمة وأسهل، وهو مدعوم من قبل جميع IDEs (بالإضافة إلى SVN). يمكن تجربة العمل مع Git بسرعة وسهولة، ولحسن الحظ، هناك الكثير من المعلومات حول هذا الموضوع على الإنترنت. على سبيل المثال، الكتاب المدرسي التفاعلي GitHowTo، المتوفر باللغة الروسية (يمر بسرعة كبيرة). من المهم جدًا للمطور المبتدئ أن يتقن خدمات الاستضافة عبر الإنترنت لأنظمة التحكم في الإصدار. غالبًا ما تعتمد على Git وتسمى منصات Git (على الرغم من أن بعضها يمكنه العمل مع أنظمة مختلفة للتحكم في الإصدار). الأكثر شعبية منهم هو جيثب. BitBucket وGitLab شائعان أيضًا. تساعدك هذه الأنظمة على تخزين التعليمات البرمجية واسترجاعها، وكذلك القيام بما يمكن لـ Git القيام به، ليس فقط من خلال سطر الأوامر، ولكن من خلال الواجهة. يتيح لك GitHub أيضًا التحقق من التعليمات البرمجية وتقديم حلول للمشكلات مباشرة على الموقع. هناك يمكنك أيضًا العثور على مشروع مفتوح المصدر لشخص آخر ومحاولة تقديم حلولك الخاصة لتحسينه. في الأساس، يعد GitHub نوعًا من الشبكات الاجتماعية للمطورين. لذا، إذا لم تكن قد قمت بذلك بالفعل، فتأكد من إنشاء حساب على GitHub واستضافة مشاريعك هناك. اقرأ أيضًا عن GitLab وBitBucket، وإذا كان لديك الوقت، يمكنك تجربتهما، فلديهما إصدارات مجانية. بالمناسبة، تم دمج جميع هذه المنصات بالكامل مع بيئات تطوير متكاملة (IDEs) حديثة. جافا.  خطة العمل - 2

2. واجهة برمجة تطبيقات JDK

يسلط هذا القسم الضوء على واجهات برمجة تطبيقات JDK التي يحتاج مطور Java الحديث إلى معرفتها بثقة تامة. لن يضر المبرمج أن ينظر في الكود المصدري لهذه المكتبات من وقت لآخر، ويتنقل فيها، ويفهم متى يجب استخدامها ولماذا. التأثير الجانبي: إذا كنت على دراية جيدة بواجهات برمجة التطبيقات هذه، فمن المحتمل أن يكون لديك وقت أسهل بكثير في اجتياز المقابلة.

إطار مجموعات جافا

يعد Java Collection Framework أحد أهم واجهات برمجة التطبيقات (APIs) للغة Java ويجب أن يعرفها كل مطور. إنه يمثل تسلسلًا هرميًا للواجهات وتطبيقات هياكل البيانات القياسية في Java مثل القائمة والقائمة المرتبطة والمجموعة والمكدس وقائمة الانتظار وجدول التجزئة وغيرها الكثير. يجب أن يكون لدى المطور فهم جيد للفئات ArrayList وHashMap وHashSet وLinkedHashSet وTreeSet وغيرها، ومعرفة خصائصها. على وجه الخصوص، تحتاج إلى فهم تكاليف الوقت والذاكرة لمجموعة معينة للعمليات القياسية (الفهرس والبحث والإدراج والحذف)، وبناءً على ذلك، يمكنك تطبيقها بشكل صحيح في مشاريعك. يتم تنفيذ المجموعات في Java بشكل جيد للغاية، ولكن إذا كانت هناك حاجة، يمكن للمطور تقديم التنفيذ الخاص به. يمكن للمبرمج الذي هو على دراية جيدة بالمجموعات توسيع أو إعادة تعريف المنطق في الفصول المكتوبة بالفعل، أو تنفيذ كل شيء من الصفر.

جافا واجهة برمجة التطبيقات المتزامنة

تم تصميم Java في الأصل لدعم البرمجة المتوازية، ومنذ الإصدار 5.0، تتضمن اللغة واجهات برمجة التطبيقات عالية المستوى للسلاسل المتوازية. لذلك، يجب على مطور Java المختص أن يكون لديه فهم جيد لتعدد مؤشرات الترابط وأن يكون لديه فهم لواجهات برمجة التطبيقات الرئيسية من حزم java.util.concurrent.* . كحد أدنى، تحتاج إلى معرفة وفهم واضح لماهية Thread وRunnable وقفل الكائنات والمزامنة. تأكد من فهم مفاهيم الجمود، والقفل المباشر، وظروف السباق، وما يجب فعله بكل ذلك. لكي تشعر بالثقة، تعلم المزامنات من java.util.concurrent.*، مثل Semaphore وCyclicBarrier وCountDownLatch وPhaser وExchanger<V> وCompletableFuture وما إلى ذلك. وكذلك الواجهات القابلة للاستدعاء والمستقبلية.

واجهة برمجة تطبيقات الإدخال/الإخراج لجافا

غالبًا ما يتجاهل المطورون المبتدئون الدراسة المتعمقة لـ Java I/O و Java Non-blocking I/O . ولكن دون جدوى: تجعل واجهات برمجة تطبيقات Java هذه العمل مع سلاسل الرسائل أسهل وتستخدم بانتظام في التطبيقات الحقيقية. خاصة فئات مثل File وInputStream وOutputStream وReader وWriter من حزمة java.io، والتي تعد جوهر Java IO API. Java I/O غير المحظورة (java.nio) عبارة عن مجموعة من واجهات برمجة التطبيقات المصممة لتنفيذ عمليات الإدخال/الإخراج عالية الأداء. وتشمل هذه، على وجه الخصوص، ByteBuffer وFileChannel وSelector وغيرها. خذ عناء فهم واجهات برمجة التطبيقات هذه، فلن تندم عليها.

كائن فئة الجهاز

بمجرد أن تفهم فئة الكائنات الفائقة، تصبح "متحدثًا أصليًا لـ Java"، وتعرف بشكل أفضل بنية OOP والعديد من العمليات. تقع فئة java.lang.Object في أعلى التسلسل الهرمي للفئة. بالإضافة إلى فهم أفضل لما يحدث، فإن معرفة أساليب الفصل الدراسي ستجعل إجراء المقابلات أسهل بكثير - حيث يحب القائمون على إجراء المقابلات اختبار المرشحين باستخدام فئة الكائن وكائناتها.

3. ميزات جديدة في Java 8

على الرغم من مرور الوقت منذ إصدار Java 8، وظهور تحديثات مرقمة أخرى بالفعل، إلا أن الإصدار الثامن هو الذي أصبح مبدعًا. لقد قدم ابتكارات مهمة تعمل على تبسيط أساليب البرمجة في Java وتغييرها إلى حد ما. يجب أن تفهم كيفية استخدام تعبيرات lambda، بالإضافة إلى Stream API في Java 8 وواجهات برمجة تطبيقات التاريخ والوقت الجديدة.

4. SQL، قواعد البيانات، JDBC

قليل من مطوري Java لا يواجهون استعلامات SQL وقواعد البيانات في عملهم. لذلك، من المهم فهم ماهية SQL وقواعد البيانات العلائقية، وكيفية عملها، والقدرة على كتابة استعلامات بسيطة لربط جدولين. للتدريب، يمكنك تجربة العمل مع أحد أنظمة إدارة قواعد البيانات (DBMS)، على سبيل المثال، PostgreSQL أو MySQL . سيكون من الجيد أيضًا اكتساب المعرفة الأساسية بقواعد البيانات غير العلائقية وأساليب noSQL والإلمام السطحي بنظام DBMS MongoDB الموجه نحو المستندات . للعمل مع قواعد البيانات في Java خالصة، يمكنك استخدام معيار JDBC مع واجهة برمجة التطبيقات التي تحمل الاسم نفسه. يتم تنفيذه كحزمة java.sql، المضمنة في JDK. اليوم نادرًا ما يتم استخدامه في شكله النقي، ولكن غالبًا ما يمكن العثور عليه في تطبيقات الدعم الأقدم، وغالبًا ما تعتمد الأدوات الأكثر حداثة والمقبولة بشكل عام على هذا المعيار.

5. الأطر

من بين متطلبات مطور Java المبتدئ اليوم يمكنك العثور بشكل متزايد على "المعرفة بـ Spring و Hibernate و Spring Boot". إن تعلم هذه التقنيات بمفردك مهمة صعبة للغاية، ولكنها مع ذلك ممكنة، خاصة على المستوى السطحي. سيأتي فهم أعمق أثناء عملك. لذا.

إطار الربيع

تقريبًا كل التطبيقات المبنية في Java هذه الأيام تستخدم Spring Framework. يوفر هذا الإطار القوي نظام إحداثيات محدد، وهو العمود الفقري الذي تم بناء التطبيق عليه. يعد تطبيق Spring أسهل بكثير في الاختبار والصيانة. وكل ذلك بفضل حقن التبعية.

بيات شتوى

الإطار الآخر الأكثر أهمية لمطوري Java هو Hibernate. وهو يطبق مواصفات JPA (Java Persistence API)، التي تحل مشاكل رسم الخرائط الارتباطية للكائنات (ORM). تتفاعل معظم تطبيقات Java مع قواعد البيانات، وإذا كنا نتحدث عن قواعد البيانات العلائقية، فإن العمل معهم بدون وضع السبات غير مريح. يوفر هذا الإطار للمطورين عددًا من الميزات المهمة، على وجه الخصوص، التخزين المؤقت والمعاملات خارج الصندوق، والتي بدورها تسمح لهم بتركيز جهودهم على تطوير منطق التطبيق وتحرر المبرمج من العديد من المهام ذات المستوى المنخفض عند العمل مع قواعد البيانات العلائقية . يؤدي هذا إلى تحسين إنتاجية المطور بشكل كبير.

الربيع MVC

يضمن هذا الإطار تطوير التطبيق وفقًا لنموذج العرض - نموذج التحكم، باستخدام مكونات جاهزة مترابطة بشكل غير محكم. ادرس هذا النمط (تتم مناقشة أنماط التصميم أدناه) ومنطق SpringMVC. في الممارسة العملية يتم استخدامه في كثير من الأحيان.

التمهيد الربيع

باستخدام المهارة المناسبة، يجعل 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 الأساسية التي طورتها Google. هنا يمكنك العثور على أنواع جديدة من المجموعات (الخرائط المتعددة والمجموعات المتعددة وغيرها)، والمجموعات غير القابلة للتغيير، والرسوم البيانية، والوظيفية، والأدوات المساعدة للتوازي، والإدخال/الإخراج، والتجزئة، ومعالجة السلسلة، وغير ذلك الكثير.

أباتشي كومنز

كومنز هو مشروع ضخم يحتوي على العديد من أدوات جافا المفيدة لأغراض مختلفة. وبالتالي، فإن مكتبات Apache Commons تشكل أساس Tomcat وHibernate وعدد من المشاريع الكبيرة الأخرى. هناك الكثير من المكتبات في Apache Commons. دعنا نذكر Commons IO، الذي يبسط عمليات الإدخال/الإخراج، وCommons CSV للعمل مع ملفات CSV، وCommons Math للعمل مع العمليات والحسابات الرياضية والإحصائية المعقدة، وCommons CLI لتحليل وسيطات سطر الأوامر.

8. عملاء API

REST هو نمط تسمية لنقاط النهاية للوصول إلى الموارد عبر الشبكة بتنسيق يمكن قراءته بواسطة الإنسان. من الأفضل لمطور Java الحديث أن يفهم أيديولوجية REST وأن يعرف أيضًا Spring RestTemplate ، وهي مكتبة مفيدة جدًا لإنشاء عميل REST.

9. أنماط التصميم

إذا كان المطور المبتدئ على دراية بأنماط التصميم، أي قواعد الأخلاق الحميدة في برمجة Java، وحتى يعرف كيفية تطبيقها عمليًا، فسوف يزيد من قيمته على الفور في سوق العمل. غالبًا ما يقلل المبتدئون من أهمية الأنماط لأنهم نادرًا ما يقومون بإنشاء تطبيقات معقدة أثناء الدراسة. ومع ذلك، إذا لم يتم تطبيق الأنماط على المشاريع الجادة، فإن الحفاظ على التعليمات البرمجية وتكييفها يصبح مهمة صعبة للغاية. لذلك لا تكن كسولاً، قم بدراسة الأنماط وتطبيقها في مشاريعك الشخصية. سيكون صاحب العمل المستقبلي ممتنًا جدًا لذلك.

10. معرفة إضافية

الخوارزميات وهياكل البيانات

"الخوارزميات وهياكل البيانات" هو اسم دورة كاملة يتم تدريسها في الجامعات التقنية. ويكشف عن الأساس النظري لبناء هياكل البيانات المختلفة. وفي الفصول العملية يتعلمون كيفية العمل معهم - وضع البيانات واسترجاعها والبحث عنها وفرزها. في الواقع، "الخوارزميات" في هذه العبارة تعني بالضبط الفرز والبحث. على مر السنين، طور علماء الكمبيوتر العديد من الخوارزميات. بعضها تعليمي بطبيعته، لأنه على الرغم من سهولة التنفيذ النسبية، إلا أنها ليست فعالة جدًا في التشغيل. على سبيل المثال، تعمل ببطء، وهو ما يمكن ملاحظته في مجموعات البيانات الكبيرة. أو أنها تستهلك الكثير من الذاكرة. أثبتت الخوارزميات الأخرى أنها فعالة للغاية. لدرجة أنه تم إدراجها في المكتبات الرسمية لمعظم لغات البرمجة. وبناء على ذلك، ليس من الضروري اليوم تطوير مثل هذه الخوارزميات بشكل مستقل. ويكفي أن نعرف أين هم. ومع ذلك، يوصي معظم المطورين ذوي الخبرة بأن يذهب المبتدئون إلى "مدرسة الخوارزميات" - حيث يقومون بتنفيذها بأنفسهم أثناء الدراسة. هذا يطور تفكير المبرمج. كما أنه يساعد في المقابلات، فهم يحبون حقًا طرح مشاكل الفرز والبحث.

الخدمات

يعد servlet طريقة للتعامل مع طلب المستخدم. اليوم لا يتم استخدامها في كل مكان وليس دائمًا، ولكن سيكون من المفيد الحصول على فكرة عنها.

HTML وCSS

يجب على الجميع معرفة أساسيات التخطيط. من السهل جدًا الحصول على هذه المعرفة، وإذا لم تكن قد فعلت ذلك بعد، فخصص بضعة أيام لهذا النشاط. وفي الوقت نفسه، سوف تأخذ استراحة من المواضيع الأكثر تعقيدًا.

XML

كانت لغة الترميز القابلة للتوسيع موجودة في كل مكان في تطوير Java. يتم استبداله تدريجيًا بـ JSON، لكن XML لا يزال يستخدم حتى اليوم. ليس من الصعب تعلمها، لذا يمكنك إعطاء هذه اللغة القليل من الاهتمام.

جافا سكريبت

تُظهر استطلاعات المطورين أنه حتى أولئك الذين ليس لديهم أي علاقة على الإطلاق بتطوير الواجهة الأمامية، كتبوا نصوصًا برمجية بلغة JavaScript من وقت لآخر. إن معرفة أساسيات هذه اللغة يمكن اعتبارها قاعدة من قواعد الأخلاق الحميدة، فلا تتكاسل، اقرأ عنها وقم بإنشاء عشرات أو اثنتين من النصوص. لن تكون زائدة عن الحاجة.
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION