بهترین منابع آموزشی برنامه نویسی فارسی

این وبلاگ برای معرفی بهترین منابع آموزشی برنامه نویسی ساخته شده است

بهترین منابع آموزشی برنامه نویسی فارسی

این وبلاگ برای معرفی بهترین منابع آموزشی برنامه نویسی ساخته شده است

سلام خوش آمدید

flutter vs react native مقایسه بین flutter و  react native - ری اکت نتیو و فلاتر

Flutter یا React Native از دید یک توسعه دهنده : 

 

React Native توسط فیسبوک و  Flutter توسط گوگل ساخته شده است و دو تکنولوژی داغ در بازار کار برای توسعه ی اپلیکیشن های موبایل هستند . در این مقاله سعی میکنیم از دید یک توسعه دهنده ی موبایل این دو تکنولوژی را با هم دیگر مقایسه کنیم پس با ما همراه باشید ...

 

با توجه به رشد روز افزون اپلیکیشن های موبایل و استفاده کنندگان این اپلیکیشن ها ، تقریبا هر شرکت نیاز به یک اپلیکیشن تلفن همراه یا بهتره اینطوری در نظر بگیریم که برای حفظ رقابت در بازار نیاز به تولید اپلیکیشن های موبایل سرویس های خود را دارد . 

و آنچه بیشتر از هر چیزی اهمیت دارد این است که به دنبال گزینه های توسعه ی اپلیکیشن موبایل ، مخصوصا برای android و ios می باشند که هم سرعت بیشتری داشته باشند هم منابع کمتری نیاز داشته باشند . 

دو شرکت اپل و گوگل که سازندگان سیستم عامل های android و ios برای گوشی های هوشمند هستند محیط ها و زبان های برنامه نویسی اختصاصی خود را ارائه داده اند . برای توسعه اپلیکیشن های ios شرکت اپل میتوانید از محیط Xcode و زبان Swift و همچنین برای android میتوایند از محیط Android Studio و زبان های رسمی Java و Kotlin بهره بگیرید . در هر صورت نوشتن اپلیکیشن به این زبان ها و همچنین تسلط بر این محیط ها نیاز به افرادی دارد که دو تکنولوژی کاملا متفاوت را تسلط داشته باشند که هم برای شرکت ها هزینه بر هست و هم پیدا کردن افراد کاملا مسلط و قابل اعتماد زمان بر و کار را سخت تر خواهد کرد . بخاطر همین دلایل شرکت ها به سراغ تکنولوژی های کراس پلتفرم رفته اند و تولید اپلیکیشن بصورت کراس پلتفرم را به تولید نیتیو آنها ترجیح میدهند ، چون برای هر دو سیستم عامل android و ios تنها با یک تکنولوژی واحد برنامه نویسی میشود و اکثر کدهای نوشته شده برای این دو یکسان است . 

 

فلاتر ( Flutter )  و ری اکت نیتیو ( React Native ) چیست ؟ 

 

 ری اکت نیتیو ( React Native ) توسط تیم فیسبوک ساخته شده است و در سال ۲۰۱۵ بصورت کدباز در آمد . از طرف دیگر  Flutter در مراسم  I/O ۲۰۱۷ گوگل معرفی شد و از آن زمان تا کنون ، بسیار پیشرفت کرده است . هر دوی این تکنولوژی ها به توسعه دهندگان اپ های موبایل کمک میکنند تا بتوانند اپلیکیشن های کراس پلتفرم خود را تنها با یک زبان برنامه نویسی و با سرعت بیشتر ، تولید کنند . 

React Native در حال حاضر یک ابزار بالغ است و دارای یک جامعه بزرگ است، اما Flutter  نسبتا جدید است و  از سال ۲۰۱۷ در حال پذیرش افراد جدیدی است. در این پست، هر کدام از این ها را با استفاده از ۱۰ معیار متفاوت مقایسه می کنیم :

  1. زبان برنامه نویسی
  2. معماری فنی
  3. نصب
  4. راه اندازی و تنظیمات مورد نیاز
  5. کامپوننت های UI و API های توسعه
  6. بهره وری توسعه دهندگان
  7. جامعه ی پشتیبان
  8. پشتیبانی از تست
  9. پشتیبانی از ساخت و فرآیند انتشار
  10. DevOps و پشتیبانی از CI / CD

اکنون که تمام معیارها را تعریف کرده ایم، شروع به بررسی هر کدام از آنها میکنیم . 

 

1 - زبان برنامه نویسی : 

 

یکی از مزیت های کلیدی استفاده از ابزارهای کراس پلتفرم این است که تنها از یک زبان برنامه نویسی استفاده میشود تا توسعه دهنده بتواند هم برای android و هم برای ios اپلیکیشن تولید کند .

 

زبان مورد استفاده React Native  زبان جاوا اسکریپت ( JavaScript ) : 

 

 React Native از زبان برنامه نویسی جاوا اسکریپت بهره میگیرد تا بتوانید اپلیکیشن های کراس - پلتفرم خود را با آن تولید کنید . جامعه ی بسیار زیادی از برنامه نویسان از جاوا اسکریپت استفاده میکنند React Native برپایه فریمورک React جاوا اسکریپت میباشد . یک مزیت عالی برای برنامه نویسان و توسعه دهندگان وب محسوب میشود چون که نیاز نیست دیگر زبان خاص دیگری را یاد بگیرند کافیست در حد خیلی کم تلاش کنند تا اپ موبایل آنها تولید شود جاوا اسکریپت یک زبان به صورت پویا است و هر چیزی را می توان با جاوا اسکریپت انجام داد، که مزایا و معایب مختص خود را نیز دارد . 

 

زبان مورد استفاده Flutter زبان دارت  ( Dart ) : 

 

Flutter از زبان Dart بهره میگیرد این زبان در سال ۲۰۱۱ توسط شرکت گوگل عرضه شده است که به ندرت توسط برنامه نویسان مورد استفاده قرار گرفته بود . قواعد دستوری Dart برای برنامه نویسان جاوا اسکریپت و جاوا بسیار آشناست و بسیاری از مفاهیم شی گرائی را پشتیبانی میکند برای شروع زبان برنامه نویسی Dart مستندات روان و ساده ای در وب سایت این زبان موجود است که از  اینجا میتوانید ببینید . 

 

نتیجه گیری نهائی : 

 

همانطور که در بالا اشاره کردیم زبان برنامه نویسی جاوا اسکریپت ( javascript ) توسط جامعه ی زیادی از برنامه نویسان استفاده میشود Dart نیز امکانات عالی دارد اما به ندرت توسط برنامه نویسان استفاده میشود و جامعه ی خوبی ندارد با توجه به این دلایل، واضح است که React Native در معیار زبان برنامه نویسی ، پیروز است  . 

 

پیروز : React Native

امتیاز ها :  React Native=۱ — Flutter=۰

flutter vs react native مقایسه بین flutter و  react native - ری اکت نتیو و فلاتر

2 - معماری فنی : 

 

زمانی که فریمورک کراس - پلتفرم برای توسعه ی اپ های اندرویدی انتخاب میکنیم ، ضروری است که معماری فنی آن را در نظر بگیریم . با دانستن باطن فریمورک ، ما می توانیم تصمیم آگاهانه بگیریم و آن چیزی را که برای پروژه ما بهتر است انتخاب کنیم.

 

React Native — Flux : 

 

معماری React Native به شدت برپایه ی معماری محیط اجرائی JS اجرا می شود که بعنوان  JavaScript bridge شناخته میشود .  کدهای جاوا اسکریپت به کدهای نیتیو runtime کامپایل میشوند . React Native از معماری به نام  Flux که توسط فیسبوک ساخته شده است بهره میگیرد .در وب سایت Flux میتوانید جزئیات بیشتری در مورد این معماری ببینید اما بصورت خلاصه در نظر داشته باشید که React Native از JavaScript bridge استفاده میکند تا با ماژول های نیتیو ارتباط برقرار کند . 

 

Flutter — Skia : 

 

Flutter از فریمورک Dart استفاده می کند که دارای کامپوننت داخلی بسیار زیادی است، بنابراین اندازه آن بزرگتر است و اغلب نیازی به پلی برای ارتباط با ماژولهای بومی ندارد . Dart دارای فریمورک های بسیار زیادی مانند Designing Material و Cupertino است که درون آن قرار گرفته است  و تمام تکنولوژی های مورد نیاز برای توسعه برنامه های تلفن همراه را فراهم می کند.

فریمورک Dart با استفاده ازموتور Skia زبان  C++ که دارای تمام پروتکل ها، ترکیب ها و کانال ها است . معماری موتور Flutter در مستندات Github Wiki آن توضیح داده شده است . به طور خلاصه، Flutter هر چیزی که نیاز دارد را درون موتور Flutter دارد . 

 

نتیجه گیری نهائی : 

 

موتور Flutter  اکثر کامپوننت های بومی را درون خود دارد و نیاز به ارتباط دهنده ی خاصی بین کامپوننت های بومی را ندارد ولی React Native برای استفاده از کامپوننت ها نیاز به JavaScript bridge دارد که باعث پرفرمنس ضعیفتری میشود . 

 

پیروز : Flutter

امتیاز ها :  React Native=۱ — Flutter=۱

flutter vs react native مقایسه بین flutter و  react native - ری اکت نتیو و فلاتر

3 - نصب  : 

 

مسئله ی نصب مخصوصا برای زمانی که برنامه نویس تازه شروع میکند بسیار مهم است  . مراحل نصب باید ساده و قابل درک باشد . 

 

نصب  React Native با استفاده از NPM :

 

React native توسط پکیج منیجر مربوط به Node.js نصب میشود که NPM نامیده میشود . برای افرادی که با جاوا اسکریپت کار کرده باشند نصب React Native آسان خواهد بود اما بقیه ی برنامه نویسان باید کار با NPM را یاد بگیرند .NPM می تواند بسته ها را به صورت محلی یا سراسری نصب کند. این در حالی است که کاربران سیستم عامل macOS باید برنامه ی مدیریت بسته های  HomeBrew  را داشته باشند . بصورت خلاصه باید دستور زیر برای نصب در مک نوشته شود :

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
$ brew install node

$ brew install watchman

$ npm install -g react-native-cli

بعد از اجرای این دستورات میتوانید به React Native از طریق ترمینال یا خط فرمان دسترسی داشته باشید . 

 

نصب Flutter — دانلود باینری از منبع  : 

 

Flutter را می توان با دانلود باینری برای یک پلت فرم خاص از Github نصب کرد . در سیستم عامل مک باید فایل  flutter.zip  را دانلود کرد و آنرا به عنوان متغیر PATH  معرفی کرد . این کار توسط خط فرمان طبق زیر انجام میشود : 

$ curl -O https://storage.googleapis.com/flutter_infra/releases/beta/macos/flutter_macos_v0.7.3-beta.zip

$ unzip flutter_macos_v0.7.3-beta.zip

export PATH=[PATH_TO_FLUTTER__DIRECTORY]/flutter/bin:$PATH

 

Flutter باید فرایند نصب شدن خود را بهبود ببخشد و از برنامه های مدیریت بسته مثل Homebrew, MacPorts, YUM, APT پشتیبانی کند تا نصب شدن آن راحت تر باشد و گام های کمتری نیاز داشته باشد . 

 

نتیجه گیری نهائی : 

 

هر دو تکنولوژی Flutter و React Native از برنامه های مدیریت بسته های بومی در هر سیستم عاملی برای نصب خود استفاده میکنند ، اما نصب Flutter به نظر می رسد که نیاز به کمی کار اضافه دارد از جمله دانلود کردن فایل باینری و افزودن ان به PATH سیستم عامل و ... که ممکن است برای توسعه دهندگان غیر جاوا اسکریپت مفید باشد . React Native را می توان با استفاده از برنامه ی مدیریت بسته ها  و بدون نیاز به دانلود فایل باینری از منبع نصب کرد.

 

پیروز : React Native

امتیاز ها :  React Native=۲ — Flutter=۱

flutter vs react native مقایسه بین flutter و  react native - ری اکت نتیو و فلاتر

4 - راه اندازی و تنظیمات مورد نیاز : 

 

فرایند راه اندازی کامپیوتر توسعه دهنده برای استفاده از فریمورک جدید ، طول می کشد. این فرآیند نیاز به تنظیمات زیادی نسبت به نصب آن دارد. تکنولوژی مورد نظر باید مستندات لازم از دریافت تا نصب و راه اندازی آن را داشته باشد . 

 

راه اندازی و تنظیمات React Native : 

 

مستندات شروع فریمورک React Native  فرض میکند توسعه دهنده قبلا تمام تنظیمات لازم برای توسعه ی  ios و android را انجام داده است . اطلاعات کمی در مورد ابزار خطی Xcode وجود دارد، اما برای رفتن به اندازه کافی کافی نخواهد بود ، مستندات مستقیما به گام ایجاد یک پروژه جدید میپردازند . 

یک پروژه جدید React Native می تواند با استفاده از دستورات زیر اجرا شود و در شبیه ساز iOS اجرا شود : 

 

$ react-native init MyProject
$ cd MyProject
$ react-native run-ios

در مستندات React Native فعلا هیچ راهنمایی در مورد تنظیمات توسعه ی اندروید گفته نشده است . 

 

راه اندازی و تنظیمات  Flatter : 

 

راهنمای شروع برای Flutter دارای اطلاعات دقیق در مورد راه اندازی IDE و پلت فرم برای هر دو iOS و Android است . شما می توانید تمام جزئیات نصب مورد نیاز Flutter را برای macOS در اینجا بخوانید .

همچنین Flutter دارای یک ابزار CLI به نام flutter doctor است که می تواند از طریق تنظیمات به توسعه دهندگان کمک کند و بررسی می کند که چه ابزارهایی بر روی دستگاه محلی نصب شده است و چه ابزارهایی باید پیکربندی شوند.

یک صفحه جداگانه در مورد چگونگی پیکربندی ویراستاران برای درگیر شدن با Flutter وجود دارد .

هنگامی که تمام راه اندازی انجام شد ، می توانیم یک برنامه ی جدید  Flutter از طریق CLI ایجاد و اجرا کنیم 

$ flutter create MyProject
$ cd MyProject
$ flutter run

در این مرحله، شما باید تمام تنظیمات و تنظیمات پروژه Flutter را داشته باشید.

 

نتیجه گیری نهائی : 

از مقایسه در بالا، روشن است که Flutter بهتر است بخاطر ارائه ی مستندات بهتر و پشتیبانی CLI برای تنظیم و پیکربندی است.

 

پیروز : Flutter

امتیاز ها :  React Native=۲ — Flutter=۲

flutter vs react native مقایسه بین flutter و  react native - ری اکت نتیو و فلاتر

5 - کامپوننت های UI و API های توسعه : 

 

هنگام ایجاد برنامه های موبایل کراس-پلتفرم ، پشتیبانی از کامپوننت های بومی ،مورد کلیدی می باشد . بدون پشتیبانی از کامپوننت های بومی هر پلتفرم ، اپ تولید شده مشابه اپ تولید شده باز زبان اصلی آن نخواهد بود . 

خیلی مهم است که فریمورک ، API لازم برای دسترسی به ماژول های بومی را داشته باشد . 

 

React Native — کامپوننت های کمتر  : 

 

هسته ی React Native تنها کامپوننت های رندرینگ مربوط به رابط کاربری و همچنین API های دسترسی به دستگاه را در اختیار شما میگذارد . 

به منظور دسترسی به بسیاری از ماژول های بومی، React Native به کتابخانه های جانبی تکیه میکند و React Native به کتابخانه های جانبی بسیار وابسته است .

لیستی از کامپوننت ها و API های را میتوانید اینجا ببینید . 

 

Flutter — کامپوننت های زیاد : 

 

فریمورک Flutter همراه با کامپوننت های رندر رابط کاربری ، API های دستگاه ، navigation ، تست اپ ، ابزارهای مدیریتی و بسیاری از کتابخانه ها  میباشد 

غنی بودن این کامپوننت ها درون Flutter باعث میشود دیگر نیاز به کتابخانه های جانبی نباشد ، اگر شما Flutter را راه اندازی کردید تمام نیازمندی های توسعه ی اپ داخل ان وجود دارد . Flutter همچنین ویجت هایی برای Material Design و Cupertino  دارد که اجازه میدهد توسعه دهندگان اجازه میدهد کامپوننت های UI را به سادگی رندر کنند . 

 

نتیجه گیری نهائی : 

