آموزش توابع scope در کاتلین : let ، run ، with ، also و apply

s

توابع استاندارد یکی از ویژگیهای جالب و عالی جدید کاتلین هست که به کوتاه تر شدن و خواناتر شدن کدها خیلی کمک می کنن. اگه با این ویژگی آشنایی ندارید لطفا تا آخر این مقال همراه ما باشید.

پیش نیاز این آموزش یاد داشتن extension function ها هست، میتونید از اینجا extension functionها رو یاد بگیرید.

خیلی از توابع استاندارد کاتلین خیلی شبیه به هم هستن، – همونطور که کفگیر و ملاقه‌های بالا شبیه به هم هستن 🙂 ولی هر کدوم یک استفاده‌ای دارن – به همین خاطر گاهی اوقات مردد می‌مونیم که از کدوم یکی استفاده کنیم. توی این مقاله یه روش ساده برای اینکه فرق بین اونا رو تشخیص بدیم و بفهمیم از کدوم یکی استفاده کنیم معرفی می‌کنم. فعلا به متدهای پایین توجه نکنید بعدا بیشتر در موردشون توضیح میدم.

متد run

https://gist.github.com/sajjadyousefnia/a742d2b7be22679e0d833ea31c221d7c

متد T.run

https://gist.github.com/sajjadyousefnia/bcee9d0db82253f80912897a0f6b0e43

متد with

https://gist.github.com/sajjadyousefnia/7f85da7083f03d7a8807e779140b87ae

متد T.apply

https://gist.github.com/sajjadyousefnia/65a7d3f514a96661ca44b024943d63fd

متد T.also

https://gist.github.com/sajjadyousefnia/94f68f66cddd946842f92519b2c6b05d

متد T.let

https://gist.github.com/sajjadyousefnia/10d9f342f0b4a93014b30d541b55172b

ا Scoping Functions

توابعی که می‌خوام در مورد اونا صحبت کنم ، T.run ، T.let ، T.also و T.apply هستن. که من به اونا Scoping Functions ( توابع قلمرو ) میگم، به این خاطر که وظیفه‌ی اصلی اونا اینه که توی تابع به ما توانایی به وجود آوردن قلمرو – اسکوپ – کوچکتری رو داخل بدنالبته یه نکته رو عرض کنم که معمولا مرز قلمروها رو با { و } مشخص می‌کنن .

ساده ترین راه برای نشون دادن مسئله، استفاده از تابع run هست.

https://gist.github.com/sajjadyousefnia/dc424bd4bc992348bc774682c5b9b42c

داخل تابع test با انجام این کار تونستیم یک اسکوپ مجزا به وجود بیاریم.داخل اسکوپ run، قبل از چاپ متغییر mood ، مقدارش رو برابر با I am happy قرار دادیم.

شاید این Scoping Functions توی نگاه اول زیاد به درد بخور به نظر نرسه، ولی یه قابلیت مهم دیگه ای هم داره، و اون اینه که میتونه چیزی رو return کنه.

کد پایینی که از این قابلیت استفاده کرده خیلی شسته رُفته‌تر شده، و دیگه نیازی نیست که برای انجام کار موردنظرمون دوبار از متد show استفاده کنیم.

https://gist.github.com/sajjadyousefnia/a85a3398b85145d50e6272cf1f7cb037

انواع Scoping functions

حالا برای این که Scoping Function ها رو بهتر متوجه بشیم، می‌تونیم به سه روش زیر اونا رو دسته بندی کنیم. و با سه ملاک از هم دیگه تمییزشون بدیم.

۱- تابع معمولی یا extension function

توابع with و T.run توی نگاه اول خیلی شبیه هم هستن. همونطور که پایین می‌بینیم، دارن کار یکسانی رو انجام میدن.

https://gist.github.com/sajjadyousefnia/04d8eaeab80ab11586189eb572bfd182

اما در حقیقت کمی متفاوت هستن، و فرقشون اینه که with یک تابع معمولی هست، در حالی که T.run یک extension function هست.( حتی اگه به شکل extension function به کار نره )

به متدهای اونا که اول مقاله نوشته شده، توجه کنید تا بهتر متوجه بشید.

خب حالا یه سوالی پیش میاد و اون اینکه مزیت هر کدوم چیه؟

حالا تصور کنید که احتمال این باشه که webview.settings تهی یا همون null باشه، حالا اون توابع به شکل پایینی درمیان.

https://gist.github.com/sajjadyousefnia/307530313c346b721b16ae69e9fbdcb7

خب همونطور که دیدین حتما متوجه شدین که توی این مورد استفاده از T.run کار بهتری به نظر بهتر میرسه، چون قبل از اینکه بخوایم ازش استفاده کنیم، میتونیم بررسی کنیم که تهی هست یا نه؟

