استفاده از Slack برای نظارت بر پروژه طراحی سایت شما
استفاده از Slack برای نظارت بر پروژه طراحی سایت شما
استفاده از Slack
در ماه های گذشته ، شاید پیش آمده باشد که شما در طراح ساخت یک نرم افزار یا پروژه طراحی سایت بوده باشید ، در طول فرآیند می توانید از ابزار Slack برای نظارت بر پروژه تان استفاده نمایید. برای نظارت بر رفتار کاربر و برنامه پس از کمی ادغام ، نمای بلادرنگی در برنامه ارائه می کند که قبلا وجود نداشته است ، این سرویس بسیار ارزشمند و مناسب می باشد. استفاده از Slack
همه چیز با بازدید از یک استارتاپ کوچو در دنور ، کلرادو شروع شد. در طول بازدیدم ، هر چند دقیقه یکبار صدای “دینگ” ظریف و مسحورکننده ای را در گوشه دفتر می شنیدم. وقتی برای بررسی این صداهای عجیب رفتم ، زنگ سرویسی را دیدم که به یک Raspberry Pi وصل شده بود و یک علامت چکش فلزی کوچک متصل به مدار چاپی. همانطور که مشخص شد سرویس pi پیام هایی را از سرور تیم دریافت می کرد و هربار به مشتری جدیدی که ثبت می کرد آن علامت چک کوچک روی زنگ می زد. استفاده از Slack
من همیشه فکر می کردم که این یک انگیزه بزرگ برای تیم می باشد و این باعث شد به این فکر کنم که چگونه می توانم از چت تیمی برای دستیابی به تجربه ای مشابه استفاده کنم و چگونه می توانیم داده های گزارش را تجزیه تحلیل و تجسم نماییم. از آنجا که ما قبلاً از Slack برای چت تیمی استفاده می کردیم و از آنجایی که یک API به زیبایی مستند شده دارد، انتخاب واضحی برای آزمایش بود. استفاده از Slack
راه اندازی Slack
ابتدا ما مجبور شدیم یک “url webhook” را از Slack دریافت کنیم تا بتوانیم پیامها را به صورت برنامهریزی در کانال Slack خود پست کنیم.
اکنون که یک URL webhook داشتیم، زمان آن رسیده بود که پیام های Slack را در برنامه Node.js خود ادغام کنیم. برای انجام این کار، یک ماژول مفید Node.js به نام node-slack پیدا کردم.
ابتدا ماژول Node.js را نصب کردیم:
1 |
npm install node-slack --save |
اکنون میتوانیم پیامهای Slack را با چند خط کد به کانال مورد نظر خود ارسال کنیم.
1 2 3 4 5 6 7 8 9 10 |
// dependency setup var Slack = require('node-slack'); var hook_url = 'hook_url_goes_here'; var slack = new Slack(hook_url); // send a test Slack message slack.send({ text: ':rocket: Nice job, I\'m all set up!', channel: '#test', username: 'MyApp Bot' }); |
(می توانید بسته های ادغام Slack مشابه را برای Ruby، Python و تقریباً هر زبان دیگری پیدا کنید.)
وقتی این کد اجرا شد، پیام زیر را در کانال #test Slack ما ایجاد کرد:
کد بالا حداقل است، اما مختص Slack API و ماژول node-slack است. من نمیخواستم در هیچ سرویس پیامرسانی خاصی قفل شوم، بنابراین یک تابع ماژول Node.js عمومی برای اجرای کد خاص سرویس ایجاد کردم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// Messenger.js // dependency setup var hook_url = my_hook_url; var Slack = require('node-slack'); var slack = new Slack(hook_url); module.exports = { sendMessage: function(message, channel, username) { if (!message){ console.log('Error: No message sent. You must define a message.') } else { // set defaults if username or channel is not passed in var channel = (typeof channel !== 'undefined') ? channel : "#general"; var username = (typeof username !== 'undefined') ? username : "MyApp"; // send the Slack message slack.send({ text: message, channel: channel, username: username }); return; } } }; |
اکنون میتوانیم از این ماژول در هر نقطه از برنامه با دو خط کد استفاده کنیم، و اگر تصمیم گرفتیم در آینده به سرویس دیگری پیام ارسال کنیم، میتوانیم آن را به راحتی در Messenger.js تعویض کنیم.
1 2 |
var messenger = require('./utilities/messenger'); messenger.sendMessage(':rocket: Nice job, I\'m all set up!', '#test'); |
اکنون که اصول اولیه را تنظیم کرده بودیم، آماده بودیم تا پیامها را از داخل برنامه ارسال کنیم.
پیگیری ثبت نام
اولین دستور کار دستیابی به برابری زنگ خدمات بود. من پاسخ تماس موفقیت آمیز تابع ثبت نام کاربر را پیدا کردم و این کد را اضافه کردم:
1 |
messenger.sendMessage('New user registration! ' + user.email); |
حالا، وقتی شخصی ثبت نام کرد، این پیام را دریافت می کنیم:
حتی زنگ می زند! این شروع خوبی بود، و این احساس رضایتبخش خدمات را به من داد، اما من را تشنه چیزهای بیشتر کرد.
شیرجه رفتن عمیق تر
همانطوری که کنجکاوی بنده با هر صدای دنگ بیشتر می شد ، شروع به تعجب می کردم که اگر در ایجاد یک کاربر جدید شکست بخورم چی؟ اگر کاربر ثبت نام کرده باشد ، وارد شود اما فرآیند ورود را کامل نکرده باشد؟ نتیجه کارهای برنامه ریزی شده ما چیست؟ حالا که مقدمات فراهم شده بود و پاسخ به این سئوالات یک تکه چه بود.
نظارت بر استثناها و خطاهای مهم در بخش بک اند(پشتی)
یکی از مهم ترین خطاهایی که می خواستیم درباره آن بدانیم این بود که آیا ایجاد یک کاربر جدید با مشکل مواجه شده است. تنها کاری که باید انجام می دادیم این بود که خطای callback را در تابع ثبت نام کاربر پیدا کرده و این کد را اضافه کنیم:
1 |
messenger.sendMessage(':x: Error While adding a new user ' + formData.email + ' to the DB. Registration aborted!' + error.code + ' ' + error.message); |
حالا ما سریعتر می توانستیم بدانیم که چه زمانی ثبت نام ها با شکست مواجه می شوند ، چرا آنها شکست می خوردند و مهمتر از آن برای چه کسی شکست خوردند؟
انواع مکانهای جالبی وجود داشت که میتوانستیم پیام بفرستیم (تقریباً در هر جایی با یک تماس خطا). یکی از آن مکانها این تابع خطای عمومی catch-all بود:
1 2 3 4 5 6 |
app.use(function(err, req, res, next) { var message = ':x: Generic Server Error! '+ err + '\n Request: \n' + req.protocol + '://' + req.get('host') + req.originalUrl + '\n' + JSON.stringify(req.headers) + 'Request Payload:\n' + JSON.stringify(req.body); messenger.sendMessage(message, '#server-errors'); res.status(err.status || 500); res.json({'error': true }); }); |
این کد به ما کمک کرد تا کشف کنیم که یک درخواست برای استثناهای بدون دست چگونه است. با مشاهده درخواستی که باعث ایجاد این خطاها شد، میتوانیم دلایل اصلی را ردیابی کنیم و آنها را برطرف کنیم تا زمانی که دیگر خطاهای عمومی وجود نداشته باشد.
با وجود همه این اعلانهای خطا، اکنون ما راحت میدانیم که اگر مشکل اصلی در برنامه خراب شود، فوراً از آن مطلع خواهیم شد.
نظارت بر امور مالی
در مرحله بعد ، من می خواستم زمانی که یک رویداد مالی در برنامه اتفاق می افتد یک اعلان دریافت کنم. از آنجایی که محصول SaaS ما با Stripe ادغام میشود، یک نقطه پایانی وب هوک ایجاد کردیم که وقتی افراد طرح خود را ارتقا میدهند، طرح خود را تنزل میدهند، اطلاعات پرداخت را اضافه میکنند، اطلاعات پرداخت را تغییر میدهند و بسیاری از رویدادهای دیگر مربوط به پرداختهای اشتراک، از Stripe پینگ میشود که همه آنها به سستی:
نظارت بر رفتار کاربر در قسمت فرانت
چند مورد در بخش فرانت وجود داشت که می خواستیم رفتار کاربر را به روش هایی درک کنیم که بخش بک اند نمی تواند ارائه دهد ، بنابراین یک نقطه پایانی برای ارسال مستقیم پیامهای Slack از قسمت جلو ایجاد کردیم. از آنجایی که نشانی وب Slack webhook ما در بخش بک اند نقطه پایانی با POST محافظت میشود، ارسال پیامهای Slack به تیم ما از طریق یک نقطه پایانی با حداقل خطر مواجه بود.
با وجود نقطه پایانی، اکنون میتوانیم پیامهای Slack را با یک تماس ساده AngularJS $http.post ارسال کنیم:
1 2 3 |
// send Slack notification from the front end var message = ":warning: Slack disconnected by " + $scope.user.username; $http.post('/endpoint', message); |
این به ما کمک می کند تا به سؤالات مهم در مورد تجارت پاسخ دهیم: آیا افراد در حال ثبت نام و اضافه کردن نام دامنه هستند؟ آیا آنها نیستند؟ اگر چنین است، آیا برای دامنهای واقعاً پرمخاطب است که ما میخواهیم بلافاصله پس از افزودن آن، شخصاً با مالک آن تماس بگیریم. اکنون می توانیم به این موضوع ضربه بزنیم:
در یک نقطه، الگویی از مردم را دیدیم که دامنهای را اضافه میکردند، آن را حذف میکردند، سپس در عرض چند دقیقه آن را میخواندند، که ما را به یک باگ مبهم سوق داد که احتمالاً در غیر این صورت هرگز آن را کشف نمیکردیم.
همچنین سیگنالهایی وجود دارد که نشان میدهد کاربر از این سرویس ناراضی است و دانستن آنها ارزشمند است. آیا کسی نام دامنه را حذف کرده است؟ آیا Slack را قطع کردند؟
این بازخورد به ما فرصتی میدهد تا فعالانه با مشتری تماس بگیریم و در زمانی که مهمتر است، پشتیبانی دلپذیری از مشتری ارائه دهیم.
نظارت بر وظایف برنامه ریزی شده
یکی از جالبترین چیزهایی که در اسلک میتوان دید، نتیجه کارهای زمانبندی شده است. محصول SaaS وظایفی را برای آگاه کردن مردم در مورد عملکرد وب سایت آنها (سرویس اصلی ما)، ارسال ایمیل های تراکنش، پاکسازی پایگاه داده و چند مورد دیگر اجرا می کند. شلیک و نتایج این وظایف پیامی را به Slack می فرستد:
استفاده از Slack
اکنون می دانیم زمانی که یک تابع فعال می شود، نتیجه آن تابع چیست (در این مورد، چندین ایمیل ارسال می کند) و آیا به هر دلیلی از کار می افتد یا خیر.
این مفهوم را در برنامه خود اعمال کنید
مطالعه موردی بالا یک مثال عملی از کاری است که ما برای نظارت بر برنامه و سرویس GoFaster.io انجام دادیم. برای ما فوقالعاده عمل کرده است، اما چگونه این مفهوم به برنامههای بزرگی که صدها، شاید حتی هزاران پیام در روز ارسال میکنند، میرسد؟ همانطور که می توانید تصور کنید، این به سرعت تبدیل به یک وضعیت “Slackbot who gried wolf” می شود و ارزش در سر و صدا از بین می رود.
با همه اعلان ها یکسان رفتار نکنید
برخی از اعلان ها مهمتر از سایرین هستند و اهمیت آنها بسته به کارمند و نقش آنها متفاوت است. برای مثال، توسعه نرمافزار و عملیات فناوری اطلاعات (DevOps) ممکن است فقط به پیامهای سرور اهمیت دهند، در حالی که افراد خدمات مشتری بیشتر به آنچه در مورد کاربران میگذرد اهمیت میدهند.
خوشبختانه، Slack یک راه حل عالی برای این مشکل دارد: کانال ها.
کانالها را میتوان توسط هر کسی ایجاد کرد، برای سازمان شما آنها را عمومی یا خصوصی کرد و با هر کسی به اشتراک گذاشت. هنگامی که در یک کانال مشترک شدید، میتوانید نحوه هشدار فعالیتهای آن کانال را کنترل کنید. آیا هر بار یک پیام جدید در کانال زنگ می زند؟ آیا به گوشی شما هم هشدار می دهد؟ آیا فقط کانال را پررنگ می کند؟ همه اینها را می توان برای هر کانال توسط هر یک از اعضای تیم کنترل کرد تا مطابق با نیازهای آنها باشد.
برای عملی کردن این ایده، در اینجا آمده است که چگونه یک سازمان بزرگتر ممکن است اعلان های مبتنی بر مانیتور را در Slack از طریق کانال ها سازماندهی کند:
بحرانی-سرور-خطاها
چه: خطاهای ثبت نام، خطاهای ورود، خطاهای خواندن و نوشتن پایگاه داده
چه کسانی: مدیران سیستم، DevOps، CTO، مدیر عامل، توسعه دهندگان
تنظیمات هشدار: همیشه در تلفن یا دسکتاپ اطلاع رسانی شود.
استفاده از Slack
خطاهای سرور غیر بحرانی
شامل چه چیزی: خطاهای 404، خطاهای سرور همه چیز و غیره.
چه کسی: DevOps، توسعه دهندگان
تنظیمات هشدار: پررنگ کنید اما صدای زنگ نزنید.
استفاده از Slack
امور مالی
چه مواردی: تراکنش های پرداخت، تراکنش های ناموفق، ارتقاء، تنزل رتبه، کارت های منقضی شده
چه کسی: CFO، مدیر عامل
تنظیمات هشدار: همانند بارش باران
استفاده از Slack
رفتار کاربر
چه مواردی: ثبت نام، فرآیند ورود، بهروزرسانی نوع طرح، افزودن اطلاعات، حذف اطلاعات، حذف حساب
چه کسی: پشتیبانی مشتری، مدیران رسانه های اجتماعی، توسعه دهندگان، مدیرعامل
تنظیمات هشدار: همیشه در تلفن یا دسکتاپ اطلاع رسانی شود.
استفاده از Slack
آمار برنامه
چه چیزی: نتایج کار برنامه ریزی شده، خانه داری، آمار ایمیل تراکنش، تعداد کاربر و معیارهای رشد
چه کسی: بازاریابان ایمیل، مدیران سیستم، هر کسی که علاقه مند است
تنظیمات هشدار: پررنگ کنید اما صدای زنگ نزنید.
استفاده از Slack
نتیجه گیری استفاده از Slack :
با توجه به این ایده که برای چند ماه بررسی شد ، متوجه شدیم که این در واقع یک توسعه ارزشمند برای وب سایت و برنامه های ماست. بدون آنکه ما احساس کنیم با آنچه در سرویس می گذرد ارتباطی نداریم و باید به صورت دستی همان اطلاعات را از طریق داشبورد جستجو کنیم ، در غیر این صورت درخواست های پایگاه داده کاری طاقت فرسا خواهد بود.
هر وب سایت و اپلیکیشن باهم متفاوت است. به این معنی که این مفهوم را نمی توان در یک سرویس ساخت و به توده ها ارائه کرد. برای اینکه ارزشمند باشد ، نیاز به سرمایه گذاری اولیه کمی در زمان و منابع دارد تا عمیقاً در برنامه شما ادغام شود. پس از راهاندازی و اجرا، سرمایهگذاری در قالب ارتباط تیم شما با برنامه شما و کاربران آن نتیجه خواهد داد.
در پایان، در اینجا خلاصه ای از مزایای استفاده از چت تیمی برای نظارت بر برنامه شما آورده شده است:
به دست آوردن یک دیدگاه تازه در مورد رفتار کاربر و سرور
داشتن یک فید زنده بیدرنگ از معیارهایی که برای شما و کسبوکارتان مهم است، شما را از نزدیک با آنچه کاربران انجام میدهند و نحوه پاسخگویی سرور در ارتباط نگه میدارد.
وقتی همه چیز شکست می خورد سریع واکنش نشان دهید
شما قادر خواهید بود سریعتر از همیشه واکنش نشان دهید. شما در همان زمان از شکست ها مطلع خواهید شد. شما می توانید فوراً به آن نقطه پایانی ناموفق، اتصال پایگاه داده از دست رفته یا حمله DDoS واکنش نشان دهید.
ارائه خدمات استثنایی به مشتریان
با مشتری تماس بگیرید که به تازگی حساب خود را غیرفعال کرده است تا به آنها تخفیف بدهید، از مشتریانی که ارتقا داده اند تشکر شخصی کنید، یا فقط افراد را دنبال کنید تا اهداف آنها را بفهمید. وقتی بدانید کاربران چه کار می کنند و چه زمانی آن را انجام می دهند، به راحتی می توانید دلیل آن را پیدا کنید.
اتصال تیم به برنامه شما را کارآمدتر می کند
هنگامی که تیم شما با برنامه در یک صفحه قرار دارد، همکاری میتواند بر حل مشکلات در زمان بروز آنها متمرکز شود، نه اینکه بفهمیم چه اتفاقی افتاده، کجا اتفاق افتاده یا برای چه کسی اتفاق افتاده است.
اعلانها و کانالها میتوانند با برنامه شما بزرگ شوند
همانطور که برنامه و تیم شما رشد می کند، نیازهای نظارتی شما نیز افزایش می یابد. Slack کار بسیار خوبی را انجام می دهد و به شما اجازه کنترل های اعلان لازم را برای اطمینان از اینکه اطلاعات مناسب به افراد مناسب می رسد، می دهد.
جستجوی قدرتمند
با ثبت نام کاربری در پیامهای Slack، میتوانید هر خطا، پیام موفقیت یا رویدادی را که کاربر هنگام تعامل با برنامه شما ایجاد کرده است، به سادگی با جستجوی نام کاربری خود در Slack ردیابی کنید. فقط بدانید که با یک حساب Slack رایگان، این به 10000 پیام آخر محدود می شود.
استفاده از Slack
استفاده از Slack
امیدوارم که این مفهوم برای شما مفید بوده باشد، و من دوست دارم داستان های دیگر تیم هایی را بشنوم که اشکال مشابهی از نظارت را اجرا کرده اند، یا فقط روش های جالب دیگری برای استفاده و توسعه بر روی آن اجرا کرده اند.
استفاده از Slack
منبع : https://www.smashingmagazine.com/2019/02/using-slack-monitor-app/
استفاده از Slack
سخن آخر استفاده از Slack:
اگر تمایل دارید برای شرکت خود اقدام به طراحی سایت کنید پیشنهاد می کنم ابتدا مقالات مربوط به تفاوت طراحی سایت فروشگاهی و طراحی سایت شرکتی را مطالعه کنید. همچنین صفحه خدمات طراحی سایت نیکداد را برای این کار نگاه کنید. شرکت نیکداد بهترین و با کیفیت ترین خدمات طراحی سایت را در قالب طراحی سایت ارزان و مقرون به صرفه به شما ارائه می کند. استفاده از Slack
همچنین سئو سایت برای موتورهای جست و جو و تبلیغات گوگل از جمله مهمترین روش ها برای بیشتر دیده شدن سایت شما به حساب می آید. شرکت نیکداد خدمات طراحی سایت تهران ،تبلیغات گوگل و سئوسایت را با مناسب ترین قیمت به شما ارائه می دهد. مقاله استفاده از Slack در همین جا به پایان رسید و در آخر هر سوالی در این زمینه داشتید می توانید از کارشناسان ما در چت زنده بپرسید. استفاده از Slack