خانه / ۱۳۹۷ / آبان

بایگانی ماهانه: آبان ۱۳۹۷

برترین پکیج‌های پایتون برای توسعه دهندگان

در سال‌های اخیر شاهد گسترش چشم‌گیر زبان برنامه‌نویسی Python در میان توسعه‌دهندگان بوده‌ایم و این در حالی است که هم توسعه‌دهندگان تازه‌کار و هم حرفه‌ای‌ها از این زبان برنامه‌نویسی با آغوش باز استقبال کرده‌اند. پایتون به سادگی، کارایی و چندکاره بودن مشهور است و شرکت‌های بزرگی مانند اینستاگرام از پایتون برای ساخت نرم‌افزارهای تحت وب خود استفاده می کنند.(دوره جامع آموزش پایتون) در این مقاله می خواهیم با برترین و بهترین برترین پکیج‌های پایتون برای توسعه دهندگان نرم افزار و وب آشنا شویم. ۱.فریمورک‌ جنگو (Django) جنگو به طور قطع یکی از فریمورک‌های توسعه یافتهٔ وب است که کاربردهای متنوعی دارا است. اگر به یک back-end برای وبلاگ شخصی نیاز دارید یا می‌خواهید برای کسب‌وکار خود یک سیستم مدیریت محتوای خوبی طراحی کنید، جنگو می‌تواند به شما کمک کند تا از صفر، یک وب اپلیکیشن کاملاً مجهز درست کنید.(دوره جامع آموزش پایتون). ۲.فریمورک سلنیم (Selenium) فریمورک سلنیم یک فریمورک وب است که زبان‌های بسیار زیادی از جمله پایتون را پشتیبانی می‌کند. یک توسعه‌دهنده با استفاده از سلنیوم و از طریق کمی کدنویسی می‌ت..

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

۶ روش آسان برای سرعت بخشیدن به اپلیکیشن های react native

