ابزارهایی که من برای توسعه وب استفاده میکنم
توضیحات
این مطلب برای اولین بار در سال ۹۳ نوشته شد و در آبانماه سال ۹۵ بازنویسی شده. بخشهایی از مطلب که خط خورده هستند در واقع مواردی هستند که دو سال پیش توسط من برای توسعه وب مورد استفاده قرار میگرفتند ولی در حال حاضر دیگه به کار گرفته نمیشوند
فرض کنید قصد دارید در یه بطری نوشابه رو باز کنید(منظورم بطریهای شیشهای با در فلزی هستش). برای باز کردنش قطعا راهحلهای مختلفی دارید، میتونید با با قاشق درش رو باز کنید، میتونید برای باز کردنش برید سراغ در ماشین یا حتی مثل مغازه ساندویچی توی اختیاریه، با لبهی یخچالتون بازش کنید. هر کدام از روشهای ذکر شده شما رو به نتیجه مورد نظرتون خواهند رسوند ولی فکر میکنم اکثریت افراد اتفاق نظر دارند که منطقی ترین روش استفاده از دربازکن هستش. برای توسعه وب هم میتونید از ابزارهای مختلفی استفاده کنید، مثلا ساده ترین راه اینه که نرمافزار نوتپد رو توی ویندوز باز کنید و شروع کنید توش کد بزنید، به طور قطع شما میتونید با همون نوتپد یه سایت کامل رو ایجاد کنید، اما انرژی تلف شده شما برای انجام این کار به حدی زیاد خواهد بود که بعد از تموم شدن اون سایت، کلا با بحث طراحی و توسعهوب خداحافظی میکنید. در واقع برای انجام هر کاری، استفاده از ابزار مناسب میتونه کار شما رو راحتتر کنه و انتخاب اشتباه ابزارها هم میتونه باعث نابودی انرژی و وقت شما بشه. من طی چند سال اخیر که مشغول توسعهوب بودم، ابزارهای مختلفی رو استفاده کردم در نهایت بعد از یک مدت زمان طولانی آزمون و خطا، تقریبا یکی دو سالی میشه که از مجموعه ثابتی از ابزارها استفاده میکنم که در ادامه لیست اونها رو خواهید دید. لازم به ذکر است که من این ابزارها رو بر روی مک استفاده میکنم ولی اکثرشون بر روی ویندوز و لینوکس هم قابل استفاده هستند.
مرورگر
لازم به ذکر نیست که زمانی که مشغول ایجاد کردن وبسایتی هستید، لازمه که حاصل کار خودتون رو توی مرورگرهای مختلفی تست کنید، برای همین من به طور معمول سافاری، فایرفاکس و اپرا رو روی دستگاهم دارم اما مرورگر اصلی که به طور روزانه ازش استفاده میکنم و تقریبا با روشن شدن کامپیوتر باز میشه و با خاموش شدنش بسته میشه، نسخه استیبل کروم هست. کروم علاوه بر سرعت بالای اجرای کدها و پشتیبانی از رنج وسیعی از استانداردهای وب، مجموعه بینظیری از اکستنشن(افزونه؟)ها رو داره و علاوه بر اینها، دولوپر تولز فوقالعادهای داره که من به شدت به کار کردن باهاش عادت کردم. علاوه بر این من روی موبایل هم از کروم استفاده میکنم و دولوپر تولز کروم + ADB سیستم فوقالعادهای رو برای تست وبسابت روی موبایل فراهم میکنه، سعی میکنم در آینده در مورد ریموت دیباگینگ یه مطلب بنویسم، بحث مفصلی هستش و اینجا جای توضیح دادنش نیست.
اپهای کروم
در حال حاضر و برخلاف دو سال پیش، من از هیچ یک از اپلیکیشنهای کروم به طور مداوم استفاده نمیکنم.
اپهای کروم به خصوص بعد از مستقل شدنون خیلی کاربردی شدند، من مجموعه زیادی از اپهای کروم رو استفاده میکنم ولی مواردی که برای توسعهوب کاربرد دارند محدود هستند به این موارد:
Postman : شاید بهترین ابزار برای تست رستسرویسها باشه، پستمن تونسته برای من به طور کامل جای curl رو بگیره و تبدیل به ابزاری شده که من به طور روزانه ازش استفاده میکنم.
Secure Shell : در پروسه توسعهوب، یکی از واجبات ارتباطات ssh هستش که توی سیستمهای مبتنی بر یونیکس، میتونید به طور مستقیم از طریق کامندلاین انجام بدید اما روی ویندوز همه چیز به این سادگی پیش نمیره. تا نزدیک به 1 سال پیش من از putty استفاده میکردم اما الان این اپ جایگزین پوتی برای من شده و مهم ترین نکتهاش اینه که به عنوان یه تب توی مرورگر اجرا میشه
Chroma : اپی که میتونه واقعا توی مرحله انتخاب رنگ بهتون کمک کنه، اینترفیس خیلی سادهای داره و بهتون کد رنگ رو با فرمتهای مختلفی میده، در واقع این اپ مدتهاست جایگزین اپ پولی Color Schemer Studio برای من شده و مقداری از عذاب وجدان من رو به خاطر استفاده از کرکها کم کرده.
ابزارهای کامندلاین
من همیشه عاشق کامندلاین بودم. در حال حاضر من از شل ZSH بر روی اپلیکیشن iTerm2 استفاده میکنم.
ترکیبی Oh My Zsh و مجموعهای از پلاگینهای و یک prompt اختصاصی
تغییراتی هستند که استفاده از zsh
رو برای من سادهتر می کنند.
برای مدیریت اپلیکیشنهای کامندلاین، brew انتخاب اصلی منه. موارد زیر محبوبترین اپلیکیشنهای کامندلاین برای من هستند:
yarn
: با وجود مدت زمان کوتاهی که از معرفی این پکیج منیجر گذشته، به خاطر سرعت و امنیت بالاتر تقریبا تونسته جای npm
رو برای مدیریت پکیجهای جاوا اسکریپتی روی دستگاه من بگیره.
git
: من، مثل اکثریت قریب به اتفاق دیگر توسعهدهندهها، از گیت برای مدیریت نسخههای کدی که روشون کار میکنم استفاده میکنم، در حقیقت گیت محبوبترین اپلیکیشن کامندلاین از نظر منه. برای این که
تجربه بهتری از استفاده گیت داشته باشید میتونید مثل من Git Extras رو هم روی دستگاهتون نصب کنید.
vim
: توی چندماه گذشته سعی کردم که از ویم به عنوان ادیتور پیشفرضم استفاده کنم ولی به دلایل مختلف کنارش گذاشتم، در حال حاضر مثل چند سال گذشته این
ادیتور، ادیتور محبوب من برای ویرایشهای ساده است.
در صورتی که تمایل دارید میتونید لیست کامل اپلیکیشنهایی کامندلاینی که روی دستگاه من نصب هست رو از اینجا ببینید.
ولی مواردی که مشترکه و من واقعا ازشون استفاده میکنم رو لیست میکنم، من به طور عمده از گیت برای مدیریت و بکآپ گرفتن از کدها، NPM و یک سری از ماژولهای کاربردیش، مثل Static برای ایجاد یه فایل سرور ساده، Grunt و Gulp برای اتوماتیک کردن یه سری تسکهای تکراری استفاده میکنم.
ادیتورها
بخش زیادی از کار یک توسعهدهنده وب به کد زدن میگذره در نتیجه شاید این بخش مهمترین بخش مطلب باشه، من بعد از مدت زمان طولانی تست کردن ادیتورهای ساده و IDE های پیشرفته، به این نتیجه رسیدم که برای ادیتهای کوچک و خواندن کد از ادیتورهای خیلی نسبتا ساده استفاده کنم.
Notepad++ ادیتوری هستش که من هر روز برای خوندن کدهای پروژههای که مشغول کار روشون نیستم و یا ادیتهای ساده ازش استفاده میکنم. به جای نوتپد++ میشه از ادیتورهای مثل Sublime text یا حتی Vim استفاده کرد و به نظرم به سلیقه شخصی بر میگرده.
اما زمانی که قصد دارید روی پروژههای بزرگ کار کنید، ادیتورها نمیتونن تمام نیازها رو برطرف کنن، من مدتی با Komodo Edit و مدتی هم با Visual Studio کار کردم، با وجود این که ویژوال استودیو یه محیط فوقالعاده برای کد زدن بود ولی هنوز نمیتونست نیازهای من رو برطرف کنه در نتیجه من رفتم سراغ محصولات کمپانی JetBrains. محصولات این شرکت از بیس مشترکی برخوردار هستند و شما میتونید برای هر زبانی که کار میکنید از محصول مخصوص اون زبان برنامهنویسی استفاده کنید. من از Webstorm برای کار روی پروژههای فرانتاند و بکاند مبتنی بر جاوا اسکریپت، از PHPStorm برای کار روی پروژههای وردپرسی و به صورت کلی پروژههایی که براساس PHP پیاده شدند استفاده میکنم. وباستورم علاوه بر امکانات یه IDE عادی هماهنگی قابل قبولی با گیت داره، کامندلاین رو به صورت توکار داره و از همه مهمتر تسکهای گرانت رو میشناسه و امکان اجرا کردن اونها رو از طریق خود نرمافزار میده.
بعد از معرفی Visual Studio Code توسط مایکروسافت، این ادیتور آرومآروم جای تمام ادیتورهای دیگه رو برای من گرفته. سادگی، سرعت قابل قبول، وجود ابزارهای سرچ و دیباگ قدرتمند ، طیف گستردهای از اکستنشنها و هماهنگی کامل با گیت باعث شده که من تقریبا استفاده از تمام ادیتورهای دیگه رو کنار بذارم. با این وجود هنوز هم گاهی اوقات از PHPStorm برای کارکردن روی کدهای PHP و intellij idea برای کارکردن روی کدهای الکسیر(که جدیدا دارم سعی میکنم استفاده کردن ازش رو یاد بگیرم) استفاده میکنم.
موارد دیگر
اگر بنا بر شمردن ابزارها باشد، میتوان لیست طویلی از نرمافزارها رو آماده کرد، با این وجود من به معرفی موارد فوق اکتفا میکنم و در پایان به صورت خلاصه برخی ابزارهای دیگری که استفاده میکنم رو میآرم.
Fiddler2 : سیستم پراکسی ساده که امکان بررسی پکتهای ارسالی و دریافتی رو میده
XAMPP : مجموع نرمافزارهای لازم برای اجرا کدهای PHP که با وجود این که در حال حاضر نسبت به قبل خیلی کم ازش استفاده میکنم، همچنان یکی از محبوب ترین ابزارهای منه
1Password : پسورد منیجر ساده و امنی که به من کمک میکنه تمام پسوردهام رو یکسان نذارم.
Postman : ابزار پیشنهادی من برای تستکردن وبAPI ها.
Spotify و Noizio : برای این که در حین کار صداهای بیرونی رو نشنوم.
Docker : من از داکر برای توسعه و دیپلویمنت استفاده میکنم، درصورتی که با داکر آشنا نیستید این مطلب رو بخونید.
Airmail : ابزار ساده و قدرتمندی برای مدیریت ایمیلها.
علاوه بر موارد فوق من از Evernote برای مدیریت یادداشتها و از Todoist برای مدیریت تسکها استفاده میکنم، گرچه دارم سعی میکنم به دلایل متعددی هر دو مورد رو با یادداشتهای دستنویس جایگزین کنم.
امیدوارم این مطلب براتون مفید بوده باشه.