لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

كيف تختلف Java عن اللغات الشائعة الأخرى؟ لماذا قد تكون Java هي اللغة الأولى التي يجب تعلمها؟ دعنا نضع خطة تساعدك على تعلم Java من البداية ومن خلال تطبيق مهارات البرمجة بلغات أخرى. دعنا نسرد الاختلافات بين إنشاء كود الإنتاج في Java والتطوير في اللغات الأخرى. قرأ ميخائيل زاتيباكين هذا التقرير في اجتماع للمشاركين في المستقبل التدريب Yandex والمطورين المبتدئين الآخرين - لقاء جافا جونيور.


مرحباً بالجميع ، اسمي ميشا. أنا مطور من Yandex.Market ، وسأخبرك اليوم لماذا يجب عليك تعلم Java وكيفية القيام بذلك بشكل فعال. يمكنك طرح سؤال معقول: لماذا سأقول هذا ، وليس مطورًا قويًا لديه مجموعة من سنوات الخبرة؟ الحقيقة هي أنني درست Java مؤخرًا ، منذ عام ونصف ، لذلك ما زلت أتذكر كيف كانت تقريبًا وما هي المزالق.

قبل عام ، حصلت على تدريب داخلي في Yandex.Market. لقد طورت خلفية لبيرو ، للسوق نفسه ، ربما استخدمته. الآن أواصل العمل هناك ، في فريق مختلف. نحن نعمل على تطوير منصة Yandex.Market التحليلية لشركاء الأعمال.

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

هيا بنا نبدأ. لماذا تتعلم جافا من وجهة نظر عملية؟ الحقيقة هي أن Java هي لغة برمجة مشهورة جدًا. لديه مجتمع كبير جدا.

على سبيل المثال ، يوجد فهرس TIOBE ، وهو فهرس شائع لشعبية لغات البرمجة ، وتحتل Java المرتبة الأولى هناك. أيضًا في المواقع التي بها وظائف شاغرة ، ستلاحظ على الأرجح أن معظم الوظائف الشاغرة تتعلق فقط بجافا ، أي أنك تتطور في جافا ، ويمكنك دائمًا العثور على وظيفة.

نظرًا لأن المجتمع كبير جدًا ، فسيتم الرد على أي سؤال لديك على موقع Stack Overflow أو مواقع أخرى. أيضًا ، عند التطوير في Java ، فأنت تكتب بالفعل تعليمات برمجية في JVM ، لذا يمكنك التبديل بسهولة إلى Kotlin و Scala واللغات الأخرى التي تستخدم JVM.

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

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

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

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

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

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

هناك أيضًا الكثير من أطر العمل والمكتبات لجافا ، لأن عمر اللغة بالفعل يزيد عن 15 عامًا. خلال هذا الوقت ، تمت كتابة كل ما يمكن كتابته عليه ، لذلك هناك مجموعة من المكتبات لكل ما قد تحتاجه.

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

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

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

يذهب! جافا الأساسية. هنا لن أكتشف أمريكا على وجه الخصوص - أنت بحاجة إلى معرفة اللغة نفسها. ما يجب الانتباه إليه. أولاً ، أصدرت Java الكثير من الإصدارات في السنوات الأخيرة ، أي في 2014-2015 ، تم إصدار الإصدار السابع ، ثم الإصدار الثامن والتاسع والعاشر ، والكثير من الإصدارات الجديدة ، وتم تقديم الكثير من الأشياء الرائعة الجديدة فيها ، على سبيل المثال ، Java Stream API ، lambda ، إلخ. أشياء رائعة جديدة ورائعة يتم استخدامها في كود الإنتاج ، ما هو مطلوب في المقابلات وما تحتاج إلى معرفته. لذلك ، يجب ألا تأخذ كتابًا من الرف في مكتبة Java-4 وتذهب لتعلمه. هذه الخطة: تعلم Java-8 أو أعلى.

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

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

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

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

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

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

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

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

و- نوع من بيئة التطوير. أوصي بـ IntelliJ Idea. إنه يسرع عملية التطوير بشكل كبير ، ويساعدك كثيرًا ، ويكتب أي رمز معياري لك ، بشكل عام ، رائع.

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

روابط من الشريحة: SQLZOO, هابرابوست

