کمابیش با localhost آشنا هستیم، لقبی که برای IP داخلی سیستمعامل یعنی ۱۲۷٫۰٫۰٫۱ در نظر میگیرند. خیلی وقتها این IP چنین لقبی را ندارد، اما بیشتر با همین اسم شناخته میشود.
لوکالهاست بیشتر به عنوان محیطی برای تست و اجرای برنامههای تحتوب شناخته میشود، به خصوص اجرا و تست زبانهای سمت سرور مانند PHP و Python و… . راهاندازی لوکالهاست برای هر زبان ممکن است متفاوت باشد. برای مثال PHP به وبسروری مانند Apache برای راهاندازی کامل نیاز دارد.
برای بیشتر افراد راهاندازی لوکالهوست و کانفیگ آن، کار خستهکنندهای است. به علاوه ممکن است نتیجه کار آنچنان خوب نباشد. دانلود بسیاری از پکیجها مثل پکیجهای npm نیاز به سرعت اینترنت بالا و دور زدن بعضی موانع دارد که با این تفاسیر دانلود بسیاری از پکیجها، در ایران غیرممکن به نظر میرسد.
از طرف دیگر، زبانهایی مانند PHP یا Python بیشترین سازگاری را با محیط Unix دارند و در این محیط کامپایل و اجرا میشوند و ممکناست اجرای آنها در لوکالهاست محیط ویندوز، سختتر باشد. مشکل دیگر، برای زبانهایی به ویژه PHP است که Extensionهای آن در محیط Unix و با PHP کامپایل میشوند و نتیجه فایل .so است که میتوان بهراحتی از آن استفاده کرد. اما متأسفانه این نوع فایلها در ویندوز قابلشناسایی نیستند و PHP نسخه ویندوز به نسخه DLL آنها نیاز دارد. نسخه DLL بسیاری از Extensionها وجود دارد، اما متأسفانه بعضی Extensionها هم هستند که نسخه DLL جدید ندارند یا به طور کلی DLL ندارند. همین مورد میتواند در روند توسعه اختلال ایجاد کند.
راه حلهای در دسترس
بسیاری استفاده از Vagrant Up را پیشنهاد میدهند که متأسفانه آن هم به دلیل سرعت اینترنت کشورمان، غیرقابلاستفاده است، چرا که نیاز دارد که تکتک Dependencyها (از جمله سیستمعامل، کامپایلرها و …) را یکبهیک دانلود و نصب کند.
راهحل بعدی، استفاده از VM یا Virtual Machine است. شما میتوانید با نرمافزار رایگانی مثل VirtualBox چندین سیستمعامل را نصب و استفاده کنید. اما VirtualBox کارایی لازم را در سیستمهای متوسط ندارد و مشکل کانفیگ و راهاندازی لوکالهاست همچنان وجود دارد. پس چاره چیست؟
معرفی Koding
Koding یک محیط توسعه ابر (cloud development environment) است که با ارائه VM رایگان به توسعهدهندگان، یکی از بهترین انتخابها برای محیط توسعه است. این VM که سیستمعامل Ubuntu 14.04 داراست، هنگامی که شما یک VM درخواست میدهید، به طور خودکار، زبانهای PHP، Ruby، Python و NodeJS برای توسعه نصب و کانفیگ میشوند. به این معنی که شما میتوانید این چهار زبان را بدون دردسر اضافی، برای توسعه در دسترس داشته باشید.
ضمن اینکه Koding یک سابدامین از koding.io نیز به شما برای تست نرمافزارهایتان میدهد. علاوه بر این، سرویس یک خط فرمان اختصاصی نیز برای مدیریت پکیجهای سیستمعامل دارد که با kpm در دسترس است. برای مثال شما با دستور kpm install wordpress میتوانید به راحتی وردپرس را نصب و استفاده کنید.
Koding یک ویرایشگر کد (IDE) نسبتاً قوی به شما ارائه میدهد که به راحتی میتوانید کدها را ویرایش و همزمان تست کنید، درست مثل localhost!
جزییات بیشتر از Koding
Koding در پلن Free، به شما فقط یک VM میدهد. این VM شامل ۳ گیگابایت حافظه، ۱ گیگابایت RAM و یک هسته CPU است. البته این ۳ گیگابایت، ۵۱% از آن، توسط سیستمعامل و زبانهای برنامهنویسی دردسترس اشغال شدهاند، بنابراین تقریباً فقط ۱٫۴ گیگابایت در اختیار شماست.
VMهای رایگان، پس از ۶۰ دقیقه عدمفعالیت در Terminal به طور خودکار خاموش میشوند، بنابراین برای توسعه ربات یا کانکشنهای Open از فکر Koding بیرون بیایید.
پشتیبانی Koding
تیم پشتیبانی Koding بدون اغراق فوقالعاده است و صرف نظر از نوع حساب کاربری شما، به بهترین نحو پشتیبانی مینماید. شما میتوانید خودتان این را با یک ایمیل به support[at]koding.com امتحان کنید.
در Koding سعی شده که این سایت یک انتخاب مناسب برای همه برنامهنویسان باشد. به همین دلیل علاوه بر پشتیبانی ایمیلی، Koding بخشی را برای تبادل نظر بین کاربران و تیم پشتیبانی در نظر گرفته که به نام Activity شناخته میشود. Activity تقریباً مانند یک میکروبلاگ است که یک نفر میتواند مطلبی را بنویسد و دیگران در مورد مطلب نظر دهند. هر مطلب حتماً یک Hash tag هم دارد و مطالب با این تگها مشخص میشوند. شما میتوانید یک تگ مشخص را دنبال کنید و از آخرین مطالب و پرسش و پاسخهای مربوط مطلع شوید.
محیط Koding
همانطور که قبلاً هم اشاره کردم، Koding یک محیط توسعه ابری است. Koding به سه قسمت تقسیم میشود:
- File Browser میتوانید فایلهای موجود در VM را مدیریت کنید.
- Terminal یک ترمینال تحت مرورگر برای VM شماست.
- Editor برای ویرایش فایلها به کار میرود.
Koding به طور پیشفرض در VM شما دایرکتوری به نام Web میسازد، دایرکتوری Web در واقع روت سابدامین شماست. هر فایلی که میخواهید در سابدامین قرار بگیرد، باید از فولدر Web استفاده کنید.
بعد از استارت VM، حدود ۱ تا ۱۰ دقیقه طول میکشد که سابدامین اختصاصی شما با VM شما هماهنگ شود. گاهی اوقات که سرویس شلوغ است، این هماهنگی تا ۲۰ دقیقه هم ممکن هست زمان نیاز داشته باشد.
معایب Koding
Koding به نظر محیط شگفتانگیزی میآید، اما هیچ سیستمی بدون عیب نیست.
Delay در ترمینال: البته این عیب مربوط به Koding نیست، بلکه اشکال از اینترنت است. اگر Ping شما زیاد باشد، ممکن است استفاده از ترمینال برای شما سخت شود. مثلاً هر کاراکتری که تایپ میکنید، ممکن است ثانیهها طول بکشد تا به دست Koding برسد.
باگها و ناهماهنگیها: خیلی اوقات، سیستمهای مختلف با Koding مشکل پیدا میکنند، برای مثال mod_rewrite مربوط به Apache خیلی از اوقات، خطای ۵۰۰ ایجاد میکند.
هماهنگی DNS طولانی: همانطور که گفتم، هماهنگی سابدامین با VM ممکن است تا ۲۰ دقیقه هم طول بکشد.
جمعبندی
به طور کلی، محیط Koding با توجه به شرایط فعلی، از بهترین انتخابهای IDE است. در حال حاضر، Koding مراحل اولیهی رشد و توسعه را طی میکند و امیدواریم مشکلات ذکر شده و مشکلات دیگری که تاکون از دید من پنهان شدهاند، به مرور زمان رفع شوند.
با این تعاریف، به نظر من Koding ولیعهد localhost است و ممکن است به مرور زمان که سرویسهای ابری جای Hard Diskها را میگیرند، Koding نیز بر تخت لوکالهاست بنشیند و حکومت کند!
شما میتوانید با مراجعه به سایت Koding.com در عرض دو دقیقه حساب خود را بسازید تا Koding برای شما یک VM آماده کند. خوشحال میشویم اگر تجربیات خودتون را این سرویس یا سرویسهای مشابه با ما در میان بگذارید.
سلام احسان جان
ممنون از مقاله خوبت
من حدود یک هفته هست که لبتابم سوخت و عمرش رو داد به شما و از اونجایی که نمیتونستم بی کار بشینم تا خرید یه سیستم جدید تصمیم گرفتم با تبلتم کد نویسی کنم
برای اینکار رفتم روی سرویس کلود کد انی ور (codeanywhere.com) که شبیه به همین سایت کدینگ هست
من همین حالا که مقاله شما رو خوندم رفتم سایت کدینگ رو تست کردم و تا اونجایی که من فهمیدم هر دو سرویس تقریبا یکی هستن و هر دو از سرویس ویژوال ماشین آمازون استفاده میکنن
البته سایت codeanywhere امکانات بیشتری داره مثلا بجز vm یه فضای ۲۰۰ مگی دیگه هم داده و همچنین امکان اتصال به سرور های ftp و سینک شدن با git و غیره…
البته هر دو سایت محیط کد نویسی خوبی دارند ولی متاسفانه هیچ کدام با سیستم عامل اندروید و صفحات لمسی رابطهی خوبی ندارند و حتی با تبلت ۱۰ اینچی و استفاده از موس و کیبورد هم نتونستم باهاشون کار کنم ، البته میشه ولی سرعت کدنویسی به یک بیستم میرسه
من هم تصمیم گرفتم به جای تبلتم از یه رزبری پای که چند ماه پیش گرفته بودم استفاده کنم و فعلا داره خوب جواب میده ولی مرورگر پیشفرضش یخورده کنده
در هر صورت کد نویسی پروژه های وب رو میشه باهاش انجام داد ولی نبود فتوشاپ و همچنین اندروید استدیو باعث شده که هرچه زودتر به فکر خرید یه سیستم باشم ولی در کل تجربه خوبی بود و باعث شد از این به بعد سوییچ کنم به کلود
سلام آرمینجان، ممنون از اینکه تجربه خوبت رو به اشتراک گذوشتی.
سرفرصت سایت CodeAnywhere رو هم تست میکنم.
موفق باشی 😉
ازنظر من باگ هایی که بهش اشاره کردی خیلی قابل چشم پوشی نیست مخصوصا وقتی که از اسپاتیفای استفاده می کنم میزان delay خیلی زیاد میشه.
البته محمدجان همونطور که گفتم، باگ نیست، بلکه اشکال از پینگ و اینترنت ماست.
به نظر من cloud ide ها برای موارد خاص کاربرد دارند که شما هم ذکر کردین ولی فکر نمی کنم در آینده برای کارهای حرفه ای جایگاهی داشته باشند.
تشکر از مطلب خوبت.
قطعاً Cloud IDEها به همین سطح کنونی خودشون بسنده نمیکنن و در آینده قطعاً موجبات کار حرفهای رو فراهم میکنن. در هر حال، چیزی که خوندید، پیشبینی شخصی خودم از آینده بود 😉
امیدوارم از مطلب لذت برده باشید 🙂
یه نگاه سریع به هردو انداختم به نظر من Koding هم از جهت منابع، هم از جهت امکان اتصال به سرور مجازی شخصی و هم از جهت وباپ امکانات بهتری داره. اما هردو خیلی به هم شبیه هستن.
این اولین تجربهی من با سیستم توسعهی کلود بود و به نظر جالب میاد هرچند واسهی ما با این پینگ بالا یه کم این تجربه رو تحت تاثیر میذاره ولی به نظر من جالب بود.
[…] اسکرینشات مشاهده میکنید، اسکریپت به خوبی در محیط Koding اجرا […]