JavaRush /جاوا بلاگ /Random-UR /وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں

وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں

گروپ میں شائع ہوا۔
یہ مضمون کس کے لیے ہے: کچھ چیزیں ابتدائی طور پر جاوا سنٹیکس کی تلاش کا مطالعہ کرنے والوں کے لیے دلچسپی کا باعث ہوں گی، لیکن بنیادی طور پر پیش کردہ مواد ان لوگوں کے لیے زیادہ موزوں ہو گا جو پہلے ہی کورس کے خط استوا کو عبور کر چکے ہیں (جاوا کلیکشنز اور جاوا ملٹی تھریڈنگ کو سمجھتے ہیں۔ quests) اور جاوا کور فریم ورک سے آگے جانے والی ٹیکنالوجیز میں دلچسپی لینا شروع کر دی ہے۔ اپنے وجود کے دوران، جاوا نے کافی مقدار میں لائبریریاں حاصل کی ہیں۔ لیکن آپ کو کیسے معلوم ہوگا کہ کون سا استعمال کرنے کے قابل ہے اور کون سا نہیں؟ گندم کو بھوسے سے الگ کرنا ایک ہمیشہ مصروف ڈویلپر کے لیے انتہائی مشکل ہے۔ اس آرٹیکل میں ، ڈریمکس کے فل اسٹیک ڈویلپر، مارٹن پاٹسوف، اوپن سورس لائبریریوں کے لیے اپنی محبت کے بارے میں بات کرتے ہیں اور ان کی تجویز کرتے ہیں جو انھیں خاص طور پر مفید معلوم ہوتی ہیں۔ وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں - 1ہونا یا نہ ہونا، یہ سوال ہے: کیا یہ نجات ثابت ہوگا یا ناکامی وہی جاوا لائبریری... بہادر بنو! "SigniOrs" پہلے ہی موجود ہیں اور میں ان کا تجربہ آپ تک پہنچاؤں گا۔ میری شاعرانہ کشمکش سے گمراہ نہ ہوں۔ جاوا میں واقعی بہت ساری لائبریریاں ہیں، اور ان کو سمجھنا بہت مشکل ہے۔ تاہم، میں ان سے بہت پیار کرتا ہوں. مجھے ایک "لائبریری مبشر" بھی کہا جا سکتا ہے ( IT فیلڈ میں "مبشر" سے ہمارا مطلب کینونیکل انجیل کا مرتب کرنے والا نہیں ہے، بلکہ وہ شخص ہے جو پیشہ ورانہ طور پر اس یا اس ٹیکنالوجی کو فروغ دیتا ہے۔ اسے عام PR لوگوں کے ساتھ الجھائیں: اکثر , ایک IT مبشر کو اس ٹیکنالوجی کی مکمل سمجھ ہے جو وہ ٹیکنالوجی کو فروغ دے رہا ہے - ایڈیٹر کا نوٹ )۔ لائبریریاں اوپن سورس ایکو سسٹم کا بہت اہم حصہ ہیں۔ ان کے اردگرد بڑی کمیونٹیز پروان چڑھتی ہیں، جو ان کی نشوونما اور مدد کرتی ہیں۔ اور یہ بہت اچھا ہے۔ لائبریریوں کا سب سے بڑا فائدہ یہ ہے کہ وہ ہمیں جب بھی کوڈ لکھتے ہیں وہیل کو دوبارہ ایجاد کرنے سے بچنے کی اجازت دیتے ہیں۔ لائبریریوں کا استعمال کریں — مخصوص کاموں کے لیے پہلے سے لکھا ہوا کوڈ — جتنی بار ممکن ہو! آپ کا وقت بچ جائے گا۔ سنجیدگی سے، یہ بہتر ہے کہ خاندان اور دوستوں کے ساتھ گھومنے پھرنے میں گزارا جائے۔

ٹاپ 10