SQL. قليلا عن المؤخرين. هنا ، في الواقع ، كانت حالة مضحكة. قبل يومين من مقابلتي الثانية للحصول على تدريب داخلي ، اتصلت بي فتاة في قسم الموارد البشرية وقالت إنه في غضون يومين سيطلبون مني SQL و HTTP ، أحتاج إلى التعلم. ولم أكن أعرف أي شيء عن SQL أو HTTP عن أي شيء. ووجدت مثل هذا الموقع الرائع - SQLZOO. على ذلك ، تعلمت SQL في 12 ساعة ، أعني ، بناء جملة SQL ، كيفية كتابة استعلامات SELECT ، JOIN ، إلخ. موقع رائع جدًا ، أوصي به بشدة. في الواقع ، خلال 12 ساعة تعلمت 90٪ مما أعرفه الآن.

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

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

في Java ، بالإضافة إلى SQL ، هناك جميع أنواع أنظمة رسم الخرائط العلائقية مثل JPA. هناك بعض التعليمات البرمجية. في الطريقة الأولى ، تكون بعض تعليمات SQL البرمجية هي SELECT ID name FROM info.users WHERE id IN userIds. من قاعدة بيانات المستخدمين ، من الجدول ، يحصلون على معرفاتهم وأسمائهم.

بعد ذلك ، يوجد مخطط يقوم بتحويل كائن من قاعدة إلى كائن Java. وهناك طريقة ثالثة أدناه ، والتي ، في الواقع ، تنفذ هذا الرمز. كل هذا بمساعدة JPA يمكن استبداله بسطر واحد مكتوب أدناه. يفعل نفس الشيء - ابحث عن All ByIdIn. وهذا يعني ، باسم الطريقة ، أنها تنشئ استعلام SQL نيابة عنك.

أشياء رائعة جدا. أنا نفسي ، عندما لم أكن أعرف SQL ، استخدمت JPA. بشكل عام ، انتبه. إذا كنت كسولًا جدًا لتعلم SQL - أطلق. وبشكل عام ، النار!

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

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

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

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

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

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

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

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

ارتباط من الشريحة

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

يوجد موقع على شبكة الإنترنت به أكثر الأنماط شيوعًا - refactoring.guru ، يمكنك القراءة ومعرفة الأنماط وقراءة مجموعة من النظريات. المشكلة هي أنه عديم الفائدة عمليا. في الواقع ، فإن الأنماط بدون ممارسة قليلة الفائدة.

سوف تسمع عن بعض الأنماط مثل Singletone أو Builder. من سمع هذه الكلمات؟ الكثير من الناس. هناك أنماط بسيطة يمكنك تنفيذها بنفسك. لكن معظم الأنماط: الإستراتيجية ، المصنع ، الواجهة - ليس من الواضح مكان تطبيقها.

وحتى ترى عمليًا في بعض الرموز الأجنبية المكان الذي يتم تطبيق هذا النمط عليه ، فلن تكون قادرًا على تطبيقه بنفسك. لذلك ، فإن الممارسة مهمة جدًا مع الأنماط. ومجرد القراءة عنها على موقع refactoring.guru ليس مفيدًا للغاية ، ولكنه أمر لا بد منه.

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

لماذا هناك حاجة للأنماط؟ افترض أن لديك فئة مستخدم. لها هوية واسم. يجب أن يكون لكل مستخدم معرف واسم. أعلى اليسار هو الطبقة.

ما هي طرق تهيئة المستخدم؟ خياران - إما منشئ أو واضع. ما هي عيوب كلا النهجين؟

البناء. مستخدم جديد (7 ، "Bond") ، حسنًا. لنفترض الآن أنه ليس لدينا فئة مستخدم ، ولكن هناك فئة أخرى بها سبعة حقول رقمية. سيكون لديك منشئ مع سبعة أرقام متتالية. ليس من الواضح ما هي هذه الأرقام ، أي واحد ينتمي إلى أي خاصية. المنشئ ليس رائعًا.

الخيار الثاني هو setter. تكتب بوضوح: setId (7) ، setName ("Bond"). أنت تفهم أي خاصية تنتمي إلى أي حقل. لكن الواضع لديه مشكلة. أولاً ، يمكنك أن تنسى إصابة شيء ما ، وثانيًا ، يصبح الكائن الخاص بك قابلاً للتغيير. هذا ليس مؤشر ترابط آمن ويقلل بشكل طفيف من قابلية قراءة الكود. لذلك ، جاء الناس بنمط رائع - باني.

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

