شاید خیلی از واقعیت دور نباشد اگر بگوییم که زمان دیباگکردن در لاراول به اندازی زمان برنامهریزی و کدنویسی برای یک برنامه در لاراول باشد، بنابراین برای شناخت بهتر و دقیقتر رایجترین تکنولوژیهای دیباگ کردن در لاراول از کوچکترین آنها تا بزرگترین آنها با ما همراه باشید.
Dump و Die جز پرکاربردترین خصوصیتهای لاراول برای دیباگکردن هستند، با استفاده از این توابع میتوانید پارامتر ورودی آنها را چاپ کنید و ادامه اجرای کدها را متوقف کنید، به این شکل که شما میتوانید از آن در زمان چک کردن مقدار یک متغیر و یا هر چیز دیگر به عنوان نقطه شکست کدنویسی (عدم اجرای ادامه کدها) استفاده کنید.
// dumps the variable out and stops the code running as well
dd($toInspect);
توجه: شما میتوانید به سادگی از کالکشنهای خود dumpبگیرید:
collection(…)->dd()
Tinker یکی دیگر از ابزارهای جذاب است که به طور پیشفرض همراه لاراول قرار دارد. وقتی که ما نیاز به این داریم که یک چیز مثل یک مدل و یا یک سرویس کوچک را تست کنیم، این ابزار میتواند مفید باشد. یکی از امتیازات این ابزار این است که برای اجرا فقط کافی است که در command خود بنویسیم php artisan tinker و کد را در کنسول خود اجرا کنیم، سپس میتوانیم به سرعت نتایج را مشاهدهکنیم و نیازی به تغییر کد اصلی خود نداریم.
لاگزدن در مواردی میتواند بسیار مفید باشد، برای مثال اگر ما نیاز به فهمیدن اینکه چه اتفاقی در درخواست ajax رخ میدهد داشته باشیم، همچنین در بسیاری از موارد dd() به کار نمیآید بنابراین ما به سادگی میتوانیم دادهها را لاگ بزنیم و نتایج آن را در فایل لاگ بررسی کنیم.
بیایید راهحلهای کوچک را کنار بگذاریم، debugbarیک راهحل دستی مانند موارد قبلی نیست. با استفاده از آن شما میتوانید به سادگی اپلیکیشن خود را بررسی کنید. شما میتوانید کوئریها،پیامها،درخواستها،روتها،viewها و خیلی چیزهای دیگر را بررسی کنید. این ابزار میتواند برای یک شرکت مفید باشد به خصوص در هنگام کار با اپلیکیشنهای بزرگ.
بیاید یک قدم جلوتر برویم، Laravel Telescope پکیجی است که به شما در نظارت بر فعالیتهای اپلیکیشنتان کمک میکند. این پکیج میتواند خیلی مفید باشد به خصوص اگر اپلیکیشن شما شامل برخی ویژگیهایی باشد که ردیابی و حل مشکلات آن با روشهای سادهی بالا امکان پذیر نباشد این پکیج برای نظارت کامل بر روی اپلیکیشنها ساخته شدهاست، اما ما میتوانیم به این پکیج به عنوان یک debugbar قابل تعمیم نگاه کنیم.
تلسکوپ رویه مخصوص به خود را دارد، بنابراین در این پکیج شما نیازی به سفارشیسازی و یا ایجاد هیچگونه مرحله اضافی ندارد. وبسایت Laracasts یک ویدیوی مناسب برای معرفی تلسکوپ دارد، پیشنهاد ما این است که حداقل یک دفعه آن را تماشا کنید.
بر حسب گزارشات رسیده تا سال ۲۰۲۰ حدود ۴۳ درصد از کسانی که در حوزه آی تی کار می کنند، فریلنسر خواهند بود. نه تنها در صنعت نرمافزار بلکه در صنایع دیگر نیز این موضوع در حال رشد است و البته به همین دلیل است که می توانید مقالات زیادی را در مورد فریلنسر ها در اینترنت پیدا کنید.
اما اگر از این کار نمی توانید سود زیادی کسب کنید چه کاری باید انجام دهید؟ در این حالت می توانید به یک برنامه نویس تمام وقت تبدیل شوید. اگر چه این کار می تواند کمی چالش برانگیز باشد، با این حال انتقال از یک برنامه نویس مستقل به یک برنامه نویس تمام وقت چندان دشوار هم نیست. شما در محیط جدیدی قرار میگیرد و با افراد جدیدی روبرو میشوید. اما ماهیت کاری که انجام می دهید چندان با قبل تفاوتی نخواهد داشت.
برای اینکه بتوانید به خوبی خود را با محیط اطراف وفق دهید و موفقیتهای زیادی را به دست آورید نکاتی وجود دارند که باید به خاطر بسپارید. البته اینها نکاتی هستند که برنامه نویسان فریلنسر اصلاً لازم نیست به آن عمل کنند، اما اگر به عنوان یک برنامه نویس تمام وقت در یک شرکت استخدام شدید، این نکات برای شما مهم است.
در حالیکه فریلنسرها برنامه زمانی خود را تنظیم میکنند، برنامه نویسان تمام وقت باید کار خود را بین ساعات مشخصی انجام دهند. این تفاوت و تبعیض می تواند کمی ناراحت کننده باشد، اما به زودی به این حالت عادت میکنید و می توانید زندگی بهتری داشته باشید. زنگ هشدار خود را زودتر از زمانی که نیاز است تنظیم کنید، این کار باعث می شود که خوابتان نبرد، زیرا باید سر موقع در محل کارتان حضور پیدا کنید.
همچنین در فرصتی که دارید می توانید به فعالیت های مورد علاقه خود بپردازید. شاید شما دوست داشته باشید قبل از رفتن به سرکار صبحانه بخورید و یا حرکات ورزشی انجام دهید. توجه داشته باشید که دیگر یک فریلنسر نیستید و باید به قوانین شرکت خود احترام بگذارید.
اگر به عنوان یک برنامه نویس تمام وقت در یک شرکت نرم افزاری استخدام شده اید شانس خوبی خواهید داشت که به تیمی که از قبل وجود داشته است بپیوندید. هر تیمی یکسری میانبر و قرارداد را برای فایل ها و پروژه هایش دارد، این عبارات و اصطلاحات را تا حد امکان هر چه زودتر یاد بگیرید. پروژهها باید هرچه سریعتر پیش روند و فرصتی برای پرسیدن سوالات تکراری وجود ندارد.
برای صرفه جویی در زمان خود در مراجعات بعدی به هر کلمه و اصطلاح میانبری که می رسید آن را یادداشتبرداری کنید. این یادداشتها را تا مسلط شدن کامل به آنها بر روی میز خود داشته باشید.
با توجه به اینکه یادداشت برداری می کنید، از کامنت گذاری نیز دریغ نکنید در غیر اینصورت کد های شما ممکن است کار دیگران را به تعویق بیاندازد و باعث کندی کار آن ها شود. اگر جزو آن دسته از توسعهدهندگانی هستید که اعتقادی به نوشتن کامنت ها در برنامههای خود ندارند، به فرهنگ شرکت خود توجه کنید.گاهی اوقات قرار دادن کامنت های اضافی خیلی بهتر است قرار ندادن آنها است زیرا با این کار خطر سوء تفاهم را تا حد زیادی کاهش می دهید.
وقتی برای خودتان کار میکنید نوشته های شما ممکن است شخصی تر و مناسبتر برای خودتان باشد، به خاطر داشته باشید که اکنون در یک شرکت حضور دارید، پس کامنتهای شما باید تا حدی رسمی باشد که دیگر اعضا بتوانند به راحتی از آن استفاده کند.
شما اکنون برای یک شرکت کار می کنید و این یعنی هر چیزی که تولید می کنید باید نسبت به هویت تجاری شرکت مناسب باشد. با درک شرکتی که برای آن کار می کنید و تصویری که آنها مایلند شروع کنید. سعی کنید این رویه را در همان مراحل اولیه توسعه به خاطر بسپارید. اگر برای یک شرکت با برنامه های لوکس کار می کنید باید برنامه های لوکس تولید کنید و استاندارد های خود را همیشه یک پله بالا تر نگهداری کنید.
بین مراحل مختلف پروژه چند دقیقهای را برای فکر کردن بگذارید و مطمئن شوید همه چیز متناسب با استانداردهای شرکت شما پیش میرود، در این صورت کارهای شما در آینده به اصلاحات کمتری نیاز خواهد داشت.
اکثر شرکت های توسعه نرمافزار دارای سیستم های پشتیبان هستند، یاد بگیرید که چطور از این سیستم ها استفاده کنید. همیشه کپی هایی از فایل های خود داشته باشید احتمالاً باید نسخه های کپی از پروژه خود را بر روی سیستمی که در شرکت خود بر روی آن کار می کنید نگهداری کنید، همچنین ایده خوبی است که مجموعه ای از فایلهای پشتیبان را بر روی فلش خود نگهداری کنید.
شما همچنین نمیتوانید پیش بینی کنید که قطعی برق چه مشکلاتی را ممکن است برای سرور های شما به وجود آورد، پس باید بدانید بک آپ ها ضروری هستند، البته شما هیچگاه نباید این بکاپ ها را به خانه ببرید و در مورد این موضوع باید با رئیس تان صحبت کنید. کدها و پروژه های یک شرکت سرمایه های آن هستند پس باید با توافق این کار را انجام دهید.
هنگامی که فریلنسر آزاد کار هستید تا زمانی که محصولات خود را به مشتری خود به بفروشید، صاحب آن هستید، اما زمانی که برای یک شرکت کار میکنید صاحب کدی نیستید و ممکن است قراردادهای کاری شما باعث شود محدودیتهای خاصی را رعایت کنید. بسته به قرارداد ممکن است نتوانید در مورد پروژههای خود با دوستان و خانواده خود صحبت کنید.
در بیشتر اوقات نمیتوانید از نرمافزاری که تولید کرده اید برای استفاده های شخصی خود استفاده کنید. قبل از اینکه با یک شرکت شروع به کار کنید حتماً سوالات مربوط به قرارداد را در اولویت قرار دهید تا در آینده دچار مشکل نشوید.
اجتماعی بودن و ارتباط با دیگران برای کار شما بسیار مهم است، وقتی اعضای تیمتان را بشناسید کار کردن با آنها بسیار ساده تر خواهد بود. یک مقدار جامعه پذیری و اجتماعی بودن لازم است در این صورت خواهید فهمید که همکاران شما چگونه فکر می کنند و چطور کارها را انجام میدهد. داشتن روابط مثبت در محل کار باعث میشود بهرهوری شما افزایش یابد پس سعی کنید دوستی های حرف های خود را افزایش دهید.
به عنوان یک فریلنسر شاید عادت داشته باشید به تنهایی کار کنید، خوب است که درون گرا باشید اما باید همچنان مودب بوده و راههای تجربه جدید را برای خود باز نگه دارید. همکاران شما ممکن است پله ترقی شما باشند و شما را در دستیابی به جایگاه های بالاتر در سازمان کمک کند.
برنامه نویسی کاری است که ذهن شما را خسته می کند پس استراحت منظم برای سلامت روان و بینایی شما ضروری است. برخی شرکتها دارای زمانبندی ویژه برای استراحت هستند، اگرچه این موضوع کمتر رایج است سعی کنید ضمن رعایت استانداردهای جدید محل کار خود از این زمان بندی ویژه استفاده کنید. برای اینکه استراحت موثر واقع شود باید چشم خود را از صفحه نمایش جدا کنید، بلند شوید و دور شرکت راه بروید، فنجان قهوه یا بطری آب بنوشید و یا به قطعه هنری که بر روی دیوار نقش بسته است نگاه کنید.
یکی از اصلی ترین مزایای برنامه نویسی تمام وقت ، فضای پیشرفت برای آنها است . به عنوان یک فریلنسر، شما به سختی فرصتی پیدا می کنید تا با همکاران خود صحبت کنید و چیزهای جدیدی از آنها بیاموزید. اما وقتی در یک تیم کار میکنید، این کار به سهولت انجام میشود.
وقتی تمام وقت کار می کنید ، به ناچار با همکاران خود تعامل برقرار می کنید و در جلسات شرکت درگیر می شوید. در این حالت می توانید عادت ها و تکنیک های جدید را انتخاب کنید و چارچوب های جدید و بهترین روش ها را کشف کنید. اغلب این موارد به لطف همکاران شما انجام میشود. اگر می خواهید به یک موقعیت مدیریتی تبدیل شوید ، باید مهارت های رهبری ، ارتباطی و ارائه را خوبی پرورش دهید.
هر تغییر در ابتدا می تواند کمی استرس زا باشد ، اما به یاد داشته باشید که تغییرات همچنین به معنای فرصت هایی برای پیشرفت مهارت های جدید و دستیابی به قله های جدید هستند. درنهایت ، برنامه نویسی تمام وقت و آزاد در واقع تفاوت چندانی ندارند. فقط در حالتی که یک فریلنسر نیستید باید محدودیت هایی را پذیرا باشید.
HTML Slot یکی از قابل توجهترین استانداردهای تولید شده توسط W۳C است.
با ترکیب این استاندارد با استاندارد templates، توانایی ایجاد و افزودن عناصر HTML به صفحه را با استفاده ازJavaScript را دارید.
وقتی که نیاز به یک کد خاص دارید، یا وقتی نمیخواهید ۱۰۰ ساختار مشابه را تایپ کنید، این استاندارد بسیار مناسب است.
تگ Template باید توسط جاوااسکریپت به پروژه اضافه شود تا توسط مرورگرها قابل اجرا باشد.
تگ Slot یک مکان نگهدارنده است که شما میتوانید به Shadow DOM اضافه کنید.
یک Shadow DOM شبیه به یک DOM معمولی است. یک درخت اسکوپ ایجاد میکند که ریشه وسبک خاص خود را دارد. هنگامی که درخت Shadow DOM را در سند اصلی وارد میکنید، تمام عناصر در سند اصلی در زیر گروه Shadow DOM قرار میگیرند.
در داخل <template>، یک <table> تعریف میکنیم.
المنتهای <slot> برای ایجاد سطر و ستونهای جدول به کارمیروند (<td> و<th>).
<template>
<table>
<tr>
<th><slot name='title-1'></slot></th>
<th><slot name='title-2'></slot></th>
</tr>
<tr>
<td><slot name='value-1.1'></slot></td>
<td><slot name='value-1.2'></slot></td>
</tr>
<tr>
<td><slot name='value-2.1'></slot></td>
<td><slot name='value-2.2'></slot></td>
</tr>
</table>
<style>
table {
table-layout: fixed;
border-collapse: collapse;
margin-bottom: 10px;
}
th {
width: 300px;
}
th,
td {
border: 1px solid;
}
</style>
</template>
در قسمت Style بعضی از تنظیمات جدول تعریف شده است.
اگر میخواهیم دو جدول جداگانه به صفحه اضافه کنیم، هر جدول را همراه با مقادیر هر سلول در تگهای <div> و <span> قرار میدهیم.
<div>
<span slot='title-1'>Title A</span>
<span slot='title-2'>Title B</span>
<span slot='value-1.1'>Value A.1</span>
<span slot='value-1.2'>Value A.2</span>
<span slot='value-2.1'>Value B.1</span>
<span slot='value-2.2'>Value B.2</span>
</div>
<div>
<span slot='title-1'>Title C</span>
<span slot='title-2'>Title D</span>
<span slot='value-1.1'>Value C.1</span>
<span slot='value-1.2'>Value C.2</span>
<span slot='value-2.1'>Value D.1</span>
<span slot='value-2.2'>Value D.2</span>
</div>
با استفاده از جاوااسکریپت، جدول را به عنوان یک درخت در Shadow DOM قرار میدهیم.
دستورAttachShadow() درخت Shadow DOM رابه یک المنت متصل کرده و ریشه درخت Shadow DOM برمیگرداند.
شرط if بررسی میکند که مرورگر از این روش پشتیبانی میکند یا خیر.
TemplateShadow متغیری است که به عنوان مرجع برای محتوای قالب به کار میرود.
if('attachShadow' in document.createElement('div')) {
let templateContent = document.querySelector('template').content;
let divs = document.querySelectorAll('div');
divs.forEach(function(div) {
// inside loop
});
}
else
console.warn('attachShadow not supported');
در داخل حلقه forEach، یک درخت Shadow DOM است که به هرشاخه متصل است.
دو حالت برای attachShadow وجود دارد: باز و بسته. اگر در حالت بسته باشد، گره ریشه درخت Shadow DOM برای المنتها و اشیاء DOM غیر قابل دسترس خواهند بود.
سپس با استفاده از متد templateContent.cloneNode(true) یک نسخه از محتوای قالب را به درخت Shadow DOM اضافه میکنیم.
if('attachShadow' in document.createElement('div')) {
let templateContent = document.querySelector('template').content;
let divs = document.querySelectorAll('div');
divs.forEach(function(div){
div.attachShadow({ mode: 'open' }).appendChild(
templateContent.cloneNode(true))
});
}
else
console.warn('attachShadow not supported');
در اینجا نحوه نمایش خروجی در chrome آوردهایم:
https://roocket.ir/articles/html-template-slow-tag-shadow-dom
در مقاله قبل با عنوان "برای غیر قابل توقف شدن، این ۳۰ کار را انجام دهید - بخش اول" ما ۱۶ مورد اول را برای غیرقابل توقف شدن شما ذکر کردیم حالا نوبت به بخش دوم این مقاله رسید است.
وقتی اطراف خود را با افرادی پر می کنید که شما را به یاد گذشته میاندازند، پیشرفت سختی خواهید داشت. به همین دلیل است که نمیتوانیم بعضی قوانین را بشکنیم و آزادانه عمل کنیم. وقتی اطرافتان را با افرادی پر میکنید که آرزو دارید به آنها تبدیل شوید، این اجازه را به خود میدهید که آینده را واضح تر ببینید و در نتیجه میتوانید عملکرد بهتری در برابر مشکلات داشته باشید. شما دیگر توسط گذشته خود تعریف نمیشوید، این آینده است که شما مشغول ساختنش هستید.
غیر قابل توقف بودن نیازمند این است که شما هیچ بار ذهنی و عاطفی را به دوش نکشید. در نتیجه، باید فورا تمام کسانی را که به شما آسیب رساندند ببخشید. هر چند، بخشیدن به معنای فراموش کردن نیست. و به این معنا هم نیست که شما باید با کسانی که شما را به اشتباه انداخته اند، همکاری بیشتری انجام دهید.
جاش وایتکینز میگوید:« در حالی که ثابت ماندن روی نتایج به طور قطع ناخوشایند است، اگر اهداف کوتاه مدت در یک فلسفه ی بلندمدت پرورش داده شوند، میتوانند ابزارهای توسعه دهنده مفیدی باشند.»
با توجه به تحقیقات زیادی که در این باره شده است، انگیزشی ترین اهداف، مشخص و محدود به زمان هستند. اهدافتان می تواند روی رفتار یا نتایج دلخواه شما نیز متمرکز شده باشد. برای اکثر مردم، اهداف متمرکز بر رفتار، بهتر و موثرتر هستند. اهداف متمرکز بر نتایج، زمانی بهتر هستند که ریشه در دیدگاه و فلسفه ی بلندمدت داشته باشند. زمانی که دلیل انجام کاری را بدانید، چگونگی انجام آن به راحتی مشخص میشود.
Cato میگوید:« کسی که تردید دارد، گمراه میشود.»
منتظر یک اتفاق (چه مثبت و چه منفی) ماندن، همیشه تنش زا تر از خود اتفاق است. فقط انجامش دهید. به خودتان این آموزش را دهید تا در صورتی که حس کردید باید کاری کنید، جواب فوری به مسائل دهید. از سوال پیچ کردن خودتان دست بردارید. مسائل را تجزیه و تحلیل نکنید. نپرسید که آیا منشا این کار مثبت است یا منفی، فقط عمل کنید.
مطمئن باشید که با اولین حرکت متوجه حرکت های بعدی میشوید. تا زمانی که دست به کار نشوید، کارها فرضی هستند اما زمانی که وارد عمل میشوید، کارها عملی میشوند.
آلبرت انیشتین گفته است:« اگر نتوانید موضوعی را به سادگی توضیح دهید، یعنی به خوبی آن را درک نکرده اید.»
خیلی آسان میتوان پیچیده شد. اکثر تحقیقات و اصطلاحات در آکادمی و تجارت، بیش از حد پیچیده است. مو شکافانه عمل کردن تا به حقیقت رسیدن دشوار است، چون بسیار آسان است. همانطور که لئوناردو داوینچی گفته است:« ساده سازی، پیچیدگی نهایی است.»
افراد کمی هستند که به شما حقیقت را میگویند. هنگامی که از آنها سوال میپرسید، موضوع خیلی پیچیده میشود. آنها معمولا در جواب میگویند "متغیرهای زیادی وجود دارد" یا "بستگی دارد".
T.S.Eliot به زیبایی گفته است:« حکمتی را که ما در دانش گم کرده ایم، کجاست؟ دانشی را که در اطللاعات از دست داده ایم، کجاست؟»
حکمت بی انتها و ساده است. آن را انتخاب کنید و بیاموزید.
غیر قابل توقف بودن یعنی شما واقعا برای همه، حتی رقبای خود، بهترین ها را میخواهید. حسادت از ترس سرچشمه میگیرد. دلیل خوشحالی شما از به موفقیت رسیدن دیگران این است ک موفقیت آنها هیچ ربطی به موفقیت شما ندارد. شما خودتان را تحت کنترل دارید و با دیگران فرق دارید. هیچکسی نمیتواند کاری که شما میکنید را دقیقا انجام دهد. شما قدرت و توانایی های خاص خودتان را دارید. با استفاده از همین توانایی هاست که به موفقیت میرسید.
بازاریاب و نویسنده، Seth Godin، میگوید:« اگر من بیشتر از شما شکست بخورم، برنده هستم.»
شما با نادیده گرفتن هر فرصت، آن را از دست میدهید، و اکثر مردم نمیخواهند از فرصت هایشان استفاده کنند چون ترس از شکست آنها را فلج میکند. تنها راه غیرقابل توقف شدن این است که دیگر به شکست خوردن فکر نکنید و فقط از فرصت استفاده کنید. این کار را فقط زمانی که احساس راحتی و آمادگی می کنید انجام ندهید. بروید و هر تغییری که احتیاج است را اعمال کنید.
همیشه به یاد داشته باشید که چه چیزی شما را به این نتایج رسانده است: "کار کردن"
زمانی که شروع به انجام کارهای با ارزش میکنید، مزایایی وجود دارند که میتوانند حواستان را پرت کنند. به تمرین ادامه دهید. بهترین عملکرد را داشته باشید و هیچوقت فراموش نکنید که چه چیزی شما را به اینجا رسانده است.
دن سالیوان میگوید:« هنگامی که وسیله اندازه گیری شما ۱۰ برابر است، سریعا متوجه میشوید که چگونه میتوانید از کاری که دیگران انجام میدهند میانبر بزنید.»
اکثر مردم ۱۰ برابر کار نمیکنند. در حقیقت، اگر بتوانید سیستم تفکر و اعتقاداتتان را منعطف کنید، میتوانید از هر کسی پیشی بگیرید. ۱۰ برابر عمل کردن همه چیز را تغییر میدهد. همانطور که دن سالیوان گفته است:« تفکر ۱۰ برابر، شما را از جعبه ی موانع و محدودیت های زمان حال بیرون میکشد.»
۱۰ برابر کار کردن شما را از مشکلاتی بیرون میکشد که بیشتر مردم درگیر آن هستند و دری به روی احتمالات جدید باز میکند. وقتی هدف خود را از درآمد ۱۰۰ هزار دلاری در سال به ۱ میلیون دلار در سال تبدیل میکنید، مجبور هستید تا در سطح متفاوت تری فعالیت داشته باشید. رویکرد منطقی و قدیمی، تطابقی با کار ۱۰ برابر ندارد. طبق گفته های شین اسنو:« پیشرفت ۱۰ برابر، بر روی پایه های شجاعت و خلاقیت ساخته شده است.»
سوال این است که: آیا مایل هستید تا به این حد برسید؟ اینکه فقط برای چند روز طرز فکر خود را تغییر دهید و پس از مدتی دوباره به تفکر قدیمی خود برگردید درست نیست.
آیا حاضرید ۱۰ برابر فکر کنید؟
آیا مایل هستید تا افکار خود را زیر سوال ببرید و دری کاملا متفاوت به روی احتمالات جدید باز کنید؟
آیا میتوانید خودتان را قانع کنید که به پتانسیل ۱۰ برابر خودتان اعتماد کنید؟
آیا حاضرید اهدافی را به عهده بگیرید که از نظر همه احمقانه و دیوانه کننده میآید؟
پاول آردن میگوید:« هدف شما باید فراتر از قابلیت های شما باشد. اگر تصور میکنید نمیتوانید در حوزه کاری خود در یکی از بهترین شرکت ها کار کنید، همین را هدف خود قرار دهید. اگر تصور میکنید که نمیتوانید در مجله Time قرار بگیرید، مسیر فعالیت های خود را برای رسیدن به این هدف تغییر دهید. برای خود، دیدگاهی از موقعیتی که میخواهید واقعیت داشته باشد بسازید، هیچ چیز غیر ممکن نیست.»
اگر اهدافتان منطقی باشند، شما را مجبور به ایجاد فرصت نمیکنند. غیر قابل توقف بودن یعنی اهدافتان شما را به چالش میکشند تا به فرد بهتری تبدیل شوید. همانطورکه جیم ران گفته است:« آرزو نکنید که ای کاش کارها راحت تر بود، آرزو کنید که ای کاش شما بهتر بودید.»
دن سالیوان میگوید:« هر کجا که هستید، مطمئن شوید در آنجا حضور دارید.»
وقتی به جای مشغله کار روی نتایج تمرکز میکنید، میتوانید از ۱۰۰ درصد توانایی خود در زمان کار کردن و ۱۰۰ درصد از پتانسیل خود را در موقع استراحت استفاده کنیم. این کار نه تنها این اجازه را به شما میدهد که در زمان، حال حاضر باشید بلکه زمان کافی برای استراحت و بهبودی را نیز به شما میدهد.
توانایی شما در کار کردن در سطح بالاتر، شبیه به ورزش فیتنس است. اگر بین هر ست از تمرین استراحت نکنید، نمیتوانید قدرت و استقامت خود را افزایش دهید. اگر چه، هر استراحتی بهبودی به ارمغان نمیآورد. برخی چیزها نسبت به چیزهای دیگر تسکین دهنده تر هستند. برای من ریکاوری شامل نویسندگی، آهنگ گوش دادن، گذراندن زمان با همسر و فرزندانم و پختن غذایی خوشمزه در خانه است. این کارها واقعا حال مرا سر جایش میآورند و کار کردن را برایم ممکن میسازند. این کارها، معنای بهتری به شغلم میدهند.
بیشتر مردم صبر میکنند. آنها باور دارند که بعد از اینکه به اندازه کافی زمان، پول، نفوذ و اعتبار بدست آوردند میتوانند شروع کنند. آنها انقدر صبر میکنند تا احساس "امنیت" کنند. افراد غیر قابل توقف هرگز همچین کاری نمیکنند. آنها از سال پیش شروع کرده اند. آنها ۵ سال قبل از اینکه بدانند در حال انجام چه کاری هستند شروع کرده اند. آنها بدون داشتن جواب و پول کافی شروع کرده اند. آنها زمانی شروع کرده اند که هیچکسی به آنها باور نداشت. تنها اجازه ای که آنان نیاز داشتند، صدای درونشان بود که به آنها اجازه ی حرکت به سمت ناشناخته ها را میداد.
مربی من یک سرمایه گذار بسیار موفق است. در حرفه کاری اش، هزاران نفر از او پرسیدند که آیا باید فلان کار را انجام دهند یا نه. او به تمام آنها گفت که بهتر است آن کار را انجام ندهند. و در بسیاری از مواقع هم موفق شده بود با این حرف ها بسیاری را از انجام کار منصرف کند. اما چرا او این کار را انجام میدهد؟ او به من گفت:« آنهایی که میخواهند به موفقیت برسند بدون توجه به حرف های من، همان کاری را میکنند که خودشان میخواهند.»
من افراد زیادی را میشناسم که به دنبال کارهایی بودند که برای دیگران کارساز بود. آنها هیچوقت تصمیم نگرفتند که خودشان واقعا چه چیزی میخواهند، و در آخر از این کار به آن کار میروند و انتظار رسیدن به موفقیت سریع را دارند. آنها تنها چند متر با موفقیت فاصله دارند اما متوقف میشوند، مسیر فعلی را بی ثمر تصور میکنند و مسیر شخص دیگری را در پیش میگیرند چون هدف مشخصی ندارند.
هیچکس هیچوقت همچین حقی را ندارد که به ما شما اجازه دهد تا برای آرزوهایتان زندگی کنید.
زیگ زگلارداستانی از سفرش را تعریف کرد که تا ساعت ۴:۰۰ صبح به رختخواب نرفته بود. یک ساعت و نیم بعد(۵:۳۰) آلارم به صدا در آمد. او میگفت:« تمام سلول های بدنم به من میگفتند که در رختخواب بمانم.» اما او با خودش عهدی بسته بود، برای همین بیدار شد. قطعا او روز وحشنتاکی را پیش رو دارد که به هیچ وجه سازنده نیست. با این حال، او میگوید که آن تصمیم زندگی اش را تغییر داد. طبق گفته های او:
« اگر من برای خوابیدن، در برابر خواسته ی انسانی، فیزیکی و ذهنی خود سرخم میکردم، یعنی استثنا قائل شده ام. یک هفته بعد، ممکن است با ۴ ساعت خواب استثنا قائل شوم. هفته بعدش، ممکن است برای ۷ ساعت خواب استثنا قائل شوم. اگر این کار را انجام میدادم، استثنا تبدیل به قانونی در زندگی ام میشد. مراقب این استثناها باشید.»
تیم گرور میگوید:« از آن لحظه به بعد، شما باید کاری کنید که دیگران هم سطح شما شوند چون قرار نیست شما به عقب برگردید. شما دیگر هرگز با کسی رقابت نمیکنید. آنها باید با شما رقابت کنند. از الان به بعد تنها چیزی که اهمیت دارد، نتایج نهایی است.»
وقتی غیر قابل توقف هستید، مطمپن هستید که به خواسته ی خود خواهید رسید. هر چیزی را که نیاز به دانستن دارید، میتوانید در باطن خود پیدا کنید. تنها کاری که باید انجام بدید این است که به خودتان اعتماد کنید و دست به کار شوید.
آیا شما غیر قابل توقف هستید؟
فریمورکها به یک بخش اساسی در توسعه وب تبدیل شده اند. از آنجایی که استاندارد وب اپلیکیشنها همواره در حال افزایش است پیچیدگی مورد نیاز در تکنولوژی را فریمورکها انجام میدهند و کاملا قابل درک است که اختراع دوباره چرخ برای هرکاری نیازی نیست در برنامهنویسی نیز انجام دوبارهی جزئیات پیچیدهی مورد نیاز تکنولوژی دیگر نیاز نیست و این کار ها را فریمورکها انجام میدهند به همین دلیل است که استفاده از فریمورکها توسط هزاران توسعه دهنده در سراسر جهان تایید شده است که یک راه عقلانی برای ساخت وب اپلیکیشنهای قدرتمند و تعاملی میباشد. یک وب اپلیکیشن از دو قسمت سمت سرور و سمت کاربر تشکیل شده است بنابراین اینجا ما هم فریمورکهای سمت سرور و هم سمت کاربر را بررسی خواهیم کرد.
Angular را میتوان به عنوان بهترین فریمورک برای وب اپلیکیشن ها درنظر گرفت و بطور حتم سرآمد محصولات شرکت گوگل برای توسعه دهندگان می باشد. اولین نسخه ی AngularJS در سال ۲۰۰۹ منتشر شد و در سال ۲۰۱۶ بطور کامل بازنویسی شد.
در مقایسه با دیگر فریمورکهای وب اپلیکیشن مزایای قابل توجه این فریمورک انعطاف پذیری و مجموعه غنی توابع آن میباشد Angular .به لطف پشتیبانی از TypeScript یک انتخاب عالی برای اپلیکیشنهای حجیم میباشد. در این فریمورک برنامه نویسی سادهتر است و درعین حال عملکرد بسیار خوبی را به دلیل ویژگیهایی از جمله Binding دوطرفه و تزریق وابستگی، ارائه می دهد.
ویژگیهای دیگر Angular که سرعت و بهره وری آن را تقویت میکند template syntax و ابزار Command Line (CLI) میباشد این ویژگیها باعث میشوند تا ساخت نمونه اولیه سریع تر انجام شود. این فریمورک برای کدزنی اپلیکیشنهای تک صفحه ای مناسبتر است اما برای توسعه وب اپلیکیشنهای چند صفحه ای نیز مناسب میباشند.
این فریمورک توسط شرکتهایی مانند گوگل،مایکروسافت،Paypal و غولهای دیگر استفاده شده است.
شما میتوانید آموزش Angular را در سایت راکت دنبال کنید.
Ember یکی از قابل اعتماد ترین و کامل ترین فریمورکهای توسعه وب جاوااسکریپت میباشد که در سال ۲۰۱۱ منتشر شد و به سرعت درحال رشد است و درجهان برنامه نویسی حرفهای هرروز بازخوردهای بیشتری میگیرد.
ویژگیهای اصلی Ember ساختار دقیق آن، سیستم پیشرفته مدیریت نسخهها و پشتیبانی از استانداردهای مدرن و پشتیبانی از تکنولوژی های قدیمیتر به صورت همزمان میباشدEmber. به شما امکان ساخت ویژگیهایی که خارج از توابع هستند را نیز میدهند که این ویژگیها زمان کار با Binding ها بسیار مفید هستند.
این فریمورک توسعه وب اپلیکیشن برای ساخت وب اپلیکیشنهای پیچیده عالی است و توسط شرکت هایی مانند گوگل،مایکروسافت، Netflix استفاده شده است.
Flutter نیز یکی دیگر از محصولات گوگل میباشد اما این مورد برای توسعه اپلیکیشنهای موبایلی اندروید و iOS و همچنین سیستم عامل Google Fuchsia استفاده میشود.
از آنجایی که Flutter با Dart ، یک زبان برنامهنویسی است که توسط گوگل ساخته شده است و برای توسعه سمت سرور وب اپلیکیشنها هم برای پلتفرم دسکتاپ و هم موبایل استفاده می شود،نوشته شده است نیازی به جاوااسکریپت ندارد. این ویژگی به Flutter امکان تعامل با پلتفرمهای مختلف بدون عبور از پل جاوااسکریپت را می دهد که همین ویژگی امکان توسعه سریع تر نسبت به دیگر فریمورکها را فراهم می کند.
از دیگر ویژگیهای Flutter این است که به هیچ کامپوننت UI نیاز ندارد زیرا این کامپوننتها در خود Flutter پیاده سازی شدهاند به همین دلیل است که بازیها و دیگر اپلیکیشنهایی که با این فریمورک نوشته شده اند سرعت بالایی دارند. ویجت های Flutter تنها زمانی که به آن ها نیاز داریم رندر می شوند. شرکتهایی که از این فریمورک استفاده کردهاند علی بابا،گوگل میباشند.
شما میتوانید آموزش Flutter را در سایت راکت دنبال کنید.
React دقیقا یک فریمورک وب اپلیکیشن نیست بلکه یک کتابخانه از جاوااسکریپت است اما با این حال مناسب است که جایگاهی در این لیست داشته باشد React .شهرت خود را به دلیل معماری مبتنی بر کامپوننت های انقلابی خود به دست آورده است.
React امکان ساخت سریع و راحت واسط ها را فراهم میکند که این ویژگی از اهداف اصلی React می باشد و از سینتکس JSX استفاده می کند که کار با دامنه را نسبت به آن چیزی که هست بسیار سریع تر انجام میدهد. یکی از کارهای اساسی که React انجام می دهد ساخت interface و همچنین اپلیکیشنهای موبایلی iOS و اندروید می باشد.
در بین پروژه های معروف، React در فیسبوک و اینستاگرام استفاده شده است.
شما میتوانید آموزش React را در سایت راکت دنبال کنید.
Vue.js نیز یکی از جدیدترین فریمورک های توسعه وب میباشد که به سرعت محبوب شد بزرگترین حسن Vue.js این است که اگر شما درحال حاضر محصولی دارید که در قسمتی از آن از Vue.js استفاده کرده اید همه چیز به خوبی کار میکند و هیچ تاخیر و یا مشکلی ندارد.
به دلیل ساختار ساده Vue.js حل مسائل با آن بسیار ساده است و مستندات خوبی نیز دارد. هنوز هم بیشتر افراد در سرمایه گذاری روی Vue.js تردید دارند زیرا از این فریمورک در شرکتهای بزرگ مانند گوگل استفاده نشده است اما به هرحال محبوبیت Vue.js بطور روزافزون درحال افزایش است.
شما میتوانید آموزش Vue.js را در سایت راکت دنبال کنید.
حدود ۱۲۰۰۰ از پروژههای وب شناخته شده توسط جانگو نوشته شده اند این عدد به تنهایی درباره محبوبیت جانگو میتواند حرف های بسیاری برای گفتن داشته باشد. اگرچه جانگو یکی از قدیمی ترین فریمورکهای توسعه وبسایت می باشد، که در سال ۲۰۰۵ منتشر شد، اما به دلیل رویکرد مدرن خود در حل مسائل و بهبود مداوم آن هنوز هم یکی از بهترین فریمورکها میباشد.
جانگو بطور بحث برانگیزی محبوب ترین فریمورک وب اپلیکیشن می باشد که برمبنای پایتون،یکی از پراستفاده ترین زبان های برنامهنویسی در جهان،ساخته شده است.
بین مزایای اصلی جانگو میتوان به انعطاف پذیری،مقیاس پذیری و استفاده ی جهانی آن اشاره کرد. جانگو پکیج های بسیاری دارد و جامعه گسترده و مستندات تکنیکی دارد.
عملا شما میتوانید هرنوع اپلیکیشنی، از یک پروژه کوچک گرفته تا یک پروژه پیچیده، را با جانگو بسازید.جانگو به دلیل ساخت MVP برای Startup ها (به دلیل انعطاف پذیری و اصل امتناع از کد زنی زیاد که موجب صرفه جویی در وقت و بودجه می شود) محبوب است و از طرفی توسط شرکت هایی مانند اینستاگرام، ناسا و بسیاری شرکتهای دیگر بطور گسترده استفاده شده است.
شما میتوانید آموزش جانگو را در سایت راکت دنبال کنید.
سرعت و سادگی اساسی ترین اصول Express.Js است که یکی از API های Node.js و یک فریمورک توسعه وب اپلیکیشن است. Express.Js یکی از بسیار فریمورکهای Open-Source است و ابزار های بسیاری دارد و Solutionهای بسیاری را می توانید تنها با چند خط کد پیاده سازی کنید.
کار با Express ساده است بخصوص اگر تجربه کار با Node.Js نیز داشته باشید.Express.Js یک تکنولوژی محبوب است که توسط Accenture،Uber،IBM و بسیاری شرکت های دیگر استفاده می شود.
فریمورک Ruby On Rails (ROR) با زبان Ruby نوشته شده است و امروزه در بیش از ۸۲۶۰۰۰ وبسایت فعال استفاده شده است و شرکتهایی مانند Airbnb،YellowPages،Groupon و بسیاری شرکتهای دیگر از این فریمورک استفاده می کنند. این فریمورک وب، طیف گسترده ای از کاربرد ها را دارد که حل مسائل توسعهای پیچیده از جمله این کاربردها میباشد.
ROR ابزار های بسیار و کتابخانههای عالی ارائه میدهد که زمان توسعه را کاهش می دهد. این فریمورک ویژگی تست اتوماتیک نیز دارد که یک ویژگی عالی در حفظ کیفیت نرم افزار است. با ROR شما میتوانید اپلیکیشنهای مبتنی بر ابر، پلتفرمهای شبکه اجتماعی و دیگر انواع پلتفرم های وب را بنویسید.
این فریمورک مبتنی بر جاوا می باشد و در جهان توسعه backend وب بسیار محبوب میباشد. عملا هرکار حرفه ای که با زبان جاوا انجام میشود دیر یا زود از Spring استفاده میکنند.
هدف اصلی Spring قابلیت ساده سازی ساخت اپلیکیشن های J۲EE میباشد که رسیدن به این هدف به لطف تعدادی از مزایای آن میباشد Spring . به شما چهارچوبی برای اپلیکیشنهای آینده ارائه میدهد و با معماری خود کار ها را بسیار سادهتر میکند Spring .به دلیل داشتن وابستگی ضعیف بین اشیاء و عدم نیاز به اتصال اشیاء به صورت دستی شناخته شده است. این ویژگی و بسیاری ویژگیهای دیگر کار را برای توسعه دهندگان سادهتر و کارآمدتر کند.
بسیاری از شرکتهای معروف ویژگیهای Spring را تحسین میکنند Wix،TicketMaster و Billguard از جملهی این شرکتها هستند.
Symfony یک فریمورک شناخته شده بین توسعه دهندگان PHP است. این فریمورک بطور چشمگیری زمان مورد نیاز برای ساخت یک وب اپلیکیشن پیچیده بر پایه PHP را کاهش میدهد. در اینجا ما به برخی از ویژگی های اصلی این فریمورک اشاره خواهیم کرد Symfony .به دلیل پایداری،سرعت بالا،انعطافپذیری و امکان استفاده مجدد از کد تحسین میشود همچنین وقتی که برای ساخت اپلیکیشنهایی با عملکرد بالا استفاده میشوند یک ارسال کننده event مناسب با تزریق وابستگی و امکان بهینه سازی کد، ارائه می دهد علاوه بر این ها حافظه نسبتا کمی نیز مصرف میکند اما Symfony برای اپلیکیشنهای بلادرنگ کمیکند است.
Simfony یکی از قابل اعتمادترین و محبوب ترین فریمورکهای وب میباشد و بیش از ۹۰۰۰ وبسایت درحال فعالیت از این تکنولوژی استفاده کردهاند.
جمع بندی
فریمورکهای اشاره شده انعطاف پذیر هستند و میتوانند برای انواع مختلفی از پروژه ها استفاده شوند و تقریبا جامعه بزرگی دارند. همه ی موارد گفته شده عالی هستند اما کدام یک مناسب پروژه شما می باشد؟ پاسخ این سوال به نیاز شما در پروژه بستگی دارد.
کلام آخر
سعی کنید یک زبان و فریمورک را انتخاب کنید و در آن حرفهای شوید.
انتخاب چند زبان و فریمورک برای یادگیری کار عاقلانهای نیست.
در آخر این نکته را به یاد داشته باشید به جای اقیانوسی به عمق ۱سانتیمتر ،
برکهای باشید به عمق ۱۰۰۰متر.
https://roocket.ir/articles/top-10-web-development-frameworks-2019-2020