اس نوٹ میں، میں نے ان جاوا لائبریریوں کا ذکر کیا جنہیں میں اپنے کام میں استعمال کرنا پسند کرتا ہوں۔ یہ سب اوپن سورس سافٹ ویئر ہیں۔ میں نے اسے افادیت، اچھی دستاویزات اور معاونت کے ساتھ ساتھ باقاعدہ اپ ڈیٹس کی بنیاد پر منتخب کیا۔ میں ایک بار پھر اس بات پر زور دینا چاہوں گا کہ یہ میرا ذاتی انتخاب ہے، اور یہ آپ کے انتخاب سے کافی مختلف ہو سکتا ہے۔

1. جاوا معیاری لائبریریاں

ہاں، ہاں، آپ نے ایسا نہیں سوچا! بہت سے لوگ کم اندازہ لگاتے ہیں، اس کے علاوہ، وہ جاوا سٹینڈرڈ لائبریریوں کی صلاحیتوں کے بڑے پیمانے پر نہیں جانتے، اور یہ نہیں جانتے کہ پروگرامنگ میں اپنی صلاحیتوں کو کیسے کھولا جائے... یا یہاں تک کہ انہیں بالکل استعمال نہیں کرتے۔ ان میں سے کچھ کی مختصر تفصیل یہ ہے:
  • java.lang _ یہ لائبریری ہمیشہ کسی بھی جاوا ایپلیکیشن میں درآمد کی جاتی ہے، کیونکہ اس میں وہ سب کچھ ہوتا ہے جس کے بغیر آپ بنیادی طور پر پروگرام نہیں کر سکتے ( String , Double , Enum , Math , اور اسی طرح )۔

  • java.util میں آپ جاوا میں دستیاب تمام مجموعوں اور ڈیٹا ڈھانچے کو تلاش کر سکتے ہیں۔

  • اگلا، ہمارے پاس فائلوں کو پڑھنے، اسٹریمز چلانے، پائپ کلاس آبجیکٹ وغیرہ کے لیے java.io ہے۔

  • آپ نے غالباً پہلے تین کے بارے میں سنا ہوگا۔ لیکن ہر کوئی java.nio کے بارے میں نہیں جانتا جو java.io کا متبادل ہے۔ یہ لائبریری I/O کو مسدود نہ کرنے کے لیے ذمہ دار ہے، جیسا کہ آپ اندازہ لگا سکتے ہیں، I/O کے انتہائی استعمال کی اجازت دیتا ہے۔

  • java.net ساکٹ کے ساتھ کام کرنے، کنکشن بنانے یا مختصر نیٹ ورکنگ ایپلی کیشنز کے لیے استعمال ہوتا ہے۔

  • جاوا میں ہمارے پاس GUI کے ساتھ کام کرنے کے لیے لائبریریاں بھی ہیں: javax.swing (اس سے بھی زیادہ پرانی java.awt کی ایک پرانی توسیع )۔

  • ہم موسیقی بھی چلا سکتے ہیں اور java.sound کا استعمال کرتے ہوئے MIDI فائلیں بنا سکتے ہیں ۔

2. JHipster

JHipster ایک پلیٹ فارم ہے تیزی سے تعیناتی، ترقی پذیر اور زیادہ بوجھ کے ساتھ توسیع پذیر ویب سرورز بنانے اور جدید ترین اور فیشن ایبل ٹیکنالوجیز جیسے Spring, Spring-MicroServices, Netflix, Docker, Kubernetes, AngularJs, Liquibase, MongoDB, Cassandra, ElasticSearch استعمال کرنے کا۔
وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں - 2
سچ میں، اس "جاوا ہپسٹر" نے یقینی طور پر میری زندگی کے مہینوں کو بچایا۔ میں یقینی طور پر کہہ سکتا ہوں کہ JHipster فہرست میں میرا ذاتی پسندیدہ ہے اور میرے دل میں ایک خاص مقام رکھتا ہے۔ یہ ٹول تقسیم شدہ ویب سرور پروجیکٹ کا خاکہ بنانے کے لیے تقریباً ناگزیر ہے۔ یہ انحصار کے ساتھ ایک پوم فائل بنا سکتا ہے، لچکدار تلاش اور کنکشن کو ترتیب دے سکتا ہے، آپ کو صرف فن تعمیر کی کاروباری منطق کو شامل کرنا ہے۔ تیار کردہ پروجیکٹ میں شامل اہم اور اہم لائبریریاں یہ ہیں:
  • اسپرنگ بوٹ ایپلی کیشن کی ترقی کو تیز اور آسان بنانے میں مدد کرتا ہے۔
  • Angular /AngularJS - JavaScript فریم ورک