۲- آرگومان this و آرگومان it

خب، اول باید بررسی کنیم که this و it هر کدوم چی هستن و کجا استفاده میشن؟

آرگومان this

از this برای نشون دادن receiver یا همون آبجکت دریافت کننده‌ی فعلی استفاده میکنیممنظور از دریافت کردن، دریافت کردن this هست و در دو جا برابر با دو چیز تقریبا مختلف هست :

۱- توی یک کلاس، this یعنی آبجکت فعلی که از جنس این کلاس ساخته شده.

۲- توی یک extension function یا یک function literals with reciever که از ترکیب لامبدا و extension function ساخته میشن this عبارتست از آخرین پارامتر دریافت کننده‌ای که مربوط به سمت چپ نقطه هست و از جنس عبارت سمت چپ نقطه هم هست،

اگه به مثال توجه کنید بهتر متوجه منظورم میشید:

https://gist.github.com/sajjadyousefnia/f4d100c3ff7dc29499fb031f47305a9c

توی extension function بالا متغییر ، عبارت adult چاپ میشه. چون همونطور که گفتم، این متغییر هست که به عبارت سمت چپ نقطه فرستاده شده. برای خسته کننده نبودن، this توی function literal ها رو دیگه توضیح نمیدم و اینجا هم نیازی به function literal نداریم.

آرگومان it

خیلی پیش میاد که یک لامبدا داشته باشیم که فقط یک پارامتر داشته باشه.

در این صورت اگر که کامپایلر بتونه امضا یا همون پارامتر رو تشخیص بده، میتونیم فلش لامبدا رو حذف کنیم و به جای استفاده از اسم پارامتر، از it استفاده کنیم.

https://gist.github.com/sajjadyousefnia/2e5e06495aa683d96be81caf10b0de33

خب، حالا اگه به متدهای ابتدای مقاله نگاهی بندازید حتما متوجه میشید که چه جاهایی از this و چه جاهایی از it به عنوان آرگومان و پارامتر استفاده میشه.
نکته : اگه کلاسهای تودرتو داشته باشیم، this برابر با داخلی‌ترین آبجکت توی کلاس هست.

https://gist.github.com/sajjadyousefnia/0bf0868731861bcfe4340528e2b5b3ac

اگه یه نگاهی به توابع T.run و T.let بندازیم، حتما متوجه میشید که همه‌ی ویژگی هاشون به جز یکی یکسانه، در واقع، اون ویژگی ای که باعث تمایز این دوتا میشه، نوع آرگومانی که دریافت میکنن هست. اگه به کد پایینی نگاه کنید می‌بینید که ظاهرا هر دو منطق کاملا یکسانی دارن،البته در ادامه بیشتر توضیح میدم.

https://gist.github.com/sajjadyousefnia/78ee6ebf71853a09ed129a178c8d4703

اگه signature یا همون پارامتر تابع T.run رو بررسی کنید، حتما متوجه این میشید که با استفاده از ().block :T داره صرفا یک Extension Function رو ایجاد میکنه. به همین دلیل هست که T داخل قلمروی مورد نظر میتونه با استفاده از this فراخوانی و استفاده بشه. توی کدنویسی هم که اکثر اوقات میشه this رو حذف کرد. به همین خاطر توی عبارت بالا به جای میشه به جای ${this.length} داخل println فقط $length رو قرار داد. که من اسم این کار رو this as argument ( استفاده از this به عنوان آرگومان ) میگذارم.

اگه به T.let توجه کنید میبینید که یک آرگومانی به شکل block:T داره به تابع فرستاده میشه. برای همینه که میشه داخل let ، اون رو با استفاده از it فراخوانی کرد و مورد استفاده قرار داد. که من اسم این قابلیت رو it as argument میگذارم.

ممکنه که اینجوری نتیجه‌گیری کرده باشید که چون ما میتونیم توی T.run اسم پارامترمون رو نبریم، حتی از this هم میشه استفاده نکنیم، ولی توی T.let در خلاصه‌ترین حالت ممکن باید از it استفاده کنیم (یا به قولی T.run از اون یکی implicit تره) ——> پس حتما استفاده از T.run بهتر خواهد بود. در حالی که اینطور نیست! به دلایل زیر استفاده از T.let بهتره :

  • توی T.let بهتر میشه این مسئله رو متوجه شد که این پارامتری که می‌بینیم، عایا مال این کلاس ( تابع یا property ) هست یا (تابع یا property ) کلاس دیگه.( مثلا در حالتی که کلاسهای تودرتو داشته باشیم )
  • توی eventهایی که this قابل حذف شدن نیست ( مثلا فرض کنید که داخل همون اسکوپ let یا run بخوایم اون متغییر رو به عنوان پارامتر یک متد مورد استفاده قرار بدیم )، استفاده از it به جای this به نظر بهتر و کوتاه‌تر میرسه.
  • به لحاظ نام‌گذاری و اینا استفاده از it بهتره، چون می‌تونیم به جای it ، داخل اسکوپ داخلی از یک اسم دیگه براش استفاده کنیم. به مثال زیر توجه کنید :
https://gist.github.com/sajjadyousefnia/c975a52c5acbdd88136ab80e2fcd93c5

۳- جنس چیزی که return میشه از نوع this باشه یا از جنس دیگری

حالا یک نگاهی به T.let و T.also میندازیم. اگه به اسکوپ داخلی تابع نگاهی بندازیم، ظاهرا هر دو یک کار رو انجام میدن.

https://gist.github.com/sajjadyousefnia/1a55699e16e78f60a4c97352c3e5e005

اما کمی با هم متفاوتن، این تفاوت در چیزی که return میکنن هست. T.let یک مقدار از هر نوعی رو میتونه return کنه ولی T.also صرفا متغییری از نوع T رو return میکنه.

هر دوی این توابع زنجیره‌ای به درد بخور هستن و کاربرد زیادی توی توابع زنجیره‌ای دارن، منتها بایستی که هر کدوم توی توابع زنجیره‌ای به شیوه‌ی درستی مورد استفاده قرار بگیرن. چون در T.let ، متغییر هربار دچار تغییر میشه ولی توی همه‌ی T.also ها از یک this یکسان استفاده میشه، به مثال‌های زیر توجه کنید :

https://gist.github.com/sajjadyousefnia/6ca462ef321b8c2383db10d88fa525cc

اینطور به نظر میرسه که بهتره به جای زنجیری نوشتن T.also همه رو داخل یک تابع بنویسیم، ولی اگه عمیق‌تر فکر کنیم متوجه میشیم که این حالت زنجیری سه مزیت داره :

۱- باعث میشه که بهتر بتونیم یک پروسه رو به قسمت‌های کوچکتر تقسیم کنیم.

۲- باعث میشه که بتونیم قبل از خروجی، داده‌ها رو بهتر مدیریت کنیم و احتمال خطا کاهش پیدا میکنه.

با ترکیب زنجیری متدهای مختلف میتونیم یک تابع قدرتمندتر و در عین حال کوتاه‌تر داشته باشیم. مثل پایینی :

https://gist.github.com/sajjadyousefnia/115c5228b3433904d2d23e7ed01a7567

با استفاده از سه ویژگی‌ای که گفته شد، میشه عملکرد یک تابع اسکوپ رو به خوبی فهمید. در ضمن ویژگی‌های ‌T.apply رو که قبل نگفتم به صورت زیر هست :

۱- یک extension function هست.

۲- این متد، this رو به عنوان آرگومان میفرسته.

۳-این متد this رو return میکنه.

ک میتونیم ازش به صورت زیر استفاده کنیم :

https://gist.github.com/sajjadyousefnia/42aab8f7b39667e8e5e1cf65c15b6ea1

یا میتونیم با استفاده ازش یک تابع رو به شکل زنجیری دربیاریم.

https://gist.github.com/sajjadyousefnia/c313a684bd679b7b235b396fdd02dc00

انتخاب تابع مناسب

کاملا واضحه که با استفاده از این سه ویژگی میتونیم توابع رو به سه دسته تقسیم‌بندی کنیم. و براساس همون درختی که ایجاد کردیم تصمیم بگیریم که کِی و از کدوم یکی استفاده کنیم و کدوم یکی به کار ما میاد.

امیدوارم خوب نوشته باشم، اگه دوست داشتید نظرتون رو بفرمایید.

نوشته آموزش توابع scope در کاتلین : let ، run ، with ، also و apply اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

چهار مهارتی که کارآموزان در کنار کد‌نویسی در کارادمی یاد خواهند گرفت

وقتی وارد بوت‌کمپ‌های کارادمی می‌شوید، کدنویسی آشکارترین مهارتی است که کارآموزان در حین دوره کسب می‌کنند. ولی این تمام مهارتی نیست که به آنان آموخته می‌شود.  در ادامه چهار مهارت کلیدی برای هر توسعه‌دهنده وب را در این نوشته می‌خوانیم.

  • همکاری

همکاری بین اعضاء تیم بسیار حائز اهمیت است ولی دست یافتن به آن کار ساده‌ای نیست. کار آموزان در این بوت‌کمپ با یکدیگر تیم می شوند و در پروژه‌های گروهی تاکتیک‌ها و راهبردهای خود را اجرایی و چاش‌های کار تیمی را تجربه می‌کنند.  علاوه بر این، اشتباهات فردی و تیمی کارآموزان و یادگیری از اشتباهات چیزی است که کارادمی خواهان آن است. در نتیجه همکاری در همه جنبه‌های کسب و کار مهم است: چه از کنترل منبع کد مانند GIT استفاده شود، حل مشکلات تجاری در دنیای واقعی با استفاده از کدنویسی و یا دادن نظرات مفید و پیش برنده به یکدیگر.

  • ارتباطات

ارتباطات یک مهارت ارزشمند و پایه یک تیم خوب است که توسعه‌دهندگان باید این مهارت را برای انجام وظایف خود با دیگر اعضای یک شرکت دارا باشند. همانطور که ارتباط با دیگر توسعه‌دهندگان از اهمیت خاصی برخوردار است، توانایی برقراری ارتباط با مدیریت، منابع انسانی، تیم فروش و سایر نقش ها در یک شرکت نیز به همان اندازه اهمیت دارد. به عنوان مثال یکی از دغدغه‌هایی که افراد برای انجام مصاحبه در شرکت‌ها و سازمان‌ها دارند عدم تسلط به برقراری ارتباط با مصاحبه کنندگان می‌باشد که در کارادمی به این مسائل نیز پرداخته خواهد شد.

  • حل مسئله

یکی از ارزشمندترین مهارت‌های یک توسعه‌دهنده، قابلیت حل مسائل و یا همان Problem Solving است. در بوت‌کمپ کارادمی کارآموزان از ساختار زیربنایی یک مسئله استفاده نموده، بهترین مسیر برای رسیدن به یک مشکل را تعیین و یا آن را  به تکه‌های کوچکتر تجزیه می‌سازند و به یک راه حل مناسب برای آن مشکل دست پیدا می کنند.

  • استفاده از منابع

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

برای اطلاعات بیشتر به آدرس https://karademy.ir مراجعه فرمایید.

نوشته چهار مهارتی که کارآموزان در کنار کد‌نویسی در کارادمی یاد خواهند گرفت اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

مقایسه محبوب ترین کنترل پنل های میزبانی وب

اغلب افرادی که به میزبانی وب نیاز دارند، بدنبال ساده ترین روش برای مدیریت سرور می باشند و انتظار دارند رابط گرافیکی همراه با هاست ارائه شود. بسیاری از شرکت های هاستینگ معتبر برترین کنترل پنل ها را در پلن های خود ارائه می دهند.

کنترل پنل یک محیط مبتنی بر وب است که امکان مدیریت خدمات مختلف سرور را از طریق مرورگر برای  کاربران و یا مدیران سرور فراهم می کند. کنترل پنل ها ویژگی و امکانات مشابهی با هم دارند، اما دارای تفاوت های منحصر بفردی در قابلیت استفاده، امنیت، نگهداری و … می باشند.

در این مقاله نگاهی گذرا به برخی از تفاوت های اصلی بین سه کنترل پنل محبوب که امروزه دردسترس و فعال می باشند، داریم و به مقایسه تفاوت های آن‌ها می پردازیم.

 

انواع کنترل پنل هاست

معرفی کنترل پنل Cpanel

Cpanel کنترل میزبانی وب، مبتنی بر لینوکس است .این کنترل پنل قدرتمند و معروف آمریکایی گران قیمت و در عین حال پرکاربرد بوده که امروزه یکی ازپیشرفته ترین کنترل پنل های روز دنیاست. میلیون ها وب سایت در سراسر جهان از سی پنل استفاده می کنند. Cpanel کنترل کاملی را به شما در مورد عملیاتی مانند ایجاد دیتابیس، مدیریت فایل های سایت، ایجاد اکانت ایمیل و پاسخگوی خودکار ارائه می دهد. علاوه بر رابط گرافیکی،سی پنل دارای خط فرمان نیز می باشد که به فروشندگان نرم افزار، شرکت های میزبانی وب و توسعه دهندگان اجازه می دهد تا فرآیندهای مدیریتی را به شکل اتوماتیک انجام دهند.

رابط کاربری cpanel

معرفی کنترل پنل Direct Admin

DirectAdmin یکی از قوی ترین و بهترین کنترل پنل های موجود برای سرورهای لینوکس می باشد. دایرکت ادمین بگونه ای برنامه نویسی شده است که از  سرعت خارق العاده ای در اجرا و لود درخواست ها برخوردار می باشد، رابط کاربری پنل دایرکت ادمین در عین قدرتمندی بسیار آسان و کاربر پسند است و عملکرد و کارایی را تا حد زیادی برای کاربر رضایت بخش می کند. کاربران با استفاده از این نرم افزار می توانند تمام امکانات سایت خود را از جمله ایمیل ها، بانک های اطلاعاتی، FTP، آمار و … مدیریت نمایند. از آنجایی که این نرم افزار کانادایی است، همانند کنترل پنل های آمریکایی مانند cPanel و … از ریسک پایین تری نسبت به تحریم و قطع شدن لایسنس برخوردار است. بسیاری از مدیران سرور ها بعد از تحریم های اعمال شده روی cPanel به DirectAdmin مهاجرت کردند.