عن ماذا يتكلم؟ سنحاول جمع مزايا كلا النهجين - كل من الواضع والمنشئ - في واحد. نصنع كائنًا معينًا ، وهو Builder ، والذي سيحتوي أيضًا على حقلي المعرف والاسم ، اللذين سيتم بناؤهما على أساس المُعيِّن ، والذي سيكون له طريقة البناء ، والتي تُعيد لك مستخدمًا جديدًا مع جميع المعلمات. نحصل على كائن ثابت وواضع. رائع!

ما هي المشاكل؟ هنا لدينا منشئ كلاسيكي. المشكلة هي أنه لا يزال بإمكاننا نسيان الوصول إلى بعض المجالات. وإذا نسينا زيارة المعرف ، في هذه الحالة في Builder ، فسيتم تهيئته بصفر ، لأن النوع int غير قابل للإلغاء. وإذا صنعنا الاسم "Bond" وننسى زيارة المعرف ، فسيكون لدينا مستخدم جديد بالمعرف "0" واسم "Bond". ليس باردا.

دعنا نحاول محاربة هذا. في المنشئ ، سوف نغير int إلى int بحيث يكون nullable. الآن كل شيء رائع.

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

إذا حاولنا إنشاء مستخدم باسم "Bond" ، متناسين إعطائه معرّفًا ، فسنحصل على استثناء مؤشر فارغ ، لأن المعرّف غير قابل للإلغاء ، وللمنشئ قيمة خالية ، وتحديداً استثناء المؤشر.

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

ولكن لا يزال بإمكاننا نسيان وضع الاسم ، لذلك قمنا بتعيين إعادة تشغيل الكائن على قيمة خالية. الآن ، عندما نبني كائنًا من Builder ، فإنه يتحقق من أن الحقل غير قابل للإلغاء. وهذا ليس كل شيء.

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

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

تحتاج إلى إلقاء خطأ ليس في لحظة إنشاء المستخدم ، ولكن عند تعيينه على المعرف الفارغ. لذلك ، في Builder ، سنغير Integer إلى int في الواضع ، وسوف يقسم على الفور هنا أنه طرد القيمة null.

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

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

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

لقد ذكرت سابقًا أن Java بها مكتبات لكل شيء تقريبًا ، بما في ذلك Lombok ، وهي مكتبة رائعة تتيح لك تجنب الاضطرار إلى كتابة نموذج معياري. باني ، GET.

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

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

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

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

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

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

ماذا فعلت في المشروع؟ كتب تطبيق خادم على Spring Boot بدون استخدام SQL. لم أكن أعرفه ، لقد استخدمت JPA. ماذا يمكن أن تفعل؟ سجّل الدخول إلى VK عبر OAuth-2. خذ رمز المستخدم ، وانتقل إلى VK معه ، وتأكد من أن هذا مستخدم حقيقي. تلقي معلومات حول المستخدمين من خلال فكونتاكتي. يقوم بحفظ المعلومات في قاعدة البيانات بمهارة ، أيضًا من خلال JPA. يمكنك بمهارة حفظ الصور والملفات الأخرى في ذاكرة الكمبيوتر ، وحفظ الروابط إليها في قاعدة البيانات. في ذلك الوقت ، لم أكن أعرف بعد أن هناك كائنات CLOB في قاعدة البيانات ، لذلك قمت بذلك بهذه الطريقة. كان هناك واجهة برمجة تطبيقات REST للمستخدمين وتطبيقات العميل. وكانت هناك اختبارات وحدة للوظائف الأساسية.

[...] مثال صغير لتعلمي الناجح لجافا. في عامي الأول في الجامعة ، علموني C # وأعطوني فهمًا لبرمجة OOP - ما هي الفصول الدراسية ، والواجهات ، والتجريد ، ولماذا هم بحاجة إليها. لقد ساعدتني كثيرا. بدون ذلك ، يكون تعلم Java أمرًا صعبًا للغاية ، وليس من الواضح سبب الحاجة إلى الفصول الدراسية.

لماذا تعلم جافا وكيف تفعل ذلك بشكل فعال. تقرير ياندكس

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

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

شكرًا لك! روابط مفيدة:
- "Java 8. دليل المبتدئين".
- هياكل البيانات.
- SQLZOO.
- تطبيع قاعدة البيانات.
- أنماط التصميم.
- أنماط التصميم.
- كود نظيف.
- جافا الفعال.

المصدر: www.habr.com

إضافة تعليق