«به این دستاوردهای فناوری که ساختهاید خیلی مغرور نباشید. توانایی نابود کردن یک سیاره در مقایسه با قدرت نیرو چیزی نیست." - دارث ویدر در ستاره مرگ.
مقدمه
احتمالاً دو بخش بعدی از سری مقالات برای بسیاری مورد انتظارترین و دلایل خوبی است. چه چیزی وجود دارد، فراتر از افق، فراتر از جاوای خالص؟ توسعه دهندگان جاوا در هر پروژه چه چیزی تنفس می کنند؟ این را یک راهنمای واقعی و کامل خودآموز برای هر مهندس متوسطی که زبان برنامه نویسی اصلی آنها جاوا است در نظر بگیرید. من قصد دارم تا حد امکان میانگین بیمارستان را پوشش دهم و نه تنها محبوب ترین چارچوب ها، بلکه راه حل هایی را که در حال حاضر مرتبط تلقی می شوند، شرح دهم. طبیعتا ابزارهای زیادی وجود دارد و درک اینکه کدام مهمترین و بهترین هستند راهی است به ناکجاآباد. هر یک از شما به بخش «شغل» در DOU نگاه کردید و مجموعهای از فناوریها را پیدا کردید که دائماً از یک شغل به جای خالی تکرار میشوند. من می دانم که توصیف همه چیز غیرممکن است، اما ارائه یک چارچوب کلی خوب است، بنابراین بیایید سعی کنیم این جهت را دنبال کنیم. به نوعی در گذشته، در یکی از پروژه ها، شرمساری نسبتاً جالبی رخ داد، که، به نظر من، هر از گاهی برای بسیاری در یک منطقه یا آن منطقه به طور مداوم تکرار می شد و می شود. وظیفه ضمیمه کردن یک رندر از یک صفحه HTML به عملکرد تمام شده صرفاً برای نشان دادن وضعیت موجودیت های جداگانه تنظیم شده بود. در نتیجه، همکارم تصمیم گرفت برگ آویشن فنری را بچسباند، که بخشی از وابستگیهای اصلی خود اسپرینگ را در زمانی که هیچکس از Spring استفاده نمیکرد، کشید. و این همه برای یک صفحه معمولی است که به سادگی وضعیت 2-3 نهاد را نشان می دهد. "من هرگز فایده زیادی در استفاده از دو شمشیر نوری ندیده ام... به نظر من این یک خودنمایی است" - اوبی وان کنوبی. از یک طرف، توسعه دهنده مشکل را در سریع ترین زمان ممکن حل کرد، چارچوبی را نصب کرد که با آن تجربه استفاده از آن را داشت و در عرض چند ساعت آن را در پروژه ادغام کرد. اما از طرف دیگر، حجم برنامه ما افزایش یافته است، بنابراین سؤال ساده این است: آیا او کار را درست انجام داده است؟ برای چنین کارهای اتمی، وقتی مطمئن باشید که این Thimeleaf/Spring MVC و غیره بزرگتر است. هیچ جا استفاده نمیشه بهتره اصلا استفاده نکنید. من همیشه از عباراتی مانند "اوه! بله، ما در اینجا از Hibernate استفاده کردیم! ببینید، همه چیز عالی است، ORM!» و وقتی از این سوال منطقی پرسیده شد که آیا میتوان با JDBC معمولی اینجا کنار آمد، شانههایشان را بالا انداختند. یک معماری معمولی وجود دارد که باید ساده باشد، باید با ترس با آن برخورد کرد، نه با چارچوب های مد روز و فوق مدرن. همانطور که اوبی وان در بالا گفت، این چیزی بیش از خودنمایی نیست، اگرچه لازم است بدانید که چگونه از آنها استفاده کنید. به نظر من جوان جاوائی بدشانس تر از همه است - این همه مشخصات، این همه کتابخانه که نیاز به مطالعه دارند. جاوا EE به تنهایی دارای اسناد از طریق سقف است. این سوال پیش می آید که یک مبتدی باید چه کاری را انجام دهد، در مرحله بعد چه چیزی را یاد بگیرد، پس از هورستمن چه کاری باید انجام دهد؟ پاسخ ساده: متأسفانه با افراد زیادی آشنا می شوید. و ما نه با چارچوب های تجاری، بلکه با چیزهای ضروری تری شروع خواهیم کرد.سیستم های عامل
لینوکس
علاوه بر ویندوز و/یا یوسمیتی دنج، باید با لبخند دستان خود را به سمت لینوکس دراز کنید. برای برخی از پروژه ها، کافی است کاربر باشید و بدانید که چگونه از خط فرمان استفاده کنید، برای دیگران - خیلی بیشتر. کدام راه بهتر است؟ به سادگی هزاران کتاب/آموزش در اینترنت وجود دارد. با نصب اوبونتو یا هر توزیع دیگری که دوست دارید شروع کنید و سعی کنید تا یکی دو ماه آینده از آن به عنوان سیستم عامل اصلی خود استفاده کنید. اگر شروع به یادگیری جاوا در لینوکس با کامپایل و دستکاری فایل ها با استفاده از ترمینال کنید، بسیار بهتر خواهد بود. خط فرمان لینوکس توسط ویلیام شاتز . این کتاب را نه به عنوان یک رمان "50 سایه خاکستری"، بلکه به عنوان یک دوره تعاملی کامل بخوانید - یک ترمینال باز کنید و بعد از نویسنده تکرار کنید. آیا اصول اولیه و نحوه عملکرد لینوکس را می خواهید؟ بیایید درس علوم کامپیوتر و سیستم عامل را نخوانیم - این در قسمت بعدی است. به edx.org بروید و دوره آسان Introduction to Linux را امتحان کنید . همچنین کتابی از مجموعه فوق الذکر چگونه لینوکس کار می کند: آنچه که هر ابرکاربر باید بداند توسط برایان وارد وجود دارد . یک نشریه نسبتا مصور که به شبکه، دستگاه ها و مدیریت منابع توجه دارد. برو جلو؟ یه کتاب عالی هست که اتفاقا من یه جایی اینجا دارم... آره (گرد و غبار تکون میخوره)... اینجا هست! یونیکس و لینوکس: راهنمای مدیر سیستم اوی نمت. کتابچه راهنمای بسیار بزرگ، به خوبی ترجمه شده است. صادقانه بگویم، من شخصاً به آن تسلط نداشتم، اما اصول اولیه مدیریت (بخش اول) را خیلی دوست داشتم. به طور طبیعی، شما نمی توانید اسکریپت Shell را نادیده بگیرید. بهتر است همه اینها را در عمل امتحان کنید، اما از کتابها میتوانید به آموزش برنامهنویسی پوسته bash: Unix Shell توسط کامرون نیوهام نگاه کنید. چنین حجم عظیمی از ادبیات در لینوکس/یونیکس را نمی توان به طور کامل پوشش داد، به خصوص در این مقاله، که لینوکس در پس زمینه است. همکار من در محل کار، که در این مورد سگ را خورد، یک چیز نسبتاً کاربردی توصیه کرد: ArchLinux را دانلود کنید و سعی کنید آن را راه اندازی کنید. در این فرآیند شما بیشترین چیزی را که من نمی خواهم یاد خواهید گرفت!پنجره ها
در رزومه برنامه نویسان ستونی وجود دارد: "ویندوز بیش از 10 سال تجربه دارد." البته من به شما تبریک می گویم که از 10 سالگی روی ویندوز کانتر بازی می کنید، اما از شما می خواهم که در مصاحبه پیشاپیش خود را سوراخ نکنید، زیرا در پروژه ای که از نزدیک با آن کار می کنید IIS، batch/powershell، خدای نکرده رجیستری، مصاحبه واقعا سخت نخواهد بود و علاوه بر پوزخند مقابل فرد نشسته. لیدا شما نیز یک دوز تحقیر دریافت خواهید کرد. آیا به این نیاز دارید؟ پاسخ خود را نشان می دهد. ویندوز دزدی خود را از تورنت کنار بگذارید و سعی کنید آن را روی نوعی ماشین مجازی ویندوز سرور نصب کنید. آن را نه تنها از سمت کاربر و نصب JAVA_HOME مطالعه کنید. در این راستا راهنمای تقریبا کاملی در قالب کتاب Mastering Windows Server 2012 R2 اثر Mark Minasi وجود دارد . به عنوان مثال، اگر از PowerShell استفاده می کنید، کتاب عالی Windows PowerShell in Action نوشته Manning توسط Bruce Payette را بررسی کنید . من درک می کنم که رفتن از طریق 1000 صفحه غیرممکن است، اما حداقل می توانید آن را به عنوان یک مرجع نزد خود نگه دارید. به نظر من هیچ چیز دیگری لازم نیست. در نتیجه به خلأهای دانش خود در استفاده از ویندوز توجه کنید و اطلاعات مورد نظر خود را در اینترنت جستجو کنید.ساخت ابزار
ماون
مهمترین چیزی که در Maven باید فهمید چیست؟ در اینجا اولین مراحل و وظایف آمده است:- یاد بگیرید که Maven در هر مرحله چه می کند، حتی می توانید آن را حفظ کنید. این تقریباً 80٪ موفقیت است و به شما تصویر واضحی می دهد.
- پروژه های sandbox خود را به صورت محلی با یک سیستم چند ماژول، با مدیریت وابستگی صریح ایجاد کنید. سعی کنید کتابخانه های شخص ثالث را پیوست کنید، سعی کنید با استفاده از آنها چیزی ایجاد کنید.
- با پروفایل بازی کنید
- درک مدیریت افزونه ها و مطالعه لیست محبوب ترین افزونه ها در وب سایت رسمی.
- بررسی کنید که چگونه می توانید از maven در پروژه خود به بهترین شکل استفاده کنید. به عنوان مثال، ساخت های موازی می توانند زمان ساخت را به میزان قابل توجهی کاهش دهند.
ANT
این ابزار بسیار ساده تر به نظر می رسد، بنابراین چیز زیادی برای یادگیری در اینجا وجود ندارد. هنوز پروژه هایی وجود دارد که ANT تنها ابزار ساخت است. این کاملاً طبیعی است: ANT خود را به عنوان یک ابزار ساخت ساده و سرراست در زمینه مدیریت وظایف کوچک اتمی (وظایف مورچه) ثابت کرده است. البته پلاگین های زیادی در اینجا وجود دارد، درست مانند Maven. برای شروع کار با ANT، موارد زیر را انجام دهید:- سعی کنید فایل ها و پوشه ها را دستکاری کنید
- اجرای دستورات مختلف برای اجرای وظایف بر این اساس وابستگی ها و اولویت وظایف را در ANT یاد بگیرید.
- باز کردن بسته و/یا بایگانی فشرده. در وظایف، سعی کنید با محتویات آرشیو و غیره بازی کنید.
گریدل
برای من، Gradle بیشتر به ANT نزدیک است تا Maven، اما کاملاً می توان آن را برادر ناتنی این دو مرد نامید. چرخه حیاتی شبیه به Maven و انعطاف پذیری همان وظایفی دارد که ANT دارد. خوب، مهم ترین چیز این است که Gradle از XML استفاده نمی کند و علاوه بر این، اگر کم و بیش با Groovy آشنایی دارید، می توانید هر کاری که می خواهید با آن انجام دهید. به طور کلی، یک چیز بسیار خوشمزه است. از استفاده از Ant/Maven/Gradle در زمینه IDE خود نترسید. این ابزارها به شدت در Eclipse/IDEA ادغام شده اند و استفاده از این ابزارها در زمینه IDE بسیار راحت است.یکپارچه سازی مداوم
تئوری
اینها برنامه های فرشته ای هستند که از شما در برابر اخراج محافظت می کنند. به طور خلاصه، این نرم افزاری است که تغییرات کد را رصد می کند، آزمایش هایی را که برای شما نوشته شده است را می سازد و اجرا می کند. اگر بعد از هر commit/ادغام همه چیز خوب باشد، ساختمان با یک نور سبز/آبی دلپذیر می درخشد. به محض شکستن چیزی، سیستم CI بلافاصله آن را گزارش می کند. با این حال، یک نظریه کوچک - این کلاسیک است! یکپارچه سازی مداوم: بهبود کیفیت نرم افزار و کاهش ریسک توسط پل دووال . (معروف به "ادغام مداوم" در روسی) این کتاب حتی ایجاد سیستم CI خود را نیز مورد بحث قرار می دهد. بیایید به دو راه حل محبوب در این زمینه نگاه کنیم.جنکینز
جنکینز با نام مستعار هادسون برنامه باز، دوستانه، آسان برای استفاده. برای آشنایی بیشتر با جنکینز، موارد زیر را امتحان کنید:- آن را در رایانه خود دانلود کنید. JDK، Maven، ANT و هر آنچه برای پروژه نیاز دارید را نصب و پیکربندی کنید.
- اولین Job را ایجاد کنید و مکان پروژه خود را مشخص کنید، به عنوان مثال، pom.xml اصلی. آن را اجرا کنید، مطمئن شوید که یک نوع آزمایش دارید تا به وضوح قابل مشاهده باشد.
- یاد بگیرید که پروژه خود را با تنظیمات و گزینه های مختلف اجرا کنید.
- پلاگین های مختلف را ضمیمه کنید و ببینید که چگونه در ارتباط با پروژه شما کار می کنند.
- ایجاد محرک برای مشاغل مختلف. یک خط لوله کوچک ایجاد کنید.
- DSL را کاوش کنید و سعی کنید آن را با جنکینز ادغام کنید.
- یک Slave را از رایانه دیگری تنظیم کنید و/یا آن را به یک ماشین معمولی برای اجرای بیلدها تبدیل کنید.
- ساخت های شبانه ایجاد کنید.
GO TO FULL VERSION