CleverDevs
Открыть в Telegram
به کانال کلوردوز خوش اومدین سعی میکنیم چیزایی که بنظر کاربردی هستن رو باهاتون به اشتراک بزاریم 🔥لینوکس 🔥برنامه نویسی فرانتاند 🔥برنامه نویسی بکاند 🔥اخبار تکنولوژی و... 💢~> @mmdrsdev
Больше9 156
Подписчики
+2524 часа
+2757 дней
+47230 день
Архив постов
9 156
این وضعیت نوبیتکس هست بزرگترین صرافی ایران، از شرکت های کوچیکتر چه انتظاری میشه داشت.
بخاطر این مشکلی که گزارش کردم چند سرویسشون رو کامل برای نیم ساعت داون گرید کردن.
بعد شما برای همین عزیزان رزومه میفرستی روتم نگاه نمیکنن
9 156
Repost from هشتگ تبلیغ تخصصی
🚨 فقط تا آخر امروز وقت داری تا با ۲۵٪ تخفیف در بوتکمپ فرانت شرکت کنی!
🔹 بوتکمپ استخدامی فرانت-اند با ریاکت دانشکار قراره در طول ۶ ماه بهت زیر و بم طراحی سایت رو به صورت پروژهمحور یاد بده و تو رو برای بازار کار برنامهنویسی آماده کنه.
🌟 مزایای بوتکمپ فرانت دانشکار:
✔️ بیش از ۱۹۰ ساعت آموزش پروژه محور
✔️ پشتیبانی و منتورینگ اختصاصی
✔️ مدرک معتبر در پایان دوره
✔️ معرفی به شرکتها و کمک به استخدام شما
🔗 برای ثبتنام اولیه و مشاوره رایگان روی لینک زیر کلیک کن:
💢 httb.ir/xsk2j ◀️
✉️ و یا به آیدی زیر پیام بده:
💬 @daneshkar_support
9 156
خب اگه نمایش هاتون تموم شد
سیم اینترنت رو وصل کنید ماهم به کارهامون برسیم
@CleverDevs - @CleverDevsGp
9 156
این باگ جدیده که توی openssh هم بود ماجرای جالبی داشته
اگه حوصلش رو دارید ویدیوی جادی در این باره رو ببینید
جزئیاتش یکم سخته ولی خب تا همونجایی هم که میشه فهمید باحال بود
https://youtu.be/EClct9i_7Wc
#openssh
@CleverDevs - @CleverDevsGp
9 156
سایت شخصی نامزد ریاستجمهوری رو مشاهده میکنید که یه بخشی طراحی کردن که استانی رو مشخص میکنید و شماره های فعال و درحال استفاده ای رو براتون نمایش میده تا برید زنگ بزنید و ازشون بخواید به دکتر(👍🏽) جلیلی رأی بدن.
اصلا فکر نکنید این کار یک درصد مزاحمت باشه، بدون شک تشویق عموم برای همبستگیه.
هرروز اوپن سورس تر از دیروز#پست_موقت @CleverDevs - @CleverDevsGp
9 156
این تیکه کد ساده که با Nodejs نوشتم پروکسی های که در آخرین پست یک کانال هست رو استخراج و داخل یک لیست برمیگردونه، میتونه بصورت یک ماژول در ربات هاتون نصب بشه برای دوستانی که چنل دارن و با ربات به چنلشون پست ارسال میکنن میتونه خیلی مفید باشه.
const { default: axios } = require("axios");
const cheerio = require("cheerio");
module.exports = {
requests: async () => {
try {
// get html data
var {data: requestTelegramChannle} = await axios('https://t.me/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://t.me/proxy?server=')) {
proxyList.push($(el).attr('href'))
}
});
return proxyList
} catch (error) {
console.error(error+'');
}
}
}
خودم بهش نیاز داشتم زدمش گفتم شاید دوستانی هم باشن که بهش نیاز داشته باشن، میتونین آدرس چنل رو عوض کنید و چنل مد نظرتون رو بزارین داخلش.
@CleverDevs - @CleverDevsGp9 156
مث اینکه تلگرام باگ خورده و نمیتونید پیوی کسی پیام بدید
دست به گیرنده ها نزنید مشکل همه گانیه احتمالا
برا شماهم باگ خورده ؟
#News
@CleverDevs - @CleverDevsGp
9 156
تیم های حوزه های مختلف تشکیل شدن و داریم ایده های مختلف رو بررسی میکنیم تا پروژه هارو بالا بیاریم
اگه پایه بودید و هنوز جوین ندادید میتونید بیایید تو گروه زیر و توی تاپیک مربوطه ایدی گیت هابتون رو بدید تا اضافتون کنیم به تیم ها
https://t.me/+mdJgJfZOBfU0ODlk
همچین جای طراح های ui ux توی جمعمون خالیه اگه تجربه ای تو این زمینه دارید خوشحال میشیم به تیم بپیوندید
@CleverDevs - @CleverDevsGp
9 156
-اصل Bad Comments در کلین کد
این دسته که از کامنت ها که بیشتر کامنت هایی که میزاریم رو شامل میشه کامنت هایی ان که سود خاصی برامون ندارن و الکی کد رو شلوغ میکنن
این اصل چنتا زیر مجموعه داره و کامنت های بدی که میتونید بزارید رو گفته تو این پست سعی میکنم به طور خلاصه همشون رو بگم
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
9 156
Repost from هشتگ تبلیغ تخصصی
🚨 میدونی کی به وبسایتها رنگ و لعاب میده؟
🟢 این کار، کار برنامهنویس فرانت-انده که رویای یک سایت زیبا رو به واقعیت تبدیل کنه.
⚛️ برنامهنویس فرانت-اند با استفاده از HTML، CSS، Javascript، React JS و دیگر ابزارهایی که در اختیار داره، باعث میشه تا کاربر تجربه بهیادموندنی از سایت داشته باشه.
⭐ اگر به این بازار کار علاقهمند هستی، این فرصت رو از دست نده👇
دانشکار داره یه بوتکمپ استخدامی برنامهنویسی فرانت-اند برگزار میکنه با:
🔸 ۱۹۰ ساعت آموزش پروژه-محور
🔸 ۹ استاد حرفهای از شرکتهای خوب
🔸 منتور حرفهای اختصاصی
🔸 مدرک معتبر و کمک به استخدام
⌛ اگر قصد ورود به بازار کار برنامهنویسی فرانت داری، الان بهترین فرصته چون:
🔔 بوتکمپ فرانت دانشکار ۲۵٪ تخفیف ثبتنام زودهنگام داره.
🔗 برای دریافت مشاوره رایگان و ثبتنام روی لینک زیر کلیک کن:
➡️ httb.ir/8xpmn
📩 یا به آیدی پایین پیام بده:
💬 @daneshkar_support
9 156
قابلیت دیگه ای که توی این اپدیت اومده
مینی مایز کردن وب اپ های تلگرامه که خیلی کاربردیه
یعنی وسط کار با وب اپ ها (مثل ناتکوین و ..) میتونید یه دیقه برید توی تلگرام بدون اینکه وب اپ رو کامل ببنید
#News #telegram
@CleverDevs - @CleverDevsGp
9 156
اپدیت جدید تلگرام اومده
تو این آپدیت کانال های بالای ۱۰۰۰ نفر میتونن عکس های پولی بزارن چنل تا با Telegram Stars پرداخت بشه
از فردا اونلی فنز هارو میریزن تو تلگراما 😂
پ.ن عکسه لوگوی چنله اگه کسی کنجکاو شد
#News #telegram
@CleverDevs - @CleverDevsGp
9 156
استخدام طراح UI/UX بصورت پروژه ای
شرح وظایف:
* ارائه راهحلهای خلاقانه برای مسائل تجربه کاربری سامانه.
* طراحی رابط کاربری (UI) و تجربه کاربری (UX) جذاب و کاربرپسند.
* ایجاد Wireframe, Prototype, Storyboard, User flow.
* طراحی واکنش گرا Responsive web Design.
* تسلط به مفاهیم Variable و Tokens.
* رعایت اصول ورژن بندی و نظم در روال کار.
* تست و ارزیابی محصول قبل از انتشار.
* آشنایی با مفاهیم گرافیک و طراحی.
* تسلط به نرم افزارهای گرافیکی شامل Adobe Photoshop و Illustrator.
مهارتهای مورد نیاز:
* تسلط به مفاهیم تجربه کاربری و رابط کاربری (UI/UX).
* تسلط به نرم افزار Figma.
* تجربه نگهداری، بهبود (ویرایش) دیزاین سیستم، مخصوصا (MUI و M3).
* مسلط به طراحی واکنش گرا Responsive web Design.
* آشنایی با مفاهیم Variable و Tokens.
* آشنایی با اصول ورژن بندی و نظم در روال کار.
* خلاقیت بالا و اشتیاق به حل مسئله.
* تسلط به مفاهیم گرافیک و طراحی.
* آشنایی به نرم افزارهای گرافیکی شامل Adobe Photoshop و Illustrator.
حقوق:
* حقوق توافقی با توجه به تجربه و مهارت
نحوه ارسال رزومه:
* متقاضیان واجد شرایط میتوانند رزومه خود را به آدرس @fmown ارسال کنند.
9 156
درود🌹
بیاین امروز در مورد معماری Event-driven Architecture با یک مثال ساده صحبت کنیم.
معماری مبتنی بر رویدادها یه جور سیستم برنامهنویسیه که توش بخشهای مختلف برنامه میتونن با هم حرف بزنن و به تغییرات و اتفاقات مختلف واکنش نشون بدن. این معماری مخصوصاً برای برنامههای بزرگ و پیچیده که تعاملات زیادی دارن خیلی خوبه.
اجزای اصلی این معماری عبارتند از:
فرستنده رویداد (Event Emitter): این بخش کارش اینه که رویدادها رو به بقیه بخشهای برنامه اطلاع بده.
شنوندهها (Listeners): اینا فانکشنهایی هستن که وقتی یه رویداد خاص اتفاق میافته، اجرا میشن.
رویدادها (Events): رویدادها پیغامهایی هستن که نشون میدن یه تغییر یا اتفاق خاص رخ داده.
مزایای معماری مبتنی بر رویدادها:
جداسازی وظایف: هر بخش از برنامه کار خودش رو انجام میده و به تغییرات مرتبط واکنش نشون میده.
افزایش قابلیت نگهداری: اگه بخوای یه تغییر کوچیک تو یه بخش برنامه بدی، لازم نیست کل کد رو تغییر بدی.
افزایش مقیاسپذیری: به راحتی میتونی شنوندههای جدید اضافه کنی یا رفتار برنامه رو تغییر بدی.
مثال کامل از معماری مبتنی بر رویدادها
فرض کن یه برنامه داری که توش چند تا کاربر هستن. میخوای هر وقت یکی از کاربرا اطلاعاتش تغییر کرد یا کاربری اضافه شد، این تغییرات به بقیه بخشهای برنامه اطلاع داده بشه. برای این کار از معماری مبتنی بر رویداد استفاده میکنیم.
اول یه کلاس میسازیم که کارش مدیریت رویدادهاست:
// این کلاس مسئولیت مدیریت رویدادها رو داره
class EventEmitter {
constructor() {
this.events = {}; // اینجا رویدادها و شنوندههاشون رو نگه میداریم
}
// این متد یه شنونده جدید برای یه رویداد خاص ثبت میکنه
on(event, listener) {
if (!this.events[event]) {
this.events[event] = [];
}
this.events[event].push(listener);
}
// این متد همه شنوندههای یه رویداد خاص رو اجرا میکنه
emit(event, args) {
if (this.events[event]) {
this.events[event].forEach(listener => listener(args));
}
}
}
حالا یه کلاس میسازیم که کاربرها رو مدیریت کنه و وقتی کاربری اضافه یا تغییر کرد، رویدادهای مناسب رو صادر کنه:
// این کلاس مسئول مدیریت کاربران و رویدادهای مرتبط با اوناست
class UserManager extends EventEmitter {
constructor() {
super();
this.users = []; // لیست کاربران رو اینجا نگه میداریم
}
// این متد یه کاربر جدید اضافه میکنه
addUser(user) {
this.users.push(user);
this.emit('userAdded', user); // رویداد اضافه شدن کاربر رو صادر میکنیم
}
// این متد اطلاعات یه کاربر رو تغییر میده
updateUser(id, newUser) {
const index = this.users.findIndex(user => user.id === id);
if (index !== -1) {
this.users[index] = { ...this.users[index], ...newUser };
this.emit('userUpdated', this.users[index]); // رویداد بهروزرسانی کاربر رو صادر میکنیم
}
}
}
حالا از UserManager استفاده میکنیم و شنوندههای مختلفی برای رویدادها ثبت میکنیم:
const userManager = new UserManager();
// ثبت یه شنونده برای وقتی که یه کاربر جدید اضافه میشه
userManager.on('userAdded', (user) => {
console.log(`کاربر جدید اضافه شد: ${user.name}`);
// اینجا میتونیم کارهای دیگهای هم انجام بدیم، مثل بهروزرسانی رابط کاربری
});
// ثبت یه شنونده برای وقتی که اطلاعات یه کاربر تغییر میکنه
userManager.on('userUpdated', (user) => {
console.log(`اطلاعات کاربر بهروزرسانی شد: ${user.name}`);
// اینجا میتونیم کارهای دیگهای هم انجام بدیم، مثل بهروزرسانی رابط کاربری
});
// اضافه کردن یه کاربر جدید
userManager.addUser({ id: 1, name: 'Ali', age: 30 });
// نتیجه: کاربر جدید اضافه شد: Ali
// تغییر اطلاعات یه کاربر
userManager.updateUser(1, { name: 'Hassan', age: 35 });
// نتیجه: اطلاعات کاربر بهروزرسانی شد: Hassan
حالا فرض کن میخوای هر وقت کاربری اضافه شد یا تغییر کرد، علاوه بر چاپ توی کنسول، یه نوتیفیکیشن هم نشون بدی:
// ثبت شنونده برای نوتیفیکیشنها
userManager.on('userAdded', (user) => {
alert(`کاربر جدید اضافه شد: ${user.name}`);
});
userManager.on('userUpdated', (user) => {
alert(`اطلاعات کاربر بهروزرسانی شد: ${user.name}`);
});
از این معماری در drawio استفاده شده.
ری اکت و ویو و همچنین Apache Kafka از این معماری استفاده میکنه، اگر علاقه داشتین مثال های بیشتری باهاش میزنیم یا تو یک برنامه ای ازش استفاده میکنیم اصلا
موفق باشید❤️
#Event_driven_Architecture
@CleverDevs - @CleverDevsGp
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