همانطور که بالا هم خواندید React Native به کتابخانه های جانبی وابسته است در حالی که Flutter کامپوننت ها و API های غنی را درون خود دارد . 

 

پیروز : Flutter

امتیاز ها :  React Native=۲ — Flutter=۳

flutter vs react native مقایسه بین flutter و  react native - ری اکت نتیو و فلاتر

6 - بهره وری توسعه دهندگان : 

 

بهره وری بیشتر در عمل توسعه ی اپلیکیشن های یکی از موارد کلیدی برای هر توسعه دهنده ی موبایل است . این مورد بسیار مهم است که برنامه نویس بتواند تمرکز خود را روی اصل کار یعنی توسعه ی اپ جمع کند و برای موراد حاشیه ای و صبر کردن های زیاد تمرکزش بهم نخورد . 

 

بهره وری React Native :

 

اگر برنامه نویس قبلا با زبان جاوا اسکریپت کار کرده باشد ، توسعه ی اپلیکیشن کراس پلتفرم با Ract Native بسیار راحت خواهد بود . Ract Native امکان reload بسیار سریع و خوبی دارد که در زمان توسعه دهنده بسیار صرفه جوئی میکند و همچنین کار تست تغییرات اپلیکیشن را به سرعت فراهم میکند . از نظر محیط برنامه نویسی ، توسعه دهنده دستش آزاد است و هر برنامه ی ویرایشگر متن را میتواند انتخاب کند . 

 

بهره وری Flutter : 

 

Flutter هم ابزارها و امکانات بسیاری دارد که کار تست کردن اپلیکیشن را سرعت میبخشد ولی در نظر داشته باشید که باید مفاهیم تازه را بیاموزید برای مثال Dart یک زبان جدید است و افراد کمی با آن آشنا هستند همچنین در محیط های توسعه ی کمی زبان Dart شناخته میشود و برای این زبان برنامه نویسی امکانات فراهم شده است .

 

نتیجه گیری نهائی : 

اگر بخش بالا را مطالعه کرده باشید مطمئنا متوجه شدید که Ract Native از نظر زبان برنامه نویسی و محیط توسعه ، برتر است . Flutter در این مورد یک ابزار جدید است اما در آینده با افزوده شدن برنامه نویسان جدید مطمئنا رشد بیشتری خواهد کرد . 

 

پیروز : React Native

امتیاز ها :  React Native=۳ — Flutter=۳

flutter vs react native مقایسه بین flutter و  react native - ری اکت نتیو و فلاتر

7 - جامعه ی پشتیبان :

 

به محض اینکه توسعه دهندگان به یک فناوری علاقه نشان میدهند و آن را در روند توسعه خود انتخاب می کنند، آنها یک جامعه را برای به اشتراک گذاشتن دانش خود تشکیل می دهند. یک جامعه قوی به توسعه دهندگان کمک می کند تا از یکدیگر یاد بگیرند و مشکلات خود را حل کنند.

 

جامعه ی برنامه نویسی React Native  : 

 

React Native در سال ۲۰۱۵ معرفی شد و به سرعت محبوب شد . در گیت هاب React Native یک انجمن برای توسعه دهندگان و همچنین رویدادها و کنفرانس های مختلفی برای این فریمورک در سطح جهانی وجود دارد . یکی از جدیدترین این کنفرانس ها ، React Native EU  بود که در کشور لهستان برگزار شد اما در شهرهای دیگر جهان نیز برگزار میشود . 

 

جامعه ی برنامه نویسی Flutter : 

 

Flutter مدت ها بود ساخته شده بود اما زمانی مورد توجه همه قرار گرفت که در رویداد Google I/O  سال ۲۰۱۷ معرفی شد ، جامعه Flutter این روزها به سرعت در حال رشد است ، ملاقات ها و کنفرانس ها به صورت آنلاین برگزار می شود ، بزرگترین رویداد آینده Flutter Live در ماه دسامبر خواهد بود.

به طور خلاصه، انجمن Flutter به سرعت در حال رشد است. با این حال، هنوز منابع کافی برای توسعه دهندگان برای حل مسائل رایج وجود ندارد .

 

نتیجه گیری نهائی :

 از زمانی که React Native عرضه شد، جامعه و منابع بومی بوجود آمده اند و قابل دسترسی هستند ، ولی  Flutter هنوز نسبتا جدید است، اگر چه جامعه ی استفاده کنندگان آن  به سرعت در حال رشد است .

 

پیروز : React Native

امتیاز ها :  React Native=۴ — Flutter=۳

flutter vs react native مقایسه بین flutter و  react native - ری اکت نتیو و فلاتر

8 - پشتیبانی از تست :

 

تست بخش بسیار مهمی از توسعه ی اپلیکیشن های کراس-پلتفرم است که فیدبک سریعی ازکد نوشته شده را میتوان دریافت کرد . توسعه دهنده برای تست قسمت های مختلف ، ادغام آنها ، تغییرات در UI اپلیکیشن به سیستم تست نیاز دارد . 

 

React Native : 

reactNative یک فریمورک جاوا اسکریپتی است و چند فریمورک تست انواع واحدها ، در جاوا اسکریپت وجود دارد . ابزارهایی مانند Jest را می توان برای تست فوری استفاده کرد

با این حال، هنگامی که برای تست یکپارچگی یا سطح UI  مطرح میشود ، هیچ پشتیبانی رسمی برای React Native وجود ندارد.

ابزار جانبی مانند Appium و Detox وجود دارد که می تواند برای آزمایش برنامه های ReactNative استفاده شود، اما آنها به طور رسمی پشتیبانی نمی شوند.

 

Flutter : 

 

Flutter مجموعه ای غنی از امکانات تست را برای تست برنامه ها در واحدهای مختلف ، ویجت و سطح یکپارچه فراهم می کند.Flutter اینجا مستندات خوبی برای آزمایش برنامه های Flutter را دارد . 

 برای اطلاعات دقیق تر شما همچنین می توانید وبلاگ Nevercode را مطالعه کنید که درباره ی آزمایش برنامه های Flutter و در مورد چگونگی آزمایش برنامه های Flutter نوشته شده است 

Flutter امکان عالی تست کردن ویجت ها را دارد . این امکان زمانی مفید است که ما تست ویجت را برای تست کردن ui ایجاد میکنیم  یا به تست واحد های مختلف سرعت میبخشد .

 

نتیجه گیری نهائی :

جامعه ReactNative هیچ پشتیبانی رسمی برای تست یکپارچگی و سطح UI ندارد، در حالی که Flutter دارای مستندات عالی و مجموعه ای غنی از امکانات تست را داراست . 

 

پیروز : Flutter

امتیاز ها :  React Native=۴ — Flutter=۴

flutter vs react native مقایسه بین flutter و  react native - ری اکت نتیو و فلاتر

9 - پشتیبانی از ساخت و فرآیند انتشار : 

 

انتشار اپلیکیشن های تولید شده در مارکت ها دردسر های خود را دارد . این مراحل شامل امضا کردن فایل نهائی تولید شده می باشد که در صورت تولید اپلیکیشن های کراس پ-پلتفرم کار سخت تر نیز میشود . 

 

انتشار اپلیکیشن های React Native : 

 

مستندات رسمی ReactNative هیچ گام خودکار برای انتشار برنامه های iOS یا android را ندارد . راهنما ها و مستندات زیادی در سرتاسر وب وجود دارد که به شما کمک میکند خروجی ios و android بگیرید و از آنها در مارکت ها یا جاهای دیگری استفاده کنید . 

اما ابزارهای جانبی مثل fastlane  هم وجود دارد تا با کمک آن خروجی android و ios تولید کنید . 

این به این معنی است که React Native باید تولید و انتشار اپ های خود به کتابخانه های جانبی تکیه کند .

 

انتشار اپلیکیشن های Flutter : 

 

Flutter یک رابط خط فرمان قوی دارد.

ما می توانیم فایل باینری از اپلیکیشن خود را با استفاده از ابزار خط فرمان و پیروی از مستندات Flutter برای ساخت خروجی و انتشار برنامه های Android و iOS ایجاد کنیم. علاوه بر این Flutter به طور رسمی فرایند انتشار با Fastlane را مستند کرده است که اینجا میتوانید بببینید . 

 

نتیجه گیری نهائی :

 

Flutter ابزارهای ساخت و انتشار خروجی بسیار عالی دارد که توسط خط فرمان میتوان خروجی تولید کرد ولی React Native فاقد چنین ابزارهایی بصورت رسمی است . 

 

پیروز : Flutter

امتیاز ها :  React Native=۴ — Flutter=۵

flutter vs react native مقایسه بین flutter و  react native - ری اکت نتیو و فلاتر

10 - DevOps و پشتیبانی از CI / CD : 

 

CI مخفف Continuous Integration به معنی ادغام مداوم و CD مخفف Continuous Delivery به معنی تحویل مداوم اقدامتی هستند که برای توسعه هر اپ ضروری هستند برای دریافت بازخورد مداوم و اجتناب از انتشار اپ باگ دار مهم است . 

 

React Native : 

 

React Native هیچ مستندات رسمی در زمینه CI/CD ندارد به هر حال مقاله هایی در اینترنت وجود دارد که در مورد CI/CD در فریمورک React Native صحبت میکند . در این وبلاگ میتوانید یک مقاله در این مورد بخوانید 

 

Flutter : 

Flutter دارای بخشی برای CI و برای تست میباشد که شامل پیوندهایی به منابع خارجی است.

در هر صورت Flutter به شما اجازه میدهد از طریق خط فرمان CI/CD  را راه اندازی کنید و CI/CD توسط Flutter پشتیبانی میشود جزئیات بیشتر در این مقاله ببینید . 

 

نتیجه گیری نهائی :

توسعه دهندگان Flutter به راحتی توسط خط فرمان CI/CD را میتوانند راه اندازی کنند ولی React Native بصورت رسمی هیچ پشتیبانی از CI/CD ندارد . 

 

پیروز : Flutter

امتیاز ها :  React Native=۴ — Flutter=۶

flutter vs react native مقایسه بین flutter و  react native - ری اکت نتیو و فلاتر

خب رقابت بین Flutter و React Native تمام شد و برنده ی میدان Flutter است ولی تنها با دو امتیاز بیشتر ... 

 

نتیجه ی کلی این مقایسه : 

ReactNative و Flutter هر دو دارای مزایا و معایب خود را دارند، اما Flutter به عنوان برنده این مسابقه شد. برخی از کارشناسان پیش بینی کرده اند که Flutter آینده ی توسعه ی برنامه های کراس-پلتفرم  است. با توجه به مقایسه فوق، واضح است که Flutter به شدت وارد مسابقه توسعه اپ های موبایل شده است . 

اگر بخواهیم در کل بدون در نظر گرفتن آینده یکی از این ها را انتخاب کنیم باید در نظر بگیریم هر دو آنها خوب هستند امکانات و مزایا و معایب کلی آنها را بخوانید و در نهایت یکی را انتخاب کنید . 

 

موفق باشید 

 


مطالب زیر ممکن است برای شما مفید باشد

 ابزارهای توسعه اپلیکیشن های Cross Platform مقایسه بین react Native و Kotlin kotlin یا جاوا ؟ برای برنامه نویسان اندروید مسئله این است ! ساخت موزیک پلیر در اندروید استودیو آموزش ساخت منو در اندروید استودیو برای اپ های اندرویدی

محصولات برگزیده مناسب شما

 دوره ی آموزش برنامه نویسی اندروید با جاوا و android studio دوره ی پروژه محور ساخت سایت و اپ دیوار با سورس دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین دوره ی پروژه محور ساخت سایت و اپ مارکت بازار با سورس کامل

پایان 👍

  • نفس کریمی زاده

ری اکت نتیو یا react native چیست و  چه کاربردی دارد آموزش راه اندازی react native

ری اکت نتیو ( React Native ) یکی از فریمورک های زبان برنامه نویسی جاوا اسکریپت ( javaScript ) میباشد که برای تولید و ساخت اپلیکیشن های واقعی و بومی موبایل به کار برده می شود که با استفاده از ری اکت نتیو ( React Native )  برای سیستم عامل های ios و android میتوان اپلیکیشن تولید کرد . 

 

این فریمورک بر اساس یک کتابخانه به نام React میباشد که توسط فیسبوک در جهت کارهای رابط کاربری ساخته شده بود و این بار بجای هدف قرار دادن مرورگرها ، موبایل های هوشمند مد نظر است .

به  عبارتی دیگر توسعه دهندگان وب که با جاوا اسکریپت و کتابخانه های آن کار کرده اند ، اکنون به راحتی میتوانند به یک برنامه نویس موبایل برای تولید اپ های android و ios تبدیل شوند و اپلیکیشن های بومی تولید کنند . 

از آنجایی که بیشتر کدهای نوشته شده توسط توسعه دهنده برای پلتفرمهای مختلف یکسان است پس توسعه دهنده به راحتی میتواند همزمان اپ های ios و android تولید کند . 

 

در برنامه نویسی با ری اکت نتیو ( React Native ) ، همانگونه که برای وب نیز از React استفاده میشد ، توسعه دهنده کدهای خود را با مخلوطی از کدهای جاوا اسکریپت ( javaScript )  و xml مینویسد که بعنوان JSX شناخته میشود . 

در پشت صحنه ری اکت نتیو ممکن است api های رندرینگ مربوط به Objective-C (برای iOS) یا  Java (برای Android)  بهره گرفته شود ، بنابراین اپ های نوشته شده با کامپوننت های UI واقعی رندر خواهد شد نه با استفاده از WebView ها ! پس برنامه ی شما با برنامه های نوشته شده با زبان های اصلی معرفی شده توسط android یا ios تفاوت خاصی نخواهد داشت . 

ری اکت نتیو ( React Native )  با استفاده از زبان جاوا اسکریپت به API های مربوط به پلتفرم دسترسی دارد پس اپ نوشته شده ی شما میتواند به امکانات پلتفرم دسترسی داشته باشد برای مثال دوربین گوشی یا لوکیشن کاربر و ...

 

ری اکت نتیو ( React Native )  در حال حاضر از دو سیستم عامل ios و android پشتیبانی میکند و پتانسیل این را نیز دارد که در آینده به پلتفرم های دیگر گسترش پیدا کند . 

همانطور که میدانید امروزه برنامه نویسی موبایل بصورت کراس پلتفرم از اهمیت بالائی برخوردار است و هر برنامه نویس موبایل با این مورد را مد نظر داشته باشد که ممکن است یک پروژه واحد برای سیستم عامل های گوناگون موبایل داشته باشد .  

محبوب ترین سیستم عامل های گوشی های هوشمند در دنیا android و ios است که توسط react native میتوانید برای انها اپلیکیشن تولید کنید . 

 

مزیت های استفاده از ری اکت نتیو ( React Native )  : 

ری اکت نتیو یا react native چیست و  چه کاربردی دارد آموزش راه اندازی react native

۱ - استفاده از api های اصلی پلتفرم ها :



از آنجایی که  ری اکت نتیو از API های اصلی پلتفرم میزبان جهت رندر کردن اپلیکیشن استفاده میکند ، میتوان گفت یک سر و گردن بالاتر از دیگر ابزارهای کراس پلتفرم تولید اپ ،  است . 

ابزارهای کراس پلتفرم دیگر مثل Cordova یا Ionic از JavaScript, HTML, و CSS استفاده میکنند ولی نتیجه ی نهائی اپلیکیشن های آنها در یک WebView رندر و تولید میشود . 

درست است که اپلیکیشن های تولید شده با این ابزار ها نیز کارآیی دارد ولی در آینده باعث ایجاد مشکلاتی مخصوصا در بخش پرفرمنس اپلیکیشن خواهد بود . 

همچنین این ابزارها به api های ui اصلی پلتفرم ها دسترسی نخواهند داشت . 

وقتی این ابزارها بجای استفاده از api های اصلی پلتفرم ها آنها را شبیه سازی میکنند ، این مهندسی معکوس ممکن است در آینده مشکلات زیادی بوجود بیاورد مثلا در بخش ساخت انیمیشن و ...

 

۲ - جامعه ی زیاد :

 

توسعه ی ری اکت نتیو ( React Native ) در رویداد hackathon  سال ۲۰۱۳ شروع شد . این کار در پاسخ به درخواست جامعه ای از برنامه نویسانی بود که با react کار میکردند و به دنبال ابزاری برای توسعه ی اپ های موبایل بودند . نتیجه ی تلاش های فیسبوک منجر به تولید ری اکت نتیو ( React Native )  شد که توسط تیم تیم فیسبوک نیز پشتیبانی میشود و توسط جامعه ای از برنامه نویسان رو به جلو حرکت میکند . 

