بسی رنج بردم در این سال سی، ازین شاخه به اون شاخه پریدم بسی! بهله! حدود یه سال پیش (اواخر مرداد ۹۵) نوشتهای تو وبلاگم منتشر کردم به اسم “خداحافظ PHP؟“. تو اون نوشته ازین نوشتم که چرا دارم از جهان php مهاجرت میکنم! اما حالا دوباره دارم برمیگردم سمت لاراول! چرا؟ چون واقعا Node.js به سرعت تغییر و پیشرفت میکنه! هر روز مفاهیم جدیدی بهش اضافه میشه. اصحاب کهف ۳۰۰ سال خوابیدن و بعد از بیدار شدنشون php اینقدر تغییر نکرده بود که Node.js تو یه سال اخیر تغییر کرده! البته این تغییرات و به روزرسانیها میتونه مزیت باشه، اما باعث میشه همیشه پشت Node.js سرش بدوی تا بهش برسی، که باز هم نمیشه بهش رسید! در کل به قول شاعر بس بگردید و بگردد روزگار، دل به Node.js درنبندد هوشیار! در هر صورت تصمیم گرفتم کارهای سادهم رو همچنان بر پایه Node.js طراحی کنم، اما برای کارهای متوسط به بالا، مثل قدیما برگردمم سراغ لاراول عزیر و خوشگل! حالا اینکه php به این بیریختی چطور دختری به زیبارویی لاراول داره؟!؟ الله اعلم!
برنامهنویسی و شبکه
برنامه نویسی کامپیوتر

کتاب Think Python
من این روزا بیشتر در گیر جاوااسکریپت و دنیای پویا و باحالش هستم، اما پایتون همیشه ور دلم هست. پایتون رو همیشه دوست دارم. قبلا راجع به پایتون نوشتم. نمیخوام اونا رو تو این نوشته تکرار کنم. تو این نوشته میخوام از یه کتاب خوب بگم. کتاب Think Python نوشتهی Allen B. Downey.

کدوم فریمورک برای React.js
اول، چرا فریمورک؟
ناگفته پیداست که من از اهالیِ قبیلهی بیفریمورکهرگز هستم. القصه لقمان را پرسیدند چه کسی از فریمورک استفاده نکرد؟ بگفتا آنکه چرخ را دوباره اختراع کرد.
الغرض من برای سمت کاربر فعلا از ReactJS استفاده میکنم، دلایلش رو هم قبلا تو وبلاگم نوشتم. ولی دست و دلم نمیره که همهی کامپوننتها رو از صفر خودم طراحی کنم، برای همین دنبال فریمورکهایی گشتم که بر پایهی ReactJS بنا شده باشن و چندتا شون که به نظرم بهتر بودن رو مدتی تست کردم. باری تو این نوشته میخوام دربارهی این فریمورکها براتون بنویسم. البته اگه واقعا بشه به همشون گفت فریمورک. در هر صورت من سخت نمیگیرم و بهشون میگم فریمورک، شما هم سخت نگیرین! 😉

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

چرا AdonisJS رو برای پروژهم انتخاب کردم؟
به قولی بس بگردید و بگردد روزگار، دل به هیچی در نبندد هوشیار! (حالا با اندکی تلخیص).
من یه پروژهی نه چندان کوچولو برای خودم تعریف کردم و امیدوارم بتونم از پسش بربیام. مطمئنا اگه بتونم وقت مناسبی روی این پروژهم بذارم، میتونم از آب و گل درش بیارم. حالا موضوع چیه؟ موضوع اینه که میخوام یه نرمافزار برای مدیریت کارها و مستنداتم بنویسم. فعلا برای این کار از Google Keep استفاده میکنم. وجدانا هم خوب، ساده و کار راه اندازه. به خصوص که متنها و تصاویری که توش ذخیره میکنم به صورت آفلاین هم در دسترسم هستن و این وقتی تو سالن تولید هستم و اکثر اوقات دسترسی به اینترنت ندارم خیلی به کارم میاد. در هر صورت، من چندتا امکان اضافی نیاز دارم که متاسفانه Google Keep هنوز اونها رو نداره. پس میخوام دست به کار بشم و اپلیکیشن خودم رو بنویسم.

به بهونهی روز برنامهنویس از نوع ایرونی!
من تجربهی زیادی ندارم، تازه تو محیط کار سه ساله شدم. تو این سه سال با چیزهای مختلفی کار کردم، که اکثرشون رو هم دوست داشتم. چون برنامهنویسی رو دوست دارم مدتی درگیر طراحی سرویسهای تحت وب بودم، از طرفی چون مهندسی برق خوندم و اصلا مسئولیت اصلیم همینه، تو کارهای صنعتی هم از برنامهنویسی بهره بردم، مثل برنامهنویسی برای PLC، طراحی رابط کاربری با استفاده از HMI، پروگرم کردن برد آردوینو برای کارهای مختلف مثل جمعآوری اطلاعات از ماشینآلات صنعتی، سر و کله زدن با رسپبریپای به عنوان دیتا لاگر تو یه شبکه صنعتی (Modbus) و قس علی هذا. دوست دارم تو فرصت مناسب از هرکدوم ازین کارها تو وبلاگم بنویسم، ولی الان میخوام برم تو نقش بابابزرگِ مهربون و بالا منبر روضهی نصیحت رو براتون چاق کنم 😀
به بهونهی روز برنامهنویس میخوام از نکاتی بگم که سعی میکنم تو طراحیهام رعایت کنم، در واقع میخوام اونا رو با شما درمیون بذارم، تا اگه شما هم نظری دارید بگید و بتونم از تجربیات شما هم استفاده کنم.

کدوم زبون برنامهنویسی رو یاد بگیریم؟
خیلی وقتها با این سوال از طرف دوستام مواجه میشم که کدوم زبون برنامهنویسی بهتره؟ یا کدوم زبون برنامهنویسی رو یاد بگیریم؟
خوب، تو جواب میشه گفت باید مطابق نیازهامون زبون برنامهنویسی مدنظرمون رو پیدا کنیم.
الغرض، تو وبسایت کارل چئو یه چارت وجود داره که بهمون کمک میکنه تا زبون برنامهنویسی مناسب خودمون رو پیدا کنیم، من این چارت رو با کمک React.js به صورت یه اپلیکیشن کوچولوی تحت وب درآوردم که از یه سری مراحل سوال و جواب تشکیل شده. اگه دوست دارید میتونید تو آدرس زیر این اپلیکیشنِ کوچولوی تحت وب رو ببینید و امتحانش کنید:

چرا RethinkDB رو بیشتر از هر پایگاه دادهای دوست دارم؟
بیشتر افرادی که میرن سراغ Node.js برای پایگاه داده یهراست میرن سراغ MongoDB. ولی پیشنهاد من برای جاوااسکریپتبازها یه چیز باحالتره: RethinkDB
تو این نوشته میخوام دلایل اینکه چرا RethinkDB رو دوست دارم و اون رو قطعا به MongoDB ترجیح میدم براتون بگم.

خداحافظ PHP؟
چند وقتیه که کلا سمت php نرفتم و کارهام رو با جاوااسکریپت و node.js سر و سامون دادم. گرچه این چند وقت پروژهی خاصی رو هم در حال اجرا نداشتم و کارهایی که انجام دادم چیزهای کوچیک و دم دستیای بودن برای تسهیل امور روزانهی خودم. با اینحال، همین کارهای کوچیک رو هم با جاوااسکریپت انجام دادم. برای پروژههایی که این روزا تو ذهنم پرورش میدم تا در آینده روشون کار کنم هم به جاوااسکریپت فکر میکنم.
خوب سوال پیش میاد: آیا php برای من تموم شده؟ من که این همه وقت صرف یاد گرفتن php و لاراول و امثالهم کردم، چرا باید ولشون کنم؟ تو ادامهی این نوشته میخوام به دنبال جواب این سوالها بگردم.

چطور تو React.js شاخ بشیم و شاخِ Flux رو بشکنیم؟
قبلا درمورد اینکه چرا React.js رو انتخاب کردم، توضیح دادم، تو این نوشته نمیخوام از مزایای React بگم، میخوام بگم که چطور میتونیم رفیق گرمابه و گلستان React بشیم.
قطعا منابع زیادی تو اینترنت برای یادگیری React.js وجود داره، از مقاله و کتاب گرفته تا فیلم و کلیپِ آموزشی. من مدتی میشه که هی میگردم منابع مختلف رو پیدا میکنم تا ببینم کدوم بیشتر به کارم میاد. چندتا فیلم آموزشی از PluralSight و Tutsplus پیدا کردم، تماشاشون کردم، ولی کفاف کار من رو نمیدادن! این فیلمها خیلی ساده فقط به مقدمات React پرداخته بودن و با دیدنشون کار عملی خاصی تو دنیای واقعی نمیشد انجام داد! بعد از کلی گشت و گذار و دانلود فیلمهای آموزشی مختلف. چندتا منبع خوب، ساده و کاربردی برای یادگیری React از مبتدی تا یخورده حرفهایتر پیدا کردم، گفتم لینک این منابع رو در اختیار شما هم قرار بدم تا اگه صلاح دونستید ازشون استفاده کنید.