CleverDevs
اپدیت جدید تلگرام اومده تو این آپدیت کانال های بالای ۱۰۰۰ نفر میتونن عکس های پولی بزارن چنل تا با Telegram Stars پرداخت بشه از فردا اونلیفنزارو میریزن تو تلگراما😂 پ.ن: عکس لوگوی چنله اگه کسی کنجکاو شد. #News #telegram @CleverDevs - @CleverDevsGp
اگه تلگرامتون اپدیت نیست کامنتارو ببینید
👍5
قابلیت دیگه ای که توی این اپدیت اومده
مینی مایز کردن وب اپ های تلگرامه که خیلی کاربردیه
یعنی وسط کار با وب اپ ها (مثل ناتکوین و ..) میتونید یه دیقه برید توی تلگرام بدون اینکه وب اپ رو کامل ببنید
#News #telegram
@CleverDevs - @CleverDevsGp
مینی مایز کردن وب اپ های تلگرامه که خیلی کاربردیه
یعنی وسط کار با وب اپ ها (مثل ناتکوین و ..) میتونید یه دیقه برید توی تلگرام بدون اینکه وب اپ رو کامل ببنید
#News #telegram
@CleverDevs - @CleverDevsGp
👍25🔥6👌3👎1🆒1
-اصل Bad Comments در کلین کد
این دسته که از کامنت ها که بیشتر کامنت هایی که میزاریم رو شامل میشه کامنت هایی ان که سود خاصی برامون ندارن و الکی کد رو شلوغ میکنن
این اصل چنتا زیر مجموعه داره و کامنت های بدی که میتونید بزارید رو گفته تو این پست سعی میکنم به طور خلاصه همشون رو بگم
1 - Mumbling
یعنی اینکه کامنتی بزاری که نامفهمومه و بیشتر از اینکه بدرد بخور باشه باعث سر در گمیه
2 - Redundant Comments
یعنی کامنت هایی که بدرد نخور و اضافن و خوندوشون از خوندن کد کد زمان بیشتری میبره
3 - Misleading Comments
یعنی یجور لقمه رو دور سر بپیچونی که کسی که کامنت رو میخونه کلا فکر و ذهنش منحرف بشه به یه سمت دیگه
4 - Mandated Comments
کامنت هایی که برای هر متغیری مینویسد و معمولا زیاد بدرد نمیخورن مثل javadocs
5 - Journal Comments
اینکه بیای و تغییرات پروژه رو هر بار تو کامنتا بزنی ، اینکار برا قبل اومدن سیستم های کنترل ورژن مثل گیت بود این نوع کامنتا الان بدرد نمیخورن
6 - Noise Comments
کامنت هایی که کار خاصی ندارن و فقط کد رو شلوغ کردن مثل
7 - Commented-Out Code
کامنت کردن کد ها هم یکی از بدترین نوع کامنت هاست
8 - Too Much Information
یعنی اینکه تو کامنت اطلاعات زیادی بدی انقدر زیاد باشه خوندنش کلی وقت ببره
این فصل هم تموم شد و میتونید لیستش رو اینجا ببینید
#CleanCode
@CleverDevs - @CleverDevsGp
این دسته که از کامنت ها که بیشتر کامنت هایی که میزاریم رو شامل میشه کامنت هایی ان که سود خاصی برامون ندارن و الکی کد رو شلوغ میکنن
این اصل چنتا زیر مجموعه داره و کامنت های بدی که میتونید بزارید رو گفته تو این پست سعی میکنم به طور خلاصه همشون رو بگم
1 - Mumbling
یعنی اینکه کامنتی بزاری که نامفهمومه و بیشتر از اینکه بدرد بخور باشه باعث سر در گمیه
2 - Redundant Comments
یعنی کامنت هایی که بدرد نخور و اضافن و خوندوشون از خوندن کد کد زمان بیشتری میبره
3 - Misleading Comments
یعنی یجور لقمه رو دور سر بپیچونی که کسی که کامنت رو میخونه کلا فکر و ذهنش منحرف بشه به یه سمت دیگه
4 - Mandated Comments
کامنت هایی که برای هر متغیری مینویسد و معمولا زیاد بدرد نمیخورن مثل javadocs
5 - Journal Comments
اینکه بیای و تغییرات پروژه رو هر بار تو کامنتا بزنی ، اینکار برا قبل اومدن سیستم های کنترل ورژن مثل گیت بود این نوع کامنتا الان بدرد نمیخورن
6 - Noise Comments
کامنت هایی که کار خاصی ندارن و فقط کد رو شلوغ کردن مثل
/** The day of the month. */
private int dayOfMonth;
7 - Commented-Out Code
کامنت کردن کد ها هم یکی از بدترین نوع کامنت هاست
8 - Too Much Information
یعنی اینکه تو کامنت اطلاعات زیادی بدی انقدر زیاد باشه خوندنش کلی وقت ببره
این فصل هم تموم شد و میتونید لیستش رو اینجا ببینید
#CleanCode
@CleverDevs - @CleverDevsGp
👍17🔥5❤3
CleverDevs
دوستان ما یه تصمیمی گرفتیم که اگه بیشتر از یه تعدادی از بچه ها پایه باشید شروعش کنیم 👨💻 کارمون از این قراره که ما اومدیم یه اکانت گیت هاب زدیم و میخوایم تیم های مختلفی تشکیل بدیم و باهم دیگه پروژه های اوپن سورس بزنیم اما مزیت این کار اینه که میتونید تو…
تیم های حوزه های مختلف تشکیل شدن و داریم ایده های مختلف رو بررسی میکنیم تا پروژه هارو بالا بیاریم
اگه پایه بودید و هنوز جوین ندادید میتونید بیایید تو گروه زیر و توی تاپیک مربوطه ایدی گیت هابتون رو بدید تا اضافتون کنیم به تیم ها
https://news.1rj.ru/str/+mdJgJfZOBfU0ODlk
همچین جای طراح های ui ux توی جمعمون خالیه اگه تجربه ای تو این زمینه دارید خوشحال میشیم به تیم بپیوندید
@CleverDevs - @CleverDevsGp
اگه پایه بودید و هنوز جوین ندادید میتونید بیایید تو گروه زیر و توی تاپیک مربوطه ایدی گیت هابتون رو بدید تا اضافتون کنیم به تیم ها
https://news.1rj.ru/str/+mdJgJfZOBfU0ODlk
همچین جای طراح های ui ux توی جمعمون خالیه اگه تجربه ای تو این زمینه دارید خوشحال میشیم به تیم بپیوندید
@CleverDevs - @CleverDevsGp
👍14👌4🔥1
مث اینکه تلگرام باگ خورده و نمیتونید پیوی کسی پیام بدید
دست به گیرنده ها نزنید مشکل همگانیه احتمالا
برا شماهم باگ خورده ؟
#News
@CleverDevs - @CleverDevsGp
دست به گیرنده ها نزنید مشکل همگانیه احتمالا
برا شماهم باگ خورده ؟
#News
@CleverDevs - @CleverDevsGp
👎56👍21
این تیکه کد ساده که با Nodejs نوشتم پروکسی های که در آخرین پست یک کانال هست رو استخراج و داخل یک لیست برمیگردونه، میتونه بصورت یک ماژول در ربات هاتون نصب بشه برای دوستانی که چنل دارن و با ربات به چنلشون پست ارسال میکنن میتونه خیلی مفید باشه.
خودم بهش نیاز داشتم زدمش گفتم شاید دوستانی هم باشن که بهش نیاز داشته باشن، میتونین آدرس چنل رو عوض کنید و چنل مد نظرتون رو بزارین داخلش.
شاید برای دوستان سوال باشه چرا از کلمه کلیدی var برای متغییر های استفاده شده، اگر قرار نیست پروژه هاتون رو با Babel یا ابزار مشابه کامپایل کنین هیچوقت از let و const استفاده نکنین Garbage Collector در js نمیتونه به خوبی مموری رو تمیز کنه و مشکلاتی اعم از کرش برنامه و ... پیش میاد.
کلا سعی کنید در هر صورتی که شده کامپایل رو انجام بدین ولی اگر نمیخواین این کارو بکنین تا حد ممکن از فیچر های جدید در js استفاده نکنین.
@CleverDevs - @CleverDevsGp
const { default: axios } = require("axios");
const cheerio = require("cheerio");
module.exports = {
requests: async () => {
try {
// get html data
var {data: requestTelegramChannle} = await axios('https://news.1rj.ru/str/s/NPROXY');
// parse html data
var $ = cheerio.load(requestTelegramChannle);
// get proxys
var mainElement = $('body > main > div > section > div:last-child').html()
var tempElement = $('<div>').html(mainElement);
var proxyList = []
tempElement.find('a[rel="noopener"]').each((i, el) => {
if ($(el).attr('href').includes('https://news.1rj.ru/str/proxy?server=')) {
proxyList.push($(el).attr('href'))
}
});
return proxyList
} catch (error) {
console.error(error+'');
}
}
}خودم بهش نیاز داشتم زدمش گفتم شاید دوستانی هم باشن که بهش نیاز داشته باشن، میتونین آدرس چنل رو عوض کنید و چنل مد نظرتون رو بزارین داخلش.
شاید برای دوستان سوال باشه چرا از کلمه کلیدی var برای متغییر های استفاده شده، اگر قرار نیست پروژه هاتون رو با Babel یا ابزار مشابه کامپایل کنین هیچوقت از let و const استفاده نکنین Garbage Collector در js نمیتونه به خوبی مموری رو تمیز کنه و مشکلاتی اعم از کرش برنامه و ... پیش میاد.
کلا سعی کنید در هر صورتی که شده کامپایل رو انجام بدین ولی اگر نمیخواین این کارو بکنین تا حد ممکن از فیچر های جدید در js استفاده نکنین.
@CleverDevs - @CleverDevsGp
❤20👍9🔥3🤣2👎1
سایت شخصی نامزد ریاستجمهوری رو مشاهده میکنید که یه بخشی طراحی کردن که استانی رو مشخص میکنید و شماره های فعال و درحال استفاده ای رو براتون نمایش میده تا برید زنگ بزنید و ازشون بخواید به دکتر(👍🏽) جلیلی رأی بدن.
اصلا فکر نکنید این کار یک درصد مزاحمت باشه، بدون شک تشویق عموم برای همبستگیه.
@CleverDevs - @CleverDevsGp
اصلا فکر نکنید این کار یک درصد مزاحمت باشه، بدون شک تشویق عموم برای همبستگیه.
هرروز اوپن سورس تر از دیروز
@CleverDevs - @CleverDevsGp
🤣86👍7💔5⚡1👎1
این باگ جدیده که توی openssh هم بود ماجرای جالبی داشته
اگه حوصلش رو دارید ویدیوی جادی در این باره رو ببینید
جزئیاتش یکم سخته ولی خب تا همونجایی هم که میشه فهمید باحال بود
https://youtu.be/EClct9i_7Wc
#openssh
@CleverDevs - @CleverDevsGp
اگه حوصلش رو دارید ویدیوی جادی در این باره رو ببینید
جزئیاتش یکم سخته ولی خب تا همونجایی هم که میشه فهمید باحال بود
https://youtu.be/EClct9i_7Wc
#openssh
@CleverDevs - @CleverDevsGp
👍20❤2⚡2
خب اگه نمایش هاتون تموم شد
سیم اینترنت رو وصل کنید ماهم به کارهامون برسیم
@CleverDevs - @CleverDevsGp
سیم اینترنت رو وصل کنید ماهم به کارهامون برسیم
@CleverDevs - @CleverDevsGp
👍124🤣9👌7👎3❤2🔥1
CleverDevs
سطح پاسخگویی شرکت های ایرانی : source @CleverDevs - @CleverDevsGp
این وضعیت نوبیتکس هست بزرگترین صرافی ایران، از شرکت های کوچیکتر چه انتظاری میشه داشت.
بخاطر این مشکلی که گزارش کردم چند سرویسشون رو کامل برای نیم ساعت داون گرید کردن.
بعد شما برای همین عزیزان رزومه میفرستی روتم نگاه نمیکنن
@CleverDevs - @CleverDevsGp
بخاطر این مشکلی که گزارش کردم چند سرویسشون رو کامل برای نیم ساعت داون گرید کردن.
بعد شما برای همین عزیزان رزومه میفرستی روتم نگاه نمیکنن
@CleverDevs - @CleverDevsGp
👍69🤣13💔9
هک71 میلیون دلاری!!! ☠
توی یه حمله فیشینگ اخیر، هکرا با استفاده از تکنیک
"Address Poisoning"
1155 WBTC
(معادل ۷۱.۱ میلیون دلار) سرقت کردن 💀✨
قضیش از این قراره که هکرا اومدن کلی آدرسهای جعلی مشابه با آدرسهای معتبر ایجاد کردن (4 و 6 رقم اخر) و تراکنشای کوچیکی به این آدرسا ارسال کردن
این تراکنشا میرفت توی تاریخچه کیف پول قربانی ثبت میشد و بوم!!💥
وقتی کاربر قصد ارسال وجه و داشت به جای بررسی دقیق آدرس مقصد، به اشتباه از آدرسای موجود توی تاریخچه استفاده میکرد!!!
پس خیلی سیمپل وجوه به حساب هکرها منتقل میشد،
که به طور غیرمنتظره، هکرا ۲۲,۹۶۰ ETH (۶۶.۸۸ میلیون دلار) رو به قربانیا برگردوند و فقط ده درصدشو برداشتن
شاید بگین چرا؟ 😵💫
باید بگم چون یکی از قربانیا توییت زده بود🫥:
جزئیات بیشترو اینجا بخونید
@CleverDevs
@CleverDevsGp
توی یه حمله فیشینگ اخیر، هکرا با استفاده از تکنیک
"Address Poisoning"
1155 WBTC
(معادل ۷۱.۱ میلیون دلار) سرقت کردن 💀✨
قضیش از این قراره که هکرا اومدن کلی آدرسهای جعلی مشابه با آدرسهای معتبر ایجاد کردن (4 و 6 رقم اخر) و تراکنشای کوچیکی به این آدرسا ارسال کردن
این تراکنشا میرفت توی تاریخچه کیف پول قربانی ثبت میشد و بوم!!💥
وقتی کاربر قصد ارسال وجه و داشت به جای بررسی دقیق آدرس مقصد، به اشتباه از آدرسای موجود توی تاریخچه استفاده میکرد!!!
پس خیلی سیمپل وجوه به حساب هکرها منتقل میشد،
که به طور غیرمنتظره، هکرا ۲۲,۹۶۰ ETH (۶۶.۸۸ میلیون دلار) رو به قربانیا برگردوند و فقط ده درصدشو برداشتن
شاید بگین چرا؟ 😵💫
باید بگم چون یکی از قربانیا توییت زده بود🫥:
You won bro
Keep 10% to yourself and get 90% back.
Then we'll forget about that.
We both know that 7m will definetely make your life better, but 70m won't let you sleep well.
جزئیات بیشترو اینجا بخونید
@CleverDevs
@CleverDevsGp
🤣71🔥21🤯11👌3👍2🆒2❤1
درود دوستان
این ریپو از اون ریپو هاست وقتی بازش میکنی تا صد سال دیگم دلت نمیاد اون تب رو تو مروگر ببندی.
تمامی دیتا استراکچر ها و الگوریتم هارو برای زبان های مختلف جمع کرده🤩 با مثال های ساده
https://github.com/TheAlgorithms
تو رشته کاری ما از همه چی مهم تر دونستن دیتا استراکچر ها و الگوریتم هاس که قبلا هم بهش اشاره کردم.
حتما به ریپوش سر بزنین بهش استار بدین و حسابی خودتونو درگیرش کنید.
@CleverDevs
@CleverDevsGp
این ریپو از اون ریپو هاست وقتی بازش میکنی تا صد سال دیگم دلت نمیاد اون تب رو تو مروگر ببندی.
تمامی دیتا استراکچر ها و الگوریتم هارو برای زبان های مختلف جمع کرده🤩 با مثال های ساده
https://github.com/TheAlgorithms
تو رشته کاری ما از همه چی مهم تر دونستن دیتا استراکچر ها و الگوریتم هاس که قبلا هم بهش اشاره کردم.
حتما به ریپوش سر بزنین بهش استار بدین و حسابی خودتونو درگیرش کنید.
@CleverDevs
@CleverDevsGp
🔥37❤7👌6👍3
🔥 "تیم اسپیک، الگوی دیسکورد"
⚡️ | تیم اسپیک حدود 25 سالی هست که برای برقراری ارتباط صوتی بین کاربرها ساخته شده و بصورت منظم تا به امروز آپدیت شده، امنیت بسیار بالا و کیفیت و سرعت انتقال صدای بینظیرش باعث شده تا به امروز مورد استفاده قرار بگیره.
🏆 | این روزها که دیسکورد فیلتر شده جایگزین خیلی بهتری هستش، بطوری که میشه سرور های شخصی داخل ایران هم راه اندازی کرد که پینگ خیلی پایینی داره و حجم خیلی کمتر از دیسکورد استفاده میکنه؛ درضمن در مقایسه با دیسکورد، کم حجم و خیلی سبک و اوپتیمایز تر هم هستش.
@CleverDevs - @CleverDevsGp
⚡️ | تیم اسپیک حدود 25 سالی هست که برای برقراری ارتباط صوتی بین کاربرها ساخته شده و بصورت منظم تا به امروز آپدیت شده، امنیت بسیار بالا و کیفیت و سرعت انتقال صدای بینظیرش باعث شده تا به امروز مورد استفاده قرار بگیره.
🏆 | این روزها که دیسکورد فیلتر شده جایگزین خیلی بهتری هستش، بطوری که میشه سرور های شخصی داخل ایران هم راه اندازی کرد که پینگ خیلی پایینی داره و حجم خیلی کمتر از دیسکورد استفاده میکنه؛ درضمن در مقایسه با دیسکورد، کم حجم و خیلی سبک و اوپتیمایز تر هم هستش.
بزودی برای خانواده عزیز CleverDevs قراره سروری راه اندازی کنیم تا شما عزیزان نیز به راحتی و بدون دردسر هر زمانی بتونید با دوستان و تیم خودتون ارتباط صوتی برقرار کنید.❤️
@CleverDevs - @CleverDevsGp
❤28👍6🔥5
یکی از ابزار های باحال گیت ungit هستش که یه gui برای گیت هستش که تحت وبه و روی لوکال هاست اجرا میشه
و برای دیدن گراف های برنچ های مختلف و کامیت های مختلف بدرد بخوره
و یه سری قابلیت های دیگه مث ساخت تگ ها و ... رو داره که میتونید تست کنید
این ابزار با javanoscript نوشته شده و برای نصب و استفاده ازش میتونید گیت هابش رو چک کنید
https://github.com/FredrikNoren/ungit
اگه ابزار های دیگه ای برای گیت میشناسید که بنظرتون بدرد بخوره میتونید تو کامنتا معرفی کنید
#tools
@CleverDevs - @CleverDevsGp
و برای دیدن گراف های برنچ های مختلف و کامیت های مختلف بدرد بخوره
و یه سری قابلیت های دیگه مث ساخت تگ ها و ... رو داره که میتونید تست کنید
این ابزار با javanoscript نوشته شده و برای نصب و استفاده ازش میتونید گیت هابش رو چک کنید
https://github.com/FredrikNoren/ungit
اگه ابزار های دیگه ای برای گیت میشناسید که بنظرتون بدرد بخوره میتونید تو کامنتا معرفی کنید
#tools
@CleverDevs - @CleverDevsGp
🔥20👍10💯1
Forwarded from Linuxor ?
This media is not supported in your browser
VIEW IN TELEGRAM
اگه مشکلی برای سیستمتون پیش اومد با sshx میتونید ترمینالتون رو با دوستتون شیر کنید و مشکل رو حل کنید.
این ابزار خیلی سادس یه لینک بهتون میده و از طریق مرورگر میتونید ترمینال رو کنترل کنید.
Linux or Mac Installation :
🐧 @Linuxor
این ابزار خیلی سادس یه لینک بهتون میده و از طریق مرورگر میتونید ترمینال رو کنترل کنید.
Linux or Mac Installation :
curl -sSf https://sshx.io/get | sh🐧 @Linuxor
👍20🔥7⚡2👎1
درود دوستان🌹
امروز میخوام یه ابزار خیلی باحال رو بهتون معرفی کنم، البته احتمالا خیلی هاتون باهاش آشنا هستین، که کار برنامهنویسها رو خیلی راحتتر کرده. اسمش PM2 هست. حالا PM2 چیه؟ یه مدیر فرآیند برای Node.js که کمک میکنه برنامههامون رو به راحتی مدیریت کنیم. اگه مثل من از دردسرهای ران کردن و مانیتور کردن برنامهها خسته شدین، حتما با من همراه باشین.
مزایای PM2 چیه؟
ران کردن و مدیریت راحت: با PM2 میتونین به راحتی برنامههای Node.js تون رو ران کنین و دیگه نگران کرش کردنشون نباشین. هر وقت برنامهتون کرش کنه، PM2 خودش اتوماتیک دوباره رانش میکنه.
مانیتورینگ: PM2 بهتون اجازه میده برنامههاتون رو زیر نظر بگیرین و ببینین چقدر از منابع سیستم استفاده میکنن.
سازگاری با کلاد: PM2 خیلی خوب با سرویسهای کلاد مثل AWS و Azure هماهنگ میشه.
و .. : PM2 میتونه برنامهها رو به صورت کلاستر ران کنه، یعنی چند تا پروسس از یه برنامه همزمان ران بشه و اینجوری کارایی برنامهتون بیشتر بشه.
نصب PM2
خب حالا چجوری نصبش کنیم؟ خیلی راحت، کافیه این دستور رو توی ترمینال وارد کنین:
این دستور PM2 رو به صورت گلوبال نصب میکنه. بعد از نصب، میتونین برنامهتون رو با دستور زیر ران کنین:
چند دستور پرکاربرد
لیست برنامهها: با دستور pm2 list میتونین لیست برنامههای در حال اجرا رو ببینین.
استاپ کردن برنامه: با دستور pm2 stop [name or id] میتونین یه برنامه رو استاپ کنین.
ریستارت کردن برنامه: با دستور pm2 restart [name or id] میتونین یه برنامه رو ریاستارت کنین.
لاگها: با دستور pm2 logs میتونین لگهای برنامههاتون رو ببینین.
اینا فرانید های basic کار با pm2 بودن من یه فایل از کانفیگ pm2 پایین پست براتون میزارم که توضیح هر value: property رو جلوش با کامنت توضیح دادم.
از pm2 میتونین در تمامی زبان ها استفاده کنید و مختص Nodejs نیست.
در پایتون
در Php
در ruby
در java
و...
وقتی میخواین از PM2 برای مدیریت برنامههای نوشته شده به زبانهای مختلف استفاده کنین، باید مطمئن باشین که مفسر یا کامپایلر مناسب روی سیستم شما نصب شده و مسیر صحیحش رو به PM2 بدین. برای مثال، اگه از نسخههای خاص Python استفاده میکنین، باید مسیر دقیق اون رو مشخص کنین:
وقتی میخواین از فایل کانفیگ استفاده کنید باید دستور رو بصورت زیر وارد کنید
فایل رو پایین میزارم براتون و اینجا برخی فیچراشو میگم تا ترغیبتون کنم ازش استفاده کنید😁
برای مثال Graceful Shutdown رو داره خودش ci cd رو میشه به آسونی پیاده کرد روش یه سیستم لاگ گیری خفن داره blue green deploymen که رفیقومون گفت رو تو خودش جا داده و کلی فیچر خفن دیگه...
#pm2
@CleverDevs - @CleverDevsGp
امروز میخوام یه ابزار خیلی باحال رو بهتون معرفی کنم، البته احتمالا خیلی هاتون باهاش آشنا هستین، که کار برنامهنویسها رو خیلی راحتتر کرده. اسمش PM2 هست. حالا PM2 چیه؟ یه مدیر فرآیند برای Node.js که کمک میکنه برنامههامون رو به راحتی مدیریت کنیم. اگه مثل من از دردسرهای ران کردن و مانیتور کردن برنامهها خسته شدین، حتما با من همراه باشین.
مزایای PM2 چیه؟
ران کردن و مدیریت راحت: با PM2 میتونین به راحتی برنامههای Node.js تون رو ران کنین و دیگه نگران کرش کردنشون نباشین. هر وقت برنامهتون کرش کنه، PM2 خودش اتوماتیک دوباره رانش میکنه.
مانیتورینگ: PM2 بهتون اجازه میده برنامههاتون رو زیر نظر بگیرین و ببینین چقدر از منابع سیستم استفاده میکنن.
سازگاری با کلاد: PM2 خیلی خوب با سرویسهای کلاد مثل AWS و Azure هماهنگ میشه.
و .. : PM2 میتونه برنامهها رو به صورت کلاستر ران کنه، یعنی چند تا پروسس از یه برنامه همزمان ران بشه و اینجوری کارایی برنامهتون بیشتر بشه.
نصب PM2
خب حالا چجوری نصبش کنیم؟ خیلی راحت، کافیه این دستور رو توی ترمینال وارد کنین:
npm install pm2 -g
این دستور PM2 رو به صورت گلوبال نصب میکنه. بعد از نصب، میتونین برنامهتون رو با دستور زیر ران کنین:
pm2 start app.js
چند دستور پرکاربرد
لیست برنامهها: با دستور pm2 list میتونین لیست برنامههای در حال اجرا رو ببینین.
استاپ کردن برنامه: با دستور pm2 stop [name or id] میتونین یه برنامه رو استاپ کنین.
ریستارت کردن برنامه: با دستور pm2 restart [name or id] میتونین یه برنامه رو ریاستارت کنین.
لاگها: با دستور pm2 logs میتونین لگهای برنامههاتون رو ببینین.
اینا فرانید های basic کار با pm2 بودن من یه فایل از کانفیگ pm2 پایین پست براتون میزارم که توضیح هر value: property رو جلوش با کامنت توضیح دادم.
از pm2 میتونین در تمامی زبان ها استفاده کنید و مختص Nodejs نیست.
در پایتون
pm2 start mynoscript.py --interpreter python3
در Php
pm2 start mynoscript.php --interpreter php
در ruby
pm2 start mynoscript.rb --interpreter ruby
در java
pm2 start myapp.jar --interpreter java -jar
و...
وقتی میخواین از PM2 برای مدیریت برنامههای نوشته شده به زبانهای مختلف استفاده کنین، باید مطمئن باشین که مفسر یا کامپایلر مناسب روی سیستم شما نصب شده و مسیر صحیحش رو به PM2 بدین. برای مثال، اگه از نسخههای خاص Python استفاده میکنین، باید مسیر دقیق اون رو مشخص کنین:
pm2 start mynoscript.py --interpreter /usr/local/bin/python3.8
وقتی میخواین از فایل کانفیگ استفاده کنید باید دستور رو بصورت زیر وارد کنید
pm2 start ecosystem.config.j
فایل رو پایین میزارم براتون و اینجا برخی فیچراشو میگم تا ترغیبتون کنم ازش استفاده کنید😁
برای مثال Graceful Shutdown رو داره خودش ci cd رو میشه به آسونی پیاده کرد روش یه سیستم لاگ گیری خفن داره blue green deploymen که رفیقومون گفت رو تو خودش جا داده و کلی فیچر خفن دیگه...
#pm2
@CleverDevs - @CleverDevsGp
👍20🔥4