وجود برنامه نویسانی که با JavaScript کار میکنند ، و همچنین برنامه نویسانی که با react کار کرده بودند باعث شده است که جامعه ی بسیاری از برنامه نویسان برای کدنویسی اپ های موبایل با react native بوجود بیاید . 

 

۳ - حداکثر استفاده مجدد از کد و صرفه جویی در هزینه و زمان :

 

با استفاده از ری اکت نتیو ( React Native )  کدهایی که برای توسعه ی اپلیکیشن های android مینویسید برابر با همان کدهایی هست که برای توسعه ی اپ های ios مینویسید و این به معنی حداکثر استفاده ی مجدد از کدها و صرفه جوئی در زحمت و زمان برنامه نویسان است . بصورت تئوری میتوان گفت که این صرفه جوئی ۵۰% میباشد . طبق تحقیقات انجام شده ، هر برنامه نویس میتواند ۹۰% از کدهای نوشته شده برای android را برای اپ های ios نیز استفاده کند  و فقط بخش های کوچکی از کد باید باز نویسی و تغییر پیدا کند . البته ممکن است این زمان و این درصد برای اپ های مختلف و تغیییرات مختلف در اپ ها متفاوت باشد . 

 

۴ - نمایش تغییرات بصورت زنده : 

 

ری اکت نتیو ( React Native ) برای ساخت اپ های موبایل بعد از React در نظر گرفته شده است به عبارتی دیگر ری اکت نتیو ( React Native ) براساس ایده های React برای توسعه ی اپ های موبایل ساخته شده است . در حقیقت ری اکت نتیو دارای امکاناتی است که در بسیاری از ابزارهای توسعه ی موبایل نمیتوانید پیدا کنید . 

live reload یکی از این ابزارهاست که به شما اجازه میدهد تغییرات را بصورت آنی و زنده ببینید . فرض کنید یک پنجره باز کردید و در حال کدنویسی هستید و یک پنجره ی دیگری دارید که اپلیکیشن را برای تست نمایش میدهد هر انچه که در بخش کدنویسی تغییر میدهید به سرعت در بخش پیش نمایش اپ اعمال میشود و بصورت زنده میتوانید مشاهده کنید . 

 

۵ - پرفرمنس بهتر :

 

معماری React Native بسیار مناسب برای دستگاه های تلفن همراه است . ری اکت نتیو ( React Native ) از GPU (واحد پردازش گرافیکی) استفاده می کند در حالی که دیگر ابزارهای توسعه ی اپ های نتیو ، بیشتر از CPU (واحد پردازش مرکزی) استفاده میکنند . در مقایسه با فن آوری های hybrid ( که تنها گزینه ی توسعه ی اپ های کراس پلتفرم بودند ) ، ری اکت نتیو ( React Native )  بسیار سریعتر است . 

 

۶ - ماژولار و معماری بصری قوی مثل React : 

 

یکی از مزایای استفاده از ری اکت نتیو ( React Native ) که قبلا هم درباره ی آن صحبت کردیم و اینجا بصورت شفاف تر به آن میپردازیم . 

ماژولار بودن و معماری بصری قوی باعث می شود که توسعه دهندگان دیگر به راحتی با پروژه های شما بتوانند کار کنند . این مزیت باعث شده است که کارهای تیمی با ری اکت نتیو ( React Native ) بهتر پیش رود و همچنین بروزرسانی اپلیکیشن های مربوط به وب سایت ها راحت تر انجام بگیرد . 

همچنین افرادی که اپ ها را تست میکنند زمان کمتری را صرف درک منطق برنامه نویسی و سناریو پروژه  صرف میکنند . 

این به صرفه جویی در وقت منجر می شود و میتواند برای شرکت ها و افراد برنامه نویس موبایل خوشحال کننده باشد . 

 

شروع برنامه نویسی با ری اکت نتیو ( React Native ) : 

ری اکت نتیو یا react native چیست و  چه کاربردی دارد آموزش راه اندازی react native

برای شروع برنامه نویسی با ری اکت نتیو ( React Native ) شما باید محیط کدنویسی خود را آماده کنید که بسته به سیستم عاملی که استفاده میکنید ( مک ، ویندوز ، لینوکس ) باید نرم افزارهای مورد نیاز را دانلود و نصب کنید . 

برای شروع ما سعی داریم نحوه ی نصب و آماده سازی محیط کدنویسی برای ویندوز را آموزش دهیم هر چند این مورد برای مک یا لینوکس تفاوت چندانی ندارد . 

مراحل زیر را طی کنید : 

  1. ابتدا Node.js و Android Studio را دانلود و نصب کنید . پیشنهاد میکنیم از نسخه های LTS مربوط به Node.js استفاده کنید 
  2. پایتون2 و jdk رو جداگانه نصب کنید
  3. حالا react native را با دستور زیر نصب کنید : 
    npm install -g react-native-cli​
  4. حالا SDK های اندروید را دانلود و نصب کنید 

حال با دستور زیر میتوانید یک پروژه ری اکت نتیو ( react native ) ایجاد کنید : 

react-native init AwesomeProject 

پس از ایجاد فولدر پروژه و وصل بودن شبیه ساز اندروید با دستور زیر برنامه شما اجرا میشود :

cd AwesomeProject 
 react-native run-android 

 


مطالب زیر ممکن است برای شما مفید باشد

 تگ های header را در سئو سایت دست کم نگیرید رادیو صفر و یک - پادکست شماره ی 9 ام - اینترنت بی اینترنت رادیو صفر و یک - پادکست شماره ی 3 ام - شرکت جت برینز و محصولاتش برای برنامه نویسان رادیو صفر و یک - پادکست شماره ی 5 ام - دیپ فیک چیست ؟‌ آخرین مرز میان حقیقت و دروغ رادیو صفر و یک - پادکست شماره ی 1 ام - معرفی رادیو صفر و یک و زندگینامه ی گوینده

محصولات برگزیده مناسب شما

 کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel کارگاه آموزش کار با API های اینستاگرامی دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین کارگاه آموزشی کار با Grunt js

پایان 👍

  • نفس کریمی زاده

کراس پلتفرم ( Cross Platform )  چیست ؟ 

 

توسعه ی اپلیکیشن های Cross platform  به معنی توسعه و برنامه نویسی برنامه هایی است که در نهایت خروجی برای سیستم عامل های مختلفی داشته باشد .

توسعه و تولید اپلیکیشن های Cross Platform زمانی مفید است که نصب کنندگان یک اپ از گوشی های موبایل با سیستم عامل های متنوعی مثل ios و android و ... استفاده کنند . 

برنامه نویس یکبار کدنویسی میکند و برای سیستم عامل های گوناگون خروجی قابل نصب منتشر میکند که قابل انتشار در مارکت های مختلف اندرویدی نیز میباشند .

 

امروز بسیاری از شرکت ها ، چه برای فروش محصولات و چه برای دسترسی راحت تر به مشتریان یا ارائه هر نوع سرویس به مشتریان بصورت راحت تر و سریع تر از اپلیکیشن های قابل نصب روی موبایل استفاده میکنند . 

برای هر تیم برنامه نویسی یا هر شخص برنامه نویس ، انتخاب زبان برنامه نویسی یا تکنولوژی مورد استفاده جهت پیاده سازی یک اپ قابل اعتماد و خوب مسئله ی بسیار مهمی میباشد . بسیاری از این تکنولوژی ها و زبان ها امکان cross platform را برای برنامه نویسان فراهم کرده اند تا با یکبار کدنویسی خروجی های متنوعی بگیرند و تمام سیستم عامل های گوشی های موبایل و تبلت ها را پشتیبانی کنند . ممکن است cross platform بودن یک برنامه به سیستم های دسکتاپ مثل ویندوز و مک و ... هم نقوذ کند و برای انها هم بتوان خروجی گرفت و نصب کرد ! 

 

اگر شما قصد دارید برای موبایل برنامه نویسی کنید و در مدت زمان کم بتوانید یک اپ cross platform بسازید و ابزارهای زیادی در اختیار شماست . در لیست زیر تعدادی از ابزارها و تکنولوژی هایی که به شما اجازه میدهند اپلیکیشن های cross platform تولید کنید لیست شده است . 

 

تعدادی از ابزارها و تکنولوژی های مورد استفاده جهت تولید اپ های cross platform : 

 

 

1 - Appy Pie برای توسعه ی اپلیکیشن های cross platform : 

آموزش ساخت برنامه های کراس پلتفرم موبایل - ساخت برنامه های اندرویدی مولتی پلتفرم آموزش

این ابزار مخصوص افرادی است که نمیخواهند در ابتدای کار وسط کدهای برنامه نویسی موبایل شیرجه بزنند و با آنها سر و کله بزنند ! با Appy Pie میتوان اپلیکیشن هایی را تولید کرد که در مارکت های اندرویدی مثل Google Play, Apple App Store, Windows App Store و یا هر مارکت دیگری منتشر کرد .

یکی از زیبائی های Appy Pie این است که نیاز نیست حتی یک خط کدنویسی بکنید و کافیست کلیک کنید و امکانات را به اپلیکیشن خود اضافه کنید . 

یکی دیگر از ویژگی های Appy Pie این است که هزاران امکان از قبل آماده شده وجود دارد که میتوانید در اپلیکیشن های خود استفاده کنید . 

این ابزار برای افرادی مفید است که دوست ندارند زیاد برنامه نویسی یاد بگیرند یا حتی برنامه نویس موبایل استخدام کنند . 

این ابزار کار شما را بسیار سبک تر میکند و آموزش های بسیار زیادی در قسمت FAQ  بصورت فعال دارد همچنین کانال یوتیوب این ابزار پر است از نکات آموزشی و نکته های مفید و .. برای تولید هر چه بهتر یک اپلیکیشن قابل نصب روی موبایل ها ! 

این پلتفرم برای شما یک پنل مدیریت میدهد که بصورت گرافیکی همه چیز مشخص و قابل مفهوم است . برای اینکه کاربران اپلیکیشن های خود را حفظ کنید تا اپ شما را پاک نکنند این پلتفرم ابزارهای مختلفی مثل تجزیه و تحلیل و ... هم در اختیار شما می گذارد .

این پلتفرم قابلیت افزودن فروش درون برنامه را هم میدهد یعنی شما میتوانید اپ خود را رایگان منتشر کنید ولی یک سری ویژگی ها یا ابزارهای درونی آن یا حتی محتوای بخشی را درون اپ بفروش بگذارید . 

 

2 - PhoneGap برای توسعه ی اپلیکیشن های cross platform : 

آموزش ساخت برنامه های کراس پلتفرم موبایل - ساخت برنامه های اندرویدی مولتی پلتفرم آموزش

همه کاره بودن این ابزار باعث شده است که توسعه دهندگان آرزوی یادگیری آن برای توسعه ی اپ های cross platform را داشته باشند .  مزایایی که این ابزار توسعه ی اپلیکیشن دارد ، آنرا برای هر توسعه دهنده ی مدرن ، جذاب میکند . یکی از این مزیت ها قابلیتی است که باعث میشود برنامه نویس فقط یکبار کدنویسی کند و روی تمام گوشی های موبایل اپ خود را استفاده کند ( خروجی برای اکثریت سیستم عامل های موبایل بگیرد ) .

اپلیکیشنی که با PhoneGap  تولید شده است با زبان های HTML۵, CSS۳ و JavaScript است . 

این ابزار توسعه توسط شرکت Adobe ساخته شده است و برای قابلیت خروجی گیری برای اکثریت سیستم عامل ها موبایل مثل viz. Android, Windows  و iOS را دارد .

علاوه بر این سیستم عامل های معروف و بروز که معرفی کردیم وقتی با PhoneGap  اپلیکیشن تولید میکنید حتی میتوانید برای سیستم عامل های  Symbian, Palm, BlackBerry, iTouch و دستگاه های iPad  خروجی بگیرید . 

PhoneGap  رایگان و کد باز است و این قابلیت را به شما میدهد که با سخت افزار دستگاه های موبایل  مثل سخت افزارهای accelerometer, GPS/location, camera, sound و ... کار کنید .

فریمورک این ابزار شامل کتابخانه های فراوان میباشد که عملکرد و کارکرد اپلیکیشن ها را بهبود میبخشد و کمک میکند در مراحل بحرانی توسعه ی اپ ها ، در زمان خود صرفه جویی کنید . 

این ابزار همه کار بخاطر انعطاف پذیری خود منحصر به فرد است که به توسعه دهنده اجازه میدهد با تلاش کم انواع اپلیکیشن های قوی موبایل را تولید کنند . 

همچنین زمانی که توسعه دهنده با این ابزار برنامه نویسی میکند توانایی گسترش عملکرد و قابلیت های آنرا با استفاده از خاصیت معماری plug-in به آن بیافزاید . 

همچنین تجربه ی استفاده کنندگان بیانگر این بوده است که اپلیکیشن های تولید شده با PhoneGap سرعت کافی را دارند و بعنوان یک اپلیکیشن موبایل از نظر سرعت با دیگر سیستم های توسعه اپ فرقی ندارند . 

 رایگان و متن باز بودن PhoneGap   باعث شده است باعث شده است که جامعه ی خوبی برای برنامه نویسان آن تشکیل شود پس پیدا کردن توسعه دهنده ی PhoneGap    هم کار راحتی خواهد بود و به راحتی میتوان عمل بروزرسانی برای برنامه های قدیمی تولید شده با PhoneGap را انجام داد . 

PhoneGap  یکی از راحت ترین و موثرترین ابزارهای توسعه ی اپ های موبایل است که نیاز به مهارت های خاصی هم ندارد . 

 

3 - Xamarin برای توسعه ی اپلیکیشن های cross platform : 

آموزش ساخت برنامه های کراس پلتفرم موبایل - ساخت برنامه های اندرویدی مولتی پلتفرم آموزش

Xamarin یکی از ابزارهای محبوب توسعه ی برنامه های موبایل است که براساس زبان سی شارپ میباشد . یکی از ویژگی های این ابزار این است که محیط توسعه ی بخصوص و زبان مخصوص و همچنین API های خودش را دارد . 

این ویژگی های بخصوص است که Xamarin را برای ساختن اپ های نتیو مناسب میکند . 

xamarin از لایه ی business logic و دسترسی داده های پلتفرم ها مجددا استفاده میکند که برای توسعه دهندگان موبایل به ویژه با داده های حجیم محلی ، اپلیکیشن هایی که نیاز به حالت آفلاین دارد و کار و پردازش تصویر کاربرد دارد .

همانطور که قبلا هم اشاره کردیم Xamarin از زبان سی شارپ استفاده میکند به این معنی که زیرساخت دات نت میباشد . 

xamarin یک ابزار توسعه ی محبوب برای تولید اپلیکیشن های سه سیستم عامل محبوب  Android, Windows, و iOS میباشد . این ابزار از طیف وسیعی از دستگاه ها برای تست و ارزیابی کیفی برنامه های ساخته شده پشتیبانی میکند که به برنامه نویسان کمک میکند اپلیکیشن های با کیفیت تر و قوی تری تولید کنند . 

یک فریمورک به نام mono framewrok وجود دارد که امکان استفاده از API های دستگاه موبایل را ممکن میسازد .

یکی از ویژگی های xamarin نسبت به دیگر ابزارهای تولید اپلیکیشن موبایل ، باگ های کمتر است که باعث میشود در زمان برنامه نویس صرفه جویی شود . همچنین کدهای کمتری نوشته میشود که همین مورد نیز باعث بروز خطاهای کمتر و همچنین صرفه جویی در زمان کدنویس میشود . این بدان معنی است که با تنها یک آزمون، کد هر دو سیستم عامل را می توان با بهره وری عالی اعتبار سنجی کرد.

فلسفه اصلی ابزار Xamarin بر اساس ماهیت مشترک است، از این رو، این ابزار به توسعه دهندگان، فرصتی برای انتخاب و انتخاب از تعدادی از اجزای که برخی از آنها پولی میباشد را میدهد ، هر چند بخش هایی بصورت رایگان وجود دارد . 

xamarin بسیاری از ابزارهای رابط کاربری ، خدمات مربوط به وب سرویس ها و کتابخانه های مربوط به اپلیکیشن های کراس پلتفرم را دارد . 

یکی دیگر از ویژگی های بزرگ xamarin ارتباط با تعداد بسیار زیادی از بک اند ها میباشد مثل Salesforce و ... .

با وجود چنین امکانات و ویژگی های خوبی نمیتوان گفت که xamarin بهترین گزینه برای توسعه ی اپ های کراس پلتفرم است ، xamarin با خیلی از کتابخانه های کد باز android و ios مشکل سازگاری دارد . 

 

4 - Appcelerator برای توسعه ی اپلیکیشن های cross platform :

آموزش ساخت برنامه های کراس پلتفرم موبایل - ساخت برنامه های اندرویدی مولتی پلتفرم آموزش

Appcelerator که بعنوان سرعت بخشی برای توسعه اپ های موبایل شناخته شده است به توسعه دهندگان کمک میکند با کدهای کمتر اپلیکیشن های جالبی تولید کنند .Appcelerator از Titanium Development Platform  استفاده میکند و در بین توئیتری ها محبوبیت دارد برای اینکه به توسعه دهندگان کمک کند تا بتوانند اپلیکیشن ها و برنامه های خود را با سرعت بیشتری با هدف موبایل و تبلت و حتی دسکتاپ تولید کنند . 

این ابزار با زبان های JavaScript, HTML, PHP, Ruby, و Python سازگار است   . تخمین زده شده است که از این ابزار هزارن اپلیکیشن در هر ماه تولید میشود . 

توسعه دهندگان Appcelerator قابلیت درگ و دراپ کردن برای جابجا کردن object ها خواهند داشت و از جاوا اسکریپت جهت دسترسی مستقیم به Api های نتیو ios و android  استفاده میکند . 

این ابزار به طور خاصی برای آن دسته از سازمان هایی  ایده آل است که از مهارت های مبتنی بر وب در هنگام کار بر روی توسعه ی برنامه هایی با هدف چند سیستم عامل کار میکنند . 

 

5 - RhoMobile برای توسعه ی اپلیکیشن های cross platform :

آموزش ساخت برنامه های کراس پلتفرم موبایل - ساخت برنامه های اندرویدی مولتی پلتفرم آموزش

Rhodes  یک فریمورک متن باز که براساس زبان برنامه نویسی ruby طراحی شده است که اساس RhoMobile میباشد . 

این فریمورک به توسعه دهندگان اجازه میدهد تا اپلیکیشن های داده محور و کراس پلتفرم با هدف اجرا روی اکثر سیستم عامل ها و موبایل های هوشمند ، بسازند . در ساختار یا معماری اصلی ، این فریمورک  ساده تر از phoneGap است . 

توسعه ی اپلیکیشن ها با این ابزار برای سیستم عامل های iPhone, Android, Windows Mobile, Symbian, و RIM ممکن است. 

این ابزار فعلا از تکنولوژی های وب همچون HTML۵, CSS۳, JavaScript استفاده میکند که هم اکنون شامل ruby هم میشود . 

 

RhoMobile  طوری است که شما فقط یکبار کدنویسی میکنید سپس میتوانید خروجی برای سیستم عامل های مختلف موبایل ها را دریافت کنید و منتشر کنید . 

ابزار دیگری به نام RhoHub, & RhoSync وجود دارد که به شما امکان هاستینگ اطلاعات را میدهد .

 

6 - Ionic برای توسعه ی اپلیکیشن های cross platform :

آموزش ساخت برنامه های کراس پلتفرم موبایل - ساخت برنامه های اندرویدی مولتی پلتفرم آموزش

فریمورک ionic  بر اساس زبان Sass CSS و کراس پلتفرم میباشد  و بعبارتی دیگر اپلیکیشن های تولید شده ، روی تعداد زیادی از سیستم عامل ها قابل اجراست . در این ابزار شما میتوانید از Angular JS برای ساخت اپلیکیشن های قویتر کمک بگیرید . 

ionic بصورت عمده برای تولید اپلیکیشن های hybrid  استفاده میشود . از آنجا که یک SDK کد باز کامل برای ionic وجود دارد بهترین گزینه برای تولید اپلیکیشن های hybrid است که از تکنولوژی های وب مانند CSS, HTML وSASS استفاده میکنند .

Ionic یک ابزار عالی با ویژگی های منحصر به فرد و سرویس هایی مناسب برای توسعه ی اپلیکیشن های تعاملی میباشد . ionic همچنین دارای کتابخانه ی عالی ، بهینه سازی شده برای موبایل جهت استفاده از HTML، CSS و JS و ابزار های دیگر CSS میباشد .

 

7 - MoSync برای توسعه ی اپلیکیشن های cross platform :

آموزش ساخت برنامه های کراس پلتفرم موبایل - ساخت برنامه های اندرویدی مولتی پلتفرم آموزش

MoSync یک ابزار عالی براساس زبان های استاندارد برنامه نویسی وب است همچنین بعنوان ابزار SDK توسعه ی اپلیکیشن های مولتی پلتفرم است . 

این ابزار یک ابزار منحصر به فرد است که مجهز به کتابخانه ها ، کامپایلر ها ، پروفایل دستگاه ها ، runtime ها و بسیاری از ابزارهای دیگر میباشد . 

MoSync  سازگار برای کار با زبان های PHP, JavaScript, Python, Ruby  و ...

همچنین دارای سازگاری با محیط توسعه مجتمع مبتنی بر Eclipse برای برنامه نویسی C / C ++ است .

علاوه بر سیستم عامل های محبوب مانند آندروید، windows mobile و ...  MoSync همچنین از Moblin، Symbian و حتی توزیع لینوکس تلفن همراه هم پشتیبانی میکند . 

 

8 - Monocross برای توسعه ی اپلیکیشن های cross platform :

آموزش ساخت برنامه های کراس پلتفرم موبایل - ساخت برنامه های اندرویدی مولتی پلتفرم آموزش

Monocross  یک فریمورک موبایل ، کد باز و کراس پلتفرم است . که از زبان سی شارپ و Microsoft .NET با فریمورک mono استفاده میکند تا اپلیکیشن های مولتی پلتفرم تولید کند که روی دستگاه های تبلت ها و گوشیهای Android  , iPads & iPhones, Windows phone و  devices that Webkit-enabled قابل نصب و استفاده باشد . 

یکی از بزرگترین ویژگی های این ابزار، این است که باعث می شود برنامه به راحتی قابل تبدیل باشند و این مورد به توسعه دهندگان کمک میکند که طیف بسیاری از دستگاه های موبایل و تبلت و ... را بتوانند پشتیبانی کنند . 

 

9 - NativeScript برای توسعه ی اپلیکیشن های cross platform :

آموزش ساخت برنامه های کراس پلتفرم موبایل - ساخت برنامه های اندرویدی مولتی پلتفرم آموزش

NativeScript  یک ابزار کد باز و کراس پلتفرم است . این ابزار برخلاف اکثر رقبای خود رایگان است و بخش پولی ندارد . با NativeScript برنامه نویسان میتوانند با تکنولوژی ها و زبان های Angular, JavaScript, یا TypeScript  برای موبایل ها Android و  iOS برنامه بسازند  . 

NativeScript با Vue.JS سازگار است . برای کار با این ابزار باید خط فرمان بلد باشید به این معنی که توسعه دهنده همچنین باید خود را ویرایشگر متن خود را ارائه دهد.

 

10 - Kony برای توسعه ی اپلیکیشن های cross platform :

آموزش ساخت برنامه های کراس پلتفرم موبایل - ساخت برنامه های اندرویدی مولتی پلتفرم آموزش

kony زمانی که با یک محیط توسعه ی واحد ارائه شد به توسعه دهندگان اجازه داد که با زبان JavaScript  بتوانند اپلیکیشن هایی تولید کنند که روی دستگاه های مختلفی اجرا شود . 

با این حال، این ابزار یک جیب کوچک است، مخصوصا اگر شما به دنبال ایجاد بیش از یک برنامه هستید، بیش از صد کاربر برای اپ خود میخواهید و ... .

ابزار توسعه ی kony قابلیت پشتیبانی از خیلی چیزها مثل  مدیریت API  ها ، ربات سخنگو ، ابزارهای صوتی ، گزارشات مشتری ها ، واقعیت افزوده ، برنامه های مرجع و ... را دارد . 

اگر چه تمام ابزارها روی مک و ویندوز قابل نصب است برنامه های همراه همراه برای پیش نمایش و آزمایش بر روی دستگاه واقعی که قرار است در آن اجرا شود استفاده می شود

 


مطالب زیر ممکن است برای شما مفید باشد

 Flutter یا React Native از دید یک توسعه دهنده مقایسه بین react Native و Kotlin چطور یک برنامه نویس موبایل شوید ؟ (راهنمای کامل) رادیو صفر و یک - پادکست شماره ی ۸ ام - مردی که قرن بیستم را اختراع کرد - زندگینامه نیکولا تسلا رادیو صفر و یک - پادکست شماره ی 9 ام - اینترنت بی اینترنت

محصولات برگزیده مناسب شما

 دوره ی آموزش برنامه نویسی اندروید با جاوا و android studio کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel کارگاه آموزش کار با API های اینستاگرامی دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین

پایان 👍

  • نفس کریمی زاده

مقایسه لاراول و کدایگنایتر

برنامه نویسان وب که با زبان پی اچ پی کار میکنند به دنبال یک فریمورک قابل اعتماد هستند تا پروژه های خود را پیاده سازی کنند . برای انتخاب فریمورک زبان پی اچ پی گزینه های زیادی وجود دارد . 

قبل از بوجود آمدن فریمورک ها ، برنامه نویسان وب ، سایت ها را با کدهای خام پی اچ پی انجام میداند اما اکنون با استفاده از فریمورک ها میتوان کدنویسی زیبایی را انجام داد . 

در این مقاله ما به دو فریمورک محبوب پی اچ پی به نام های کدایگنایتر و لاراول می پردازیم . 

اگر کدایگنایتر و لاراول یکی از گزینه های انتخابی شما هستند و سوال شما این است که کدام را انتخاب کنم ؟ این بستگی به کاری دارد که میخواهید انجام دهید . 

در مقاله ی زیر مقایسه ی خوبی بین لاراول و کدایگنایتر انجام دادیم ، بخوانید تا متوجه شوید کدام یک مناسب شماست و باید انتخاب کنید . 

 

مقایسه ی فریمورک کدایگنایتر با لاراول ( Codeigniter vs Laravel ) 

 

1 مقایسه از نظر model view و controller ا ( CodeIgniter vs Laravel: Model View Controller ) : 

 

هر دو فریمورک Laravel و Codeigniter از الگوی طراحی  MVC استفاده میکنند . این الگو باعث افزایش سرعت کدنویسی و توسعه میشود چرا که کدنویس ممکن است بخش هایی که در یک پروژه انجام داده است در پروژه های دیگر هم بتواند استفاده کند . MVC دیزاین پروژه را به سه بخش اصلی تقسیم بندی میکند . 

مدل که وظیفه ی ارتباط با دیتابیس و عملیات های مرتبط با آن میباشد 

کنترلر که کنترل کننده و انجام دهنده ی عملیات های اصلی پروژه در این بخش است 

ویو بخشی است که رابط کاربری پروژه ی ما را آماده سازی میکند . 

 

2 مقایسه از نظر طراحی پایگاه داده بین لاراول و کدایگنایتر : 

 

لاراول از ORM استفاده میکند . ORM مخفف Object-Relational Mapping یک تکنیک میباشد که داده های پایگاه داده را در برنامه نویسی شی گرا وارد میکند بعبارتی داده های دیتابیس به اشیا درون کدهای پروژه تبدیل میشود . 

جدول های پایگاه داده در لاراول از رابطه ها که یک سیستم در لاراول است استفاده میکنند و میتوان روابط پیچیده بین تمام جدول ها را با لاراول پیاده سازی کرد 

یکی از بهترین مثال ها پیاده سازی سیستم پرداخت حقوق میباشد ، جدول کارمندان در ارتباط با جدول حقوق ، جدول پرداخت ها و ... میباشد . که توسعه دهنده میتواند بین جداول مختلف هر نوع رابطه ای را پیاده سازی کند . 

لاراول همچنین امکان کوئری نویسی خالی را هم دارد ( نه به شیوه ی ORM ) . این شیوه ممکن است مشکلاتی با شیوه ی ORM داشته باشد چون تفاوت هایی با هم دارند  دو سیستم Elequent ORM  و Query Builder در لاراول مطالعه کنید . 

 

کدایگنایتر هم از ORM استفاده میکند . در کدایگنایتر اشیای پایگاه داده ، شامل مواردی مثل رابطه ها در لاراول نیست . Object-oriented databases (OODB)  برای ذخیره سازی داده های نامرتبط یا داده های سازمان دهی نشده ،  بهتر از ORM است . مثلا برای ساماندهی یک سری تصویر و ویدئو مناسب است . 

 

نتیجه ی مقایسه ای این بخش : باز هم به پروژه ی شما بستگی دارد . برای پایگاه داده ی وب سایت های تجاری لاراول بهتر است در حالی که برای سایت های کوچک و شخصی یا فروشگاه های کوچک اینترنتی سیستم کدایگنایتر ساده ، سریعتر و کارآمدتر خواهد بود . 

 

3 نگهداری لاراول در مقایسه با کدایگنایتر :

 

لاراول بر نگهداری آسان پروژه ها تمرکز کرده است . این مورد لاراول را برای کارهای درون شرکت یا تیم آسان میکند بخصوص برای پروژه هایی که در طول زمان زود زود تغییر پیدا میکند . 

توسعه دهندگانی که مطمئن هستند ، تغییرات و نگهداری روزانه روی سایت دارند به خوبی میدانند که لاراول بسیار بهتر است . 

 

کدایگنایتر برای نگهداری و تغییرات زود زود ، متاسفانه خوب نیست ! کدایگنایتر برای پروژه های کوچک و سریع تاکید میکند کدایگنایتر ماژولار نیست پس یک توسعه دهنده باید کدهای زیادی بنویسد و وقت زیاد بگذارد تا سایت را اپدیت کند . 

 

نتیجه ی مقایسه در این بخش : در این بخش لاراول پیروز است .

 

4 مقایسه لاراول و کدایگنایتر از نظر قالب سازی و کتابخانه ها :

 

کدایگنایتر در حالت کلی سیستم قالب سازی ندارد ولی باز هم تاکید میکنم این فریمورک سبک و برای پروژه های شخصی مناسب تر است ، کدایگنایتر فقط سیستم قالب ساز و کتابخانه های بزرگی ندارد . 

فریمورک لاراول از موتور Blade  برای قالب سازی استفاده میکند . این موتور با MVC سازگار است و توسعه دهندگان میتوانند کدهای HTML خود را رندر کنند و باعث میشود کدنویسی حالت ماکارانی انجام نشود . 

 

کدایگنایتر تعداد کمی کتابخانه دارد که بسیار جامع هم نیستند . سیستم لاراول به خوبی مستند سازی و قابل گسترش است که به توسعه دهندگان با نمونه کدهای ارائه شده کمک بزرگی میکند . 

 

نتیجه ی مقایسه در این بخش : در این بخش لاراول پیروز است .

 

جوانب مثبت و منفی فریمورک های لاراول و کدایگنایتر : 

 

مقایسه ی بین لاراول و کدایگنایتر به این مورد بستگی دارد که شما قصد دارید چه چیزی بسازید . هر دوی این فریمورک ها برای زبان php هستند ولی پیاده سازی آنها متفاوت است . 

 

کدایگنایتر ( Codeigniter ) :

بهترین فریمورک پی اچ پی کدایگنایتر

فریمورک کدایگنایتر برای افرادی که تازه شروع میکنند مناسب است و قصد دارند در مدت زمان کم یک فریمورک از زبان php را مسلط شوند . برای اپلیکیشن های تحت وب که سبک و کوچک هستند بهترین گزینه است که نیاز به تغییرات و بروزرسانی های زیاد نیست . 

 

جنبه های مثبت فریمورک کدایگنایتر : 

  • سبک است ( فضای مورد نیاز تقریبا 256 MB است ) 
  • بهترین گزینه برای اجرای سریع و سایت های کوچک مثل وب سایت های شخصی 
  • حتما نیاز نیست توسعه دهنده از mvc تبعیت کند
  • برای یادگیری راحت است و سریع می توان متخصص شد 
  • OODB  برای داده های غیر مرتبط 

جنبه های منفی فریمورک کدایگنایتر : 

  • ساختار کلی قالب یا موتور قالب سازی وجود ندارد و همچنین کتابخانه های کمی دارد 
  • بروزرسانی های بعدی سایت کمی دردسر ساز خواهد شد برخی جاها نیاز است بخشی از کدها از اول نوشته شود 
  • ماژولار نیست 

 

لاراول ( Laravel ) :

بهترین فریمورک پی اچ پی لاراول

لاراول برای کارهای شرکتی ، تیمی و سازمانی یا پروژه های تجاری بزرگ پیشنهاد میشود که قصد دارند امکانات وب سایت خود را زود زود بروزرسانی کنند . ممکن است یادگیری لاراول کمی زمان بر باشد ولی ارزشش را دارد و کتابخانه های جامع و قالب های قوی نگهداری و بروزرسانی یک وب سایت لاراول ساده خواهد بود .  

 

جنبه های مثبت فریمورک لاراول : 

  • موتور قالب سازی Blade باعث میشود کدهای کمتر HTML بنویسید و قالب سازی راحتی انجام دهید 
  • کتابخانه های جامع تر و همچنین مستندات بهتری نسبت به کدایگنایتر دارد 
  • برای داده های سازمان دهی شده و بزرگ رابطه های لاراول بسیار مفید است 
  • امنیت وب سایت را برای سایت های مدرن تامین میکند 
  • ابزارهای زیادی مثل Artisan , migration , Tinker و ... دارد 

جنبه های منفی فریمورک لاراول : 

  • تناقص بین سیستم Elegant و Query builder ممکن است نتایج خالی از پایگاه داده به شما تحویل دهد 
  • لاراول از legacy systems بخوبی نمیتواند استفاده کنند . 
  • کدنویسی در لاراول به سبکی و سادگی کدایگنایتر نیست و گاهی در لاراول کدهای اضافی وجود دارد که باعث حجیم شدن پروژه میشود 

 

مقایسه لاراول با کدایگنایتر : نتیجه گیری نهائی 

 

هدف شما از پروژه ای که انجام میدهید و آینده ی آن بهترین تصمیم را برای انتخاب بین لاراول و کدایگنایتر میتواند بگیرد . برای پروژه های کوچک و شخصی کدایگنایتر بهتر است . لاراول برای وب سایت هایی که تیمی روی آن کار میشود و بزرگ است استفاده میشود . 

 


مطالب زیر ممکن است برای شما مفید باشد

 جانگو یا لاراول ؟ برنامه نویسان وب بخوانند لاراولی کوچک با طعم جدید - میکروفریمورک Lumen احراز هویت با لاراول 6 کدام فریمورک PHP ؟ چند داشبورد مدیریتی آماده برای لاراول

محصولات برگزیده مناسب شما

 دوره پروژه محور ساخت فروشگاه بامیلو با لاراول دوره ی آموزش ساخت فریمورک برای پی اچ پی با PHP MVC دوره ی آموزش کامل فریمورک لاراول Laravel دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین

پایان 👍

  • نفس کریمی زاده

مناسب ترین زبان های برنامه نویسی در سال 2019 - بهترین زبان های برنامه نویسی

 

10 زبان برنامه نویسی برای یادگیری در سال 2019 

 

یکی از مهم ترین مهارت ها در عصری که زندگی میکنیم برنامه نویسی است . امروزه کامپیوترها و فناوری های مربوط به آن تقریبا در هر صنعتی وارد شده است ، از فرودگاه ها و باند های پرواز گرفته تا سرعت سنج نصب شده روی دوچرخه ی شما .

کامپیوترها به شیوه های مختلفی زندگی انسان ها را احاطه کرده اند . میشود گفت زمان کاغذ و قلم رفت و الان بسیاری از شرکت ها ، سازمان ها ادارات دولتی و ... بدون وجود کامپیوتر و اینترنت نمیتوانند کاری از پیش ببرند . 

میشه گفت امروزه برای ذخیره سازی و فراخوانی اطلاعات حتما نیاز به کامپیوتر است . 

شغل برنامه نویسی و توسعه دهندگی به سرعت در حال رشد است و تعداد برنامه نویسان و توسعه دهندگان نیز هر روز بیشتر از قبل میشوند . 

تعداد زیادی زبان برنامه نویسی جدیدی عرضه میشود که برای گروه های مختلفی مناسب می باشند از جمله برای انواع برنامه نویس ها ( مبتدی ، متوسط ، حرفه ای ) همین طور برای پلتفرم ها و سیستم عامل های مختلفی نیز زبان های مختلفی وجود دارد ( برنامه های تحت وب ,  اپ های موبایل , بازی سازی, سیستم های توزیع شده و ...) .

 

در این مقاله قصد داریم بهترین زبان های برنامه نویسی برای سال ۲۰۱۹  میلادی را معرفی کنیم و آنها را تحلیل کنیم ( از نظر درآمد و آینده ) . 

 

1 - پایتون ( Python )

 

بهترین زبان های برنامه نویسی برای یادگیری در سال 2019 - best programming languages for learn in 2019 - Python پایتون

پایتون  بی شک بهترین زبان برنامه نویسی در سال ۲۰۱۹ می باشد . این زبان بصورت گسترده بعنوان اولین زبان برنامه نویسی برای یادگیری انتخاب شده است . پایتون یک زبان سریع و راحت برای توسعه ی برنامه های تحت وب میباشد . سایت های بزرگی مثل  YouTube, Instagram, Pinterest, SurveyMonkey از پایتون استفاده میکنند . 

پایتون دارای کتابخانه های عالی و زیادی می باشد و جامعه ی زیادی از برنامه نویسان را داراست . 

پایتون زبانی عالی برای افرادی هست که تازه میخواهند شروع کنند و همچنین به دنبال درآمد خوبی از برنامه نویسی هستند . 

بسیاری از استارتاپ ها زبان پایتون را بعنوان تکنولوژی مورد استفاده ی خود ، انتخاب میکنند . این یک فرصت عالی شغلی برای برنامه نویسان پایتون محسوب میشود 

در زیر یک کد کوتاه برای نمایش عبارت Hello world با پایتون را مشاهده میکنید : 

print “Hello World!"

بله ! همانطور که میبینید پایتون خیلی ساده و راحت است  .

 

سطح آسانی برای یادگیری :بسیار آسان ، نمره ی ۵ از ۵ 

سطح شغلی و درآمد: عالی نمره ی ۵ از ۵ .

 

2 - جاوا ( Java )

 

بهترین زبان های برنامه نویسی برای یادگیری در سال 2019 - best programming languages for learn in 2019 - جاوا - java

 جاوا  یکی از زبان های برنامه نویسی محبوب دیگر است که توسط سازمان های بزرگ مورد استفاده قرار گرفته است و سابقه بالاتری دارد تقریبا میشود گفت ده هاست که باقی مانده است . جاوا بصورت گسترده برای توسعه ی برنامه های تحت وب سازمانی مورد استفاده قرار میگیرد . 

جاوا از پایداری بسیار بالایی برخوردار است که بسیاری از شرکت ها که این زبان را استفاده میکنند این مورد را تائید کرده اند . 

اگر به دنبال کار کردن در سازمان های بزرگ هستید جاوا زبانی است که حتما باید یاد بگیرید . 

جاوا بصورت گسترده برای توسعه ی اپلیکیشن های اندرویدی نیز به کار می رود و همانطور که میدانید امروزه بیلیون ها دستگاه اندرویدی مورد استفاده قرار میگیرد و این برای هر کسب و کاری مهم است که اپ های اندرویدی خود را داشته باشد . 

این یک فرصت فوق العاده ی کسب و کار برای کسانی هست که جاوا را بلد هستند و گوگل پشتیبان رسمی این زبان برای توسعه ی اندروید است و محیط یکپارچه و عالی به نام Android Studio برای آن ساخته است .

 

سطح آسانی برای یادگیری : آسان تا متوسط نمره ی ۴ از ۵ 

سطح شغلی و درآمد : خوب ! نمره ی ۴,۵ از ۵ 

- برای شروع یادگیری جاوا در برنامه نویسی اندروید میتوانید از دوره های زیر استفاده کنید :‌

  1. دوره ی آموزش پروژه محور ساخت مارکت اندرویدی مشابه کافه بازار با جاوا در محیط اندروید استودیو
  2. دوره ی آموزش ساخت اپلیکیشن دیوار با جاوا در محیط اندروید استودیو
  3. آموزش کامل زبان جاوا برای برنامه نویسی اندروید در محیط اندروید استودیو 

 

3 - سی و سی پلاس پلاس  ( C/C++ )

 

بهترین زبان های برنامه نویسی برای یادگیری در سال 2019 - best programming languages for learn in 2019 - سی سی پلاس پلاس - c c++

C/C++ مثل نان و کره ی  برنامه نویسی هستند .  بسیاری از سیستم های سطح پائین مثل سیستم عامل ها ، فایل های سیستمی و ... با سی و سی پلاس پلاس نوشته میشوند . 

اگر دوست دارید یک برنامه نویس سیستمی باشید زبان های سی و سی پلاس پلاس بهترین گزینه ها هستند .

به دلیل اینکه زبان سی پلاس پلاس بسیار سریع و پایدار است بسیاری از برنامه های رقابتی در بازار ، این زبان را انتخاب میکنند . سی پلاس پلاس همچنین چیزی به نام STL  دارد که مخفف Standard Template Library میباشد 

STL مثل استخری از کتابخانه های آماده برای انواع ساختار داده ای ، عملیات محاسباتی و الگوریتم ها میباشد . 

پشتیبانی از کتابخانه ها و سرعت بالای این زبان را محبوب کرده است . 

 

سطح آسانی برای یادگیری : متوسط نمره ی ۳ از ۵ 

سطح شغلی و درآمد : متوسط نمره ی ۳,۵ از ۵ 

 

4 - جاوا اسکریپت ( JavaScript )

 

بهترین زبان های برنامه نویسی برای یادگیری در سال 2019 - best programming languages for learn in 2019 - جاوا اسکریپت - javascript

جاوا اسکریپت  زبان برنامه نویسی فرانت اند ( رابط کاربری ) است . جاوا اسکریپت بصوت گسترده برای ساخت برنامه های فرانت اند کاربرد دارد . برای مثال وقتی در یک وب سایت روی یک دکمه کلیک میکنید و یک صفحه ی پاپ آپ نمایش داده میشود این عملیات با جاوا اسکریپت پیاده سازی شده است . 

امروزه بساری از سازمان ها و استارتاپ ها از NodeJS که یک محیط اجرائی سمت سرور برای زبان جاوا اسکریپت است استفاده میکنند . 

Node.js این اجازه را به شما میدهد که از جاوا اسکریپت بعنوان یک زبان اسکریپتی سمت سرور استفاده کنید و همانند پایتون و پی اچ پی سایت های داینامیک سمت سرور تولید کنید که در سمت سرور اجرا و نتیجه ی آن به مرورگر ارسال شود. 

از امروز شما میتوانید جاوا اسکریپت را بعنوان یک زبان هم برای سمت کلاینت ( کاربر ) در نظر بگیرید هم سمت سرور . 

اگر یک برنامه نویس وب ، یک برنامه نویس فرانت اند ، یک برنامه نویس موبایل یا یک بازی ساز هستید حتما باید جاوا اسکریپت را یاد بگیرید چون در همه ی اینها مورد استفاده قرار میگیرد . 

 

سطح آسانی برای یادگیری : آسان است نمره ی ۴,۵ از ۵ 

سطح شغلی و درآمد : بسیار خوب ، نمره ی ۵ از ۵ 

شما میتوانید از دوره های زیر برای تقویت جاوااسکریپت خود استفاده کنید :‌

  1. کارگاه آموزش کار با Grunt.js که یک تسک رانر جاوااسکریپتی است 
  2. دوره ی آموزش vue.js نسخه 2
  3. دوره ی آموزش پروژه محور ساخت دفترچه spa با vue.js و laravel 

 

5 - زبان برنامه نویسی گو ( Go Language )

 

بهترین زبان های برنامه نویسی برای یادگیری در سال 2019 - best programming languages for learn in 2019 - go go lang زبان گو

زبان برنامه نویسی Go که بعنوان Golang هم شناخته میشود یک زبان برنامه نویسی است که توسط گوگل گسترش داده شده است . 

Go بصورت عالی از چند نخی پشتیبانی می کند بنابراین این زبان توسط بسیاری از شرکت ها که به سیستم های توزیع شده متکی هستند ، استفاده میشود .

زبان Go بصورت گسترده ای توسط استارتاپ ها در سیلیکون ولی مورد استفاده قرار میگیرد ، با این حال توسط شرکت ها و استارتاپ های هندی هم مورد استقبال قرار گرفته است . 

افرادی که دوست دارند به استارتاپ های مدل سیلیکون ولی بپویندند یا در سیستم های هسته ای متخصص شوند باید Golang را یاد بگیرند . 

 

سطح آسانی برای یادگیری : متوسط نمره ی ۳ از ۵  

سطح شغلی و درآمد : متوسط نمره ی ۲,۵ از ۵ 

 

6 - زبان R 

 

بهترین زبان های برنامه نویسی برای یادگیری در سال 2019 - best programming languages for learn in 2019 - r lanmguage زبان R

زبان برنامه نویسی R  یک زبان برنامه نویسی است که بصورت گسترده ای در زمینه ی آنالیز داده ها و یادگیری ماشین ها دارد . زبان R دارای فریمورک عالی که براساس کتابخانه های مختلفی است ، میباشد که برای توسعه ی الگوریتم های یادگیری ماشین مفید میباشد .

زبان R همچنین در محاسبات آماری عمومی مورد استفاده قرار میگیرد . زبان R توسط بسیاری شرکت ها مورد قبول واقع شده است . 

پس اگر شما قصد دارید به تیم آنالیز داده ای در یک سازمان یا شرکت بپوندید زبان R را یاد بگیرید .

 

سطح آسانی برای یادگیری : متوسط نمره ی ۳ از ۵

سطح شغلی و درآمد : خوب نمره ی ۴ از ۵ 

 

7 - زبان سوئیفت ( Swift )

 

بهترین زبان های برنامه نویسی برای یادگیری در سال 2019 - best programming languages for learn in 2019 - زبان سوئیفت swift language

زبان Swift یک زبان برنامه نویسی باری توسعه ی برنامه های سیستم عامل IOS  اپل میباشد . دستگاه های مبتنی بر IOS بطور فزاینده ای محبوب هستند . 

آیفون های اپل ، یکی از دستگاه هایی میباشد که سهم بزرگی از بازار را به خودش اختصاص داده و رقیب سرسخت سیستم عامل Android به حساب می آید . 

اگر قصد دارید برنامه نویس سیستم عامل IOS  و محصولات اپل باشید زبان Swift را فرابگیرید  .

 

سطح آسانی برای یادگیری : متوسط متمایل به آسان نمره ی ۳,۵ از ۵ 

سطح شغلی و درآمد : خوب نمره ی ۴ از ۵ 

 

8 زبان پی اچ پی ( PHP )

 

بهترین زبان های برنامه نویسی برای یادگیری در سال 2019 - best programming languages for learn in 2019 - زبان پی اچ پی - php language

پی اچ پی ( PHP ) محبوبترین زبان برنامه نویسی اسکریپت نویسی سمت سرور است . ۸۰% از وب سایت های دنیا با این زبان اجرا میشوند . php سابقه ی طولانی دارد ولی هنوز هم که هنوز است بازار کار طراحی وب و برنامه نویسی به برنامه نویسان php نیازمند است . 

اگر به توسعه ی وب علاقه دارید یا میخواهید استخدام شوید پی اچ پی را حتما یاد بگیرید . 

سطح آسانی برای یادگیری : آسان نمره ی ۴,۵ از ۵ 

سطح شغلی و درآمد : بسیار خوب نمره ی ۴,۵ از ۵ 

برای یادگیری کامل زبان PHP و فریمورک های مربوط به آن میتوانید از دوره های آموزشی زیر استفاده کنید :‌

  1. دوره ی آموزش پروژه محور ساخت فروشگاه اینترنتی دیجی کالا با لاراول 6
  2. دوره ی آموزش پروژه محور ساخت فروشگاه بامیلو با لاراول 5
  3. دوره ی آموزش کامل زبان PHP از صفر 
  4. دوره ی آموزش ساخت سایت کافه بازار و پنل مدیریت آن با فریمورک کدایگنایتر 
  5. دوره ی آموزش ساخت فریمورک برای PHP بصورت mvc
  6. دوره ی آموزش ساخت سیستم هتلداری با php mvc

 

 9 - زبان سی شارپ ( C# )

 

بهترین زبان های برنامه نویسی برای یادگیری در سال 2019 - best programming languages for learn in 2019 - زبان سی شارپ c# language

سی شارپ ( C# ) یک زبان همه منظوره است که توسط مایکروسافت ساخته شده است . سی شارپ برای ساخت برنامه های موبایل هایی که ویندوز فون دارند مورد استفاده قرار میگیرید . همچنین برای طراحی وب ، بازی سازی با محیط یونیتی ، ساخت برنامه های ویندوزی و ... از این زبان استفاده میشود . 

 

سطح آسانی برای یادگیری : متوسط نمره ی ۳,۵ از ۵ 

سطح شغلی و درآمد : متوسط نمره ی ۲,۵ از ۵ 

 

10 - متلب ( MATLAB )

 

بهترین زبان های برنامه نویسی برای یادگیری در سال 2019 - best programming languages for learn in 2019 - زبان متلب matlab tools

MATLAB یک ابزار تجزیه و  تحلیل آماری است که در صنایع مختلف برای تحلیل داده ها مورد استفاده قرار میگیرد . 

متلب بصورت گسترده ای در بینایی کامپیوتری و سیستم های پردازش تصاویر مورد استفاده قرار میگیرد . 

 

سطح آسانی برای یادگیری : متوسط نمره ی ۳ از ۵ 

سطح شغلی و درآمد : خوب نمره ی ۴ از ۵ 

 

جمع بندی : 

  • پایتون و جاوا اسکریپت در بازار استارتاپ ها داغ هستند و از فریمورک Node.js زبان جاوا اسکریپت و فریمورک Django و Flask زبان پایتون بصورت گسترده برای تکنولوژی سمت سرور یا بک اند مورد استفاده قرار میگیرد . از آنجایی که دو زبان جاوا اسکریپت و پایتون بسیار راحت هستند برای افرادی که میخواهند تازه شروع کنند توصیه میشود . علاوه بر این ، هر دو زبان دارای بازار کار خوب هستند و نیاز بازار کار برنامه نویسی به این دو زبان شدید است . 
  • جاوا و پی اچ پی در دنیای شرکت ها داغ هستند بسیاری از شرکت از فریمورک  Spring  زبان جاوا و بسیاری دیگر از فریمورک Codeigniter  یا Laravel زبان پی اچ پی استفاده میکنند . 
  • R و MATLAB هم برای دنیای تحلیل ها خوب هستند و اگر شما علاقه مند به دنیای آنالیز داده ها و انواع تحلیل های آماری هستید این دو ابزار را یاد بگیرید . 
  • C/C++ و Golang هم برای سیستم های با تاخیر کم و سیستم های مقیاس پذیر خوب هستند .

 

. اتمام . 


مطالب زیر ممکن است برای شما مفید باشد

 آیا گروه های برنامه نویسی مفید است ؟ چطور برنامه نویسی را شروع کنیم ؟ آینده ی شغلی برنامه نویسی موبایل چطور است ؟ رادیو صفر و یک - پادکست شماره ی ۸ ام - مردی که قرن بیستم را اختراع کرد - زندگینامه نیکولا تسلا رادیو صفر و یک - پادکست شماره ی 7 ام - فیوشا سیستم عامل جدید گوگل

محصولات برگزیده مناسب شما

 کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین کارگاه آموزشی کار با Grunt js دوره آموزش برنامه نویسی اندروید با کاتلین kotlin بصورت پروژه محور

پایان 👍

  • نفس کریمی زاده

کاتلین چیست و چرا باید یاد بگیریم

کاتلین ( Kotlin ) چیست ؟ 

 

به زبان ساده کاتلین یک زبان برنامه نویسی جدید است که برای توسعه اپلیکیشن های اندرویدی استفاده میشود . ویژگی ها و مزیت های زبان کاتلین و همچنین تعامل خوب آن با زبان قبلی توسعه ی اپ های اندرویدی یعنی جاوا ، باعث شده است که کاتلین جایگاهی خوبی در توسعه ی برنامه های اندرویدی پیدا کند . 

شرکت های بزرگی همچون  Pinterest, Netflix, Lyft, و Capital One در فناوری های توسعه ی خود از زبان کاتلین استفاده میکنند و از زمانی که شرکت گوگل ( پشتیبان رسمی اندروید ) زبان برنامه نویسی کاتلین را بصورت رسمی پشتیبانی کرد علاقه ی شرکت ها و افراد برنامه نویس به این زبان شدیدتر شد . 

اما واقعا چه دلایلی وجود دارد که یک برنامه نویس ، زبان کاتلین را بیاموزد ؟ در زیر شش دلیل آورده ام که شما را راهنمایی میکند . 

 

دلایل استفاده از زبان کاتلین ( Kotlin )  

 

1 - نیاز بازار کار به کاتلین ( kotlin ) : 

 

بازار کار زبان کاتلین ( kotlin )

طبق آمار سایت realm  که بر اساس برنامه نویسان موبایل و زبان های برنامه نویسی استفاده شده توسط انان میباشد ، سال ۲۰۱۸ بعنوان سال زبان برنامه نویسی کاتلین معرفی شده است . طبق مطالعات انجام شده بعد از مراسمGoogle I/O ۲۰۱۷ مقدار ۲۰% از برنامه نویسان که از جاوا استفاده میکردند اکنون از زبان کاتلین استفاده میکنند . این نوسان آماری نتیجه ی استفاده ی برنامه نویسان و شرکت ها از زبان کاتلین است . 

اگر نگاهی به سایت جهانی کاریابی Glassdoor بیاندازید مشاهده میکنید که بسیاری از شرکت ها و تیم های برنامه نویسی اندروید در سطح جهان به دنبال برنامه نویس اندرویدی هستند که به کاتلین مسلط باشد . 

سایت realm پیش بینی کرده که تا پایان سال ۲۰۱۸ کاتلین پیشرفت زیادی خواهد کرد تا جایی که زبان مورد نیاز برای یک برنامه نویس اندرویدی خواهد بود . این پیشرفت ها با افزایش تقاضای بازار کار نیز میباشد . 

خوب بودن یادگیری کاتلین تنها به توسعه ی اندروید ختم نمیشود ، سایت  ITJobsWatch را نگاهی بیاندازید . میبینید که چقدر تقاضای زبان کاتلین زیاد میباشد که تنها مربوط به توسعه ی اندروید نیست بلکه برنامه نویس سمت سرور و ... مسلط به کاتلین مورد نیاز بازار کار است . 

 

2 - افزایش سرعت توسعه ی پروژه ها در کاتلین ( Kotlin ) : 

 

سرعت زبان کاتلین kotlin

در برنامه نویسی با کاتلین خطوط کدنویسی کمتری خواهیم داشت . کاتلین بصورت ذاتی یک زبان فشرده و مختصر میباشد  ، بنابراین شما میتوانید کارهای زیادی را با خطوط کمتری انجام دهید . 

برای مثال شما میتوانید یک لیست ویو را به سادگی یک خط فیلتر کنید : 

val positiveNumbers = list.filter { it > 0}

و شما اگر یک singleton نیاز دارید به راحتی خطوط زیر یک آبجکت تولید میکنید : 

object ThisIsASingleton {
 val companyName: String = “JetBrains”
}

 

در زبان کاتلین مختصر بودن کدها ، باعث عدم خوانایی کدهای شما نمیشود این به این معنی است که شما مدت زمان کمتری را صرف کدنویسی میکنید و سرعت انجام و بازبینی پروژه های شما بالا میرود ، در این صورت شما میتوانید بخش های زیادی را در سریعترین زمان ممکن به اپلیکیش های خود اضافه کنید و خواسته کاربران خود یا کارفرمای خود را با سرعت تمام انجام دهید . 

بخشی از مطلب قرار گرفته در سایت Techbeacon.com در این باره اینجا نوشتم : 

توسعه دهندگان کدهای کمتر و تمیز را دوست دارند . کدهای کمتر ، زمان کمتری برای نوشتن ، زمان کمتری برای خواندن و خطاهای کمتری خواهد داشت . شرکت jetbrains  درد روزانه  برنامه نویس ها در کدنویسی ، را درک کرده است و کاتلین را تولید کرده است . 

 

3 - کیفیت بالای اپلیکیشن های تولید شده در کاتلین ( Kotlin ) :

 

کیفیت بالای کاتلین kotlin

کاتلین با ویژگی هایی safety که دارد باعث ارتقای کیفیت اپلیکیشن ها میشود بطوری که باگ های بسیار کمتری رخ میدهد برای مثال در مقابل خطای معروف اپ های اندرویدی nullpointerexception مقاوم است و براساس سیستم  null-safety می باشد . 

به عبارتی دیگر در کاتلین متغیرها بصورت پیشفرض نمیتواند null باشد ، با به دام انداختن خطاهای بیشتر ، در نتیجه ی برنامه ی کم خطا تری تولید میشود .

این خیلی مهم است چون نام این خطا billion dollar mistake نام گذاری شده بود .

 

4 - از کتابخانه های موجود جاوا میشود در کاتلین (kotlin ) استفاده کرد : 

 

کاتلین kotlin و  جاوا  java

زبان کاتلین ۱۰۰% با زبان جاوا سازگار است پس نیاز نیست برنامه نویسی با جاوا را متوقف کنید  و شما به تدریج میتوانید از جاوا به کاتلین بدون دردسر کوچ کنید . 

از این رفرنس توابع میتوانید استفاده کنید این رفرنس به شما توانایی این را میدهد که با کدهای قدیمی حتی کلاس های جاوا به همراه کاتلین کار کنید بدون اینکه نیاز باشد همه چیز را از ابتدا با کاتلین بنویسید . 

این یکی از مزیت های زبان کاتلین محسوب میشود که به شما این قدرت را میدهد که همه ی  زبان های یادگرفته ی قبلی خود را رها نکنید و در کنار انها بتوانید کار کنید . 

 

5 - زبان کاتلین ( kotlin ) بصورت رسمی توسط تیم گوگل پشتیبانی میشود : 

 

معرفی کاتلین در گوگل آی او introduce kotlin in google io

در مراسم Google I/O در May ۲۰۱۷ بصورت رسمی گوگل اعلام کرد که زبان برنامه نویسی کاتلین را بعنوان زبان برنامه نویسی توسعه اپ های اندرویدی انتخاب میکند . 

در مراسم Google I/O ۲۰۱۷ گفته شده : 

زبان کاتلین بصورت درخشان طراحی شده است ، زبان بالغی است که ما باور داریم توسعه ی اپ های اندرویدی را سریعتر و جذاب تر خواهد کرد ، بسیاری از توسعه دهندگان اندرویدی به ما گفته اند که کاتلین را دوست دارند و این چیزیست که بسیاری از توسعه دهندگان تیم خود ما نیز میگویند .

جامعه ی اندروید صحبت کرده و ما فقط گوش دادیم . 

 

درست یکسال بعد در مراسم Google  I/O ۲۰۱۸ گوگل اعلام کرد : 

۳۵% برنامه نویسان حرفه ای از کاتلین استفاده میکنند . بسیاری از برنامه نویسان در حال کوچ به زبان کاتلین هستند و ما به مدت طولانی این زبان را پشتیبانی خواهیم کرد . 

 

محیط برنامه نویسی رسمی اندرویدی یعنی Android Studio  از نسخه ی ۳ به بعد بصورت کامل از زبان کاتلین پشتیبانی میکند . پس شما میتوانید کدنویسی کاتلین را بدون نیاز به یادگیری یک محیط جدید شروع کنید . 

میتوانید کدهای جاوا و کاتلین را به سادگی کلیک روی یک دکمه درون محیط اندروید استودیو انجام دهید  .

یادگیری زبان کاتلین بسیار لذت بخش و ساده میباشد و اگر به فکر یک زبان خوب برای سرعت بخشیدن به توسعه اپلیکیشن های اندرویدی خود هستید از کاتلین استفاده کنید . 

برای شرکت های بزرگ و کوچک و همچنین برنامه نویسان فردی ، به دلیل بهره وری بالایی که دارد کامل منطقی و متقاعد کننده است . همچنین باعث میشود باگ های یک اپ به سرعت و سادگی گرفته شود  کاتلین در آینده باعث میشود ابزارهای جدید یا بروزرسانی های جدید را سریعتر تحویل میشتری دهید . 

شما اگر در حال توسعه ی اپلیکیشن های خود با جاوا هستید اصلا نگران نباشید همانطور که در بالا هم گفته شده است کاتلین کاملا با جاوا سازگار است و نیاز نیست شما جاوا را فراموش کنید هر جا که حال کردید با کاتلین کد بزنید و یاد بگیرید !

 

. اتمام . 

 

 


مطالب زیر ممکن است برای شما مفید باشد

 اطلاعات مفید کاتلین که نباید از دست بدید آموزش ساخت اسلایدر تصاویر اپ اندرویدی با زبان Kotlin آموزش کار با آرایه ها در زبان کاتلین چطور یک برنامه نویس موبایل شوید ؟ (راهنمای کامل) مقایسه بین react Native و Kotlin

محصولات برگزیده مناسب شما

 دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین دوره آموزش برنامه نویسی اندروید با کاتلین kotlin بصورت پروژه محور کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel دوره ی آموزش لینوکس اوبونتو

پایان 👍

  • نفس کریمی زاده

پنج دلیل عمده برای استفاده از جاوا اسکریپت

 

دلیل ۱ :

جاوااسکریپت آسان است. هیچ پیش نیازی و برنامه ی خاصی برای راه اندازی نیاز ندارد. کدهای این زبان میتواند توسط مرورگر شما اجرا شود ! کاری که نیاز است این است که فقط شروع کنید به کد نوشتن و نتایج در مرورگر شما نمایان خواهد شد .

برای افرادی که بی حوصله هستند، و حوصله ی دنبال کردن دستورالعمل های نصب مثل زبان های پایتون و رابی و ... را ندارند ، جاوا اسکریپت بهترین گزینه است . 

یکی از موانع یادگیری یا سخت شروع یادگیری یک زبان برنامه نویسی جدید مراحل پیچیده و ابتدائی برای نصب و راه اندازی محیط آن زبان است که جاوااسکریپت این سختی ها را ندارد و به هیچ برنامه و محیط از پیش نصب شده ای نیاز نخواهد داشت .

 

دلیل ۲ :

جاوااسکریپت در همه جا استفاده می شود. در توسعه ی  وب (  vue.js , Angular , React)، در سمت سرور، موبایل، کامپیوتر خانگی، بازی ها، اینترنت اشیاء، رباتیک، دنیای مجازی و ...

اما بیشتر کاربرد جاوا اسکریپت در توسعه ی وب است، چون جایگزین بهتری برای جاوا اسکریپت برای نوشتن برنامه های سمت کلاینت وجود ندارد.

قدرت اصلی زبان جاوا اسکریپت در توسعه ی وب میباشد اما در دیگر پلتفرم ها جایگزین های قوی تر و بهتری برای این زبان وجود دارد ، به عنوان مثال، در توسعه ی موبایل، جاوااسکریپت هیچ امیدی به جایگزینی با جاوا در برنامه نویسی اندروید و Objective-C/Swift در IOS  ندارد.

در برنامه نویسی دسکتاپ، جاوااسکریپت نمی تواند با C++  و جاوا رقابت کند.

در بازی سازی ، زبان اصلی و قدرتمند C++  و C# است ( باز هم جاوااسکریپت نمی تواند با آنها رقابت کند).

در اینترنت اشیاء قدرت اصلی دستC, Python , Java  و حتی زبانPerl  است.

در رباتیک نیز جاوااسکریپت نمی تواند با C/C++  و جاوا و پایتون رقابت کند.

آنچه از نوشته های بالا برداشت میشود این است که جاوا اسکریپت با اینکه زبان مولتی پلتفرم و محبوب است ولی در پلتفرم های خاص دیگر همیشه زبان های کامل و قوی وجود دارد که از جاوا اسکریپت قویتر هستند به همین خاطر تاکید ما این است که جاوا اسکریپت را برای توسعه وب و نوشتن برنامه های سمت کلاینت که در مرورگر اجرا میشوند به کار بگیرید .

دلیل ۳ :

وجود فریمورک نود جی اس(Node.js) که یک فریمورک بسیار محبوب و پرکاربرد است و پکیج منیجر NPM که بزرگترین پکیج منیجر برای جاوا اسکریپت است و بیش از ۳۰۰۰۰ هزار بسته جاوااسکریپتی در آن موجود است. 

 نود. جی‌اس امکان استفاده از جاوااسکریپت برای نوشتن اسکریپت‌های سمت سرور را فراهم می‌کند تا بدین صورت بتوان با آن صفحات وب پویا را قبل از فرستادن آن به مرورگر کاربر تولید کرد.

 پس شما میتوانید وب سایت های داینامیک سریع تولید کنید که سمت سرور نیز با جاوااسکریپت کدنویسی کرده باشد و این باز دوباره اهمیت یاد گیری جاوااسکریپت را نشان میدهد . 

 

دلیل ۴ :

بازار کار برای زبان برنامه نویسی جاوااسکریپت بسیار عالی است .

بیشتر شغل های مورد نیاز بازار کار زبان جاوااسکریپت مربوط به توسعه وب سایت ، سمت کاربر
 (front-end) یا Node سمت سرور با است.

تقریبا میشود گفت شغل خوبی برای جاوااسکریپت در زمینه های موبایل، دسکتاپ، اینترنت چیزها، بازی ها، روباتیک، واقعیت مجازی و غیره  وجود ندارد.

بسیاری از زمینه ها همچون هوش مصنوعی، روباتیک، داده های بزرگ، اینترنت اشیاء، محاسبات ابری، مدل سازی و شبیه سازی علمی، واقعیت مجازی و غیره برای زبان جاوااسکریپت ناشناخته هستند و بجای جاوااسکریپت زبان های زیر استفاده میشود : 

 Java، Python، C / C ++، Go، Haskell و Julia .

 

دلیل ۵ :

جاوااسکریپت سینتکس یا قواعد دستوری روان و شیوایی دارد . 

 

 آیا میدانستید جاوا اسکریپت طبق آمار ۲۰۱۸ وب سایت stackoverflow در رتبه ی اول محبوب ترین زبان برنامه نویسی قرار دارد ؟ به این لینک سر بزنید  .

 

 

جمع بندی و سخن آخر : 

 

جاوااسکریپت یک زبان برنامه نویسی کامل میباشد که از شی گرائی پشتیبانی میکند و در ابتدا برای نوشتن برنامه های تحت وب سمت کلاینت کاربرد داشت اما در زمینه های دیگر نفوذ کرد مثلا در بازی سازی با انجین یونیتی شما میتوانید با کدهای javascript بخش هایی از بازی خود را کدنویسی کنید .

یا با react native میتوانید اپلیکیشن های موبایل تولید کنید 

فریمورک ها و کتابخانه های  زیادی برای جاوااسکریپت نوشته شده است که ممکن است اسم آنها را شنیده باشید و بسیار پر کاربرد هستند : 

  • فریمورک Vue.js
  • فریمورک React.js
  • فریمورک Angular.js
  • کتابخانه JQuery
  • و ...

که همگی توسعه وب سایت را بسیار راحت تر کرده اند و ابزارهای بسیار عالی برای ساخت وب سایت های تک صفحه ای ، پویا و قدرتمند و سریع هستند . 

پس بعنوان یک برنامه نویس ، واجب است چنین زبانی را یاد بگیرید و یاد گرفتن آن هم با این همه قدرت و عظمت بسیار کار ساده ای است چون این زبان زیاد پیچیده نیست . 

 

اتمام مقاله 


مطالب زیر ممکن است برای شما مفید باشد

 چرا باید از Node.js استفاده کنیم ؟‌ ( بررسی کلی ) آیا گروه های برنامه نویسی مفید است ؟ 10 نکته کلیدی برای یادگیری برنامه نویسی چطور برنامه نویسی را شروع کنیم ؟ این ۸ چیر رو باید همه برنامه نویسا بدونن !

محصولات برگزیده مناسب شما

 دوره پروژه محور ساخت فروشگاه بامیلو با لاراول دوره ی پروژه محور ساخت هتلداری با php mvc کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel کارگاه آموزش کار با API های اینستاگرامی

پایان 👍

  • نفس کریمی زاده

برای درک کردن "داده‌های بزرگ"، ابتدا باید بدانیم "داده" چیست. فرهنگ لغت آکسفورد، "داده " را به صورت زیر تعریف می‌کند: ​

" مقادیر، ویژگی‌ها، یا نمادهایی که توسط کامپیوتر عملیات هایی بر روی آنها انجام می‌شود. این داده ها ممکن است به شکل سیگنال‌های الکتریکی ذخیره شده باشند و به صورت سیگنال های الکتریکی منتقل می شوند و بر روی رسانه‌های مغناطیسی، نوری و یا صوتی ثبت می شوند." ​

بنابراین، "کلان داده" نیز یک داده اما اندازه ی آن خیلی زیاد است. "کلان داده" اصطلاحی است که برای توصیف مجموعه‌ای از داده‌ها استفاده می‌شود که حجم عظیمی دارد و با گذشت زمان به صورت نمایی رشد می‌کند. به طور خلاصه، چنین داده‌ای آنقدر بزرگ و پیچیده است که هیچ یک از ابزارهای مدیریت داده‌های سنتی قادر به ذخیره آن یا فرآیند موثر بر روی آن نیستند. ​

مثال‌هایی از "کلان داده" ​

کلان داده یا  big data چیست ؟

 

بورس نیویورک در حدود یک درصد از داده‌های جدید تجاری را در روز تولید می‌کند. ​

تاثیر رسانه‌های اجتماعی ​

آمار نشان می‌دهد که هر روز  بیش از ۵۰۰  ترابایت از داده‌های جدید در پایگاه‌های اطلاعاتی سایت رسانه‌های اجتماعی فیس بوک وارد می‌شوند. این داده‌ها عمدتا از تصاویر،  فیلم های ویدئویی، تبادل پیغام، ثبت نظرات و غیره ایجاد می‌شوند. ​

کلان داده یا Big Data چیست ؟

 

موتور جت می‌تواند بیش از ۱۰ ترابایت داده را در ۳۰ دقیقه از زمان پرواز تولید کند. با هزاران پرواز در روز، تولید داده‌ها به حجم  petabytes ها می‌رسد. ​

آموزش کلان داده یا Big Data

 

انواع "کلان داده" ​

داده‌های بزرگ را می توان در سه مورد دسته بندی کرد: ​

۱-     ساختاریافته

۲-     بی ساختار

۳-     نیمه ساختاریافته

ساخت یافته ​

هر داده‌ای که قابلیت دخیره شدن، قابلیت دسترسی و پردازش را داشته باشد و به یک فرمت ثابت نیز باشد، به عنوان یک "داده ساختار یافته" در نظر گرفته می شود. به مرور زمان، استعدادها در علوم کامیپوتری بیشتر شد و به موفقیت های بیشتری در نکنیک های توسعه ی کار کردن با این داده های ساختار یافته دست یافته است. (که در آن فرمت به خوبی شناخته شده‌است)و همچنین ارزش خود را از آن استخراج می‌کند. با این حال، در حال حاضر، ما مسائلی را پیش‌بینی می‌کنیم که اندازه چنین داده‌هایی تا حد زیادی رشد می‌کند. در آینده اندازه‌های معمول این داده ها به چندین zettabyte  خواهد رسید. ​

آیا می‌دانید؟. ​

زتابایت به انگلیسی: Zettabyte یک واحد از اطلاعات که برابر ۱۰۲۴ اگزابایت است. کوتاه شده آن (ZB) می‌باشد.

۰۰۰ ۰۰۰ ۰۰۰ ۰۰۰ ۰۰۰ ۰۰۰ ۰۰۰ ۱ بایت = ۱۰۰۰ به توان ۷ یا ۱۰ به توان ۲۱ !!!

 

با نگاه کردن به این ارقام بزرگ،  به راحتی می‌توانید درک کنید که چرا نام "کلان داده" به آنها اختصاص داده شده و چالش‌های موجود در ذخیره‌سازی و پردازش آنها را تصور می‌کنید. ​

آیا می‌دانید که داده‌های ذخیره‌شده در یک سیستم مدیریت پایگاه‌داده رابطه‌ای، یک نمونه از داده‌های "ساختار یافته" است؟!​

آموزش کلان داده یا big data

 

مثال‌هایی از داده‌های ساختاریافته

یک جدول از مجموعه ای "کارمند" در پایگاه‌داده، یک نمونه از داده‌های ساختاریافته است. ​

داده های بدون ساختار​

هر داده‌ای با فرمت یا ساختار ناشناخته، به عنوان داده‌های بدون ساختار طبقه‌بندی می‌شود. داده‌های بدون ساختار علاوه بر داشتن اندازه بزرگ، ، چالش‌های متعددی را از نظر پردازش آن برای استخراج ارزش آن داده ها، به وجود می‌آورد. نمونه بارز داده‌های   غیر ساختاریافته، یک منبع داده ناهمگن که شامل ترکیبی از فایل‌های متنی ساده، تصاویر، ویدئوها و غیره است.  در حال حاضر، سازمان‌های امروزی روزانه سرمایه ای از داده ها را در اختیار دارند، اما متاسفانه نمی‌دانند چگونه از آنها استفاده کنند و اطلاعات ارزشمندی را از آن داده ها استخراج و استنتاج کنند؛ چرا که این داده‌ها در قالب خام و یا بدون ساختار قرار دارند. ​

مثال‌هایی از داده‌های غیر ساختاریافته​

خروجی که توسط "جستجوی گوگل" بازگردانده می شود

آموزش big data یا کلان داده

 

 

داده های نیمه ساختار یافته ​

داده‌های نیمه ساختار یافته می‌توانند هر دو نوع داده (ساختار یافته و غیرساختاریافته) را شامل شوند. ما می‌توانیم داده‌های نیمه ساختار یافته را به صورت ساختاریافته ببینیم اما این داده ی نیمه ساختاریافته، به صورتی که بخواهیم آنها را به عنوان یک جدول رابطه ای در نظر بگیریم، در DBMS  تعریف نشده است.​

مثالی از داده‌های نیمه ساختار یافته، می توان به داده هایی که درون یک فایل XML  است اشاره کرد.

مثال‌هایی از داده‌های نیمه ساختار یافته ​

اطلاعات شخصی ذخیره‌شده در یک سند XML – ​

آموزش big data یا بیگ دیتا یا کلان داده

رشد داده در طول سال‌ها ​

لطفا توجه داشته باشید که داده‌های کاربردی وب، که بدون ساختار است شامل فایل‌های لاگ، فایل‌های تاریخچه معامله و غیره است. سیستم‌های OLTP برای کار با داده‌های ساختاری ساخته می‌شوند که در آن داده‌ها در روابط (جداول)ذخیره می‌شوند. ​

ویژگی‌های "کلان داده" ​

آموزش big data  - کلان داده یا بیگ دیتا

لطفا توجه داشته باشید که داده های برنامه های وب، که غیرساختاریافته هستند متشکل از فایل های log ، فایل های تاریخچه ی تراکنش ها و ... می باشد. سیستم های OLAP برای کار کردن با داده های ساختاریافته ساخته شده اند که در آن داده ها در روابط(جدول ها) ذخیره می شوند.

۱)     حجم (Volume)

نام "کلان داده" مربوط به اندازه‌ای است که بسیار زیاد است. اندازه داده‌ها نقش بسیار مهمی در تعیین ارزش داده‌ها دارد. همچنین، این که آیا یک داده خاص می‌تواند به عنوان یک داده ی بزرگ در نظر گرفته شود یا نه، وابسته به حجم داده ها می باشد. بنابراین، "حجم" یک ویژگی است که باید در هنگام برخورد با "کلان داده" در نظر گرفته شود. ​

۲)     تنوع ​(Variety)- ویژگی بعدی کلان داده ها ، تنوع است.

تنوع به منابع ناهمگون و ماهیت(طبیعت) داده‌ها، هم ساختار یافته و هم غیرساختاریافته، اشاره دارد. در گذشته ای نزدیک، تنها منبع داده ای که مورد توجه بیشتر برنامه ها قرار داشتند، صفحات گسترده و پایگاه های اطلاعاتی بودند. در حال حاضر، داده‌ها به شکل ایمیل‌ها، عکس‌ها، ویدیوها، دستگاه‌های نظارتی و کنترلی،فایل های PDF، صوت و غیره در برنامه های تجزیه و تحلیل در نظر گرفته می‌شوند. این تنوع داده های غیرساختاریافته ، مسایل خاصی را برای ذخیره‌سازی، استخراج و تحلیل داده‌ها ایجاد می‌کند.

۳)     سرعت(Velocity)- عبارت سرعت، به سرعت تولید داده ها اشاره دارد.

این که داده ها چقدر سریع تولید و پردازش می‌شوند تا نیازها را برآورده کنند، پتانسیل واقعی را در داده‌ها مشخص می‌کند. ​

سرعت کلان داده ها، به سرعت جریان داده از منابعی مانند فرایندهای کسب‌وکار، لاگ های اپلیکیشن ها ، شبکه‌ها و سایت‌های ارتباط جمعی، حسگرها، تلفن های همراه و غیره جریان دارد. ​ (رشد) جریان داده ها بسیار عظیم و مداوم است.

۴)     تغییرپذیری ​(Variability)

این امر به ناهماهنگی ایجاد شده توسط داده‌ها در زمان‌های مختلف اشاره دارد، در نتیجه مانع از پردازش و مدیریت موثر داده ها می شود.

مزایای پردازش داده‌های بزرگ: ​

توانایی پردازش "داده‌های کلان" مزایای چندگانه‌ای دارد، مثلا - ​

·       کسب و کارها می‌توانند در هنگام تصمیم‌گیری از هوش خارجی استفاده کنند ​.

دسترسی به داده‌های اجتماعی از موتورهای جستجو و سایت‌هایی مانند Facebook، سازمان‌ها را قادر می‌سازد تا استراتژی‌های کسب‌وکار خود را تنظیم کنند. ​

·       بهبود خدمات مشتری ​

سیستم‌های بازخورد(فیدبک) مشتری که به صورت سنتی انجام می گرفتند، سیستم‌های جدیدی جایگزین آنها می‌شوند. این سیستم های جدید با تکنولوژی‌های "کلان داده" طراحی شده‌اند. در این سیستم‌های جدید، از فناوری‌های کلان داده و پردازش زبان طبیعی برای مطالعه و ارزیابی واکنش‌های مصرف‌کننده استفاده می‌شود.

·       شناسایی اولیه ریسک برای محصول / خدمات

·       کارایی عملیاتی بهتر

 


مطالب زیر ممکن است برای شما مفید باشد

 تگ های header را در سئو سایت دست کم نگیرید رادیو صفر و یک - پادکست شماره ی 9 ام - اینترنت بی اینترنت رادیو صفر و یک - پادکست شماره ی 3 ام - شرکت جت برینز و محصولاتش برای برنامه نویسان رادیو صفر و یک - پادکست شماره ی 5 ام - دیپ فیک چیست ؟‌ آخرین مرز میان حقیقت و دروغ رادیو صفر و یک - پادکست شماره ی 1 ام - معرفی رادیو صفر و یک و زندگینامه ی گوینده

محصولات برگزیده مناسب شما

 کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel کارگاه آموزش کار با API های اینستاگرامی دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین کارگاه آموزشی کار با Grunt js

پایان 👍

  • نفس کریمی زاده

کوکی‌ها

اگر شما یک توسعه دهنده هستید، نمی توانید ضرورت استفاده از کوکی ها را نادیده بگیرید. امروزه در اینترنت به هر زبانی، کوکی مهم است. کوکی‌ها، هم برای توسعه دهنده و هم برای کاربر، راه ما را ساده‌تر و بهتر کرده‌اند. پس در این بخش ما بر روی آن تمرکز خواهیم کرد.

 

کوکی چیست؟

کوکی به صورت ساده‌تر به معنی اطلاعات متنی در مورد یک وب سایت است. زمانی که از یک وب سایت خاص بازدید می‌کنید، برخی اطلاعات در سیستم شما ذخیره می‌شوند به طوری که وقتی شما دوباره از همان وب سایت بازدید می‌کنید، این وب سایت می‌تواند شما را بشناسد و نتایج را مطابق با اولویت های شما، به شما نشان دهد. کوکی‌ها به مدت طولانی در تاریخ اینترنت مورد استفاده قرار گرفته‌اند و به شیوه‌ای عالی توسعه یافته‌اند.

زمانی که از یک وب سایت بازدید می‌کنید، در واقع صفحه وب سرور را درخواست می‌دهید. برای یک سرور، هر درخواست، یک درخواست منحصر به فرد است. بنابراین اگر شما ۱۰۰ بار بازدید کنید، سرور هر یک از درخواست‌ها را منحصر به فرد تلقی خواهد کرد. از آنجا که شدت درخواست‌هایی که به یک سرور می‌رسد بالا است، واضح و منطقی است که تمام اطلاعات کاربر را در سرور ذخیره نکنید. شاید شما هرگز دوباره آن وب سایت را بازدید نکنید و در این صورت ،همین اطلاعات اضافی خواهند بود. بنابراین، برای اینکه سرور، به طور منحصر به فرد شما را به یاد داشته باشد، سرور، کوکی را همراه با پاسخی که در دستگاه شما ذخیره می‌شود، ارسال می کند. حالا دفعه بعد که شما از همان سرور درخواست می کنید، طبق نظر شما پاسخ شما را دریافت خواهید کرد؛ چون سرور شما را می‌شناسد.

این کوکی برای هر سرور منحصر به فرد است (برخی استثناها امروزه به دلیل تبلیغات وجود دارند). پس شما ممکن است کوکی های زیادی در سیستم خود داشته باشید، اما یک سرور خودش آن را تشخیص می‌دهد و می‌تواند آن را برای شما تحلیل کند. چگونگی این تکامل در طول زمان و استفاده امروز در بخش بعدی مورد بحث قرار گرفته‌است.

 

چرا از  کوکی ها استفاده کنیم؟

کوکی‌ها در همان روزه‌های اولیه توسعه یافتند؛ چون توسعه دهندگان به کمی اطلاعات درباره مشتری نیاز داشتند تا تجربه خود را بهتر کنند. فرض کنید شما به وب سایتی مراجعه می کنید که به زبان محلی شما نیست. شما گزینه فارسی را در بخش زبان این وب سایت انتخاب می‌کنید. حال اگر شما از همان وب سایت ۵ بار در روز بازدید کنید، ممکن است مجبور باشید ۵ بار زبان را به فارسی تغییر دهید. بنابراین، این اطلاعات به عنوان یک کوکی در سیستم شما ذخیره می‌شوند. پس دفعه بعدی که درخواست را ارسال می‌کنید، سرور متوجه خواهد شد که شما می‌خواهید وب سایت را به زبان فارسی ببینید. این جا، جایی است که کوکی نقش حیاتی ایفا می‌کند. اما این یک نمونه بسیار دقیق از کوکی است که امروزه مورد استفاده قرار می‌گیرد.

 

مزیت کوکی ها

مفهوم کوکی‌ها برای ایجاد یک تجربه بهتر با ذخیره اطلاعات کمی به عنوان متن روی ماشین کاربر ایجاد شد. اما به محض این که این مفهوم آشکارتر و موفقیت آمیزتر شد، استفاده از کوکی‌ها، بسیاری از موارد را افزایش داد. امروزه، کوکی ها آنچه که شما جستجو کرده اید، حتی آنچه که در سبد خرید خود ذخیره کرده‌اید را نیز مورد استفاده قرار می‌دهد. کوکی‌ها، امروز در سطح بسیار بالایی از اطلاعات شما در مورد وب سایت‌های مختلف استفاده می‌شوند. با دانستن این موضوع (که اطلاعات شما در وب سایت های مختلف استفاده می شوند)، واضح است که اندازه اطلاعات افزایش‌یافته است. بنابراین توسعه دهندگان متوجه شده‌اند که تمام اطلاعات را نمیتوان‌ در سمت کاربر ذخیره کرد چون اندازه کوکی را که با درخواست‌ها فرستاده می‌شود، افزایش می‌دهد و همچنین سرعت لود شدن سیستم کاربر را نیز زیاد خواهد کرد. بنابراین، کوکی‌ها در حال حاضر به شیوه‌ای متفاوت ذخیره می‌شوند.

حال اگر از یک وب سایت بازدید کنید، وب سایت به شما یک شناسه کوکی اختصاص می دهد که این کوکی به طور منحصر به فرد می باشد و توسط سرور قابل‌تشخیص است. سپس این شناسه به پایگاه‌داده شرکتی متصل می‌شود که در آن تمام اطلاعات شما ذخیره می‌شود و سپس از پایگاه اطلاعاتی آورده می‌شود. این روش می‌تواند به طور موثر و ایمن مدیریت شود.

 

تهدیدهای امنیتی مربوط به کوکی‌ها

کوکی‌ها، که شما باید تا به حال بدانید، اطلاعات خود را بر روی دستگاه شما ذخیره می کنند. این اطلاعات برای شما بسیار شخصی است و تنها باید توسط سروری که آن را ذخیره می‌کند، بازیابی شود. آیا در اختیار داشتن این اطلاعات، دارای هیچ گونه تهدیدات امنیتی می باشد؟ خوشبختانه نه.

موارد زیر باید در ذهن داشته باشید:

•        یک کوکی نمی تواند توسط سرور دیگری مورد استفاده قرار گیرد زیرا شناسه ذخیره شده در کوکی شما مستقیما به پایگاه داده وبسایت مرتبط می شود.

•        یک کوکی هرگز نمی‌تواند برای دسترسی به هر گونه اطلاعات ذخیره‌شده در سیستم شما مورد استفاده قرار گیرد؛ به عبارت دیگر، کوکی ها نمی توانند به اطلاعات درون مرورگر یا هارد دیسک شما دسترسی داشته باشند.

•        یک کوکی نمی‌تواند برای رساندن ویروس‌ها یا هر تهدید دیگری مورد استفاده قرار گیرد.

•        یک کوکی اما می‌تواند توسط یک وب سایت سوم (با داشتن مجوز البته!) برای دسترسی به اطلاعات و / یا اولویت های شما برای استفاده از آن‌ها برای سود بیشتر خودشان و حتی شما استفاده شود. برای درک آن کمی بیشتر، ما باید انواع کوکی ها را درک کنیم.

 


مطالب زیر ممکن است برای شما مفید باشد

 تگ های header را در سئو سایت دست کم نگیرید رادیو صفر و یک - پادکست شماره ی 9 ام - اینترنت بی اینترنت رادیو صفر و یک - پادکست شماره ی 3 ام - شرکت جت برینز و محصولاتش برای برنامه نویسان رادیو صفر و یک - پادکست شماره ی 5 ام - دیپ فیک چیست ؟‌ آخرین مرز میان حقیقت و دروغ رادیو صفر و یک - پادکست شماره ی 1 ام - معرفی رادیو صفر و یک و زندگینامه ی گوینده

محصولات برگزیده مناسب شما

 کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel کارگاه آموزش کار با API های اینستاگرامی دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین کارگاه آموزشی کار با Grunt js

پایان 👍

  • نفس کریمی زاده

شی گرائی یا اصطلاحا bject-oriented programming یک شیوه ی برنامه نویسی است که سر و کار آن با اشیا است درست مثل دنیایی واقعی که در آن زندگی میکنیم و تمام هر چیزی که میبینیم و لمس میکنیم و استفاده میکنیم یک شی است . 

برنامه نویسی شی گرائی از طبیعت الهام گرفته شده است تا به برنامه نویس کمک کند تا مسائل پیچیده و بزرگ را بهتر حل کند و کدهایی ملموس تر با قابلیت استفاده ی مجدد بنویسد . 

هر شی میتواند خصوصیت های منحصر به فردی برای خود داشته باشد و همچنین میتواند عملیات خاصی را به انجام برساند .

اشیا در برنامه نویسی شی گرا میتوانند خصوصیت ها و عملکرهای خود را به اشتراک بگذارند تا دیگر اشیا استفاده کنند یا میتواند ویژگی ها و عملکردهای خصوصی داشته باشد که هیچکس از وجود آنها درون یک شی مطلع نشود و به همین علت در برنامه نویسی شی گرا ویژگی به نام کپسوله سازی داریم . 

در ادامه ی مقاله تمام موارد بالا را توضیح خواهیم داد 

 

ویژگی های برنامه نویسی شی گرا چیست ؟ 
 

  1. کپسوله سازی داده ها :

    هر شی که در برنامه نویسی شی گرا تعریف میشود درون خود آن شی پیاده سازی میشود و به اشیا دیگر یا قسمت های دیگر کدنویسی ارتباطی ندارد و هرآنچه درون آن انجام میشود مخفی و درون یک کپسول هست . به همین خاطر یکی از ویژگی های برنامه نویسی شی گرا کپسوله سازی است. 
     
  2. کدنویسی کمتر :

    این ویژگی را با یک مثال توضیح میدهم ، مثلا فرض کنید میخواهید ماشین مدل x  را تولید کنید . برای ساخت این ماشین نیاز به یک نقشه دارید و از روی آن ماشین را میسازید ولی سری های بعدی که میخواهید از این ماشین دوباره بسازید نقشه ی ماشین را دوباره باز طراحی نمیکنید بلکه از همان نقشه ی اولیه استفاده میکنید و اگر دوست داشتید ویژگی های جدیدی به آن اضافه میکنید مثلا رنگ ماشین را عوض میکنید همین ! 
    در برنامه نویسی هم به این شکل است وقتی یک موجودیت را ساختید نیازی نیست نقشه ی انرا دوباره بسازید بلکه هر سری یک شی جدید از آن تولید میکنید مثل ماشین x و میتوانید هربار ویژگی های جدیدی نیز به ان اضافه کنید . 
     
  3. ارث بری : 

    شاید ویژگی های زیادی از یک شی را دوست داشته باشید در یک شی دیگر هم داشته باشید پس میتوانید به راحتی ارث بری کنید و ویژگی های آن را به ارث ببرید . 
    در ارث بری تمام صفات و ویژگی ها پدر به فرزند منتقل میشود 
  4. ویژگی چند ریختی : 

    زمانی که شما ویژگی های مادر را در فرزند به ارث برده اید یک سری ویژگیها وجود دارد که مجددا در فرزند تعریف شده است و اینجاست که عمل override اتفاق میوفتد یعنی تمام ویژگی های مشترکی که بین مادر و فرزند وجود داشت ولی مقدار انها در فرزند تفاوت دارد روی ویژگی های قدیمی اعمال شده و آنها را به کل عوض میکند مثلا فرض کنید یک شی ماشین قرمز رنگ داریم که آینه هم دارد ولی در یک ماشین دیگری ویژگی های تمام ماشین قرمز یا اولی را به ارث برده ایم با این تفاوت که در ماشین جدید آینه ها بزرگتر است و همین بزرگ بودن باعث میشود سایز اینه های قدیمی پاک شده و مقدار جدید در نظر گرفته شود .

چهار ویژگی بالا را سعی کردیم با زبان بسیار ساده به شما منتقل کنیم و اگر هنوز مطالب برای شما بصورت کامل جا نیوفتاده است کمی حوصله به خرج دهید و ادامه ی مقاله را با حوصله بخوانید . 


در برنامه نویسی شی گرا به نقشه ی اصلی تمام اشیائی که میخواهیم تولید کنیم کلاس گفته میشود . مثلا فرض کنید در کارخانه ی ماشین سازی هستیم و دوست داریم پنج نوع ماشین تولید کنیم : 

  • model 1 
  • model 2 
  • model 3
  • model 4
  • model 5

برای هر پنج نوع مدل نیاز نیست کلاس جدیدی تعریف کنیم کافیست یک کلاس به نام Car بسازیم که ویژگی های مشترک بین تمام ماشین ها را داشته باشد 

ویژگی های کلاس Car : 

  •  مدل
  • چهار عدد در 
  • دو عدد آینه بغل
  • چهار عدد چرخ 
  • صندوق عقب
  • سیستم صوتی
  • دو عدد صندلی جلو و سه عدد برای عقب
  • موتور
  • کاپوت 
  • ترمز 
  • کلاج 
  • گاز 
  • دیفرانسیل 
  • و ....

و عملیاتی که داخل یک کلاس انجام میگیرد یا تابع های درونی یک کلاس را متُد نام گذاری میکنیم . هر متد مثل یک تابع هست که یک سری عملیات را انجام میدهد 

در کلاس Car  به نظر شما چه متدهایی داریم ؟  کاری که تمام ماشین ها بصورت مشترک انجام میدهد چیست ؟ 

متدهای کلاس Car : 

  • استارت و حرکت
  • گاز دادن
  • ترمز کردن 
  • تعویض دنده 
  • روشن کردن سیستم صوتی 
  • قفل کردن درها 
  • روشن کردن بخاری 
  •  و ...

ما از کلاس Car میتوانید به تعداد نامحدود شی ماشین تولید کنیم ولی هر شی ممکن است عملیات جدیدتری یا ویژگی های منحصر به فرد خود را داشته باشد 

مثلا وقتی میخواهیم ماشین model ۲ را تولید کنیم حتما باید مقدار مدل را به model ۲ تغییر دهیم و این تعریف ویژگی های جدید است . 

ممکن است عملیات استارت زدن در ماشین model ۳ متفاوت باشد برای این کار کافیست یک کلاس جدید به نام model ۳  بسازیم و از کلاس اصلی Car ارث بری کنیم . 

با ارث بری تمام متدها و پروپرتی های ( خصوصیات ) کلاس Car به کلاس model ۳ منتقل میشود و از آنها میتوانیم استفاده کنیم ولی برای اینکه متد استارت زدن متفاوت است یک متد برای استارت زدن داخل کلاس model ۳ ایجاد میکنیم و این کار باعث میشود که متد استارت درون model ۳ روی متد استارت زدن کلاس Car اصلی بازنویسی شود ( override ) . 

به این صورت میتوانیم ماشین از نوع model ۳  را بصورت نامحدود تولید کنیم . به همین راحتی ! 

پس تا اینجا با مفهوم کلاس ، شی ، متدهای درون کلاس و پروپرتی های ( ویژگی های ) یک کلاس آشنا شدیم . 

 

امروزه اکثر زبان های برنامه نویسی شی گرایی را پشتیبانی میکنند و به راحتی میتوانید برای عملیات خود کلاس ایجاد کنید و اشیا تولید کنید  . 

یک مثال عملی دیگر در طراحی وب خدمت شما میزنم فرض کنید در سیستم سایت شما کاربران ثبت نام میکنند ولی انوع کاربر دارید مثل مدیر ، کاربرعادی ، مشتری ، فروشنده و ...

دوست دارید عملیات این ها در قالب شی گرایی باشد به ترتیب زیر عمل میکنید 

  1. یک کلاس با نام User میسازیم و تمام عملیات مثل ثبت نام ، ورود ، خروج و باقی عملیات را درون آن کلاس بعنوان متدهای درونی آن تعریف میکنیم 
  2. خصوصیت یک کاربر را بصورت پروپرتی به کلاس تعریف میکنیم مثلا نقش کاربر که میتواند مدیر ، کاربر عادی ، فروشنده ، مشتری و ... باشد 
  3. سپس هنگام ثبت نام ، ورود ، خروج و دیگر عملیات یک شی جدید تولید میکنیم با ویژگی هایی که مربوط به کاربر است . 
  4. به همین راحتی نیاز نیست برای تمام نقش ها و عملیات آن کدنویسی عادی انجام بدیم و میبینید که کدنویسی ، مدیریت و ... چقدر راحت تر میشود 

 

تقریبا میشود گفت مفهوم بنیادین شی گرائی موارد بالاست ولی با تمرین و تکرار در زبان برنامه نویسی که کار میکنید میتوانید به مفاهیم مسلط تر شوید هر چند شی گرایی یک چیز مشترک است و اگر یکبار یاد بگیرید برای تمام زبان های برنامه نویسی کفایت میکند  و نیاز نیست دوباره و دوباره برای هر زبان برنامه نویسی خاصی آنرا یاد بگیرید 

پس سعی کنید شی گرائی را از مقاله ی بالا بصورت مفهومی یاد بگیرید سپس در زبان برنامه نویسی که با آن کار میکنید خود را به چالش بکشید 

 

اتمام مقاله 


مطالب زیر ممکن است برای شما مفید باشد

 تگ های header را در سئو سایت دست کم نگیرید رادیو صفر و یک - پادکست شماره ی 9 ام - اینترنت بی اینترنت رادیو صفر و یک - پادکست شماره ی 3 ام - شرکت جت برینز و محصولاتش برای برنامه نویسان رادیو صفر و یک - پادکست شماره ی 5 ام - دیپ فیک چیست ؟‌ آخرین مرز میان حقیقت و دروغ رادیو صفر و یک - پادکست شماره ی 1 ام - معرفی رادیو صفر و یک و زندگینامه ی گوینده

محصولات برگزیده مناسب شما

 کارگاه آموزشی نحوه ی آپدیت ورژن فریمورک laravel کارگاه آموزش کار با API های اینستاگرامی دوره ی آموزش ساخت اپ گالری تصاویر آنلاین با کاتلین کارگاه آموزشی کار با Grunt js

پایان 👍

  • نفس کریمی زاده

تمامی مطالب مفید برنامه نویسی که پیدا میکنم میزارم اینجا