۱۰ ریپازیتوری گیت هاب برای جاوا — فهرست کاربردی
جاوا پادشاه بلامنازع توسعه نرمافزار سازمانی و یکی از برترین زبانهای برنامهنویسی از نظر تقاضای کار است. این زبان اخیراً 25-امین سالگرد تولد خود را جشن گرفته است و انتظار میرود در طی سالهای آتی نیز همچنان به عنوان یک زبان برنامهنویسی پیشرو بماند. در این مقاله با 10 ریپازیتوری گیت هاب برای جاوا آشنا خواهیم شد که هر توسعهدهنده این زبان برنامهنویسی باید آنها را بشناسد.
گیتهاب با داشتن بیش از 100 میلیون ریپازیتوری به مثابه «کتابخانه اسکندریه» در دنیای توسعه نرمافزار است. گیتهاب میزبان فریمورکها، کتابخانهها، راهنماها، کتابها و حتی زبانهای برنامهنویسی است. اگر یک توسعهدهنده جاوا هستید و میخواهید مهارتهای جاوای خود را ارتقا بدهید، در این صورت گیتهاب مانند یک معدن طلا برای شما است. اما یافتن ریپازیتوری مناسب از گیتهاب مانند یافتن یک سوزن در انبار کاه است.
شما با مطالعه این راهنما با 10 ریپازیتوری گیتهاب برای جاوا آشنا خواهید شد که در حوزههای گوناگون از راهنما تا مواد آموزشی، مهارت طراحی نرمافزار و اپلیکیشنهای دمو را شامل میشوند. توجه داشته باشید که ما در این فهرست فریمورکهای محبوب جاوا و یا کتابخانههای مفید این زبان را نگنجاندهایم.
Java Design Patterns
ریپوی «الگوهای طراحی جاوا» (+) شامل راهحلهای عمومی و با قابلیت استفاده مجدد برای مهندسان نرمافزار است تا بتوانند مسائلی که به طور مکرر در زمینه طراحی نرمافزار رخ میدهند را حل کنند. این ریپو همچنین یک واژهنامه رایج برای بحث در مورد مشکلات رایج در میان مهندسان و معماران نرمافزار ارائه کرده است. الگوهای طراحی میتوانند کیفیت کد و سرعت کدنویسی را با استفاده از پارادایمهای توسعه کاملاً تستشده و اثباتشده بهبود بخشند. بهترین روش برای یادگیری الگوهای طراحی این است که آنها را در عمل مثلاً در نمونه کدها مشاهده کنید.
این ریپازیتوری عالی گیتهاب دارای پیادهسازی جاوا برای انواع مختلف الگوهای طراحی از انواع کاملاً رایج و قدیمی مانند Iterator و Singleton تا الگوهای طراحی مدرن از قبیل aggregator Microservices و Serverless است. این ریپازیتوری گیتهاب نه تنها موجب بهبود مهارتهای کدنویسی شما میشود، بلکه باعث میشود که به توسعهدهندهای بهتر و با بهرهوری بالاتر تبدیل شوید.
اگر یک توسعهدهنده جاوا هستید، به این ریپازیتوری گیتهاب از ابتدای مسیر شغلی خود تا پایان آن نیاز خواهید داشت.
Interviews
شرکت در یک مصاحبه برای مشاغل برنامهنویسی کاری چالشبرانگیز است. بسیاری از افراد بدون آمادگی کامل در چنین مصاحبههایی شرکت میکنند و متعاقباً زمانی که شانس به دست آوردن کار را از دست میدهند، خود را سرزنش میکنند. آمادگی مناسب برای یک مصاحبه موجب میشود که شانس شما برای به دست آوردن شغل به میزان بسیار زیادی افزایش یابد. ریپوی «مصاحبهها» (+) شامل هر چیزی است که برای آماده ساختن خود جهت مصاحبهها نیاز دارید. از جمله ویدئوهای یوتیوب، مقالات، تمرینهای زنده کدنویسی، معرفی ساختمانهای داده، الگوریتمها، کتابهای مصاحبه، سخنرانیهای ویدئویی و غیره در این ریپو ارائه شدهاند. ریپوی Interviews شامل Leetcode برای مسائل رایج کدنویسی در جاوا نیز هست.
این ریپازیتوری عالی گیتهاب نه تنها برای توسعهدهندگان جاوا بلکه برای همه توسعهدهندگان مفید است. شما احتمالاً در تمام مسیر شغلی خود نیاز به مراجعه به این ریپو را خواهید داشت.
Algorithms
اگر یک مهندس نرمافزار هستید، در این صورت الگوریتمها پرکاربردترین ابزار زندگی روزمره شما هستند. استفاده از الگوریتمهای صحیح برای یک مورد مفروض (پیچیدگی محاسباتی، مصرف حافظه) میتواند شاخصی برای کیفیت کد یک مهندس نرمافزار باشد. بدین ترتیب شکی نیست که الگوریتمها در فرایندهای مصاحبه به وفور مورد استفاده قرار میگیرند و فرقی نمیکند که شرکتهای غول فناوری مانند گوگل يا مایکروسافت و باشد یا یک شرکت استارتاپی باشد.
اگر یک توسعهدهنده جاوای مبتدی یا سطح متوسط هستید، در این صورت به ریپازیتوری Algorithms (+) به طور مکرر نیاز خواهید داشت. اگر یک توسعهدهنده گاه به گاه کدهای جاوا با تجربه زیاد هستید نیز همچنان این ریپازیتوری را مفید خواهید یافت.
Realworld
اگر اپلیکیشنهای مدرن فول استک را با جاوا توسعه میدهید، به احتمال زیاد در فرانتاند از JavaScript SPA و در بکاند از جاوا استفاده میکنید. ریپازیتوری امکان توسعه یک اپلیکیشن به نام Conduit (یک کلون از Medium) را فراهم ساخته است که تقریباً از همه ترکیبهای فرانتاند و بکاند استفاده میکند. سازندگان آن این اپلیکیشن، آن را «مادر همه اپلیکیشنهای دمو» نامیدهاند، چون به توسعهدهندگان امکان میدهد که یک اپلیکیشن واقعی را به سادگی توسعه دهند. با در نظر گرفتن طیف وسیع فناوریهای فرانتاند و بکاند که این اپلیکیشن پشتیبانی میکند، Realworld (+) بیشک شایستگی انتخاب این شعار را دارد.
در حال حاضر، Realworld از همه فریمورکهای فرانتاند جاوا اسکریپت مانند React، Angular، Vue،Svelte، AngularJS، Ember.js، Aurelia، Vanilla JS و غیره و همچنین از همه فریمورکهای ممکن برای بکاند در همه زبانهای برنامهنویسی عمده پشتیبانی میکند. در جاوا از Quarkus و Vert.x پشتیبانی میکند.
Realworld نیز یک ریپازیتوری است که در سراسر مسیر شغلیتان به خصوص اگر به صورت فول استک کار میکنید، به آن نیاز خواهید داشت.
Awesome Java
غالباً مواردی پیش میآیند که به دنبال چیزی در ارتباط با جاوا میگردیم و ساعتها وقت خود را در گوگل صرف میکنیم. ریپازیتوری Awesome Java (+) در این زمینه به کمک توسعهدهندگان جاوا میآید. کتابخانه Awesome Java شامل تقریباً هر چیزی مرتبط با جاوا و شبیه به یک دیکشنری است. چه به دنبال یک ابزار دستکاری بایتکد باشید و چه بخواهید کتابخانههای یادگیری ماشین یا کتابخانههای کاربردی را داشته باشید، در هر صورت Awesome Java به کمک شما میآید.
این ریپازیتوری از سوی جامعه فعالی متشکل از حدود 300 مشارکتکننده نگهداری میشود و از این رو به صورت متناوب بهروزرسانی میشود.
Baeldung Tutorials
اگر یک توسعهدهنده جاوا باشید، احتمالاً تاکنون با راهنما و نمونه کدهای مختلفی که از سوی Baeldung ارائه شده است، مواجه شدهاید. در حال حاضر Baeldung (+) برترین منبع آنلاین برای راهنماهای توسعه جاوا، وب و Spring است. آنچه Baeldung را از منابع مشابه متمایز میسازد، این نکته است که از موضوعات ابتدایی تا کاملاً پیشرفته را در زمینه توسعه جاوا/اسپرینگ شامل میشود. همچنین علاوه بر راهنماها، شامل دورههای آموزشی، مطالب آموزشی، کتابهای الکترونیکی و مواردی از این دست است. قابلیت مهم دیگر Baeldung این است که همه مثالها و راهنماها به وسیله کدهای گیتهاب که اجرایی هستند پشتیبانی میشوند.
این ریپازیتوری گیتهاب شامل مجموعهای از راهنماهای کوتاه و متمرکز در زمینه توسعه جاوا و اسپرینگ است که شامل لینکهایی به مقالات راهنما نیز میشود که در آنها کدها با دقت و تفصیل توضیح داده شدهاند. ریپازیتوری Baeldung نهتنها به درد توسعهدهندگان اسپرینگ میخورد، بلکه یک ریپوی ضروری برای توسعهدهندگان جاوای خالص نیز محسوب میشود.
JHipster
اگر در زمینه Enterprise Java مشغول فعالیت هستید، در این صورت دستکم در مورد JHipster جیزهایی شنیدهاید. JHipster (+) یک پلتفرم توسعه برای تولید، توسعه و توزیع وباپلیکیشنهای مبتنی بر مونولیتیک/میکروسرویس در سطح پروداکشن ارائه میکند. این کتابخانه در بخش فرانتاند از سه فریمورک برتر SPA یعنی انگولار، ریاکت و Vue پشتیبانی میکند. همچنین در بخش بکاند Spring Boot را ارائه کرده است. JHipster از همه دیتااستورهای عمده یعنی Oracle، PostgreSQL ،MySQL ،MS-SQL، MongoDB ،Cassandra ،ELK و Kafka نیز پشتیبانی میکند. JHipster قابلیتهای امنیتی زیادی ارائه کرده است که به شما کمک میکند تا اپلیکیشنهای سازمانی مبتنی بر Spring Boot را تقریباً برای هر محیطی شامل Cloud توسعه دهید.
این پروژه چنان قدرتمند و بالغ است که میتوانید PROC یا حتی اپلیکیشنهای سطح پروداکشن را با آن توسعه دهید.
RxJava Android Samples
در سالهای اخیر، «برنامهنویسی واکنشی» (Reactive programming) محبوبیت زیادی از طریق عرضه یک تجرید زیبا برای کار با برنامهنویسی ناهمگام و رویداد-محور به دست آورده است. RxJava پیادهسازی جاوا از ReactiveX است که برنامهنویسی واکنشی را از طریق Observables ممکن ساخته است. یادگیری برنامهنویسی واکنشی در جاوا کمی چالشبرانگیز است، زیرا جاوا برای استفاده از روش برنامهنویسی همگام طراحی شده است. در این پروژه گیتهاب (+) نمونههای واقعی از RxJava ارائه شده است. با این که مثالها برای توسعه اندروید ارائه شدهاند، اما توسعهدهندگان جاوا میتوانند به راحتی آنها را برای توسعه غیر اندرویدی نیز مورد استفاده قرار دهند.
Java8 Tutorial
Java8 یکی از دشوارترین و آزاردهندهترین نسخههای جاوا است چون «برنامهنویسی تابعی» (Functional Programming) را در جاوا معرفی کرده است. جاوا به همراه مفاهیمی مانند لامبدا و استریم در نهایت توانسته است به چشمانداز برنامهنویسی تابعی دست یابد و در عین حال سازگاری افسانهای و کامل رو به عقب خود را نیز حفظ کند.
متأسفانه همه توسعهدهندگان جاوا از ظرفیتهای جدید این زبان بهره نمیگیرند. بسیاری از توسعهدهندگان با تجربه جاوا هستند که همچنان به روش قدیمی با این زبان برنامهنویسی میکنند. یکی از دلایل این موضوع آن است که برنامهنویسی تابعی در قیاس با برنامهنویسی شیءگرای سنتی، یک تغییر پارادایم محسوب میشود و توسعهدهندگان دوست ندارند از محیط امن خود خارج شوند.
ریپازیتوری گیتهاب Java8 Tutorial (+) شامل نمونه کدهای کوچک و مفید زیای از مفاهیم برنامهنویسی تابعی (لامبدا، استریم، اینترفیس تابعی، استریم موازی و غیره) است که به صورتی عالی و خوانا نوشته شدهاند. اگر به تازگی با برنامهنویسی تابعی آشنا شدهاید، این ریپازیتوری کمک زیادی به شما خواهد کرد.
Cracking the Coding Interview in Java
شما در سال جاری چه به دنبال یافتن شغل در یک شرکت بزرگ برنامهنویسی باشید و چه بخواهید در یک استارتاپ مشغول شوید، احتمالاً وارد مصاحبه کدنویسی خواهید شد. کتاب کاملاً دانشگاهی «Cracking the Coding Interview in Java» به شما کمک میکند که برای این چالش مصاحبه کدنویسی آماده شوید. این کتاب (+) شامل انواع مختلفی از چالشهای کدنویسی از قبیل پیچیدگیهای الگوریتمی، معماهای ریاضی و منطقی، برنامهنویسی دینامیک، مرتبسازی و جستجو، چندنخی و موارد بسیار زیاد دیگر است.
آنچه این کتاب را متمایز میسازد، این نکته است که همه مثالها به زبانی ساده و گویا توضیح داده شدهاند. این ریپازیتوری گیتهاب شامل همه مثالها از ویراست ششم کتاب در زبان برنامهنویسی جاوا است. حتی اگر امکان خرید کتاب اصلی را ندارید، با برسی این ریپازیتوری برای مصاحبه بعدی خود بسیار آمادهتر خواهید بود.
سخن پایانی
به این ترتیب به پایان این مقاله با موضوع معرفی 10 ریپازیتوری عالی گیتهاب برای جاوا رسیدیم. ریپوهایی که در این مطلب معرفی شدند به شما کمک کنند تا بتوانید مسیر شغلی خود را در زمینه زبان برنامهنویسی جاوا با سرعت و سهولت بیشتری بپیمایید.