رابط کاربری دایرکت ادمین

 

معرفی کنترل پنل plesk

کنترل پنل Plesk به دلیل پشتیبانی از هر دو سیستم عامل و پلتفرم ویندوزی و لینوکسی ، در حوزه هاستینگ  و سرور از محبوبیتی خوبی برخوردار است و توجه مدیران سایت و وب­مسترها را به خود جلب کرده است. شما می­توانید با استفاده از پلسک ، بدون دانش بسیار فنی ، تنظیمات هاست خود را مدیریت و کنترل کنید. در میان کنترل پنل هایی که برای ویندوز ارائه شده بیشتر آنها پایدار نیستند و از درجه اطمینان پایینی برخوردارند. کنترل پنل پلسک با ارائه اینترفیس قوی و مناسب به کمک پنل­های ویندوزی آمد و امکاناتی که دارد، تجربه جدیدی برای کاربرانش فراهم کرده است.

این کنترل پنل امکان نصب بر روی هر دو سرور لینوکس و سرور ویندوز را دارا می باشد اما بیشتر روی سرور ویندوز اجرا می شود. این کنترل پنل دارای محیطی ساده برای مدیریت منابع سرور می باشد و بسیار کاربر پسند است. پنل پلسک دارای امکانات بسیار پیشرفته ای جهت مدیریت بر هاستینگ اختصاصی و میزبانی اشتراکی و مجازی می باشد. بسیاری از برنامه ها بر روی این سرور قابلیت تنظیم و نصب خودکار را دارند.

رابط کاربری پلسک

 

رابط کاربری

احتمالا اصلی ترین گزینه ای که ممکن است در انتخاب کنترل پنل تاثیرگذار باشد، رابط کاربری است.  بدیهی است رابط کاربری باید به گونه ای باشد که احساس خوبی در کاربر ایجاد نموده و دسترسی آسان به بخش های مختلف آن بسادگی امکانپذیر باشد.

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

با کلیک بر روی دمو مربوط به  هر کنترل‌پنل می توانید با رابط کاربری آن بیشتر آشنا شوید:

مشاهده دمو plesk                      https://webpro-lin.demo.plesk.com:8443/smb/

مشاهده دمو cpanel                    https://cpanel.com/demo/

مشاهده دمو  DirectAdmin           https://www.directadmin.com/demo.php

 

سازگاری سیستم عامل

از دیگر تفاوت های این کنترل پنل ها قابلیت اجرا برروی سیستم عامل های مختلف می باشد. از بین این سه کنترل‌پنل تنها پلسک سازگار با هر دو سیستم عامل لینوکس و ویندوز می باشد و در صورتیکه نیاز به استفاده همزمان از Php  و Asp داشته باشید و یا بخواهید php را در ویندوز استفاده کنید می توانید از کنترل‌پنل Plesk  استفاده کنید.

 

 

سیستم عامل

 

نام کنترل پنل

Linux (RedHat/CentOS/FreeBSD/Debian)  

cPanel

 

Windows Server (2012), Linux (CentOS/CloudLinux/RedHat/Ubuntu/Debian, openSUSE)  

Plesk

 

Linux (RedHat/CentOS/FreeBSD/Debian)

 

 

DirectAdmin

 

 

پنل مدیریت

Cpanel دارای دو بخش اصلی می باشد. بخش دسترسی کاربران که Cpanel و بخش دسترسی مدیر که Whm شناخته می شود. اگرچه دوبخش به هم لینک شده اند اما دارای لاگین و رابط مجزایی می باشند.  در دایرکت‌ادمین و پلسک  تنها یک لاگین برای مدیران و کاربران وجود دارد و اگرچه بنظر شبیه هم می باشند اما گزینه‌های کاملا متفاوتی دارند.

 

سهولت مدیریت

cpanel و plesk  هر دو محیط گرلفیگی تقریبا ساده ای را جهت نصب نسخه های مختلف Php و نصب ماژول های مورد نیاز کاربران را فراهم نموده اند، مخصوصا Cpanel که با فراهم کردن محیط easyapache  این کار را ساده تر کرده است و شما بعنوان یک مدیر سرور  بدون دانش بسیارفنی بسادگی می توانید، با آن کار کنید. محیط custom build مشابه فراهم شده در دایرکت ادمین کمی پیچیده تر است اما در رابطه با نصب ماژول های مختلف و یا تغییرات مورد نیاز در دایرکت ادمین در سایت های مختلف حتی فارسی  مطالب زیادی درج شده است و نیاز به نگرانی از این بابت وجود نخواهد داشت.

 

امنیت

یکی از موارد بسیار مهمی که می تواند بر روی اعتبار سرویس تأثیرگذار باشد، امنیت اکانت ها و امنیت سرور است. مکانیزم دسترسی به حساب کاربری در هر سه کنترل پنل به خوبی تفکیک شده است؛ بنابراین به هیچ وجه این امکان وجود ندارد که یک کاربر به حساب کاربر دیگری وارد شود. شما می توانید سیاست های رمزعبور، مدت زمان آماده به کار بودن، و بلک لیستی از IPها را به اجرا در آورید. برای امنیت در سطح حساب کاربری، در همه کنترل پنل ها توصیه می شود که افزونه هایی را نصب نمایید، افزونه هایی مانند فایروال ها ، اسکنرهای آپلود فایل، فیلترهای ضد هرزنامه و احراز هویت چندعاملی. با این وجود معروف است که پلسک در مواجهه با خطرِ آسیب­ پذیری،سریع­تر واکنش نشان میدهد. بهترین روش برای کاهش خطرات امنیتی نظارت بر کانالهای امنیتی است؛ و اگر در حین این نظارت مسأله ای یافت شود می بایست با استفاده از فایروال ها یا پچ های نرم افزار مربوطه دسترسی آن مسدود شود.

مقایسه کنترل پنل ها

مزایای cpanel:

سادگی نصب: cpanel براحتی و با اجرای اسکریپت بر روی سیستم عامل لینوکس در تعداد مراحل کمی نصب می شود.

سازگاری بالا: این کنترل پنل بطور گسترده با بسیاری از برنامه های متن باز سازگار است.

رابط های تعاملی: cpanel واسط های مختلف مجازی را برای کاربران مختلف شامل کاربران، مدیران و کاربران ایمیل فراهم می کند.

معایب cpanel:

آسیب پذیری:  با توجه به زمان فرآیند بروزرسانی که معمولا شبانه انجام می شود، هرگونه حمله قبل از بروزرسانی می تواند تهدید بزرگی محسوب شود.

مشکلات تحریم برای کاربران ایرانی

هزینه لایسنس بالا

 

مزایای دایرکت ادمین:

عدم وجود مشکلات تحریم برای کاربران ایرانی

سرعت بسیار بالای بارگذاری کنترل پنل

سادگی رابط کاربری

مصرف منابع کمتر

هزینه کمتر

معایب دایرکت ادمین:

بالابودن هزینه های ارتقاء و افزایش امکانات آن

 

مزایای پلسک:

پشتیبانی همزمان از لینوکس و ویندوز

رابط کاربری دوستانه

قابلیت تنظیم فایروال متناسب با سیستم عامل

معایب پلسک:

هزینه بیشتر نسبت به دایرکت ادمین

گستردگی کمتر نسبت به cpanel

 

در پایان هر کدام از این سه کنترل پنل نقاط قوت و ضعفی دارند. هر فرد بنابه ویژگی های متفاوت این کنترل پنل ها مانند سازگاری سیستم عامل، قیمت گذاری، پشتیبانی فنی، سهولت استفاده، افزودنیها و … می تواند کنترل پنل مناسب تر برای سایتش را انتخاب کند. اما من به شما توصیه می کنم با توجه به سادگی پنل کاربری دایرکت ادمین و عدم مشکلات تحریم و هزینه پائین تر برای سرورهای لینوکسی از این کنترل پنل استفاده کنید و در سرورهای ویندوزی با توجه به امکانات متعددی که پلسک در اختیار شما قرار می دهد، حتما از کنترل پنل پلسک استفاده کنید، شاید کنترل پنل های رایگانی برای سرورهای ویندوزی وجود داشته باشد اما در طی مرور با توجه به نیاز هایی که پیدا خواهید کرد مشاهده خواهید نمود که کنترل پنل های رایگان چه امکانات ساده مورد نیاز شما را نداشته و با چه خطاهایی مواجه می شوند، امیدواریم در این مقاله اطلاعات کافی برای کمک به انتخاب صحیح شما ارائه شده باشد.

جهت مشاهده هزینه لایسنس این کنترل پنل ها و ثبت سفارش به لینک خرید لایسنس نرم افزاری سایت لطفا مراجعه نمائید. همینطور جهت خرید لایسنس و فعالسازی آن می توانید با بخش فروش ایران سرور تماس حاصل کنید.

۰۵۱۳۱۷۷۶-۹۰۱

نوشته مقایسه محبوب ترین کنترل پنل های میزبانی وب اولین بار در ایران سرور پدیدار شد.

گردآوری توسط ایده طلایی

چرا و چطور فریلنسر بشیم؟

واقعیتش، بچه‌ها از من زیاد میپرسن که «چطوری فریلنسر بشیم؟» یا از تجربه هام به عنوان فریلنسر می‌پرسند، منم همیشه سعی می‌کنم تجربه خودم را با اون‌ها شر کنم.

خیلی وقت بود که دوست داشتم توی یک سری مطلب به هم پیوسته در مورد تجربه خودم در این زمینه و اینکه چرا فریلنسری را بهتر از کارمندی میدونم محتوایی تولید کنم.

اول میخواستم ضبطش کنم به شکل پادکست جمع آوری و منتشرش کنم اما به دلایل متعدد نیمه کاره موند اون قضیه از جمله مشکل کمال گرایی به قول گفتنی که من دارم.

امروز داشتم فکر می‌کردم، بالاخره از یه جایی باید شروع کرد، این شد که شروع کردم به نوشتن این مطلب و در ادامه یه کلیاتی از قضیه براتون می‌گم، اگر دیدید علاقه دارید به این بحث یا سوالی در این خصوص دارید همینجا کامنت بزارید و سوالتون را بپرسید تا در پست های بعدی دقیق‌تر وارد جزییات بشم.

تعریفی که ویکی پدیا از فریلنسر نوشته اینه که به کسایی که بدون قرارداد یا تعهدات طولانی مدت با اشخاص یا شرکت ها کار می‌کنند فریلنسر گفته میشه. از تعریف تاریخیش هم بگذریم، که به درد کسی نمی‌خوره، خیلی دوست دارید برید توی همون ویکی‌پدیا بخونید.

برم سر اصل مطلب، اول بگم، یه اشتباهی که بعضی می‌کنن اینه که فکر میکنن فریلنسری فقط مختص برنامه نویس هاست و حوزه آی‌تی، در حالی که اصلا چنین محدودیتی وجود نداره. تاپ ترین زمینه هایی که توی اون به صورت فریلنس کار میشه، برنامه‌نویسی، خبرنگاری، عکاسی و یکی هم نویسندگی هست.

اولین نکته مهم در مورد کار به عنوان یک فریلنسر این هست که اگر الان کارمند حقوق بگیر هستید، اولین چالشتون اینه که باید سبک زندگی خودتون را تغییر بدید. خوب این گفتنش راحته اما در عمل به این راحتی هم نیست. اگر اهل به چالش کشیدن خودتون نیستید وقت خودتون را هدر ندید.

کار به صورت فریلنسر یک سری مهارت هایی لازم داره که بعضا متفاوت هست با زندگی روتین کارمندی، شما باید توانایی های مختلفی را توی خودتون توسعه بدید چون کل کسب و کار شما روی دوش خود شماست.

شاید اولین فکرتون این باشه که خوب، من الان کارمند هستم و یه دستمزد مشخصی دارم و می‌تونم روی اون برنامه ریزی کنم و فلان قسط را دارم اگر بخوام فریلنس کار کنم کی خرج اینا را بده؟

اینطور بگم که، فریلنسر ها هم از کره مریخ نیومدن و از کسی هم ارث بهشون نرسیده که تفریحی کار کنند، اون ها هم بعضا همین مخارج را دارند، فقط شیوه مدیریت مخارج و درآمد هاشون با شما متفاوت. توی یه مطلب دیگه این بحث را باز می‌کنم اگر سوالی دارید بپرسید تا اونجا جواب بدم.

من خودم خیلی اهل زندگی کارمندی نبودم، برای همین خیلی برام سخت نبود که به صورت فریلنسر کار کنم، مهمتر اینکه از اول به صورت فریلنس شروع به کار کردم و بعد چند سالی با یه شرکتی کار کردم، که البته اون کار هم به صورت پیمانکاری بود اما خوب باید حضوری کار می‌کردم و ساعت کار مشخص داشت.

نهایت اینکه وقتی کارم با اون شرکت تموم شد، می‌دونستم که آدمی نیستم که بخوام زیر بار تایم کاری ثابت و سلسله مراتب و بروکراسی اداری برم.

اما چرا من کار فریلنسری را دوست دارم؟ راستش، اولویت من توی زندگی آزادی هام هست و لذت بردن از اون ها، به طبع اون دوست دارم بر روی کار خودم تا جای ممکن آزادی داشته باشم.

بدون رودبایسی، من دوست ندارم هر روز صبح از خواب بلند بشم و برم سر کار، دوست دارم از هر جایی خواستم کار کنم، هر چقدر دوست دارم با دیگران وقت بزارم، هر ساعتی دلم میخواد بخوابم یا اصلا تمام شب را نخوابم! هر وقت دوست دارم و هر چقدر دلم می‌خواد به سفر برم. خلاصه اینکه دلم می‌خواد هر وقت هر کاری خواستم بکنم.

شاید فکر کنید چیزی مثل این باعث بی نظمی میشه و کنترل کار از دستم آدم در میره، برای کسی که کارمند بوده و به زندگی کارمندی خو گرفته این فکر طبیعی، البته خیلی هم بی راه نیست، اما به فرض که اینطور باشه می‌دونیم که در بی نظمی هم همیشه نظمی هست که خوب وقتی شما فریلنسر باشید و بیشتر وقت ها تنها کار کنید از اون نظم سر در میارید، پس غصه بی نظمی را نخورید.

یک سری متدها و ابزار هایی هم هستند که در این کار به شما کمک می‌کنند که خوب اون را هم در یک مطلب جدا در موردش می‌نویسم.

به نظر من آدم انقدر عمر نمی‌کنه که بخواد بزاره بقیه روال زندگیشو تعیین کنند، دلیل بعدی برای کار به صورت فریلنس برای من همین. شما وقتی به صورت فریلنس کار می‌کنید زمان و آزادی بیشتری برای زندگی کردن دارین.

نکته دیگه اینه که به عنوان فریلنسر شما هستید که انتخاب می‌کنید با کی و تا کی کار کنید. اگر دیدید با کسی نمی‌تونید کار کنید، باهاش کار نمی‌کنید، حالا چه مشتری با درخواست های عجیب و غریب باشه، چه یه همکار نچسب، یا یه مدیری که قبولش ندارید.

به نظر من وقتی به عنوان فریلنسر کار می‌کنید، مهم ترین توانایی شما تجربیات شماست، کسی هم از شما نمی‌پرسه کجا درس خوندید یا چه رشته ای خوندید، چون مهم نیست. مهم اینه که شما بتونید کار خودتون را درست انجام بدید و این را به مشتری هم نشون بدید که توانایی انجام کار را دارید و اعتماد اون را هم جلب کنید.

من به شخصه آدم درس خونی نبودم، علاقه ای به درس و مدرسه هم نداشتم و دانشگاه را هم ادامه ندادم و حتی هنوز هم که فکر می‌کنم که کسی بخواد حداقل چهار سال از عمر خودش را توی دانشگاه اون هم دانشگاه های ایران هدر بدم کهیر میزنم.

من از نوجوانی با کامپیوتر آشنا و به اون علاقه مند شدم (بیشتر بخش نرم افزاریش، خیلی موفقیتی توی بخش سخت افزار نداشتم) و همین علاقه را ادامه دادم و هر روز سعی کردم چیز های جدید یاد بگیرم و تجربه های جدید کسب کنم.

اینو گفتم که بگم یکی دیگه از نکات مهمی که به عنوان یک فریلنسر باید بدونید اینه که باید مهارت سلف استادی یا به قول گفتنی توانایی خود آموزی داشته باشید. خودتون باید برید دنبال یاد گرفتن و باید به یاد گرفتن علاقه داشته باشید نه درس خوندن.

این مورد هم برای من کار سختی نبود، چون یکی از پشن ها و علایق من یادگرفتن چیز های جدید هست، من از یاد گرفتن چیز های جدید و متفاوت لذت می‌برم. به خصوص اگر توی حوزه هایی باشه که به اون ها علاقه بیشتری دارم. شما هیچ وقت از زمانی که برای یاد گرفتن میگذارید ضرر نمی‌کنید، البته باز اشاره کنم که یاد گرفتن را با درس خوندن قاطی نکنید.

فکر کنم تا اینجا کافی هست برای این مطلب، سعی می‌کنم توی مطالب بعدی در مورد چیز هایی که به من کمک کرده تا مدیریت و کنترل بهتری توی کارم داشته باشم، مثل زمان بندی کارها، مدیریت منابع مالی، مدیریت و روابط با مشتریان، توسعه کسب و کار و جذب و کار روی پروژه های بین المللی و سایر مواردی که به اون ها اشاره شد و مواردی که به نظرم مفید میاد بنویسم.

همونطور که قبلا هم گفتم اگر سوالی در این خصوص داشتید یا حتی تجربه ای به عنوان یک فریلنسر دارید که فکر می‌کنید مفید هست با من هم به اشتراک بگذارید. طبعا همه ما زمان برای تجربه همه چیز را نداریم و با استفاده از تجربیات همدیگه می‌تونیم موفق تر عمل کنیم.

نوشته چرا و چطور فریلنسر بشیم؟ اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی