#مقاله
#در_سایت_جاواکاپ_بخوانید
همواره به توسعهدهندگان جاوا توصیه میشود که JVM و بخشهای مختلف آن را بشناسند.
یکی از این بخشها که در عملکرد برنامه جاوایی شما تاثیر زیادی دارد، just in time compiler یا به اختصار JIT است. به طور خلاصه JIT بخشهای پرتکرار کد شما (hotspot) را در زمان اجرا کامپایل میکند تا لازم نباشد برای هر اجرا آن را تفسیر کند.
در این مقاله کمی با JIT کلنجار میرویم و بررسی میکنیم JIT در مقابل بهینهسازیهای دستی ما چگونه عمل میکند.
https://javacup.ir/close-look-at-jit/
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
همواره به توسعهدهندگان جاوا توصیه میشود که JVM و بخشهای مختلف آن را بشناسند.
یکی از این بخشها که در عملکرد برنامه جاوایی شما تاثیر زیادی دارد، just in time compiler یا به اختصار JIT است. به طور خلاصه JIT بخشهای پرتکرار کد شما (hotspot) را در زمان اجرا کامپایل میکند تا لازم نباشد برای هر اجرا آن را تفسیر کند.
در این مقاله کمی با JIT کلنجار میرویم و بررسی میکنیم JIT در مقابل بهینهسازیهای دستی ما چگونه عمل میکند.
https://javacup.ir/close-look-at-jit/
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
استثناها یا اکسپشنها در بسیاری از زبانهای برنامهنویسی برای مدیریت خطاها و مشکلات احتمالی وجود دارند. لازمهٔ برنامهنویس خبره شدن آشنایی با استثناها و ساخت کلاسهای استثنای جدید و دریافت (catch) کردن آنها در جای مناسب است.
بسیاری از اوقات ما تنها به یادگیری سینتکس throw و catch و finally بسنده میکنیم اما چیزی که در نهایت اهمیت دارد، استفاده درست و «بِهروش»هاست.
در این مطلب میخواهیم تعدادی از کارهای اشتباهی که بین برنامهنویسان جاوا رایج است را به همراه راه اصلاح آنها با هم مرور کنیم.
https://javacup.ir/exception-best-practices/
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
استثناها یا اکسپشنها در بسیاری از زبانهای برنامهنویسی برای مدیریت خطاها و مشکلات احتمالی وجود دارند. لازمهٔ برنامهنویس خبره شدن آشنایی با استثناها و ساخت کلاسهای استثنای جدید و دریافت (catch) کردن آنها در جای مناسب است.
بسیاری از اوقات ما تنها به یادگیری سینتکس throw و catch و finally بسنده میکنیم اما چیزی که در نهایت اهمیت دارد، استفاده درست و «بِهروش»هاست.
در این مطلب میخواهیم تعدادی از کارهای اشتباهی که بین برنامهنویسان جاوا رایج است را به همراه راه اصلاح آنها با هم مرور کنیم.
https://javacup.ir/exception-best-practices/
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
برای پروژه درس برنامهنویسی پیشرفته داشتم روی مدل پروژهام فکر میکردم که به فکرم رسید چه جالب میشد اگه به جای اینکه من یک فرمول برای محاسبه یک قسمت را به صورت hard code وارد کنم، کاربر بتواند در زمان اجرا این فرمول را تعیین کند.
راهی که برای پیادهسازی این موضوع به ذهنم رسید، ورودی گرفتن یک تکه کد از کاربر و ساخت کلاسی از روی آن و کامپایل کردن کلاس در زمان اجرا بود.
من بعد از اتمام پروژه تصمیم گرفتم بیشتر در مورد Runtime Compilation در جاوا مطالعه کنم و حالا اطلاعاتم را در این مقاله با دوستداران جاوا به اشتراک میگذارم.
https://javacup.ir/java-runtime-compiler/
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
برای پروژه درس برنامهنویسی پیشرفته داشتم روی مدل پروژهام فکر میکردم که به فکرم رسید چه جالب میشد اگه به جای اینکه من یک فرمول برای محاسبه یک قسمت را به صورت hard code وارد کنم، کاربر بتواند در زمان اجرا این فرمول را تعیین کند.
راهی که برای پیادهسازی این موضوع به ذهنم رسید، ورودی گرفتن یک تکه کد از کاربر و ساخت کلاسی از روی آن و کامپایل کردن کلاس در زمان اجرا بود.
من بعد از اتمام پروژه تصمیم گرفتم بیشتر در مورد Runtime Compilation در جاوا مطالعه کنم و حالا اطلاعاتم را در این مقاله با دوستداران جاوا به اشتراک میگذارم.
https://javacup.ir/java-runtime-compiler/
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
معمولا، عملیات پرتاب و مدیریت استثنا با استفاده از کلاسهای استثنای خود جاوا امکانپذیر است. نوع کلاس استثنا، نوع رخداد پیشآمده را مشخص میکند و پیام داخل استثنا، اطلاعات بیشتری به ما میدهد اما میتوان یک مرحله فراتر رفت و یک کلاس استثنای شخصیسازیشده (CustomException) طراحی کرد.
مزیت استثنای شخصی این است که به ما ین انعطاف را میدهد که بتوانیم متدها و ویژگیهایی به آن اضافه کنیم که در استثناهای استاندارد وجود ندارند و به این ترتیب، میتوانیم اطلاعات اضافهای در آن ذخیره کنیم.
در این مقاله، توصیهها و بهروشهای مفید در طراحی و استفاده از استثناهای شخصی را با شما به اشتراک میگذاریم.
با عمل به این توصیهها، کد و API شما بهتر فهمیده میشود و میزان داکیومنت موردنیاز هم کمتر میشود.
اثر این کار، در زمانی که برنامهنویس جدید به تیم اضافه شود و بخواهد از APIهای شما استفاده کند، محسوستر میشود.
javacup.ir/exception-class-best-practice
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
معمولا، عملیات پرتاب و مدیریت استثنا با استفاده از کلاسهای استثنای خود جاوا امکانپذیر است. نوع کلاس استثنا، نوع رخداد پیشآمده را مشخص میکند و پیام داخل استثنا، اطلاعات بیشتری به ما میدهد اما میتوان یک مرحله فراتر رفت و یک کلاس استثنای شخصیسازیشده (CustomException) طراحی کرد.
مزیت استثنای شخصی این است که به ما ین انعطاف را میدهد که بتوانیم متدها و ویژگیهایی به آن اضافه کنیم که در استثناهای استاندارد وجود ندارند و به این ترتیب، میتوانیم اطلاعات اضافهای در آن ذخیره کنیم.
در این مقاله، توصیهها و بهروشهای مفید در طراحی و استفاده از استثناهای شخصی را با شما به اشتراک میگذاریم.
با عمل به این توصیهها، کد و API شما بهتر فهمیده میشود و میزان داکیومنت موردنیاز هم کمتر میشود.
اثر این کار، در زمانی که برنامهنویس جدید به تیم اضافه شود و بخواهد از APIهای شما استفاده کند، محسوستر میشود.
javacup.ir/exception-class-best-practice
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
در این مقاله به مفهوم ارجاع ضعیف (weak reference) در جاوا میپردازیم.
همانطور که میدانید، چهار نوع ارجاع متفاوت در جاوا وجود دارد:
1- ارجاع قوی (Strong reference)
2- ارجاع ضعیف (Weak reference)
3- ارجاع نرم (Soft reference)
4- ارجاع شبح (Phantom reference)
ارجاع ضعیف، ارتباط تنگاتنگی با زبالهروب جاوا دارد. عملیات زبالهروبی (Garbage collection) به بیان ساده، عملیات آزادسازی خودکار حافظهای است که به آن هیچ ارجاعی وجود ندارد.
ارجاع ضعیف، ارجاعی است که به اندازه کافی قوی نیست تا باعث شود شیای که به آن اشاره میکند، در حافظه باقی بماند. به بیان دیگر، تصمیم اینکه شی مورد بحث قابل زبالهروبی هست یا نه را به خود زبالهروب واگذار میکنند.
جاوا به طور پیشفرض، ارجاعها را به صورت قوی (همان ارجاع معمولی که تا کنون از آن استفاده میکردیم) تعریف میکند. برای داشتن یک ارجاع به صورت ضعیف، باید این موضوع را موقع تعریف کردن، مشخص کنیم.
https://javacup.ir/weak-reference/
روزبه شریفنسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
در این مقاله به مفهوم ارجاع ضعیف (weak reference) در جاوا میپردازیم.
همانطور که میدانید، چهار نوع ارجاع متفاوت در جاوا وجود دارد:
1- ارجاع قوی (Strong reference)
2- ارجاع ضعیف (Weak reference)
3- ارجاع نرم (Soft reference)
4- ارجاع شبح (Phantom reference)
ارجاع ضعیف، ارتباط تنگاتنگی با زبالهروب جاوا دارد. عملیات زبالهروبی (Garbage collection) به بیان ساده، عملیات آزادسازی خودکار حافظهای است که به آن هیچ ارجاعی وجود ندارد.
ارجاع ضعیف، ارجاعی است که به اندازه کافی قوی نیست تا باعث شود شیای که به آن اشاره میکند، در حافظه باقی بماند. به بیان دیگر، تصمیم اینکه شی مورد بحث قابل زبالهروبی هست یا نه را به خود زبالهروب واگذار میکنند.
جاوا به طور پیشفرض، ارجاعها را به صورت قوی (همان ارجاع معمولی که تا کنون از آن استفاده میکردیم) تعریف میکند. برای داشتن یک ارجاع به صورت ضعیف، باید این موضوع را موقع تعریف کردن، مشخص کنیم.
https://javacup.ir/weak-reference/
روزبه شریفنسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید #مقاله
گشتی در بایتکد جاوا
اگر ربط عنوان و تصویر را نمیدانید، این مقاله را مطالعه کنید.
از ابتدای یادگیری جاوا آموختهایم که سورسکد جاوا را در ادیتور به صورت فایل متنی مینویسیم و به وسیله کامپایلر جاوا، تبدیل به بایتکد میکنیم که یک نوع کد میانی مخصوص زبانهای جاوایی است و در فایل class. ذخیره میشود. همچنین میدانیم که این زبان میانی مستقل از سکو است و روی هر ماشینی که ماشین مجازی جاوا (JVM) روی آن نصب باشد، قابل اجراست.
جالب است بدانید که امکان ساخت یک ماشین که به صورت بومی، بایتکد جاوا را اجرا کند هم وجود دارد. حتی مواردی هم به مرحله تولید و فروش رسیدهاند (به ویکیپدیا مراجعه کنید). یک مثال جالب از این دسته، Jazelle است، قسمتی از پردازندههای ARM که (بخشی از) مجموعه دستورات بایتکد جاوا را اجرا میکرد.
حالا در این مقاله میخواهیم ساختار بایتکدها را بررسی کنیم، ببینیم به چه شکل ذخیره شدهاند، مجموعه دستوراتشان چگونه است و چگونه اجرا میشوند و در آخر هم با ابزاری آشنا میشویم که میتواند این بایتکدها را بسازد یا تغییر دهد.
javacup.ir/bytecode
روزبه شریفنسب
@JavaCupIR
گشتی در بایتکد جاوا
اگر ربط عنوان و تصویر را نمیدانید، این مقاله را مطالعه کنید.
از ابتدای یادگیری جاوا آموختهایم که سورسکد جاوا را در ادیتور به صورت فایل متنی مینویسیم و به وسیله کامپایلر جاوا، تبدیل به بایتکد میکنیم که یک نوع کد میانی مخصوص زبانهای جاوایی است و در فایل class. ذخیره میشود. همچنین میدانیم که این زبان میانی مستقل از سکو است و روی هر ماشینی که ماشین مجازی جاوا (JVM) روی آن نصب باشد، قابل اجراست.
جالب است بدانید که امکان ساخت یک ماشین که به صورت بومی، بایتکد جاوا را اجرا کند هم وجود دارد. حتی مواردی هم به مرحله تولید و فروش رسیدهاند (به ویکیپدیا مراجعه کنید). یک مثال جالب از این دسته، Jazelle است، قسمتی از پردازندههای ARM که (بخشی از) مجموعه دستورات بایتکد جاوا را اجرا میکرد.
حالا در این مقاله میخواهیم ساختار بایتکدها را بررسی کنیم، ببینیم به چه شکل ذخیره شدهاند، مجموعه دستوراتشان چگونه است و چگونه اجرا میشوند و در آخر هم با ابزاری آشنا میشویم که میتواند این بایتکدها را بسازد یا تغییر دهد.
javacup.ir/bytecode
روزبه شریفنسب
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
روش دستوری (imperative) و روش اعلانی (declarative) دو روش کاملا متفاوت برای توصیف الگوریتم هستند. در دهههای ۸۰ و ۹۰ میلادی تصور میشد این طرز فکرها، کلا جدا از هم و تطبیقناپذیر هستند. به طوری که ما شاهد کشمکشهایی هم بین برنامهنویسی شیگرا و فانکشنال بودیم. Smalltalk و ++C قهرمانان شیگرا، و هسکل قهرمان تابعی بود.
بعدها ++C شیگرایی خالص را کنار گذاشت و خود را به عنوان یک زبان چندپارادایمی مطرح کرد. از آن به بعد جاوا به عنوان سردمدار زبانهای شیگرا ادامهداد تا نهایتا با جاوا ۸، این زبان هم تبدیل به یک زبان چندپارادایمی شد.
مطالعه کامل مقاله:
javacup.ir/multiparadigm-jvm/
روزبه شریفنسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
روش دستوری (imperative) و روش اعلانی (declarative) دو روش کاملا متفاوت برای توصیف الگوریتم هستند. در دهههای ۸۰ و ۹۰ میلادی تصور میشد این طرز فکرها، کلا جدا از هم و تطبیقناپذیر هستند. به طوری که ما شاهد کشمکشهایی هم بین برنامهنویسی شیگرا و فانکشنال بودیم. Smalltalk و ++C قهرمانان شیگرا، و هسکل قهرمان تابعی بود.
بعدها ++C شیگرایی خالص را کنار گذاشت و خود را به عنوان یک زبان چندپارادایمی مطرح کرد. از آن به بعد جاوا به عنوان سردمدار زبانهای شیگرا ادامهداد تا نهایتا با جاوا ۸، این زبان هم تبدیل به یک زبان چندپارادایمی شد.
مطالعه کامل مقاله:
javacup.ir/multiparadigm-jvm/
روزبه شریفنسب
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
در یکی از مقالههایی که اخیرا در جاواکاپ منتشر شد، در مورد چندپارادایمی بودن ماشین مجازی جاوا صحبت کردیم، به طور خلاصه گفته شد که به خاطر کامپایل شدن تمام زبانهای اسکالا، Groovy، کلوژر و کاتلین به بایتکد و اجرا توسط ماشین مجازی جاوا، این امکان وجود دارد که برای قسمتهای مختلف فضای مسئله خود، از زبانهای مختلف استفاده کنیم. یکی از مطرحترین و پرکاربردترین زبانهای بر پایه ماشین مجازی جاوا، اسکالا است. در این مقاله، با اسکالا آشنا شده و مزایا و معایب آن را بررسی میکنیم.
اسکالا به عنوان یک زبان بر پایه ماشین مجازی جاوا و نوع داده ایستا در ژانویه سال ۲۰۰۴ میلادی توسط مارتین اردرسکی معرفی شد. اسکالا هم برنامهنویسی شیگرا و هم تابعی را پشتیبانی میکند. از معروفترین پروژههای توسعه دادهشده با این زبان میتوان به آپاچی اسپارک، آپاچی کافکا و آپاچی فلینک اشاره کرد. در لیست محبوبیت زبانها هم اسکالا جایگاه خوبی دارد. (رتبه ۱۳ ام)
برای مطالعه کامل این مقاله و آشنایی با ویژگیهای اصلی اسکالا، به سایت جاواکاپ رجوع کنید:
https://javacup.ir/scala-tutor
روزبه شریفنسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
در یکی از مقالههایی که اخیرا در جاواکاپ منتشر شد، در مورد چندپارادایمی بودن ماشین مجازی جاوا صحبت کردیم، به طور خلاصه گفته شد که به خاطر کامپایل شدن تمام زبانهای اسکالا، Groovy، کلوژر و کاتلین به بایتکد و اجرا توسط ماشین مجازی جاوا، این امکان وجود دارد که برای قسمتهای مختلف فضای مسئله خود، از زبانهای مختلف استفاده کنیم. یکی از مطرحترین و پرکاربردترین زبانهای بر پایه ماشین مجازی جاوا، اسکالا است. در این مقاله، با اسکالا آشنا شده و مزایا و معایب آن را بررسی میکنیم.
اسکالا به عنوان یک زبان بر پایه ماشین مجازی جاوا و نوع داده ایستا در ژانویه سال ۲۰۰۴ میلادی توسط مارتین اردرسکی معرفی شد. اسکالا هم برنامهنویسی شیگرا و هم تابعی را پشتیبانی میکند. از معروفترین پروژههای توسعه دادهشده با این زبان میتوان به آپاچی اسپارک، آپاچی کافکا و آپاچی فلینک اشاره کرد. در لیست محبوبیت زبانها هم اسکالا جایگاه خوبی دارد. (رتبه ۱۳ ام)
برای مطالعه کامل این مقاله و آشنایی با ویژگیهای اصلی اسکالا، به سایت جاواکاپ رجوع کنید:
https://javacup.ir/scala-tutor
روزبه شریفنسب
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
در آموزشهای جاوا دیدیم که API جدید java NIO به جاوا اضافه شده و با قابلیتهایش میتواند به جای API قدیمی java IO استفاده شود. حالا سوالی که پیش میآید این است که چه زمانی باید از java NIO استفاده شود و چه زمانی بهتر است همچنان از API قدیمی java IO استفاده کنیم؟
در این مقاله، تلاش شده تفاوتهای بین این دو API شفافسازی شوو و در آخر بتوانیم نتیجه بگیریم که از هر کدام کجا استفاده کنیم و اینکه این انتخاب چگونه طراحی کد ما را دستخوش تغییر میکند.
برای مطالعه این مقاله، به این آدرس مراجعه کنید:
https://javacup.ir/io-vs-nio/
روزبه شریفنسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
در آموزشهای جاوا دیدیم که API جدید java NIO به جاوا اضافه شده و با قابلیتهایش میتواند به جای API قدیمی java IO استفاده شود. حالا سوالی که پیش میآید این است که چه زمانی باید از java NIO استفاده شود و چه زمانی بهتر است همچنان از API قدیمی java IO استفاده کنیم؟
در این مقاله، تلاش شده تفاوتهای بین این دو API شفافسازی شوو و در آخر بتوانیم نتیجه بگیریم که از هر کدام کجا استفاده کنیم و اینکه این انتخاب چگونه طراحی کد ما را دستخوش تغییر میکند.
برای مطالعه این مقاله، به این آدرس مراجعه کنید:
https://javacup.ir/io-vs-nio/
روزبه شریفنسب
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
شما با کلوژر آشنایی دارید؟
در این مقاله، آقای زیمونسکی به زبان خیلی ساده و ابتدایی، سینتکس زبان جاوا و کلوژر رو با هم مقایسه میکنن.
به طوری که در انتهای مقاله میتونیم یه مساله کوچیک رو با زبان کلوژر حل کنیم.
در نهایت هم اگر علاقهمند شدید کلوژر یاد بگیرید، دو تا ویدیوی آموزشی خوب بهتون معرفی شده.
javacup.ir/clojure-basics
روزبه شریفنسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
شما با کلوژر آشنایی دارید؟
در این مقاله، آقای زیمونسکی به زبان خیلی ساده و ابتدایی، سینتکس زبان جاوا و کلوژر رو با هم مقایسه میکنن.
به طوری که در انتهای مقاله میتونیم یه مساله کوچیک رو با زبان کلوژر حل کنیم.
در نهایت هم اگر علاقهمند شدید کلوژر یاد بگیرید، دو تا ویدیوی آموزشی خوب بهتون معرفی شده.
javacup.ir/clojure-basics
روزبه شریفنسب
@JavaCupIR
#مقاله #در_سایت_جاواکاپ_بخوانید
کتابخانه Apache PDFBox یکی از کتابخانههای متنباز Apache است که با جاوا نوشته شده و برای ساخت یا ویرایش فایلهای pdf مورد استفاده قرار میگیرد. با این کتابخانه میتوان کارهایی مثل افزودن و استخراج متن و عکس، ویرایش اطلاعات فایل، افزودن کامنت، هایلایت کردن متن، وصل کردن چند فایل بهم، افزودن یا حذف مجوزها مثل مجوز چاپ کردن فایل، افزودن کد جاوااسکریپت، رمزگذاری فایل، افزودن امضا، تبدیل فایل به عکس و HTML و… را انجام داد.
در واقع PDFBox از ۴ جز اصلی تشکیل شده است که هر کدام در یک فایل jar جداگانه قرار دارند: PDFBox و FontBox و XmpBox و Preflight.
در این بین، مهمترین آنها PDFBox است که تمام کلاسهای کاربردی برای پردازش pdf در آن قرار دارند.
با FontBox اجازه استفاده از فونتهای مختلف را دارید.
از XmpBox برای کنترل متادیتای XMP فایلها استفاده میشود.
با کلاسهای Preflight میشود چک کرد که آیا فایل pdf از استاندارد PDF/A پیروی میکند یا خیر.
در این مقاله با برخی از کلاسهای این کتابخانه آشنا میشویم:
javacup.ir/apache_pdfbox_tutorial/
#امید_نژادعباسی
@JavaCupIR
کتابخانه Apache PDFBox یکی از کتابخانههای متنباز Apache است که با جاوا نوشته شده و برای ساخت یا ویرایش فایلهای pdf مورد استفاده قرار میگیرد. با این کتابخانه میتوان کارهایی مثل افزودن و استخراج متن و عکس، ویرایش اطلاعات فایل، افزودن کامنت، هایلایت کردن متن، وصل کردن چند فایل بهم، افزودن یا حذف مجوزها مثل مجوز چاپ کردن فایل، افزودن کد جاوااسکریپت، رمزگذاری فایل، افزودن امضا، تبدیل فایل به عکس و HTML و… را انجام داد.
در واقع PDFBox از ۴ جز اصلی تشکیل شده است که هر کدام در یک فایل jar جداگانه قرار دارند: PDFBox و FontBox و XmpBox و Preflight.
در این بین، مهمترین آنها PDFBox است که تمام کلاسهای کاربردی برای پردازش pdf در آن قرار دارند.
با FontBox اجازه استفاده از فونتهای مختلف را دارید.
از XmpBox برای کنترل متادیتای XMP فایلها استفاده میشود.
با کلاسهای Preflight میشود چک کرد که آیا فایل pdf از استاندارد PDF/A پیروی میکند یا خیر.
در این مقاله با برخی از کلاسهای این کتابخانه آشنا میشویم:
javacup.ir/apache_pdfbox_tutorial/
#امید_نژادعباسی
@JavaCupIR
#مقاله #در_سایت_جاواکاپ_بخوانید
در این مقاله با قابلیت جدید Sealed Class یا کلاس مهر و مومشده در جاوا ۱۵ آشنا میشویم.
کلاسهای مهر و مومشده مهمترین تغییر جاوا ۱۵ بوده و امکانات شیگرایی جاوا را بسیار بهتر کرده است. با اضافه شدن این امکان به جرأت میتوان گفت جاوا شیگراترین زبان برنامهنویسی موجود است. برای تکمیل این ویژگی، قرار است امکان switch زدن روی نوع کلاس اشیا هم به جاوا اضافه شود که البته قول این ویژگی و pattern matching مدت زیادی است که به برنامهنویسها داده شده ولی هنوز به صورت رسمی به جاوا اضافه نشدهاند.
همانطور که میدانید، هدف اصلی از وراثت در جاوا، استفاده دوباره از کد (code reuse) است. با این امکان، کلاسهای متعدد میتوانند از یک کلاس دیگر ارثبری کنند و از متدهای از قبل تعریفشده آن برای خودشان استفاده کنند یا آنها را گسترش دهند. هدف مهم دیگر این است که مدل و سلسلهمراتبی برای درک بهتر پروژه طراحی شود.
با کمک «کلاسهای مهر و مومشده»، با محدود کردن اینکه چه کلاسی میتواند از کلاس ما ارثبری کند، کارمان راحتتر شده است.
javacup.ir/sealed-classes/
#امید_نژادعباسی
@JavaCupIR
در این مقاله با قابلیت جدید Sealed Class یا کلاس مهر و مومشده در جاوا ۱۵ آشنا میشویم.
کلاسهای مهر و مومشده مهمترین تغییر جاوا ۱۵ بوده و امکانات شیگرایی جاوا را بسیار بهتر کرده است. با اضافه شدن این امکان به جرأت میتوان گفت جاوا شیگراترین زبان برنامهنویسی موجود است. برای تکمیل این ویژگی، قرار است امکان switch زدن روی نوع کلاس اشیا هم به جاوا اضافه شود که البته قول این ویژگی و pattern matching مدت زیادی است که به برنامهنویسها داده شده ولی هنوز به صورت رسمی به جاوا اضافه نشدهاند.
همانطور که میدانید، هدف اصلی از وراثت در جاوا، استفاده دوباره از کد (code reuse) است. با این امکان، کلاسهای متعدد میتوانند از یک کلاس دیگر ارثبری کنند و از متدهای از قبل تعریفشده آن برای خودشان استفاده کنند یا آنها را گسترش دهند. هدف مهم دیگر این است که مدل و سلسلهمراتبی برای درک بهتر پروژه طراحی شود.
با کمک «کلاسهای مهر و مومشده»، با محدود کردن اینکه چه کلاسی میتواند از کلاس ما ارثبری کند، کارمان راحتتر شده است.
javacup.ir/sealed-classes/
#امید_نژادعباسی
@JavaCupIR
#مقاله #در_سایت_جاواکاپ_بخوانید
یکی از سختترین بخشهای توسعه نرمافزار، این است که بدانیم در هر زمانی روی چه کاری باید وقت گذاشت. همه ما عاشق کد زدن و ساخت چیزهای جدید هستیم. اما با توجه به اینکه توسعهدهندهها اصولا گران و کمیاب هستند، استفاده درست از زمانشان، به یکی از بزرگترین چالشهای این کار تبدیل میشود.
بهینهسازی زودهنگام (Premature optimization)، به معنای صرف وقت بیش از حد روی چیزیست که ممکن است اصلا نیاز نشود.
بسیاری از تیمهای توسعه خیلی زود درگیر کارهای بهینهسازی و مقیاسپذیری پروژه میشوند در حالی که هنوز از عملکرد صحیح محصولشان مطمئن نیستند.
بهینهسازی زودهنگام چیزیست که باید همیشه آن را گوشه ذهن داشته باشید و چیزیست که باید همیشه در کارهای روزانهتان از آن دوری کنید.
javacup.ir/premature-optimizations
#روزبه_شریف_نسب
@JavaCupIR
یکی از سختترین بخشهای توسعه نرمافزار، این است که بدانیم در هر زمانی روی چه کاری باید وقت گذاشت. همه ما عاشق کد زدن و ساخت چیزهای جدید هستیم. اما با توجه به اینکه توسعهدهندهها اصولا گران و کمیاب هستند، استفاده درست از زمانشان، به یکی از بزرگترین چالشهای این کار تبدیل میشود.
بهینهسازی زودهنگام (Premature optimization)، به معنای صرف وقت بیش از حد روی چیزیست که ممکن است اصلا نیاز نشود.
بسیاری از تیمهای توسعه خیلی زود درگیر کارهای بهینهسازی و مقیاسپذیری پروژه میشوند در حالی که هنوز از عملکرد صحیح محصولشان مطمئن نیستند.
بهینهسازی زودهنگام چیزیست که باید همیشه آن را گوشه ذهن داشته باشید و چیزیست که باید همیشه در کارهای روزانهتان از آن دوری کنید.
javacup.ir/premature-optimizations
#روزبه_شریف_نسب
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
به عنوان توسعهدهنده و معمار نرمافزار، دائما در حال فراخوانی و تجمیع سرویسهای مختلف به وسیله APIهای REST هستیم. گاهی اوقات به دلیل طراحی ضعیف یا داکیومنتهای کم، استفاده از این APIها بسیار سخت است. این موضوع باعث میشود تا برنامهنویسان قادر به استفاده از سرویسهای موجود نباشند و مجبور شوند همان کارکرد را از اول پیادهسازی کنند.
در این مقاله، بحثمان را با توضیح REST و اینکه منظور از «طراحی APIهای REST» چیست، شروع میکنیم.
سپس ۱۲ نکته مفید برای طراحی بهتر APIهای REST را با هم مرور میکنیم.
javacup.ir/rest-api-best-pratice
#روزبه_شریف_نسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
به عنوان توسعهدهنده و معمار نرمافزار، دائما در حال فراخوانی و تجمیع سرویسهای مختلف به وسیله APIهای REST هستیم. گاهی اوقات به دلیل طراحی ضعیف یا داکیومنتهای کم، استفاده از این APIها بسیار سخت است. این موضوع باعث میشود تا برنامهنویسان قادر به استفاده از سرویسهای موجود نباشند و مجبور شوند همان کارکرد را از اول پیادهسازی کنند.
در این مقاله، بحثمان را با توضیح REST و اینکه منظور از «طراحی APIهای REST» چیست، شروع میکنیم.
سپس ۱۲ نکته مفید برای طراحی بهتر APIهای REST را با هم مرور میکنیم.
javacup.ir/rest-api-best-pratice
#روزبه_شریف_نسب
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
چرا کاتلین؟
بخش اول
کاتلین در سال ۲۰۱۱ معرفی شد ولی اولین نسخه پایدار آن (نسخه ۱.۰) سال ۲۰۱۶ منتشر شد. کاتلین زبان متنباز و رایگانی است که توسط مهندسان JetBrains توسعه یافته است.
در این سالها توجهات بسیاری را جلب کرده است. مخصوصا از زمانی که گوگل اعلام کرد میتوان از کاتلین برای توسعه برنامههای اندروید استفاده کرد و حتی زبان توصیهشده برای اندروید را کاتلین معرفی کرد.
کاتلین یک زبان مدرن با تایپ ایستا است که هم قابلیت نوشتن برنامههای شیگرا و هم تابعی را برای برنامهنویس فراهم میکند.
کاتلین میتواند در پلتفرمهای گوناگونی از جمله JVM اجرا شود. همانطور که از زبانهای بر پایه JVM انتظار داریم، قابلیت همکاری بسیار خوبی با جاوا دارد.
در این مقاله، ۸ قابلیت جذابی که فکر میکنیم برای برنامهنویسان جاوا جالب خواهد بود معرفی شدهاند.
در بخش اول مقاله، دو مورد از این هشت مورد را با هم بررسی میکنیم.
۱- سینتکس تمیز و جمع و جور
۲- داشتن (تقریبا) یک تایپسیستم
javacup.ir/why-kotlin-1
روزبه شریفنسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
چرا کاتلین؟
بخش اول
کاتلین در سال ۲۰۱۱ معرفی شد ولی اولین نسخه پایدار آن (نسخه ۱.۰) سال ۲۰۱۶ منتشر شد. کاتلین زبان متنباز و رایگانی است که توسط مهندسان JetBrains توسعه یافته است.
در این سالها توجهات بسیاری را جلب کرده است. مخصوصا از زمانی که گوگل اعلام کرد میتوان از کاتلین برای توسعه برنامههای اندروید استفاده کرد و حتی زبان توصیهشده برای اندروید را کاتلین معرفی کرد.
کاتلین یک زبان مدرن با تایپ ایستا است که هم قابلیت نوشتن برنامههای شیگرا و هم تابعی را برای برنامهنویس فراهم میکند.
کاتلین میتواند در پلتفرمهای گوناگونی از جمله JVM اجرا شود. همانطور که از زبانهای بر پایه JVM انتظار داریم، قابلیت همکاری بسیار خوبی با جاوا دارد.
در این مقاله، ۸ قابلیت جذابی که فکر میکنیم برای برنامهنویسان جاوا جالب خواهد بود معرفی شدهاند.
در بخش اول مقاله، دو مورد از این هشت مورد را با هم بررسی میکنیم.
۱- سینتکس تمیز و جمع و جور
۲- داشتن (تقریبا) یک تایپسیستم
javacup.ir/why-kotlin-1
روزبه شریفنسب
@JavaCupIR
انجمن جاواکاپ
#مقاله #در_سایت_جاواکاپ_بخوانید چرا کاتلین؟ بخش اول کاتلین در سال ۲۰۱۱ معرفی شد ولی اولین نسخه پایدار آن (نسخه ۱.۰) سال ۲۰۱۶ منتشر شد. کاتلین زبان متنباز و رایگانی است که توسط مهندسان JetBrains توسعه یافته است. در این سالها توجهات بسیاری را جلب کرده…
#مقاله
#در_سایت_جاواکاپ_بخوانید
چرا کاتلین؟
بخش دوم
در بخش دوم این چهار ویژگی مهم کاتلین را با هم مرور میکنیم:
۱- ایمنی در برابر نال
۲- توابع و برنامهنویسی تابعی
۳- کلاسهای داده
۴- توابع و فیلدهای افزودنی
javacup.ir/why-kotlin-2/
روزبه شریفنسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
چرا کاتلین؟
بخش دوم
در بخش دوم این چهار ویژگی مهم کاتلین را با هم مرور میکنیم:
۱- ایمنی در برابر نال
۲- توابع و برنامهنویسی تابعی
۳- کلاسهای داده
۴- توابع و فیلدهای افزودنی
javacup.ir/why-kotlin-2/
روزبه شریفنسب
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
همهی ما با برنامهنویسی شیگرا آشنا هستیم. کم و بیش با Aspect Oriented Programming نیز آشنایی داریم. اخیرا Reactive Programming فراگیرتر شدهاست. ولی خیلی از ما چیز زیادی راجع به پارادایم Actor Model نمیدانیم.
مهندس پیشوایی در این مقاله برخی از خواص برنامهنویسی با مدل اکتور را توضیح دادهاند. با این امید که توجه بیشتری به این پارادایم مفید و پرکاربرد در ایران ایجاد شود.
🔗لینک مقاله
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
همهی ما با برنامهنویسی شیگرا آشنا هستیم. کم و بیش با Aspect Oriented Programming نیز آشنایی داریم. اخیرا Reactive Programming فراگیرتر شدهاست. ولی خیلی از ما چیز زیادی راجع به پارادایم Actor Model نمیدانیم.
مهندس پیشوایی در این مقاله برخی از خواص برنامهنویسی با مدل اکتور را توضیح دادهاند. با این امید که توجه بیشتری به این پارادایم مفید و پرکاربرد در ایران ایجاد شود.
🔗لینک مقاله
@JavaCupIR
انجمن جاواکاپ
#مقاله #در_سایت_جاواکاپ_بخوانید چرا کاتلین؟ بخش دوم در بخش دوم این چهار ویژگی مهم کاتلین را با هم مرور میکنیم: ۱- ایمنی در برابر نال ۲- توابع و برنامهنویسی تابعی ۳- کلاسهای داده ۴- توابع و فیلدهای افزودنی javacup.ir/why-kotlin-2/ روزبه شریفنسب @JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
چرا کاتلین
(بخش آخر)
در بخش سوم و آخر از این سلسله مقالات، به بررسی این دو ویژگی کاتلین میپردازیم:
۱- سربار کردن اپراتورها
۲- اشیای سطح بالا و الگوی سینگلتون
🔗 javacup.ir/why-kotlin-3
روزبه شریفنسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
چرا کاتلین
(بخش آخر)
در بخش سوم و آخر از این سلسله مقالات، به بررسی این دو ویژگی کاتلین میپردازیم:
۱- سربار کردن اپراتورها
۲- اشیای سطح بالا و الگوی سینگلتون
🔗 javacup.ir/why-kotlin-3
روزبه شریفنسب
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
با وجود اینکه به طور کلی جاوا زبان کندی نیست، اما مدت زمان راهاندازی برنامهها راضیکننده نیست!
زمان راهاندازی برنامهها در پروژههای کوچک یا برنامههای کاربردی مشکل قابلتوجهی به حساب نمیآید، اما در پروژههای بزرگتر که classpath بزرگی دارند، در زمان توسعه به مسئلهای مهم تبدیل میشود. به طور خاص، در برنامههای Spring Boot با اینکه روند توسعه سریعی دارند، اما با اضافه کردن تعدادی وابستگی، مدت زمان راهاندازی برنامه طولانی میشود.
در این مقاله به شما چند آرگومان ماشین مجازی جاوا معرفی میشود که با کمک آنها میتوان مدت زمان راهاندازی را کمتر کرد.
همچنین چند نکته را با هم مرور میکنیم که در نظر گرفتن آنها در زمان توسعه یک برنامه Spring، روی مدت زمان راهاندازی برنامه تاثیر چشمگیری دارد.
🔗 javacup.ir/improve-startup-time
روزبه شریفنسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
با وجود اینکه به طور کلی جاوا زبان کندی نیست، اما مدت زمان راهاندازی برنامهها راضیکننده نیست!
زمان راهاندازی برنامهها در پروژههای کوچک یا برنامههای کاربردی مشکل قابلتوجهی به حساب نمیآید، اما در پروژههای بزرگتر که classpath بزرگی دارند، در زمان توسعه به مسئلهای مهم تبدیل میشود. به طور خاص، در برنامههای Spring Boot با اینکه روند توسعه سریعی دارند، اما با اضافه کردن تعدادی وابستگی، مدت زمان راهاندازی برنامه طولانی میشود.
در این مقاله به شما چند آرگومان ماشین مجازی جاوا معرفی میشود که با کمک آنها میتوان مدت زمان راهاندازی را کمتر کرد.
همچنین چند نکته را با هم مرور میکنیم که در نظر گرفتن آنها در زمان توسعه یک برنامه Spring، روی مدت زمان راهاندازی برنامه تاثیر چشمگیری دارد.
🔗 javacup.ir/improve-startup-time
روزبه شریفنسب
@JavaCupIR
#مقاله
#در_سایت_جاواکاپ_بخوانید
در این مقاله با پیادهسازی دو روش Blocking I/O و Non-Blocking I/O در زبان جاوا آشنا میشوید.
🔗 blocking-io vs non-blocking-io
روزبه شریفنسب
@JavaCupIR
#در_سایت_جاواکاپ_بخوانید
در این مقاله با پیادهسازی دو روش Blocking I/O و Non-Blocking I/O در زبان جاوا آشنا میشوید.
🔗 blocking-io vs non-blocking-io
روزبه شریفنسب
@JavaCupIR