طراحی سایت | برنامه نویسی

آموزش طراحی سایت و برنامه نویسی

طراحی سایت | برنامه نویسی

آموزش طراحی سایت و برنامه نویسی

۱۲۷ مطلب در مرداد ۱۳۹۸ ثبت شده است

۱۲مرداد

زبان پی اچ پی یکی از زبان‌های برنامه‌نویسی و یا اسکریپت نویسی است که به طرز قابل‌ملاحظه‌ای در جهان مورد مقبول برنامه نویسان قرارگرفته است مخصوصاً در وب‌سایت‌ها و اپلیکیشن های تحت وب به‌شدت استفاده می‌شود. محبوبیت این زبان به حدی است که طبق آمار رسمی سایت w3techs حدود ۷۹ درصد زبان‌های برنامه‌نویسی سمت سرور را پی اچ پی تصاحب کرده است.


فریم ورک , کدیگنایتر , Codeigniter , سیمفونی ,Symfony ,کیک پی اچ پی, CakePHP ,laravel, لاراول, PHP, زند فریم ورک, Zend Framework ,فالکون Phalcon ,یی ,Yii ,سیملکس ,Symlex ,یوبیکویتی, Ubiquity ,فریم ورک Phpixie ,اسلیم ,Slim, فیو ال پی اچ پی, FuelPHP


فریم ورک های پی اچ پی:

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


بهترین مقایسه فریم ورک های پی اچ پی:

در این مقاله قصد داریم به سراغ فریم ورک های پی اچ پی در سال جدید میلادی یعنی سال ۲۰۱۹ برویم و این فریم ورک ها را باهم مقایسه کنیم و پس‌ازاین بهتر بتوانیم به توسعه‌دهنده‌ها به شناخت ویژگی‌های فریم ورک ها، نقاط قوت، نقاط ضعف و موارد استفاده کمکی کرده باشیم.


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




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


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


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


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


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


مثلاً از لحاظ سرعت طبق رتبه‌بندی phpbenchmarks فریم ورک Ubiquity اول است و در میزان جستجو و استفاده فریم ورک Laravel پس ما در این مقاله قصد رتبه‌بندی نداریم!


اما به سراغ ویژگی فریم ورک ها می‌رویم:

 


لاراول Laravel



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


ویژگی اساسی این فریم ورک پکیج‌های فوق‌العاده‌ای که برای آن ساخته‌شده و می‌شود مثل موتور سبک قالب‌سازی Blade، تست واحد یا Unit Test، Elequent ORM، سیستم پکیج بندی، کنترل‌کننده‌های RestFul.


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


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


پکیج‌ها می‌توانند به‌آسانی با Composer درون ساز لاراول اضافه شوند. می‌توان پروژه را به همراه Gulp و Elixir استفاده کرد. به دلیل دارا بودن خط فرمان هر پکیج npm و bower می‌تواند به‌آسانی و به‌صورت مستقیم از طریق ssh صدا زد.


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


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


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


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

 


فالکون Phalcon

فریم ورک , کدیگنایتر , Codeigniter , سیمفونی ,Symfony ,کیک پی اچ پی, CakePHP ,laravel, لاراول, PHP, زند فریم ورک, Zend Framework ,فالکون Phalcon ,یی ,Yii ,سیملکس ,Symlex ,یوبیکویتی, Ubiquity ,فریم ورک Phpixie ,اسلیم ,Slim, فیو ال پی اچ پی, FuelPHP


فاکون یک فریم ورک مبتنی بر معماری MVC است که کتابخانه زبان C اختصاصی دارد یعنی به‌عنوان یک extention برای زبان PHP روی سرور نصب می‌شود. به‌طور خلاصه هر برنامه‌ای با زبان C نوشته شود به دلیل نزدیک‌تر بودن به زبان ماشین سرعت فوق‌العاده‌ای دارد. و این به این معنی است که به طرز شگفت‌آوری فالکون سریع است. فالکون از منابعی بسیار کمی در مقایسه با سایر فریم ورک ها استفاده می‌کند.


فالکون از سال ۲۰۱۲ به‌صورت فعال توسعه‌یافته و امکاناتی ازجمله ORM، معماری MVC و HMVC، سیستم کش، صف‌بندی، مسیریاب یا router و بارگذاری خودکار کامپوننت ها را اضافه کرده است.


فالکون به توسعه‌دهنده‌ها ابزارهای ذخیره‌سازی داده‌ها مانند زبان SQL خودش یعنی PHQL و ODM به‌عنوان یک ORM برای MongoDB ارائه می‌دهد. ویژگی‌های دیگر شامل موتور قالب، فرم ساز، سادگی ساخت اپلیکیشن ها با پشتیبانی زبان بین‌الملل که ترجمه برنامه را بسیار راحت می‌کند.


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


 


کدیگنایتر Codeigniter

فریم ورک , کدیگنایتر , Codeigniter , سیمفونی ,Symfony ,کیک پی اچ پی, CakePHP ,laravel, لاراول, PHP, زند فریم ورک, Zend Framework ,فالکون Phalcon ,یی ,Yii ,سیملکس ,Symlex ,یوبیکویتی, Ubiquity ,فریم ورک Phpixie ,اسلیم ,Slim, فیو ال پی اچ پی, FuelPHP


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


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


از ویژگی‌های کدیگنایتر می‌توان به تعدد کتابخانه‌های داخلی، تست واحد یا Unit Test، اعتبار سنجی فرم‌ها، ایمیل، سشن یا جلسات و … اشاره کرد. اگر نمی‌توانید کتابخانه‌ای که به دنبال آن می‌گردید را پیدا کنید به‌راحتی می‌توانید آن کتابخانه را بسازید و با دیگران نیز به اشتراک بگذارید.


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

 


سیمفونی Symfony



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


سیمفونی در پروژه‌های نامدار بزرگی مثل Magento، Prestashop، Google Api، Google Cloud، Facebook Ads، PHPbb، PHPMyAdmin، Composer و پروژه‌های اپن سورس مثل Drupal و eZpublish مورداستفاده قرارگرفته است. علاوه براین پروژه‌ها برخی فریم ورک های پی اچ پی مثل لاراول، یی و کیک پی اچ پی بخشی از هسته خود را سیمفونی وام گرفته‌اند.


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


با سیمفونی می‌توانید در یک پروژه حرفه‌ای گام بردارید. مستندات آن گسترده، جامعه برنامه نویسان آن بسیار زیاد و پویا است. ساخت هر دو نوع برنامه Rest Api و وب اپلیکیشن های تکامل‌یافته را می‌توان با این فریم ورک انجام داد.


بیشتر بخوانید:آموزش symfony در قالب پروژه وبسایت کاریابی

 


کیک پی اچ پی CakePHP

فریم ورک , کدیگنایتر , Codeigniter , سیمفونی ,Symfony ,کیک پی اچ پی, CakePHP ,laravel, لاراول, PHP, زند فریم ورک, Zend Framework ,فالکون Phalcon ,یی ,Yii ,سیملکس ,Symlex ,یوبیکویتی, Ubiquity ,فریم ورک Phpixie ,اسلیم ,Slim, فیو ال پی اچ پی, FuelPHP


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


در این فریم ورک از فایل‌های پیچیده تنظیمات مانند XML و YAML خبری نیست و تنها کافی است تنظیمات دیتابیس خود را انجام و ساخت پروژه خود را شروع کنید. برای معماری MVC از مجموعه‌ای از کنوانسیون‌ها استفاده‌شده شما را در توسعه اپلیکیشن راهنمایی می‌کند.


در رابطه با امنیت این فریم ورک ابزارهای توکار زیادی دارد ازجمله: اعتبارسنج‌های فرم، سیستم حفاظت CSRF، جلوگیری از SQL Injection و جلوگیری از حمله XSS


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


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


 


زند فریم ورک Zend Framework



فریم ورک زند مناسب افراد برنامه‌نویس حرفه‌ای پی اچ پی است که روی پروژه‌های تجاری بزرگ کار می‌کنند. فریم ورک زند با امنیت، عملکرد و توسعه‌پذیری در ذهن کاربران ماندگار می‌شود. سرعت این فریم ورک در نسخه ۳ آن نسبت به نسخه ۲ آن ۴ برابر سریع‌تر شده است.


به دلیل تمرکز و ماهیت پروژه‌های تجاری این فریم ورک و به علت اینکه دارای کتابخانه‌های زیادی است و اگرچه ابزار زیادی را داراست که توسعه را راحت‌تر می‌کند اما برای توسعه اپلیکیشن های سریع گزینه خوبی نیست و برای مبتدی‌ها به‌هیچ‌عنوان توصیه نمی‌شود. این فریم ورک دارای IDE اختصاصی است که تحت عنوان Zend Studio شناخته می‌شود که به‌صورت منظم با فریم ورک توسعه پیدا می‌کند.


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


 


فیو ال پی اچ پی FuelPHP

فریم ورک , کدیگنایتر , Codeigniter , سیمفونی ,Symfony ,کیک پی اچ پی, CakePHP ,laravel, لاراول, PHP, زند فریم ورک, Zend Framework ,فالکون Phalcon ,یی ,Yii ,سیملکس ,Symlex ,یوبیکویتی, Ubiquity ,فریم ورک Phpixie ,اسلیم ,Slim, فیو ال پی اچ پی, FuelPHP


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


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


 


اسلیم Slim

فریم ورک , کدیگنایتر , Codeigniter , سیمفونی ,Symfony ,کیک پی اچ پی, CakePHP ,laravel, لاراول, PHP, زند فریم ورک, Zend Framework ,فالکون Phalcon ,یی ,Yii ,سیملکس ,Symlex ,یوبیکویتی, Ubiquity ,فریم ورک Phpixie ,اسلیم ,Slim, فیو ال پی اچ پی, FuelPHP


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


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


 


فریم ورک Phpixie

فریم ورک , کدیگنایتر , Codeigniter , سیمفونی ,Symfony ,کیک پی اچ پی, CakePHP ,laravel, لاراول, PHP, زند فریم ورک, Zend Framework ,فالکون Phalcon ,یی ,Yii ,سیملکس ,Symlex ,یوبیکویتی, Ubiquity ,فریم ورک Phpixie ,اسلیم ,Slim, فیو ال پی اچ پی, FuelPHP


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


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


 


یوبیکویتی Ubiquity



سریع‌ترین فریم ورک پی اچ پی که به‌جرئت می‌توان گفت اصلاً شناخته‌نشده. یک فریم ورک سریع برای توسعه و خود نیز مدام درحال‌توسعه است. در سال آوریل ۲۰۱۷ ساخته‌شده است.هدف این پروژه ساده‌سازی روند توسعه است و توسعه‌دهنده‌های وب که برای تحویل اپلیکیشن خود ارزش قائل هستند را توانمند می‌سازد. هدف اصلی آن ترکیب عملکرد و سادگی استفاده است.


از لحاظ عملکرد سرعتی عالی دارد. در یک تست حدود ۳٫۱ برابر سریع تر از کدیگنایتر که از دکتراین استفاده می‌کند، ۳٫۶ برابر سریع از سیمفونی، ۲۰ برابر سریع از لاراول که از Elequent ORM استفاده می‌کند.


از هیچ گونه Join اس کیو ال استفاده نمی‌کند.

تنها ۱۲۳ کوئری بر خلاف دکتراین که ۳۱۹۰ کوئری اجرا می‌کند اجرا می‌کند.

فریم ورک , کدیگنایتر , Codeigniter , سیمفونی ,Symfony ,کیک پی اچ پی, CakePHP ,laravel, لاراول, PHP, زند فریم ورک, Zend Framework ,فالکون Phalcon ,یی ,Yii ,سیملکس ,Symlex ,یوبیکویتی, Ubiquity ,فریم ورک Phpixie ,اسلیم ,Slim, فیو ال پی اچ پی, FuelPHP


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






 


 


سیملکس Symlex



یک فریم ورک سبک برا توسعه چابک وب با استفاده از symfony و vuetifyjs. vuetifyjsیک فریم ورک کامپوننت متریال دیزاین بر اساس Vuejs است.


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


از ویژگی‌ها: معماری متفاوت آن با سیمفونی که سرعت آن را افزایش می‌دهد در رتبه دوم فریم ورک ها ازنظر سرعت قرار دارد.


 


یی Yii



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


قسمت جالب‌توجه این فریم ورک نام آن است که تلفظ آن یی است و علت نام‌گذاری آن است ازلحاظ زبان چینی معنی «ساده و تکامل‌یافته» را می‌دهد اما ازلحاظ دیگر در پاسخ به سؤالاتی که به آن می‌شود نظیر « آیا این فریم ورک سریع است؟ آیا این یک فریم ورک امن است؟ آیا این یک فریم ورک حرفه‌ای است؟ آیا این فریم ورک مناسب برای پروژه بعدی من هست؟ » که در پاسخ همه این‌ها این فریم ورک جواب Yes It Is را می‌دهد!


بهترین بخش‌های این فریم ورک سریع، امن، کارا و مؤثر و قابل‌انعطاف است و برای تمام انواع اپلیکیشن های تحت وب استفاده می‌شود و در کل به‌عنوان فریم ورک برنامه‌نویسی جهانی وب شناخته می‌شود. سایت‌هایی مثل پرتال‌ها، انجمن‌های گفتگو، سیستم‌های مدیریت محتوا(CMS)، پروژه‌های فروشگاهی، سرویس وب مبتنی بر REST .


دارای معماری‌های MVC، SOLIDو در رابطه با ذخیره‌سازی داده‌های از پایگاه‌های داده NoSQL نیز پشتیبانی می‌کند، سیستم مدیریت کش، دارای سیستم کدساز Gii که کدنویسی توسعه‌دهنده را به طرز قابل توجهی کاهش می‌دهد.


ده مورد از فایده‌های این فریم ورک:


نصب آسان

در آن از تکنولوژی‌های مدرن استفاده‌شده است.

انعطاف بالا

تست آسان

امنیت بالا

زمان توسعه پایین

عملکرد بالا

مدیریت خطاها

استفاده از قالب و پوسته

لاگ و ثبت رویدادها

 


نتیجه‌گیری:

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


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


منبع: دانشجویار


شهربانو دوستی
۱۱مرداد

اسلام و عرض ادب. در خدمت دوستان عزیز هستیم با کتاب درس و کنکور پایگاه داده پیشرفته در ۷۴ صفحه و به زبان فارسی از وب سایتآموزش برنامه نویسی سورس باران. کتاب درس و کنکور پایگاه داده پیشرفته در ۷۴ صفحه به عنوان یکی از دروس اصلی در دوره کارشناسی ارشد در وزارت علوم و دانشگاه آزاد اسلامی تدریس می­‌شود. امروزه با رشد اینترنت، استفاده از داده­‌ ها به خصوص داده ­‌های عظیم روز‌ به‌ روز در حال افزایش است. لیست سرفصل این کتاب بصورت کامل در ادامه مطلب ذکر شده است…

درس و کنکور پایگاه داده پیشرفته

فصل اولمقدمه

  • سیستم های پایگاه داده
  • تعریف و نحو تراکنش
  • خواص تراکنش
  • حالات تراکنش
  • انواع تراکنش ها
  • انواع اجرا
  • مشکلات کنترل هم روندی
  • تغییرات گم شده
  • دست یابی به داده های تثبیت نشده
  • بازیابی ناسازگار
  • ترمیم پذیری
  • پایانه ورودی / خروجی
  • اجتناب از سقط های آبشاری
  • حفظ سازگاری
  • ترتیب تراکنشها
  • محدودیت های پی درپی پذیری
  • مدل سیستم پایگاه داده
  • مدیر حافظه نهان
  • مدیر ترمیم
  • زمان بندها
  • مدیر تراکنش
  • ترتیب عملیات
  • معماری سیستم پایگاه داده توزیع شده
  • مسائل حل شده
  • سؤالات چهارگزینه ای
  • پاسخ تشریحی سؤالات چهارگزینه ای

فصل دومتئوری پی در پی پذیری در پایگاه داده

  • سوابق
  • تراکنشها
  • سابقه ها
  • سوابق پی درپی پذیر
  • هم ارزی سوابق
  • عملیات فراتر از Read و Write
  • هم ارزی دیدی
  • پی درپی پذیری دیدی
  • چند گرافی و تست پی درپی پذیری دیدی
  • مسائل حل شده
  • سؤالات چهارگزینه ای
  • پاسخ تشریحی سؤالات چهارگزینه ای

فصل سومقفل گذاری دو مرحله ای در پایگاه داده

  • زمان بندی های تهاجمی و محافظه کارانه
  • قفل گذاری دومرحله ای پایه
  • اثبات صحت قفل گذاری دو مرحله ای پایه(  ۲PL پایه)
  • بن بست ها
  • انواع ۲PL
  • پروتکل قفل گذاری دومرحله ای محافظه کار
  • پروتکل قفل گذاری دومرحله ای محض
  • مباحث پیاده سازی
  • مدیر قفل
  • تراکنش های بلاک و سقط شده
  • اتمیک بودن اعمال خواندن و نوشتن
  • قفل گذاری عملیات اضافی
  • صحت
  • مباحث پیاده سازی
  • مسائل حل شده
  • سؤالات چهارگزینه ای
  • پاسخ تشریحی سؤالات چهارگزینه ای

فصل چهارمزمان بندی غیر قفلی در پایگاه داده

  • مقدمه
  • ترتیب مهر زمانی
  • ترتیب مهر زمانی پایه ای
  • زمان بند ترتیب مهر زمانی محض
  • مدیریت مهر زمانی
  • زمان بند ترتیب مهر زمانی محافظه کار
  • زمان بند آزمون گراف پی درپی پذیری
  • ملاحظات ترمیم پذیری
  • مسائل حل شده
  • سؤالات چهارگزینه ای
  • پاسخ تشریحی سؤالات چهارگزینه ای

فصل پنجمخرابی ها در پایگاه داده

  • خرابی ها
  • انواع حافظه های ذخیره سازی
  • معماری مدیر داده
  • حافظه پایدار
  • مدیریت حافظه نهان
  • مدیر ترمیم
  • ثبت کارنامه
  • اعمال UNDO و REDO
  • زباله روبی
  • همانی Restart
  • الگوریتم UNDO / REDO
  • قوانین UNDO و REDO
  • نقطه بازرسی
  • پیاده سازی UNDO / REDO
  • Restart
  • کارنامه گیری منطقی
  • قفل گذاری در سطح رکورد
  • الگوریتم No-UNDO/REDO
  • پیاده سازی
  • الگوریتم NO-REDO / NO-UNDO
  • خرابی های رسانه
  • مسائل حل شده
  • سؤالات چهارگزینه ای
  • پاسخ سؤالات چهارگزینه ای

فصل ششمامنیت در پایگاه داده

  • اهمیت امنیت اطلاعات
  • مفاهیم اولیه امنیت اطلاعات
  • امنیت در پایگاه داده
  • انواع حملات روی پایگاه داده
  • استنتاج
  • حمله غیرفعال روی پایگاه داده
  • حملات فعال در پایگاه داده
  • SQLIA  (حمله تزریق SQL )
  • مکانیزم کنترل دسترسی
  • رمزگذاری ساده
  • به هم ریزی داده)درهم آمیختن داده(
  • تکنیک های متفرقه برای امنیت پایگاه داده
  • سؤالات چهارگزینه ای
  • پاسخ تشریحی سؤالات چهارگزینه ای
شهربانو دوستی
۱۱مرداد

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

آموزش گام به گام نصب و راه اندازی JDK

دانلود نرم افزار JDK یا Java Development Kit

نرم افزار JDK

نرم افزار JDK

نرم افزار JDK یا Java Development Kit یکی از ابزارهای ضروری و مورد نیاز برای برنامه نویسی اندروید است. هرچند که نسخه های جدیدتر این برنامه ارائه شده است ولی در این جلسه ورژن ۸ را جهت دانلود قرار داده ایم و احتمالا با همین ورژن آموزش را پیش خواهیم رفت. (با توجه به اینکه بیسیک فور اندروید فعلا فقط با نسخه ۸ سازگاری دارد و در نسخه های دیگر در هنگام کامپایل ارور نمایش داده میشود فعلا از همین ورژن استفاده می کنیم)

 دانلود نسخه ۶۴ بیتی برنامه JDK / حجم ۱۹۶ مگابایت 
 دانلود نسخه ۳۲ بیتی برنامه JDK / حجم ۱۸۹ مگابایت

 

پس از دانلود نرم افزار JDK فایل نصبی را اجرا کنید . در صفحه زیر دکمه Next را کلیک نمایید :

JDK

JDK

 

مجددا بر روی Next کلیک نمایید :

سپس مراحل نصب JRE ظاهر میشود . برای ادامه بر روی Next کلیک کنید.

کمی صبر کنید تا JRE نیز به صورت کامل نصب شود :

در پایان بر روی Close کلیک کنید :

حالا نرم افزار JDK به صورت کامل نصب شده است .

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

برای اینکار بر روی My Computer راست کلیک کنید و گزینه Properties را انتخاب کنید . در پنجره ای که باز میشود گزینه Advanced System Settings را انتخاب کنید :

حالا به سربرگ Advanced بروید و بر روی Environment Variables کلیک کنید

در بخش System Variables بر روی New کلیک کنید

در کادری که باز میشود , در بخش Variable Name عبارت JAVA_HOME را وارد کنید و در بخش Variable Value آدرس پوشه ای که JDK در آن نصب شده است را وارد کنید

در پایان بر روی OK کلیک کنید .

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

 

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

  1. آموزش بیسیک فور اندروید – دانلود تمامی ابزارهای مورد نیاز برنامه نویسی B4A

 

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

پیشنهاد ویزه ۲ : مشاهده تمامی فیلم های آموزشی اندروید

پیشنهاد ویژه ۳ : مشاهده مقالات و کتاب های آموزشی بیسیک اندروید

اطلاعات فایل

    منبع: سورس باران


    شهربانو دوستی
    ۱۱مرداد

    سلام دوستان. با یک مقاله آموزش برنامه نویسی در خدمت شما هستیم. برای اولین بار در یک مطلب ویژه برای دوستان مبتدی با آموزش برنامه نویسی با ترفند جذاب Online game برای تازه کارها از وب سایت آموزش برنامه نویسی سورس باران در خدمت شما هستیم. فقط و فقط یک لحظه در ذهن خود به این موضوع فکر کنید که اگر برنامه نویسی یک بازی کامپیوتری بود وضعیت چطور میشد؟ آیا این موضوع واقعیت دارد؟ آیا شدنی است؟ اگر شدنی است در چه سطحی قابل استفاده است؟ در این مطلب با معرفی چند وب سایت Online game یا همان بازی آنلاین یاد میگیرید که با بازی کردن برنامه نویس شوید. خیلی جالب خواهد شد، لطفا تا انتهای این مطلب با ما همراه باشید…

    آموزش برنامه نویسی با Online game

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

     

    آموزش برنامه نویسی با Khan Academy

    وب سایت Khan Academy که یکی از وب سایت های مورد نظر ما جهت یادگیری برنامه نویسی با ترفند بازی آنلاین (Online game) است از زبان فارسی هم پشتیبانی می کنم.(لینک نسخه فارسی) خان آکادمی موسسه ای غیر انتفاعی با هدف بهبود آموزش می باشد. با توجه به اینکه این وب سایت از زبان فارسی هم پشتیبانی می کند آموزش برنامه نویسی با بازی کردن از طریق Khan Academy بسیار ساده خواهد بود.

    این سازمان غیرانتفاعی در سال ۲۰۰۶ به دست سلمان خان که خود دانش آموخته موسسه فناوری ماساچوست (MIT) است بنیان نهاده شد. در خان آکادمی بیش از ۷۰۰ دوره آموزشی وجود داره که علاوه بر دوره های برنامه نویسی، دوره های دیگری نظیر ریاضیات، فیزیک، شیمی، زیست شناسی، اقتصاد، تاریخ، پزشکی و… به رایگان ارائه شده است که در وب‌گاه یوتیوب نیز قابل دستیابی است. در این وب سایت میتوانید کلیه زبان های برنامه نویسی مانند C – HTML4 – HTML5 – CSS3 – PHP – JAVASCRIPT – JAVA – PYTHON و… را با روش های مختلف آموزش ببینید.

    آموزش برنامه نویسی با Khan Academy

    آموزش برنامه نویسی با Khan Academy

    خان آکادمی موسسه ای غیر انتفاعی با هدف بهبود آموزش می باشد. آرمان این موسسه فراهم کردن آموزش رایگان و با کیفیت برای همه، در هر مکان می باشد. علاوه بر ویدیوهای ترجمه شده که در زیرآمده است، شما می توانید ویدیوهای انگلیسی خان آکادمی را که به فارسی ترجمه شده اند در سایت اصلی مشاهده کنید. برای مشاهده این که چه ویدیوهایی ترجمه شده اند می توانید از فیلتر موجود در این صفحه استفاده کنید
    www.khanacademy.org/contribute

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

    https://www.khanacademy.org/computing

    اگر شما هم علاقمند به همکاری با خان آکادمی در راستای گسترش دسترسی به آموزش با کیفیت می باشید. می توانید از این صفحه دیدن کنید
    http://international.khanacademy.org

    علاوه بر این صفحه ، برای مشاهده ویدیوهای فارسی و بحث و گفت وگو با سایر مخاطبین فارسی زبان همچنین می توانید به سایت کلاس درس مراجعه کنید
    http://kelasedars.org

    آدرس وب سایت اصلی

    وب سایت Khan Academ

     

    آموزش برنامه نویسی با Code Hunt

    کمپانی مایکروسافت برای توسعه دهندگان نرم‌ افزاری، یک بازی رایانه‌ ای مبتنی بر مرورگرهای اینترنتی ارائه کرده است که با روش های جالب و سرگرم‌ کننده مهارت‌ های آنها را در امر برنامه‌ نویسی ارتقا می‌دهد. این بازی Code Hunt نام دارد که کار‌شناسان مرکز TheInquirer نیز اندکی آن را مورد بررسی قرار داده‌اند. کار‌شناسان می‌گویند که از بازی یاد شده چندان هم نمی توان به عنوان سرگرمی یاد کرد. در ابتدای بازی شما می‌ توانید یکی از دو زبان برنامه‌ نویسی Java یا #C را انتخاب کنید و پس از آن برای جلو بردن مراحل بازی باید مشکلات موجود در بخش های مختلف برنامه های نوشته شده را برطرف کنید یا تغییرات لازم را روی آنها انجام دهید.

    Code Hunt یک پلت فرم جدی برای مسابقه برنامه نویسی و مهارت های برنامه نویسی است. بازیکنان باید برای اولین بار از الگویی استفاده کنند و سپس پاسخ را کد کنند. کد هانت توسط بیش از ۷۵۰،۰۰۰ بازیکن تا اوت ۲۰۱۸ مورد استفاده قرار گرفته است. داده های رقابت های اخیر برای تجزیه و تحلیل در جامعه آموزشی باز شده است.
    آموزش برنامه نویسی با ترفند جذاب Online game برای تازه کارها

    آموزش برنامه نویسی با ترفند جذاب Online game برای تازه کارها

    آموزش برنامه نویسی با Code Hunt

    آموزش برنامه نویسی با Code Hunt

     توضیحات بیشتر

    Code Hunt

    CodeHunt-sm.pngCode Hunt is a serious gaming platform for coding contests and practicing programming skills. It is based on the symbolic white box execution engine, Pex. Code Hunt is unique as an online coding platform in that each puzzle is presented with test cases only, no specification. Players have to first work out the pattern and then code the answer. Code Hunt has been used by over 350,000 players as of August 2016. Data from the recent contests has been open sourced for analysis in the educational community.

    Links

    Main publication to cite

    Judith Bishop, R. Nigel Horspool, Tao Xie, Nikolai Tillmann, Jonathan de Halleux: Code Hunt: Experience with Coding Contests at Scale: in Proceedings of the 37th International Conference on Software Engineering (ICSE – JSEET Track), pp398-407, ACM, 2015

    Mastering a complex skill like programming takes many hours. In order to encourage students to put in these hours, we built Code Hunt, a game that enables players to program against the computer with clues provided as unit tests. The game has become very popular and we are now running worldwide contests where students have a fixed amount of time to solve a set of puzzles. This paper describes Code Hunt and the contest experience it offers. We then show some early results that demonstrate how Code Hunt can accurately discriminate between good and bad coders. The challenges of creating and selecting puzzles for contests are covered. We end up with a short description of our course experience, and some figures that show that Code Hunt is enjoyed by women and men alike.

    About the Hint Mechanism in Code Hunt

    لینک شروع کار با Code Hunt

     

    آموزش برنامه نویسی با CodeCombat

    آموزش برنامه نویسی با CodeCombat

    آموزش برنامه نویسی با CodeCombat

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

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

     

    آموزش برنامه نویسی با ترفند جذاب Online game برای تازه کارها

    آموزش برنامه نویسی با ترفند جذاب Online game برای تازه کارها

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

    • یادگیری HTML از طریق بازی کردن
    • یادگیری CSS از طریق بازی کردن
    • یادگیری بوت استرپ از طریق بازی کردن
    • یادگیری برنامه نویسی جاوا اسکریپت از طریق بازی کردن
    • یادگیری برنامه نویسی جی کوئری از طریق بازی کردن
    • یادگیری برنامه نویسی پایتون از طریق بازی کردن

    لینک شروع کار با CodeCombat

     توضیحات بیشتر

    CodeComba

    A classroom in-a-box for teaching computer science. CodeCombat is a platform for students to learn computer science while playing through a real game. Our courses have been specifically playtested to excel in the classroom, even for teachers with little to no prior programming experience. Watch how CodeCombat is transforming the way people learn computer science.

    Why is learning through games important?

    Gaming is a medium that encourages interaction, discovery, and trial-and-error. A good game challenges the player to master skills over time, which is the same critical process students go through as they learn.

    Games excel at rewarding“productive struggle” -the kind of struggle that results in learning that’s engaging andmotivating,not tedious.

    When game-based learning systems arecomparedagainst conventional assessment methods, the difference is clear: games are better at helping students retain knowledge, concentrate andperform at a higher level of achievement. Games also provide real-time feedback that allows students to adjust their solution path and understand concepts more holistically, instead of being limited to just “correct” or “incorrect” answers.

    A great game is more than just badges and achievements – it’s about a player’s journey, well-designed puzzles, and the ability to tackle challenges with agency and confidence. CodeCombat is a game that gives players that agency and confidence with our robust typed code engine, which helps beginner and advanced students alike write proper, valid code.

    لینک شروع کار با CodeCombat

     

    آموزش برنامه نویسی با CheckiO

    آموزش برنامه نویسی با CheckiO

    آموزش برنامه نویسی با CheckiO

    آموزش برنامه نویسی با CheckIO بسیار جذاب خواهد بود. شما از وب سایت بازی آنلاین CheckiO در حال حاضر می توانید برای یادگیری برنامه نویسی پایتون و جاوا اسکریپت استفاده نمایید. در این بازی شما باید مشکلات برنامه ها را برطرف کنید. قبل از هر مرحله بازی یک داستان کوتاه نقل شده و سپس یک ادیتور کد انلاین برای اسکریپتهای پایتون و یا جاوا اسکریپت نمایش داده میشود. علاوه بر بازی کردن میتونید خودتون ماموریت های جدید رو پیشنهاد کنید و بازی کنید و امتیاز بگیرید یک روش دیگر برای دانستن درجه اشنائی خود با پایتون و یا جاوا اسکریپت خواندن راه حل هایی است که بازیکنان دیگر پیشنهاد میکنند. برای این بازی در ابتدا باید ثبت نام کنید یا با یکی از اکانت های فیس بوک , جیمیل , گیت‌هاب , توئیتر , لینکداین وارد سایت شوید.

    لینک شروع کار با CheckiO

     

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

    شاید برایتان جذاب باشد : آموزش برنامه نویسی برای صفر کیلومترها

    شهربانو دوستی
    ۱۱مرداد

    با سلام و عرض ادب. در خدمت دوستان عزیز هستیم با آموزش Workflow – آموزش کار با اکتیویتی InvokeMethod از وب سایت آموزش برنامه نویسی سورس باران. در این جلسه از آموزش کامل Workflow نحوه فراخوانی متدهای مختلف را با استفاده از اکتیویتی InvokeMethod آموزش دهیم.. لطفا با ما همراه باشید…

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

    گردش کار (Workflow)

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

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

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

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

    نمونه هایی از گردش کار:

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

    ۱- گردش کار مدیریت مستندات:

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

    ۲- خدمات مشتریان (پیگیری سفارش)

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

    ۳- مدیریت تعطیلات

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

    اجزای گردش کار:

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

    ۱- مقدار ورودی: شامل اطلاعات و مقادیری است که برای کامل شدن یک مرحله از گردش کار، مورد نیاز است.

    ۲- قوانین تغییر: الگوریتم هایی که توسط نقش های انسانی یا سیستمی یا ترکیبی از هر دو انجام می شود را قوانین تغییر گویند.

    ۳- مقدار خروجی: اطلاعات و مقادیری که توسط هر مرحله تولید شده و به عنوان ورودی به مرحله بعد داده می شود را گویند.

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

    ۱- ترتیبی: دراین گردش کار برگشت به مرحله قبل وجود ندارد.

    ۲- سیستمی: این گردش کارها پیچیده تر هستند و امکان بازگشت به مرحله قبل را نیز دارند.

    ۳- مبتنی بر قوانین: این دسته همانند گردش کارهای ترتیبی هستند اما با این تفاوت که قوانین هستند که پیشرفت در فرایند را تعیین می کنند.

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

    ۱- زمانبندی شده: با توجه به زمانی که برای شروع و تکرار آن در نظر گرفته شده است، شروع می شود.

    ۲- فرم: در واقع رایج ترین نوع شروع در گردش کار است که کاربر با پر کردن فرم و ارسال آن، گردش کار را به جریان می اندازد.

    ۳- API: سیستم های دیگر می توانند یک گردش کار را در قالب پیامک اعلان یا وب سرویس و به کمک API شروع کنند.

    مزایای استفاده از سیستم ها با قابلیت گردش کار:

    ۱- افزایش تولید: گردش های کاری مکانیزه شده، زمان انجام کارها را کاهش داده و درنتیجه تولید و بهره وری را افزایش می دهند.

    ۲- شفافیت: به مدیران این امکان را می دهد که متوجه شوند که در فرایند های کاری آن ها در لحظه چه اتفاقاتی رخ می دهد.

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

    ۴- مسئولیت پذیری بهتر: نظارت و پایش اجرای فرایند های کسب و کار امکان ایجاد معیار هایی را برای بهبود مستمر فرایند ها ایجاد می نماید.

    منابع : Introduction-to-workflows

    bpm-tutorial/workflow-tutorial

    Workflow_Fundamentals

    what-is-workflow

     

    آموزش کار با اکتیویتی InvokeMethod

    Greetings and admirable wisdom. In the service of your dear friends with the Workflow tutorial – Learn how to activate InvokeMethod from the Source for Raining Education website. Learn how to call different methods using InvokeMethod activation in this session. Please come along with us …

    InvokeMethod Activity Training

    The UsingInvokeMethodActivityInCode Workflow project includes the following 5 steps

    Create a Project Workflow Console Application
    Create a TestClass.cs file
    Workflow design using InvokeMethod activation
    Run the workflow
    How does the UsingInvokeMethodActivityInCode workflow work?

    Create a Project Workflow Console Application

    Create a new Console workflow and name it using InvokeMethodActivityInCode.

    Create a TestClass.cs file

    Add a new file named TestClass.cs to the project and paste the following code into i

     

    Workflow design and activation activation of InvokeMethod

    Open the Workflow1.xaml file from the Solution Explorerr panel and design the Workflow as follows:

    From the ToolBox panel, select Activate and drag the workflow drawing.
    From the ToolBox panel, select Activation InvokeMethod and activate it, and design the Workflow as shown below.

    The workflow
    The workflow

    Run the workflow

    Use the InvokeMethodActivityInCode project as a StartUp project and then press Ctrl + F5 to run Workflow:

    Workflow System UsingInvokeMethodActivityInCode

    InvokeMethod’s proprietary asset is

    MethodName: Using this property, we set the method name.
    TargetObject: If the method we want to call is not Static, we must first create a new object of the type that constructed the method, using this Property.
    TargetType: If the method we want to call is static, we must set the class type that contains the static method using this property.
    GenericTypeArguments: If we call a method that we call a general method type, using this property we can specify a generic type.
    Parameters: Using this feature, we set the parameters of the called method.
    Result: If the value of the method returns, using this property we can change the value of the return value in each variable.

    شهربانو دوستی
    ۱۱مرداد

    سلام دوستان. در ادامه اشتراک گذاری نرم افزار و ابزار برنامه نویسی در این مطلب دانلود نرم افزار برنامه نویسی روبی- برنامه Ruby v2.4.2را از وب سایت آموزش برنامه نویسی سورس باران برای شما جهت دانلود قرار داده ایم. جهت دانلود و مشاهده توضیحات بیشتر لطفا با ما همراه باشید…

    برنامه Ruby v2.4.2 نرم افزار برنامه نویسی روبی

    Ruby یک زبان برنامه نویسی پویا و متن باز (open source) است که تمرکز خود را بر روی سادگی و بهره وری بالا قرار داده است و از سینتکس ظریفی استفاده می کند که برای درک و نوشتن بسیار راحت می باشد. روبی یک زبان انعطاف پذیر و شیء گراست که همه چیز در آن به عنوان یک شیء خواهد بود و هر بیت از اطلاعات و کد می توانند مشخصات (properties) و عملیات (actions) خود را داشته باشند. در زبان های شی گرا (Object-oriented) مشخصات با صدا کردن نام اشیا به آن ها نسبت داده می شود و عملیات به عنوان متد شناخته می شوند. ایده اصلی طراحی روبی علاوه بر پیروی از اصول طراحی خوب رابط کاربر، خوشنود کردن برنامه نویسان با کمتر کردن کارهای تکراری بود که آن ها بایستی انجام می دادند.

    حتما بخوانید : Ruby چیست؟ بررسی زبان برنامه نویسی روبی و منابع آموزشی

     

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

    شهربانو دوستی
    ۱۱مرداد

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

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

    باخبر شدن از موجودی محصولات ووکامرس با WooCommerce Waitlist

    در فروشگاه های بزرگ اینترنتی موجود نبودن یک محصول اتفاقی رزمره است. دغدغه صاحبان فروشگاه در این مواقع این است که به محض موجودی یک محصول آن را فورا به خریدار خود اطلاع دهند. افزونه WooCommerce Waitlist به کمک صاحبان فروشگاه و خریداران می آید. این افزونه‌ تاکنون توانسته است تا بیش از ۲.۰۰۰ نصب فعال و امتیاز ۵ را کسب کند.

    فرم ارسال ایمیل با WooCommerce Waitlist به صاحب فروشگاه این امکان را می دهد تا تقاضا برای اجناس را ردیابی کند و مطمئن شود که مشتریان از موجودی مجدد جنس موردنظر باخبر شوند. بنابراین احتمال بیشتری برای خرید آن محصول دارند.

     

    افزونه WooCommerce Waitlist چگونه کار می کند؟

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

    باخبر شدن از موجودی محصولات ووکامرس با WooCommerce Waitlist

     

    با Waitlist WooCommerce ، مدیران فروشگاه می توانند محصولات را بر اساس تعداد درخواست مشتریان در لیست انتظارشان مرتب کنند در نتیجه اولویت و تعداد موجودی یک محصول را می توانند دریابند.

    باخبر شدن از موجودی محصولات ووکامرس با WooCommerce Waitlist

     

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

     

    ویژگی های افزونه WooCommerce Waitlist

    ✔️مشتریان هنگام موجود شدن یک کالا از طریق ایمیل اطلاع می دهد.

    ✔️لیست کاربران و تعداد درخواست آن ها را پیگیری می کند

    ✔️تعداد کالا مورد نیاز را از کاربران می پرسد.

    ✔️برای انواع محصولات کار می کند

    ✔️امکان فعال کردن / غیرفعال کردن کاربران مهمان وجود دارد.

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

     

    راهنمای کار با افزونه WooCommerce Waitlist

    پس از نصب افزونه یک بخش جدید با عنوان Wait List در پیشخوان وردپرس سایت اضافه می شود. این افزونه تنظیمات متعددی دارد که در زیر به آن می پردازیم.

     تنظیمات مربوط به قسمت Main

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

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

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

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

    Waitlist Button Text : متن موردنظر خود را برای دکمه بالایی وارد کنید.

    Modal Animation : مدل انیمیشن دکمه را در این بخش تنظیم کنید.

    باخبر شدن از موجودی محصولات ووکامرس با WooCommerce Waitlist

     تنظیمات مربوط به قسمت Email

    From:Email : ایمیل مورد نظر  را برای ارسال اطلاعیه ها در این بخش وارد کنید.

    From:Name : یک عنوان مناسب برای ایمیل خود مشخص کنید.

    Select Logo : لوگوی دلخواه برای درج در ایمیل وارد کنید.

    Align Email : تنظیمات مربوط به نحوه قرار گیری متن ایمیل  در این بخش وجود دارد.

    Preview Email : پیش نمایش ایمیلی که تنظیم کردید.

    باخبر شدن از موجودی محصولات ووکامرس با WooCommerce Waitlist

    صفحه افزونه WooCommerce Waitlist



    شهربانو دوستی
    ۱۱مرداد

    باسلام. در خدمت شما هستیم با کتاب آموزش محیط نرم افزار بازی سازی GameMaker از وب سایت آموزش برنامه نویسی سورس باران.  نرم افزار Game Maker که ساخت شرکت Yoyo Games است محیطی بسیار ساده دارد که مبتدیان می توانند با استفاده از آن بهتر از دیگر نرم افزار ها بازی بسازند.

    این کتاب که در ۲۵ صفحه ارائه شده است و نویسنده آن آقای محمد مرادی می باشد به معرفی محیط این برنامه خواهد پرداخت.

    کتاب آموزش GameMaker

    • آموزش محیط نرم افزار GAMEMAKER
    • سخن نویسنده
    • پیشگفتار
    • دریافت و نصب نرم افزار GameMaker
    • نوار منوها در GameMaker
    • نوار ابزار در GameMaker
    • پوشه ها در GameMaker
    • تنظیمات اصلی نرم افزار GameMaker
    • نکته ای در مورد بازی سازی GameMaker
    • تنظیمات اسپرایت GameMaker
    • تنظیمات صدا ها GameMaker
    • تنظیمات پس زمینه GameMaker
    • تنظیمات آبجکت GameMaker
    • مثال از یک رویداد و عکس العمل آن GameMaker
    • تنظیمات روم GameMaker
    • سخن آخر
    شهربانو دوستی
    ۱۰مرداد

    صنعت توسعه وب هر روز در حال پیشرفت و توسعه است. این موضوع میتواند برای فریلنسر ها مزایای داشته باشد، با این حال معایبی هم برای آنها به همراه خواهد داشت. اما معایب این توسعه هر روزه چیست؟

    frelancer

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

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

    برند شخصی چیست؟

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

    چرا باید یک برند شخصی برای خود داشته باشید؟

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

    1. یک برند شما را در جمعیت فریلنسر ها شاخص نشان میدهد

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

    2. با یک برند، خودتان را یک متخصص جلوه میدهید

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

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

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

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

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

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

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

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

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

    1.مهم‌ترین چالش‌های آنها کدامند؟

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

    2.هدف  آنها چیست؟

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

    3.بدانید مشتریان تان اطلاعاتشان را از کجا میگیرند؟

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

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

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

    مجموعه ای را به صورت آنلاین برای نمونه کار برای خود ایجاد کنید

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

    برخی از مراحلی که در زمان ساخت این مجموعه باید انجام دهید، عبارت اند از :

    1.درخواست های واقعی مشتریان واقعی خود را بشناسید

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

    2.راه حل هایی را فراهم آورید

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

    برای روی موارد زیر تمرکز کنید :

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

    3.خدمات خود را ضروری کنید

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

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

    ادامه دارد.....

    #فریلنسر

    منبع: لرن سورس


    شهربانو دوستی
    ۱۰مرداد

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

    coding-for-adults

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

    عمق Pipeline 

    Pipeline ها شبیه به شستن لباس ها هستند :

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

    1_tgrjndZuYHCJhpO2In0m_g

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

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

    1_mflEusCcRDfu_jFAG-N09A

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

    پهنای Pipeline 

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

    1_gJk28LHXdvGpNAYGl90SDw

    فرض کنید که برنامه اسمبلی زیر را داشته باشید :

    1_uRz8fKCedPP_UXh0hPGn_g

    به دلیل وابستگی ببین دستورالعمل‌ها، بهترین حالتی که می‌توانیم برای اجرای دستورالعمل ها انتظار داشته باشیم، به صورت زیر است :

    1_anoVPTHdO0m_v6UOFCxqYw

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

    باز کردن حلقه

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

    1_caxXxTTAF5w1lRCre6OX1g

    توجه داشته باشید که حالا ۱۲ دستورالعمل از ۱۴ دستورالعمل در حلقه به صورت جفت اجرا می شود. برای هر چهار تکرار حلقه، ۸ کلاک زمان نیاز است و یا به عبارتی دیگر به دو کلاک زمان برای هر تکرار نیازمندیم که در این صورت زمان اجرا کاهش قابل توجهی خواهد داشت.

    نتیجه

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

    #کامپایلر #مفسر

    منبع: لرن سورس


    شهربانو دوستی