آپ JHipster کے بارے میں مزید معلومات یہاں حاصل کر سکتے ہیں ۔

3. ماون

ماون جاوا پروجیکٹس بنانے کے لیے تین سب سے مشہور ٹولز میں سے ایک ہے۔ وہ مرتب کرنے، جار فائلیں (جاوا آرکائیوز) بنانے، پروگرام کی تقسیم بنانے، اور دستاویزات تیار کرنے کا ذمہ دار ہے۔
وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں - 3
ہر جدید پروجیکٹ مختلف فائلوں، ماڈیولز، ٹیکنالوجیز پر مشتمل ہوتا ہے۔ اسے بہت آسان الفاظ میں کہوں تو، ایک پروجیکٹ بنانا اس کا "کام کرنے والا" ورژن تیار کر رہا ہے، یعنی ایک ایسا پروگرام جس پر عمل درآمد کے لیے لانچ کیا جا سکتا ہے۔ یہ کمانڈ لائن پر دستی طور پر کیا جا سکتا ہے، یا آپ خصوصی اسکرپٹ لکھ سکتے ہیں۔ تاہم، خصوصی ایپلی کیشنز کا استعمال کرتے ہوئے ایسا کرنا بہت آسان ہے۔ انہیں "خودکار اسمبلی سسٹم" کہا جاتا ہے۔ ماون ایسے تین پروگراموں میں سے ایک ہے، باقی دو گریڈل اور اینٹ ہیں۔ اس طرح کے سسٹمز پروجیکٹ کا سورس کوڈ بطور ان پٹ وصول کرتے ہیں، اور آؤٹ پٹ کے طور پر وہ ایک ایسا پروگرام تیار کرتے ہیں جسے چلایا جا سکتا ہے۔
پروجیکٹ کا ڈھانچہ (انحصار، کنفیگریشن، دستاویزات) pom.xml فائل (POM - پروجیکٹ آبجیکٹ ماڈل) میں بیان کیا گیا ہے، جو پروجیکٹ کے روٹ فولڈر میں ہونا چاہیے۔ سچ میں، Maven صرف ایک عظیم چیز ہے، یہاں تک کہ اگر یہ پہلے میں بہت واضح نہیں ہے. اگر آپ نے پہلے کبھی Maven کا استعمال نہیں کیا ہے، تو آپ اس سے محروم ہو رہے ہیں۔ سچ کہوں تو، میں یہ بھی نہیں سمجھتا کہ ماون سے پہلے انٹرپرائز ایپلی کیشنز کیسے بنی تھیں۔ آپ یہاں روسی میں Maven کے بارے میں پڑھ سکتے ہیں ۔

4. اپاچی کامنز

