"لا تفتخر كثيرًا بهذه الإنجازات التكنولوجية التي قمت ببنائها. "القدرة على تدمير كوكب لا تُقارن بقوة القوة." - دارث فيدر عن نجمة الموت.
مقدمة
ربما يكون الجزءان التاليان من سلسلة المقالات هما الأكثر توقعًا بالنسبة للكثيرين، وذلك لسبب وجيه. ما الذي يوجد خلف الأفق، وراء جاوة النقية؟ ما الذي يتنفسه مطورو Java في كل مشروع؟ اعتبر هذا دليلًا حقيقيًا وكاملًا للدراسة الذاتية لأي مهندس خلفي متوسط لغته البرمجية الرئيسية هي Java. أنوي تغطية متوسط المستشفى قدر الإمكان ووصف ليس فقط الأطر الأكثر شيوعًا، ولكن أيضًا الحلول التي تعتبر ذات صلة في الوقت الحالي. وبطبيعة الحال، هناك الكثير من الأدوات، وفهم أهمها وأفضلها هو الطريق إلى اللامكان. نظر كل واحد منكم إلى قسم "الوظائف" في DOU ووجد مجموعة من التقنيات التي تتكرر باستمرار من وظيفة شاغرة إلى أخرى. أدرك أنه من المستحيل وصف كل شيء، ولكن الخروج بإطار عام أمر جيد، لذلك دعونا نحاول اتباع هذا الاتجاه. بطريقة ما في الماضي، في أحد المشاريع، حدث إحراج مثير للاهتمام إلى حد ما، والذي أعتقد أنه كان ويتكرر باستمرار من وقت لآخر للكثيرين في منطقة أو أخرى. تم تعيين المهمة لإرفاق عرض صفحة HTML واحدة بالوظيفة النهائية فقط لإظهار حالة الكيانات الفردية. ونتيجة لذلك، قرر زميلي إرفاق أوراق الربيع الزنبركية، والتي سحبت جزءًا من التبعيات الأساسية لـ Spring نفسها، عندما لم يستخدم أحد Spring. وهذا كله من أجل صفحة عادية واحدة، والتي تعرض ببساطة حالة 2-3 كيانات. "لم أر قط فائدة كبيرة في استخدام سيفين ضوئيين... إنه عرض استعراضي في رأيي" - أوبي وان كينوبي. فمن ناحية، قام المطور بحل المشكلة في أسرع وقت ممكن، وقام بتثبيت إطار عمل كان لديه خبرة في استخدامه ودمجه في المشروع في غضون ساعات. ولكن من ناحية أخرى، فقد زاد حجم برنامجنا، لذا يصبح السؤال البسيط: هل فعل الشيء الصحيح؟ بالنسبة لمثل هذه المهام الذرية، عندما تعرف على وجه اليقين أن ورقة الزعتر/Spring MVC، وما إلى ذلك، أكبر. لن يتم استخدامه في أي مكان، فمن الأفضل عدم استخدامه على الإطلاق. أتفاجأ دائمًا بعبارات مثل "أوه! نعم، استخدمنا السبات هنا! انظر، كل شيء رائع يا ORM!"، وعندما سئلوا السؤال المنطقي عما إذا كان من الممكن التعامل مع JDBC العادي هنا، هزوا أكتافهم. هناك هندسة معمارية عادية، والتي ينبغي أن تكون بسيطة، والتي ينبغي التعامل معها بخوف، وليس تشوشها بأطر عصرية وفائقة الحداثة. كما قال أوبي وان أعلاه، هذا ليس أكثر من مجرد التباهي، على الرغم من أنه من الضروري معرفة كيفية استخدامها. الشاب الجاوي، في رأيي، هو الأكثر حظًا على الإطلاق - لديه الكثير من المواصفات، والعديد من المكتبات التي تحتاج إلى الدراسة. Java EE وحدها لديها وثائق من خلال السقف. السؤال الذي يطرح نفسه هو ما الذي يجب على المبتدئ فعله، وماذا يجب أن يتعلم بعد ذلك، وماذا يفعل بعد هورستمان؟ إجابة بسيطة: لسوء الحظ، التقيت بالكثير من الناس. ولن نبدأ بأطر العمل، بل بالأشياء الضرورية الأكثر دنيوية.أنظمة التشغيل
لينكس
بالإضافة إلى Windows و/أو Yosemite المريح، عليك أن تمد يديك إلى Linux بابتسامة. بالنسبة لبعض المشاريع، يكفي أن تكون مستخدما ومعرفة كيفية استخدام سطر الأوامر، للآخرين - أكثر من ذلك بكثير. ما هي الطريقة الأفضل؟ هناك ببساطة الكثير من الكتب/البرامج التعليمية على الإنترنت. ابدأ بتثبيت Ubuntu أو أي توزيعة أخرى تفضلها وحاول استخدامه كنظام التشغيل الرئيسي لديك خلال الشهر أو الشهرين القادمين. سيكون الأمر أفضل بكثير إذا بدأت في تعلم Java داخل Linux عن طريق تجميع الملفات ومعالجتها باستخدام الوحدة الطرفية. سطر أوامر Linux بقلم William Shotts . اقرأ هذا الكتاب ليس باعتباره رواية "50 ظلال من الرمادي"، ولكن باعتباره دورة تفاعلية كاملة - افتح محطة طرفية وكرر ذلك بعد المؤلف. هل تريد الأساسيات وكيف يعمل Linux؟ دعونا لا نتناول دورة علوم الكمبيوتر وأنظمة التشغيل - فذلك في الجزء التالي. انتقل إلى edx.org وجرّب الدورة التدريبية السهلة المقدمة إلى Linux . يوجد أيضًا كتاب من السلسلة المذكورة أعلاه كيف يعمل Linux: ما يجب أن يعرفه كل مستخدم متميز بقلم بريان وارد . منشور مصور إلى حد ما يهتم بالشبكات والأجهزة وإدارة الموارد. تفضل؟ هناك كتاب ممتاز، بالمناسبة، لدي في مكان ما هنا... نعم (يهز الغبار)... ها هو! يونيكس ولينكس: دليل مسؤول النظام. إيفي نيميث. دليل كبير جدًا، ومترجم جيدًا. بصراحة، أنا شخصيا لم أتقنها، لكني أحببت أساسيات الإدارة (الجزء الأول). وبطبيعة الحال، لا يمكنك تجاهل البرمجة النصية لـ Shell. من الأفضل تجربة كل هذا عمليًا، ولكن من الكتب يمكنك الاطلاع على تعلم لغة bash Shell: برمجة Unix Shell بواسطة Cameron Newham. لا يمكن تغطية مثل هذا الكم الهائل من المؤلفات حول Linux/Unix بالكامل، خاصة في هذه المقالة، حيث يوجد Linux في الخلفية. زميلي في العمل، الذي أكل الكلب في هذا الشأن، نصح بشيء عملي إلى حد ما: قم بتنزيل ArchLinux وحاول تشغيله. في هذه العملية سوف تتعلم أكثر ما لا أريده!شبابيك
يوجد في السيرة الذاتية للمبرمجين عمود: "تجربة Windows لأكثر من 10 سنوات". بالطبع، أهنئك على حقيقة أنك تلعب لعبة العداد منذ أن كان عمرك 10 سنوات على نظام التشغيل Windows، لكنني أطلب منك ألا تحفر لنفسك فجوة مقدمًا في المقابلة، لأنه في مشروع تعمل فيه بشكل وثيق مع IIS، Batch/Powershell، لا سمح الله، التسجيل، لن تكون المقابلة صعبة حقًا، بالإضافة إلى الابتسامة المقابلة للشخص الجالس. ليدا سوف تتلقى أيضًا جرعة من الإذلال. هل تحتاج لهذا؟ الجواب يقترح نفسه. ضع جانبًا نظام Windows المقرصنة الخاص بك من التورنت وحاول تثبيته على نوع ما من الأجهزة الافتراضية التي تعمل بنظام Windows Server. ادرسها ليس فقط من جانب المستخدم وتثبيت Java_HOME. في هذا الصدد، يوجد دليل كامل تقريبًا في شكل كتاب Mastering Windows Server 2012 R2 للكاتب مارك ميناسي . على سبيل المثال، إذا كنت تستخدم PowerShell، فاطلع على الكتاب الرائع Windows PowerShell in Action من تأليف Manning للكاتب Bruce Payette . أدرك أنه من المستحيل قراءة 1000 صفحة، ولكن على الأقل يمكنك الاحتفاظ بها معك كمرجع. ليست هناك حاجة لشيء آخر، على ما أعتقد. ونتيجة لذلك، انتبه إلى الفجوات الموجودة في معرفتك باستخدام Windows وابحث عن المعلومات التي تهمك على الإنترنت.أدوات البناء
مخضرم
ما هو أهم شيء يجب فهمه في Maven؟ فيما يلي الخطوات والمهام الأولى:- تعرف على ما يفعله Maven في كل مرحلة، ويمكنك حتى حفظه. هذا نجاح بنسبة 80٪ تقريبًا وسيعطيك صورة واضحة.
- قم بإنشاء مشاريع Sandbox الخاصة بك محليًا باستخدام نظام متعدد الوحدات، مع إدارة التبعية الواضحة. حاول إرفاق مكتبات الطرف الثالث، حاول إنشاء شيء باستخدامها.
- العب مع الملف الشخصي
- فهم إدارة المكونات الإضافية ودراسة قائمة المكونات الإضافية الأكثر شيوعًا على الموقع الرسمي.
- اكتشف كيف يمكنك استخدام maven على أفضل وجه في مشروعك. على سبيل المثال، يمكن للبنيات الموازية تقليل وقت البناء بشكل كبير.
النمل
تبدو هذه الأداة أسهل كثيرًا، لذا ليس هناك الكثير لنتعلمه هنا. لا تزال هناك مشاريع حيث ANT هي أداة البناء الوحيدة. هذا أمر طبيعي تمامًا: لقد أثبتت ANT أنها أداة بناء بسيطة ومباشرة في سياق إدارة المهام الذرية الصغيرة (مهام النمل). بالطبع، هناك العديد من المكونات الإضافية هنا، تمامًا مثل Maven. للبدء مع ANT، قم بما يلي:- حاول التعامل مع الملفات والمجلدات
- تنفيذ أوامر مختلفة لتنفيذ المهام. وبناء على ذلك، تعلم التبعيات وأولوية المهام في ANT.
- فك ضغط و/أو أرشيف مضغوط. في المهام، حاول اللعب بمحتويات الأرشيف وما إلى ذلك.
جرادل
بالنسبة لي، Gradle أقرب إلى ANT منه إلى Maven، ولكن يمكن أن يطلق عليه بالكامل الأخ غير الشقيق لهذين الرجلين. لديها دورة حياة مشابهة لـ Maven، ومرونة في نفس المهام التي لدى ANT. حسنًا، الشيء الأكثر أهمية هو أن Gradle لا يستخدم XML، علاوة على ذلك، يمكنك فعل ما تريد به إذا كنت على دراية بـ Groovy إلى حد ما. بشكل عام، شيء لذيذ جدا. لا تخف من استخدام Ant/Maven/Gradle في سياق بيئة التطوير المتكاملة (IDE) الخاصة بك. تم دمج هذه الأدوات بإحكام في Eclipse/IDEA، ويعتبر استخدام هذه الأدوات في سياق IDE أمرًا مريحًا للغاية.التكامل المستمر
نظرية
هذه برامج ملائكية تحميك من الطرد من العمل. باختصار، هذا هو البرنامج الذي يراقب التغييرات في التعليمات البرمجية، ويبني ويجري اختبارات مكتوبة لك. إذا كان كل شيء على ما يرام بعد كل التزام/دمج، فإن البناء يتوهج بضوء أخضر/أزرق لطيف. بمجرد كسر شيء ما، سيقوم نظام CI بالإبلاغ عنه على الفور. ومع ذلك، نظرية صغيرة - هذا كلاسيكي! التكامل المستمر: تحسين جودة البرمجيات وتقليل المخاطر بقلم بول دوفال . (ويعرف أيضًا باسم "التكامل المستمر" باللغة الروسية) ويناقش هذا الكتاب إنشاء نظام CI الخاص بك. دعونا نلقي نظرة على الحلين الأكثر شعبية في هذا المجال.جنكينز
جينكينز، المعروف أيضًا باسم هدسون. تطبيق مفتوح وودود وسهل الاستخدام. للتعرف أكثر على جنكينز، جرب ما يلي:- قم بتنزيله على جهاز الكمبيوتر الخاص بك. قم بتثبيت وتكوين JDK وMaven وANT وكل ما تحتاجه للمشروع.
- قم بإنشاء الوظيفة الأولى وحدد موقع مشروعك، على سبيل المثال، pom.xml الرئيسي. قم بتشغيله، وتأكد من إجراء نوع من الاختبار بحيث يكون مرئيًا بوضوح.
- تعلم كيفية تشغيل مشروعك بإعدادات وخيارات مختلفة.
- قم بإرفاق مكونات إضافية مختلفة وشاهد كيف تعمل جنبًا إلى جنب مع مشروعك.
- بناء مشغلات لوظائف مختلفة. إنشاء خط أنابيب صغير.
- استكشف DSL وحاول دمجه مع Jenkins.
- قم بإعداد جهاز تابع من كمبيوتر آخر و/أو اجعله جهازًا عاديًا لتشغيل الإصدارات.
- إنشاء بنيات ليلية.
GO TO FULL VERSION