در این مقاله برخی از نکاتی که برای سرعت بخشیدن به اجرای اپلیکیشن react native و رسیدن به نرخ‌های فریم (FPS) بالا نیاز است را بررسی می‌کنیم. 1. استفاده از PureComponent یا shouldComponentUpdate PureComponent در React پیش از به‌روزرسانی کامپوننت مقایسه‌ای سطحی از props و state صورت می‌دهد. این قابلیت باعث می‌شود که کامپوننت تنها در صورتی مجدداً رندر شود که تغییراتی در props یا state ایجاد شده باشد. متد چرخه عمر shouldComponentUpdate به طور منظم اجرا می‌شود تا کامپوننت‌های ناخالص React با بازگشت مقدار false در سناریوهای خاص رندر مجدد را لغو کنند. دو قطعه کد زیر مفاهیم فوق را به صورت عملی نشان می‌دهند: class MyComponent extends React.PureComponent { // } class MyComponent extends React.Component { // shouldComponentUpdate(nextProps, nextState) { if(this.props.firstProp === nextProps. firstProp && this.props.secondProp === nextProps.secondProp) { return false; } return true } // } هر دو نمونه از کد فوق می‌توانند به کاهش رندرهای بیهوده کمک کنند. مثال اول از پیاده‌سازی منطق shouldComponent..

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

الگوریتم های زمان بندی در سیستم عامل — راهنمای جامع

ابزار زمان بندی پردازش به منظور زمان‌بندی پردازش‌های مختلف که بر مبنای الگوریتم‌های زمان‌بندی خاصی به CPU تحویل داده می‌شوند، مورد استفاده قرار می‌گیرد. شش الگوریتم زمان‌بندی پردازش وجود دارند که در این نوشته به بررسی آن‌ها می‌پردازیم: زمان‌بندی «اجرا به ترتیب ورود» (First-Come, First-Served) یا به اختصار (FCFS) زمان‌بندی «کوتاه‌ترین کار بعدی» (Shortest-Job-Next) یا به اختصار (SJN) زمان‌بندی اولویت (Priority) زمان‌بندی کوتاه‌ترین زمان باقیمانده (Shortest Remaining Time) زمان‌بندی نوبت گردشی یا راند رابین (Round Robin) یا به اختصار (RR) زمان‌بندی صف‌های چند سطحی (Multiple-Level Queues) اجرا به ترتیب ورود (FCFS) این روش زمان‌بندی کارها، خصوصیات زیر را دارد: وظایف به ترتیب ورود اجرا می‌شوند. یک الگوریتم زمان‌بندی غیر preemptive و pre-emptive است. درک و پیاده‌سازی آسانی دارد. پیاده‌سازی آن مبتنی بر صف FIFO است. عملکرد آن پایین است، زیرا میانگین زمان انتظار بالا است. زمان انتظار هر پردازش به صورت زیر است: پردازش زمان انتظار: زمان سرویس – زمان رسیدن P0 0 – 0 = 0 P1 5 – 1 = 4 P2 8 – 2 = ..

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

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

در این نوشته قصد داریم یکی از مسائلی را که در موارد متعددی هنگام برنامه‌نویسی ممکن است با آن مواجه شویم بررسی کنیم. در بسیاری از موقعیت‌ها لازم می‌شود که موارد تکراری در آرایه‌ها را بیابیم. در ادامه به بیان دقیق مسئله و روش‌های ممکن برای حل آن می‌پردازیم. مسئله: یافتن موارد تکراری در آرایه‌ها فرض کنید آرایه‌ای با n + 1 عضو عدد صحیح بین 1 تا n وجود دارد و ما باید یک عضو تکراری را پیدا کنیم. اگر چند عضو تکراری وجود داشته باشند، باید یکی از آن‌ها را بازگشت دهیم و اگر هیچ عضو تکراری وجود نداشته باشد، باید مقدار 1- را بازگشت دهیم. مثال ورودی: [1, 2, 2, 3] خروجی: 2 ورودی: [3, 4, 1, 4, 1] خروجی: 4 یا 1 فرایند حل مسئله پیش از آن که به مشاهده راه‌حل‌ها بپردازیم، ابتدا کمی در مورد مسئله صحبت می‌کنیم. می‌دانیم که آرایه‌ای به طور n +1 از اعداد صحیح بین 1 تا n داریم. برای نمونه در آرایه‌ای با 5 عضو به صورت عدد صحیح این تعریف بدان معنی است که هر عدد صحیح مقداری بین 1 تا 4 دارد. یعنی به طور خودکار دست‌کم یک مورد تکراری وجود دارد. تنها استثنا در حالت آرایه با اندازه 1 است. این تنها موردی است که..

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

عدد ماخ — به زبان ساده

در مکانیک سیالات، ماخ به عددی بی‌بعد گفته می‌شود که توصیف کننده میزان سرعت یک جسم نسبت به سرعت صوت است. به بیانی دقیق‌تر عدد مذکور نشان دهنده نسبت سرعت محلی جسم به سرعت صوت است. با توجه به این توصیفات عدد ماخ را می‌توان با استفاده از رابطه‌ی زیر محاسبه کرد. $${displaystyle mathrm {M} ={frac {u}{c}}}$$ در رابطه فوق M برابر با عدد ماخ، u سرعتِ جسم و c نشان دهنده‌ی سرعت صوت در سیالی است که جسم در آن در حال حرکت است. برای نمونه اگر جسم در هوایی با دمای ۲۵ درجه در حال حرکت است، c نیز سرعت صوت را در همان هوا نشان می‌دهد. برای نمونه سرعت صوت در هوای ۲۵ درجه حدود ۳۴۳ کیلومتر بر ساعت است. هواپیمای SR-71 معروف به پرنده سیاه که متعلق به ارتش الایات متحده است، با سرعتی معادل با ۳.۲ ماخ پرواز می‌کند. در حقیقت سرعت این جنگنده برابر است با: $$large V=343×3.2=1100 enspace km/h $$ با توجه به تعریف و رابطه‌ی فوق، M=1 نشان دهنده‌ی حالتی است که در آن سرعت صوت و سرعت جسم با هم برابر هستند. در ماخ برابر با ۰.۶۵، سرعت جسم ۶۵ درصد سرعت صوت و در ماخ ۱.۳۵ سرعت صوت ۳۵ درصد بیشتر از سرعت صوت است. انیمشین..

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

عبارت های شرطی در جاوا اسکریپت — راهنمای پیشرفته

عبارت های شرطی جنبه بسیار مهمی از ساختار هر زبان برنامه‌نویسی محسوب می‌شوند. اگر تاکنون به هر زبانی برنامه‌نویسی کرده باشید، احتمالاً با عبارت‌های شرطی مانند if..elif..else یا switch آشنا شده‌اید. این عبارت‌ها برای تصمیم‌گیری در برنامه‌ها نیز بسیار مهم هستند. برای نمونه فرض کنید یک صندوق گنج طوری طراحی شده است که تنها صاحب آن بتواند صندوق را باز کند. این منطق را از لحاظ برنامه‌نویسی در زبان پایتون می‌توان به صورت زیر نمایش داد: if person == 'Glad': # Open the treasure chest for Glad TreasureChest.open() else: # Don't open the chest for any other person TreasureChest.ignore() با این که قطعه کد فوق به زبان پایتون نوشته شده است؛ اما این مقاله منحصراً در مورد جاوا اسکریپت است. با این وجود بیشتر تکنیک‌هایی که می‌بینید را می‌توان در هر زبان برنامه‌نویسی دیگری نیز استفاده کرد. در ادامه این مقاله تنها مثال‌هایی از زبان برنامه‌نویسی جاوا ارائه خواهیم کرد. همچنین تأکید بیشتری را روی عبارت‌های شرطی با استفاده از عملگرهای منطقی (conditional expressions) در جاوا اسکریپت خواهیم داشت..

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

راهنمای نصب (Linux، Nginx، MySQL، PHP (LEMP روی اوبونتو — به زبان ساده

مجموعه نرم‌افزاری LEMP که اختصاری برای نرم‌افزارهای لینوکس، انجین‌ایکس، مای‌اس‌کیوال و پی‌اچ‌پی است به منظور ارائه صفحه‌های وب پویا و وب اپلیکیشن‌ها مورد استفاده قرار می‌گیرد. این عبارت اختصاری برای توصیف سیستم عامل لینوکس، با وب‌سرور Nginx است. داده‌های بک‌اند در پایگاه داده MySQL ذخیره می‌شود و وظیفه پردازش پویای داده‌ها نیز بر عهده زبان برنامه‌نویسی PHP است. در این راهنما شیوه نصب پشته LEMP را روی سرور اوبونتو نسخه 18.04 با هم مرور می‌کنیم. سیستم عامل لینوکس اوبونتو نخستین موردی است که باید نصب شود. در ادامه شیوه اجرا و راه‌اندازی باقی کامپوننت‌ها را نیز ارائه خواهیم کرد. پیش‌نیازها پیش از این که به مطالعه این راهنما بپردازید، باید یک حساب معمولی غیر root روی سرور با دسترسی‌های sudo داشته باشید. اگر می‌خواهید در این مورد بیشتر بدانید، می‌توانید از «آموزش نصب توزیع اوبونتو» و همچنین راهنمای «راه‌اندازی اولیه سرورهای اوبونتو» استفاده کنید. زمانی که کاربر مورد نظر را ایجاد کردید، آماده هستید تا بقیه مراحل این راهنما را مطالعه کنید. گام 1 – نصب وب‌سرور Nginx برای نمایش صفحه‌های وب ب..

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

حل معادله درجه ۳ — به زبان ساده

پیش‌تر در وبلاگ فرادرس نحوه حل معادلات درجه دوم را بیان کردیم. در این مطلب قصد داریم تا یک قدم به جلو‌تر رفته و روش حل معادله درجه ۳ را شرح دهیم. مقدمه در مطلب معادلات درجه دوم، شکل عمومی یک معادله درجه ۲ و پاسخ مرتبط با آن را به‌صورت زیر بیان کردیم: عبارت $$b^2-4ac$$ را دلتا ($$Delta$$) نامیده و پاسخ‌های معادله متناسب با شرایط دلتا به‌صورت زیر پیدا شدند: اگر $$Delta>0$$ باشد، معادله درجه ۲ دارای دو پاسخ حقیقی است. اگر $$Delta=0$$ باشد، معادله دارای دو پاسخ مشابه (یا اصطلاحا ریشه مضاعف) است. اگر $$Delta<0$$ باشد، معادله در اعداد حقیقی پاسخی نخواهد داشت. مشابه با معادله درجه ۲،‌ به منظور حل معادله درجه ۳ نیز می‌توان پاسخی به‌صورت عمومی اما پیچیده‌تر بدست آورد. جالب است بدانید برای معادلات درجه ۴ و بالاتر نیز می‌توان روابط کلی ارائه داد، اما روابط مذکور بسیار پیچیده خواهند بود. معادله درجه ۳ جهت حل معادله درجه ۳ در ابتدا بایستی با قالب کلی این نوع از معادلات آشنا باشید. شکل عمومی یک معادله درجه ۳ به‌صورت زیر است. رابطه ۱ در برخی از موارد ممکن است شکل اولیه‌ای از معادله درجه ۳ ک..

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

یادگیری نظارت نشده (Unsupervised Learning) با پایتون — راهنمای جامع و کاربردی

«یادگیری نظارت نشده» (Unsupervised Learning) یک دسته از روش‌های «یادگیری ماشین» (Machine Learning) برای کشف الگوهای موجود در میان داده‌ها است. داده‌های ارائه شده به الگوریتم نظارت نشده دارای برچسب نیستند، بدین معنا که متغیر ورودی (X) بدون هیچ متغیر خروجی متناظری داده شده است. در یادگیری نظارت شده، الگوریتم‌ها به حال خود رها می‌شوند تا ساختارهای جالب موجود در میان داده‌ها را کشف کنند. «یان لیوکن» (Yann LeCun)، دانشمند کامپیوتر فرانسوی و پدر بنیان‌گذار «شبکه عصبی پیچشی» (Convolutional Neural Networks | CNN)، یادگیری ماشین نظارت نشده را چنین تعریف کرده است: «آموزش دادن ماشین‌ها برای یادگیری برای خودشان بدون آنکه به آن‌ها صراحتا گفته شود کاری که انجام می‌دهند درست محسوب می‌شود یا غلط. یادگیری نظارت نشده راهی به سوی هوش مصنوعی «حقیقی» است.» یادگیری نظارت شده و نظارت نشده در یادگیری نظارت شده، سیستم در تلاش برای یادگیری از مثال‌های قبلی است که به آن داده شده. (به عبارت دیگر، در یادگیری نظارت شده، سیستم در تلاش برای پیدا کردن الگوها از مثال‌هایی است که به آن داده شده.) بنابراین، اگر مجموعه د..

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

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

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

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