اپاچی کامنز دراصل جاوا لائبریریاں بنانے پر مرکوز ایک پورا پروجیکٹ ہے۔ یا مختلف مقاصد کے لیے "چھوٹی جاوا یوٹیلیٹیز کا ایک بڑا سیٹ"۔ ویسے، Apache Commons کی افادیتیں بہت سے معروف پروجیکٹس کی بنیاد ہیں، مثال کے طور پر، Tomcat، Hibernate اور دیگر۔ یہاں کچھ عام طور پر استعمال ہونے والی اپاچی کامنز لائبریریوں کی ایک مختصر فہرست ہے۔
وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں - 4
  • کامنز ریاضی Apache Commons Math Library، نام یہ سب کہتا ہے: اس میں پیچیدہ ریاضیاتی اور شماریاتی آپریشنز اور حسابات کے اجزاء شامل ہیں۔

  • کامنز CLI کمانڈ لائن دلائل کو پارس کرنے کے لیے ایک API فراہم کرتا ہے۔ پیرامیٹرز کو پاس کرنے اور اس کے رویے کو کنٹرول کرنے کی صلاحیت کے بغیر ایپلی کیشن بنانے کے بارے میں سوچنا بھی مشکل سے ہی فائدہ مند ہے!

  • کامنز CSV اس سے کوئی فرق نہیں پڑتا ہے کہ آپ کیا تیار کرتے ہیں، کسی وقت آپ کو csv فائلوں کو استعمال کرنے کی ضرورت سے نمٹنا پڑے گا۔ یعنی انہیں کھولنا، پڑھنا، ترمیم کرنا، محفوظ کرنا اور تخلیق کرنا پڑے گا۔ میں تجویز کرتا ہوں کہ فائلوں کو محفوظ کرتے/بناتے وقت CSVFormat کلاس سے RFC 4180 فارمیٹ اور UTF-8 انکوڈنگ استعمال کریں۔

  • Commons I.O. I/O آپریشنز کو آسان بنانے کے لیے استعمال کیا جاتا ہے۔ کم از کم ReversedLinesFileReader پر ایک نظر ڈالیں، یہ اس کے قابل ہے!
آپ یہاں اپاچی کامنز (انگریزی میں) کے بارے میں پڑھ سکتے ہیں ۔

5. امرود

امرود جاوا کے لیے گوگل کی بنیادی لائبریریوں کا ایک سیٹ ہے۔ کیا ان میں جمع کرنے کی نئی قسمیں ہیں (مثلاً ملٹی میپ اور ملٹی سیٹ)، ناقابل تغیر مجموعہ، گراف لائبریری، فنکشنل اقسام؟ کنکرنسی، I/O، ہیشنگ، سٹرنگ پروسیسنگ اور بہت کچھ کے لیے افادیت۔ یہ تمام ٹولز گوگل کے ماہرین اپنے کام میں استعمال کرتے ہیں، اور یہ پہلے سے ہی ایک اچھی تجویز ہے۔
وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں - 5
کسی حد تک امرود اپاچی کامنز کا متبادل ہے۔ درحقیقت امرود کے بارے میں ہم بہت دیر تک بات کر سکتے ہیں (اس پر ضرور توجہ دیں!) لیکن یہاں میں اس لائبریری سے صرف ایک مفید چیز کا ذکر کروں گا۔ شاید آپ کو پہلے ہی اپنے مجموعوں کو منظم کرنے یا ان میں موجود مواد کا موازنہ کرنے کے چیلنج کا سامنا کرنا پڑا ہے؟ ایک سے زیادہ شرائط کے ساتھ متعدد کالموں میں اعلی درجے کی ترتیب اور موازنہ کے بارے میں کیا خیال ہے؟ ComparisonChain جزو کو جمع کرنے کے لیے جدید اور پیچیدہ چھانٹی کو نافذ کرنے کے لیے استعمال کیا جاتا ہے۔ آپ یہاں امرود (انگریزی میں) کے بارے میں پڑھ سکتے ہیں ۔

6. google-gson

google-gson لائبریری جاوا آبجیکٹ کو JSON میں اور اس کے برعکس تبدیل کرنے کے لیے مفید ہے۔ یہ خاص طور پر اس وقت مفید ہوتا ہے جب موبائل ایپلیکیشنز تیار کرتے ہوں اور REST APIs بناتے/استعمال کرتے ہوں، یا کسی بھی وقت جب آپ کو جاوا آبجیکٹ کو JSON کی نمائندگی میں تبدیل کرنے کی ضرورت ہو اور اس کے برعکس۔
وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں - 6
آپ JSON (JavaScript Object Notation)، Guava، Apache Commons اور Java Collection quest سے دیگر دلچسپ چیزوں کے بارے میں سیکھیں گے ۔
آپ یہاں google-gson (انگریزی میں) کے بارے میں پڑھ سکتے ہیں ۔

7. ہائبرنیٹ-ORM

ہائبرنیٹ ایک لائبریری ہے جسے آبجیکٹ-ریلیشنل میپنگ (ORM) کے مسائل کو حل کرنے کے لیے ڈیزائن کیا گیا ہے۔ ہائبرنیٹ ORM کو متعلقہ ڈیٹا بیس میں ڈیٹا ذخیرہ کرنے کے لیے استعمال کیا جاتا ہے۔ یہ ڈویلپرز کو ایسا کرنے کے لیے ایک آسان اور زیادہ تجریدی طریقہ فراہم کرتا ہے۔ یہ اپنے نفاذ میں JDBC کا استعمال کرتا ہے۔ ہائبرنیٹ JPA تفصیلات کا نفاذ بھی ہے۔
وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں - 7
آپ Hibernate ORM (انگریزی میں) کے بارے میں یہاں پڑھ سکتے ہیں ۔

8. موکیٹو

موکیٹو نام کو آپ کو بیوقوف نہ بننے دیں۔ یہ کاک ٹیل کے بارے میں نہیں ہے، بلکہ فرضی اشیاء کی لائبریری کے بارے میں ہے۔ فرضی اشیاء وہ چیزیں ہیں جو کسی دی گئی اسکیم کے مطابق کسی حقیقی چیز کے طرز عمل کی نقل کرتی ہیں۔ مثال کے طور پر، یونٹ ٹیسٹنگ کے لیے، ایسی "جعلی" اشیاء کاروباری اشیاء کے رویے کی نقالی کر سکتی ہیں۔ ٹھیک ہے، موکیٹو موک لائبریری فرضی اشیاء بنانے اور استعمال کرنے کی سہولت کو بڑھاتی ہے۔
وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں - 8
آپ یہاں Mockito کے بارے میں معلومات حاصل کر سکتے ہیں ۔

9. JUnit

JUnit یونٹ ٹیسٹ (عرف یونٹ ٹیسٹ) بنانے کے لیے ایک مفت جاوا فریم ورک ہے۔ یہ لائبریری سب سے زیادہ مقبول میں سے ایک ہے، تقریباً ہر کوئی اسے استعمال کرتا ہے۔ ہم تجویز کرتے ہیں کہ آپ اسے جلد از جلد پکڑ لیں، کیونکہ اکثر نئے جاوا ڈویلپرز اور جاوا ٹرینی کو "ٹیسٹ کے ساتھ کوڈ کا احاطہ" کرنے پر مجبور کیا جاتا ہے۔ اور، مجھے یہ کہنا ضروری ہے، یہ کیریئر کی بدترین شروعات سے بہت دور ہے۔
وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں - 9
Junit کے بارے میں مزید معلومات یہاں دیکھیں ۔

10. Log4j اور Slf4j

یہ دونوں فریم ورک جاوا ایپلیکیشنز کے چلنے کے دوران رونما ہونے والے بعض واقعات کو لاگ ان کرنے کے لیے معمول کی کارروائیوں کے نفاذ کو چھپانے کے لیے بنائے گئے ہیں۔ Slf4j دوسرے لاگنگ فریم ورک کے لیے ایک تجریدی ہے (وہی Log4j)۔
وقت بچانے کے لیے ٹاپ 10 جاوا لائبریریاں - 10
Log4j اور Slf4j کے بارے میں مزید معلومات ۔
تبصرے
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION