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

۹ مطلب با کلمه‌ی کلیدی «برنامه نویسی» ثبت شده است

استفاده از Qt یا برنامه نویسی نیتیو برای موبایل

با سلام

با توجه به سوالات پیاپی دوستان در مورد برنامه نویسی توسط کیوت برای موبایل بهتر دونستم یک پست به این منظور منتشر کنم .

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

حالا که یک توضیح کلی از فریمورک کیوت داریم بهتره بررسی کنیم که آیا برنامه نویسی برای موبایل با کیوت بهتر هست یا برنامه نویسی با زبان نیتیو برای این منظور باید چندین فاکتور رو در نظر بگیریم

  • حجم خروجی که اگر در اندروید بررسی کنیم حجم خروجی یک اپ کیوت کمترین حجمش از 8 و خورده ای مگ شروع میشه که نسبت به اپ نیتیو یک مقدار بالاتر هست که البته با این حجم از اینترنت که این روزها توی ایران مصرف میشه این حجم دیگه بالا نیست .
  • از مشکلات دیگه ای که میتونه سر راه باشه برای برنامه نویسی با کیوت زبان سی پلاس پلاس هست که شاید توی کارهای خیلی سبک به مشکلی باهاش نخورید و لی در واقع توی سطح حرفه ای کار هر کسی نیست کار کردن با این زبان و باید توان و انرژی زیادی برای یاد گیری این زبان به صورت حرفه ای بگذارید وگرنه خروجی که میدید ممکنه براتون مشکلاتی ایجاد کنه که کمترینش میتونه نشت حافظه باشه البته اگر برنامه نویس زبان هایی بغیر سی و سی پلاس پلاس باشید احتمالا آشنایی زیادی باهاش ندارید کوتاه میتونم براتون بگم نشت حافظه یعنی مقداری از فضای رم گرفته میشه ولی آزاد نمیشه و این در طول زمان میتونه مشکل ساز باشه و این در صورتی پیش میاد که شما برنامه نویسی سی پلاس پلاس رو درست بلد نباشید و با سطح مبتدی یا متوسط برنامه نویسی کرده باشید که البته اشاره گر های هوشمند این مشکل رو تا حد خیلی خوبی حل کردند که البته استفاده از خود اونها هم نیاز به دانش سطح حرفه ای توی سی پلاس پلاس داره وگرنه ممکنه با اشاره گر های هوشمند هم باز نشت حافظه داشته باشید.
  • نکته دیگه ای که لازم هست بدونید این هست که برای استفاده از یک سری سرویس های اندروید مثل نوتیکیشن و ... نیاز هست کد جاوا توی پروژه سی پلاس پلاستون بزنید و با استفاده از JNI از اون استفاده کنید یعنی نیاز هست یک مقدار آشنایی با جاوا برای هندل کردن این قسمت داشته باشید .

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

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

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

و البته خوبی های دیگه ای که شاید الان من حضور ذهن ندارم بهشون اشاره کنم .

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

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

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

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

علی یارتون

۱۲ تیر ۹۷ ، ۱۵:۱۹ ۲ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

علف هرز

بچه که بودم وقت آزادم از درس رو توی گلخونه بابام مشغول بودم همیشه علف های هرز رو از خاک بیرون میکشیدیم و دور مینداختیم من اوایل درست نمیتونستم علف هرز رو از گل تشخیص بدم چون هردوتا گیاه بودند و سبز رنگ شناختشون مهارتی میخواست که شاید توقع داشتن اون مهارت از یه بچه زیاد باشه برای همین بعد از کلی تلاش که سعی میکردند از راه نشون دادن علف و گل بهم تفاوتهاشون رو بفهمونند آخرش میگفتند اونی که وسط گلدونه و از همه بزرگتره گله بقیه علف هرزند ولی مشکل اینجا بود که همیشه اینطوری نبود یعنی بعضی وقتا گله دقیقا وسط نبود یا بعضی وقتا یکی از این علف ها انقدر خوشگل بود و بزرگ که آدم دلش نمیاومد اون رو از خاک بیرون بکشه معمولا من گل و بقیه علف ها رو میکندم و علف بزرگه رو میذاشتم بمونه و البته کلیم سر این کارهام دعوام کرد بابام 🤣
یکم که بزرگ تر شدم دیگه میتونستم تشخیص بدم ولی هنوز به علف های هرز امید داشتم یروز یکیشون رو که از خاک بیرون اورده بودم تمیز شستم و توی یه گلدون جدا کاشتم و گذاشتمش یه جایی که کسی نبینه بعد یه مدت جون گرفت اوردم نشون بابام دادم بهم گفت
-‏ این به درد نمیخوره کسی حاضر نیست اینو بخره توی خونش نگهداری کنه
درکش برام سخت بود ولی باهاش کنار اومدم بعدها یه وقتایی بوته گوجه توی گلدون ها در میومد و باید با اونها هم مثل علف هرز برخورد میکردیم یعنی باید میکندیم مینداختیم دور ولی دیگه برام سخت نبود چون فهمیده بودم هر چیزی جایی داره جای گوجه توی گلدون گل نیست همینطور جای علف هرز هم توی گلدون نیست
از اونجا یاد گرفتم اگر جایگاهم رو نشناسم و توی یه جایگاه درست قرار نگیرم فرقی نمیکنه به اندازه بوته گوجه مفید باشم یا اندازه علف هرز به هر حال باهام برخوردی که باید نمیشه .

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

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

۰۱ تیر ۹۷ ، ۱۴:۰۰ ۱ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

ارزش کار

ارزش کار به چیست ؟

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

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

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

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

ادامه مطلب...
۱۹ خرداد ۹۷ ، ۱۶:۲۳ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

بهترین توسعه دهنده

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

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

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

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

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

یک عده این که تا اخر عمر فقط با یک زبان و تکنولوژی توی یک حوزه کار کنی رو نشان حرفه ای شدن می‌دونند .

ولی واقعیت امر از نظر من این هست که اینها ممکنه توی مسیر تبدیل شدن به یک توسعه‌دهنده بهتر به ما مکم کنه اما هیچ کدوم دلیل نمیشه ما بهترین توسعه‌دهنده دنبا باشیم .

 

ادامه مطلب...
۱۷ خرداد ۹۷ ، ۲۲:۴۲ ۰ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

اشتراک یک تجربه قسمت اول

با سلام

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

 

مقدمه

من تجربیات خودم از این دور‌ه‌های زمانی توی فرایند یادگیری رو براتون میگم امیدوارم مفید باشه .

  • خیلی از دوستان نمیدونند از کجا شروع کنند و مدام دنبال این هستند که از کجا و با چی شروع کنند ؟
  • خیلی دیگه از دوستان شروع کردند پیش رفتند و به جایی رسیدند که فهمیدند اشتباه ابزار و زبانشون رو انتخاب کردند حالا میخواند بدونند باید چکار کنند ؟

  • یک سری از دوستان زبان درستی رو انتخاب کردند و توی بیس اون زبان حرفه‌ای شدند ولی نمیتونند کار بگیرند چون همیشه کارهایی که میخوره یه بخش بزرگی داره که استفاده از یک کتابخانه خاص رو میطلبه و نمیدونند باید چکار کنند چون یاد گرفتن یک کتابخانه که زمانبر هست و ممکنه فقط توی اون یک پروژه به کارشون بیاد میخواند ببینند آیا باید یک کتابخانه خاص که خیلی پر کاربرد هست رو یاد بگیرند ؟

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

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

  • یک سری از دوستان کارشون خوبه ولی ترس از گرفتن پروژه های بزرگ دارند و نگران این هستند اگر زمان بندیشون درست نباشه چه اتفاقی میوفته ؟

  • یک سری از دوستان کارشون خوبه و کم وبیش توی کار پیش رفتند و حالا نمیدونند باید به تحصیل کنار کار ادامه بدند یا فقط وقت طلف کردن هست و رهاش کنند ؟

  • یک سری سر دو راهی موندند که وقتی در این حد حرفه‌ای هستند و از اونطرف هم درخواست کار براشون هست برند یا بمونند ؟

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

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

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

 

۱۵ ارديبهشت ۹۷ ، ۱۲:۰۷ ۲ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

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

با سلام خدمت دوستان عزیز

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

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

 

ادامه مطلب...
۱۰ آذر ۹۶ ، ۰۴:۱۸ ۲ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

اختراع دوباره چرخ

با سلام خدمت دوستان و همراهان همیشگی 

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

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

ادامه مطلب...
۰۲ آذر ۹۶ ، ۲۲:۱۴ ۱ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

انتشار قسمت چهارم آموزش Qml به زبان فارسی

با سلام خدمت دوستان و همراهان همیشگی

قسمت چهارم از دوره آموزش Qt-Qml با موضوع نجوه چینش ایتم های درون صفحه با استفاده از anchors به صورت رایگان درون اپارات منتشر شد .

دوستان بنده رو از نظرات خوبتون محروم نکنید و در مورد کیفیت و کمبود و همینطور سرفصل های مورد نیاز خودتون مطلع کنید . برای پیشنهاد یا انتقاد در مورد این قسمت میتوانید از قسمت نظرات همین پست استفاده کنید و برای پیشنهاد سرفصل جدید میتوانید از لینک آدرس سرفصل‌های دوره Qt-Qml اقدام به ارسال نظر بکنید .

 

لینک آپارات ویدئو

۳۰ خرداد ۹۶ ، ۰۴:۴۰ ۲ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

انتشار ویدئوی معرفی ModernCpp.ir

با سلام خدمت دوستان عزیز

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

به زودی منظر انتشار دوره‌های آموزشی ویدئویی رایگان از ما باشید .

 

موفق باشید

۲۶ خرداد ۹۶ ، ۱۰:۳۹ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی