PouriaGeek – Telegram
PouriaGeek
41 subscribers
11 photos
3 videos
11 links
پوریام، توسعه دهنده.

🔵 LinkedIn:
https://www.linkedin.com/in/pouria-sabaghi-ba052730b/

📂 Github:
https://github.com/pouriasabaghi

👤 Pouria:
t.me/p_nightwolf
Download Telegram
هرچقدر پول میگیری همونقدر کار کن؟
اگر برنامه نویس و کارمند یک شرکت هستی و این حرف رو قبول داری این پست برای تو هستش
من اساسا با این حرف مخالف هستم در طول سال هایی که توی این حوزه مشغول بود چه از ابتدا که با یک حقوق یک دهم حقوق الانم مشغول به کار بودم چه الان همیشه سعی کردم با حداکثر توان و کیفیت کارم رو پیش ببرم.
این به این معنی نیست که اجازه بدید داخل فضای کاری از شما سو استفاده بشه، نه! ولی شما به طور متوسط ۸ ساعت از روز خودتون رو سره کار هستید، به این زمان فرصتی برای ارتقای پروژه های خودتون و ارتقای سطح دانش خودتون فکر بکنید. خیلی مواقع که جزئیات به وسط میاد میشنوم که ای بابا مگه چقدر میگیرم که بخوام اینکارو بکنم یا چقدر میگیرم مگه که بخوام این بخش رو بهینه سازی بکنم. توی یک استارتاپ همه سوار یک هواپیما هستید اگر بالا بره همه باهم رفتید اگر زمین بخوره همه باهم خوردید. در درجه اول شما برای ارتقا خودتون دارید کار میکنید اگر از شرایط که توی محل کار دارید رضایت ندارید از کیفیت کارتون نزنید و فقط از اون مجموعه جدا بشید.

@pouriageek
👍12
🔹 پروژه AllAlgorithms
💡 صرفاً پیاده‌سازی یک نرم‌افزار کافی نیست! چیزی که واقعاً مهمه، توسعه‌پذیری و قابل‌اتکا بودن اون نرم‌افزاره.

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

من توی این پروژه سعی در جمع آوری این اصول در کنار هم داشتم اگر دوست داشتید میتونید استفاده بکنید.

🔸 لینک سایت:
https://allalgorithms.ir/

📂 پروژه اوپن سورس هستش، ریپو گیتهاب (⭐️)
https://github.com/pouriasabaghi/allalgorithms

🔷 پست LinkedIn:
https://www.linkedin.com/posts/pouria-sabaghi-ba052730b_master-programming-principles-activity-7277975182353289216-1MrK?utm_source=share&utm_medium=member_desktop&rcm=ACoAAE7sA-gBx_x2M6lgKGX8dUan2YWWfTT2CI0


@pouriageek
🔥81
🌍 اوپن سورس، بازجویی نیست!

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

🔹 اوپن سورس یعنی یه توسعه‌دهنده تصمیم گرفته کدش رو بذاره در اختیار بقیه تا هم بتونن رایگان استفاده کنن یا روی سرورشون اجرا کنن (self-hosted)، هم اگه دوست داشتن توی پروژه مشارکت کنن و باهم یه چیز بهتر بسازیم.

اوپن سورس به این معنی نیست که این پروژه بی‌نقصه یا اینکه وقتی یه ریپو اوپن سورس می‌شه، توسعه‌دهنده باید بشینه به همه جواب بده که "چرا اینو اینجوری نوشتی؟ چرا فلان روشو انتخاب نکردی؟"

اگه جایی از کد مشکل داره یا حس می‌کنی یه روش بهتر هست، ساده‌ست: PR بزن و درستش کن! شاید اون لحظه توسعه‌دهنده این روش به ذهنش نرسیده یا حتی نمی‌دونسته، و دقیقاً به همین خاطر کد رو اوپن سورس کرده!

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

- آخرش هم یادمون نره، ما همه فارغ از زبان و فریمورک، عضو یه کامیونیتی هستیم. اوپن سورس یعنی استفاده، مشارکت، رشد!

@pouriageek
👍103
اهمیت ترسیم دیاگرام قبل از کدنویسی
همیشه و همیشه قبل از اینکه شروع به کدنویسی کنید، یه فلوچارت یا یه نمای کلی از پروژه‌ی خودتون بکشید. شاید فکر کنید این کار فقط وقت تلف کردنه، ولی باور کنید که کاملاً برعکسه! هرچی پروژه به مراحل پایانی نزدیک‌تر بشه، ایجاد تغییرات توش سخت‌تر و زمان‌برتر می‌شه. در واقع، اعمال تغییرات توی محیط عملیاتی (Production) می‌تونه تا ۱۵ برابر بیشتر از فاز توسعه (Development) زمان ببره!

چرا باید قبل از شروع کدنویسی دیاگرام بکشیم؟
1️⃣ اگه نتونید یه ماژول رو روی کاغذ طراحی کنید، چطور انتظار دارید توی کدنویسی پیاده‌سازیش کنید؟ اگه توی مرحله‌ی طراحی نتونید جریان کلی کار رو مشخص کنید، موقع کدنویسی کلی به مشکل می‌خورید.

2️⃣ دیاگرام‌ها به شما و مشتری کمک می‌کنن که زودتر متوجه کمبودها بشید. مثلاً از همون اول به سناریوهای مهمی فکر می‌کنید، مثل:

اگه کاربر سفارشش رو لغو کنه، چی می‌شه؟

اگه مدیر یه چیزی رو اشتباهی حذف کنه، باید چیکار کرد؟

اگه سیستم دچار خطا بشه، چطور باید واکنش نشون بده؟

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

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

@pouriageek
🔥5👍2
PouriaGeek
اهمیت ترسیم دیاگرام قبل از کدنویسی همیشه و همیشه قبل از اینکه شروع به کدنویسی کنید، یه فلوچارت یا یه نمای کلی از پروژه‌ی خودتون بکشید. شاید فکر کنید این کار فقط وقت تلف کردنه، ولی باور کنید که کاملاً برعکسه! هرچی پروژه به مراحل پایانی نزدیک‌تر بشه، ایجاد تغییرات…
این یک بخش از دیاگرام یک پروژه حسابداری هستش که خیلی از نیاز ها مثل اینکه اگر یک مشتری قراردادش رو لغو کرد وضعیت اقساط باقی مانده چی میشه ؟
تمام این چالش ها ابتدا روی کاغد و توی همین مرحله حل شد و راه حل هاش پیدا شد.
حالا مرحله بعدی Technology Stack Decision یا همون انتخاب تکنولوژی مناسب برای پیاده سازی پروژه هستش

@pouriageek
👍6🔥1
🔹 ربات موزیک MyPlaylists

🔸 دانلود از SoundCloud
🔸 دانلود از Youtube Music
🔸 جستجو در آرشیو سایت
🔸 جستجو در اینترنت و...

🟣 داخل تور ربات شرکت کنید تا با همه امکانات ربات آشنا بشید
https://news.1rj.ru/str/Myplaylists_ir_Bot

📂 این پروژه اوپن سورس هستش(⭐️)
https://github.com/pouriasabaghi/myplaylists_core

@pouriageek
🔥61👍1🆒1
PouriaGeek
🔹 آپدیت AI RTL اضافه شدن Claude AI با این اکستنشن میتونید سایت های AI رو راست چین کنید و تجربه بهتری داشته باشید. لینک نصب از طریق کروم وب استور: https://chromewebstore.google.com/detail/ai-rtl/bnholfbcjkocimkdgnbfjhopklnedgim این پروژه اوپن سورس هستش…
🔹 آپدیت AI RTL
اضافه شدن TheB.AI
با این اکستنشن میتونید سایت های AI رو راست چین کنید و تجربه بهتری داشته باشید.

لینک نصب از طریق کروم وب استور:
https://chromewebstore.google.com/detail/ai-rtl/bnholfbcjkocimkdgnbfjhopklnedgim

این پروژه اوپن سورس هستش ممنون میشم ⭐️ بدید:
لینک ریپو

@pouriageek
🔥5👍2👌1
Media is too big
VIEW IN TELEGRAM
🧭 چطور امکانات ربات‌مون رو ساده و مؤثر به کاربر معرفی کنیم؟

من توی ربات myplaylsits امکانات زیادی رو قرار دادم ولی همیشه این چالش رو داشتم که چطوری این امکانات رو به کاربر معرفی بکنم و بهش آموزش بدم.

در ابتدا توضیحات کامل و مفصلی داخل بخش معرفی ربات نوشتم.

بعدتر دستور /help رو اضافه کردم تا کاربرها بتونن لیستی از قابلیت‌ها رو ببینن.

اما با گذشت زمان، امکانات ربات زیادتر شد و احتمال اینکه کاربران امکانات مهم و جذاب رو گم کنن بیشتر شد.

تا اینکه ایده‌ی "تور راهنما" به ذهنم رسید.

توی این روش با استفاده از edit message API در تلگرام، کاربر به صورت مرحله‌به‌مرحله، با دکمه‌های «قبلی» و «بعدی»، در یک تور آموزشی راهنمایی می‌شه.

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

ویدیوی زیر یه نمونه از این تور رو نشون می‌ده.

@pouriageek
🔥3👌3👍1
🔹 آپدیت AI RTL

اضافه شدن Monica AI

با این اکستنشن میتونید سایت های AI رو راست چین کنید و تجربه بهتری داشته باشید.

⚠️ به خاطر قوانین و review های گوگل ممکن که آپدیت از طریق کروم وب استور کمی زمان ببره.

🔗 لینک نصب از طریق کروم وب استور
https://chromewebstore.google.com/detail/ai-rtl/bnholfbcjkocimkdgnbfjhopklnedgim

📂 لینک ریپو (⭐️)
https://github.com/pouriasabaghi/ai_rtl_extension

@pouriageek
🔥3👍21👌1
This media is not supported in your browser
VIEW IN TELEGRAM
سلام دوستان

- اکستنشن AI RLT یک پروژه Open-Source هستش و توی کمتر از ۲ دقیقه میتونید داخلش Contribute 🤝 کنید، آموزشش رو براتون داخل ویدیو گذاشتم .

1️⃣ آدرس وب سایت رو به فایل manifest.json اضافه میکنید.

2️⃣ یک duplicate از سکشن های داخل index.html میسازد و یک کلاس یونیک بهش میدید مثلا monica.

3️⃣ داخل فایل noscript.js یک duplicate از آبجکت های موجود داخل آرایه پلتفرم میسازید و کلاس یونیک (در مثال قبلی monica) رو به عنوان key قرار میدید.

4️⃣ پیدا کردن response selector برای اعمال تغییرات راست چین روی پاسخ که در واقع یک selector هستش برای پیدا کردن پاسخ AI که در این مثال markdown__ بودش.

اگر سوال یا نکته ای بود: @p_nightwolf

📂 لینک ریپو (⭐️)
https://github.com/pouriasabaghi/ai_rtl_extension

🔗 لینک نصب از طریق کروم وب استور
https://chromewebstore.google.com/detail/ai-rtl/bnholfbcjkocimkdgnbfjhopklnedgim

@pouriageek
👍5🔥2👏1
اقیانوسی به عمق یک وجب نباشید
اگه تازه اول راه برنامه‌نویسی هستید یا توی مسیر یه جاهایی گیر کردید، این پست مخصوص شماست.

۱. عمق رو به وسعت ترجیح بدید
↲ به‌جای اینکه ده تا زبان رو فقط در حد Hello World یاد بگیرید، یه زبان رو اونقدر خوب یاد بگیرید که بتونید پروژه‌های واقعی و خفن باهاش بسازید. تخصص داشتن چیزی که شما رو از بقیه جدا می‌کنه. عمق یه چیزیه که توی بازار بهتون برتری میده.

۲. گول تیترهای هیجانی رو نخورید
↲ وقتی یه جا می‌بینید نوشتن «Next.js مرده» درست وقتی تازه یادش گرفتید، اصلاً نترسید! باور کنید سال‌هاست دارن میگن «PHP مرده» ولی هنوز داره هر روز پروژه‌های فوق‌العاده‌ای باهاش ساخته میشه. بیشتر این تیترها فقط دنبال وایرال شدنن، نه اینکه واقعیت رو بگن.

۳. موفقیت دیگران مسیر شما رو تغییر نده
↲ وقتی می‌بینید یکی توی AI موفق شده، لازم نیست سریع برید Python یاد بگیرید. یا وقتی می‌شنوید یکی با قرارداد هوشمند پول خوبی درآورده، فوری نرید سمت Solidity. یا اگه دیدید یه فریلنسر با WordPress پروژه می‌گیره، فوراً سمت WordPress نرید.
توی هر زمینه‌ای، موفقیت مال اوناییه که توی مسیر خودشون عمیق میشن و ادامه میدن.

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

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

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

۷. برنامه‌نویسی عشق می‌خواد
↲ عشق و علاقه باعث میشه این مسیر واقعا قشنگ بشه. خیلی از برنامه‌نویس‌ها بعد از ۸ ساعت کار، باز توی وقت آزادشون میرن مقاله‌ی برنامه‌نویسی می‌خونن، حتی توی خواب هم به کد فکر می‌کنن!
برای یه آدم عاشق، اینا سختی نیست، لذته.

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

@pouriageek
👍83🔥2
👋 خداحافظی با تغییرات آزاردهنده در Git Diff
کدها رو قبل از کامیت کردن، خودکار مرتب کن با Husky، Prettier و lint-staged


💡حتماً برات پیش اومده. یه ویژگی رو پیاده‌سازی کردی، کامیت می‌کنی، کدت رو پوش می‌کنی و بعدش یهو یادت میاد: فرمت نکردی. حالا یا فاصله‌گذاری (indentation) بهم ریخته، یا به‌جای دابل کوتیشن از سینگل استفاده شده، یا خط‌های شکسته‌شده با هم هماهنگ نیستن.
می‌ری که دکمه‌ی "Format Document" رو بزنی، و یهو صدها خط تغییر، که فقط ظاهری‌ان و هیچ ربطی به منطق کدت ندارن!

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

با این ترکیب سه تایی این مشکل حل میشه:
Husky + Prettier + lint-staged

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

چطور کار می‌کنه؟
گیت یه چیزی داره به اسم hook که قبل و بعد از عملیات‌هایی مثل commit یا push اجرا میشه. ما از pre-commit hook استفاده می‌کنیم.

اینجا ترتیب کار به این صورته:
🔹 پکیج Husky برای مدیریت گیت‌هوک‌هاست. نصبش آسونه.

🔹 پکیج Prettier کدهات رو بر اساس یه استاندارد مشخص، خودکار فرمت می‌کنه.

🔹
پکیج lint-staged مطمئن میشه فقط فایل‌هایی که تغییرشون دادی فرمت بشن، نه کل پروژه.

💫 حالا بریم سراغ مراحل نصب:

مرحله ۱: نصب Husky
npm install --save-dev husky


مرحله ۲: راه‌اندازی Husky
npx husky init

این دستور یه فولدر به اسم .husky می‌سازه، و یه فایل به اسم pre-commit داخلش می‌ذاره. همون فایلی که قراره دستورمون توش قرار بگیره.

مرحله ۳: نصب Prettier
npm install --save-dev --save-exact prettier

حالا اگه فقط بنویسی:
prettier --write .

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

مرحله ۴: نصب lint-staged
npm install --save-dev lint-staged

با اینکار فقط کدهایی که قراره کامیت بشن فرمت میشن، نه بقیه.

مرحله ۵: تنظیم lint-staged در package.json
"lint-staged": {
"**/*": "prettier --write --ignore-unknown"
}


مرحله ۶: آپدیت فایل pre-commit
فایل .husky/pre-commit رو باز کن و اینو توش بنویس:
npx lint-staged

حالا هر بار که می‌خوای git commit بزنی، این هوک اجرا میشه، فایل‌های staged رو پیدا می‌کنه و فقط اون‌ها رو با Prettier فرمت می‌کنه.

نتیجه نهایی: کد تمیز، دیف ساده، کامیت عالی
از این به بعد:

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

@pouriageek
👍4🔥21👏1
امروز خیلی اتفاقی یه پوشه از پروژه های تمرینی و قدیمم پیدا کردم.

برای وقتی که هنوز display:flex خیلی جا نیفتاده بود و سایت هارو با float میزدن. کسایی که کار کردن باید clearfix یادشون باشه.

اون موقع برای ریسپانسیو کردن خیلی گزینه وجود نداشت بیشتر پروژه هامو با bootstrap 3 میزدم که سیستم گرید ۱۲ ستون خودش رو داشت. کلاس های محدود که بعد از یه مدت میدیدی به اندازه یه کتابخونه هم خودت css نوشتی.

اون موقع جی کوئری بخش جدایی ناپذیر هر پروژه بود از ۱۰۰ تا سایت ۹۹ تاش جی کوئری داشت، سینتکس راحت برای مدیریت DOM، درخواست Ajax و...

۲ تا سایتی که همیشه قطعا توی یکی از تب های مرورگر باز stackoverflow, w3school، هر سوالی داشتی توی این ۲ تا میتونستی پیدا بکنی.

@pouriageek
🔥4👍1😢1🆒1
PouriaGeek
🔹 اکستنشن AI RTL با این اکستنشن میتونید سایت های AI رو راست چین کنید و تجربه بهتری داشته باشید لینک نصب از طریق کروم وب استور: https://chromewebstore.google.com/detail/ai-rtl/bnholfbcjkocimkdgnbfjhopklnedgim این پروژه اوپن سورس هستش برای اضافه کردن همه سایت…
🔹 اکستنشن AI RTL نسخه ۳

با این اکستنشن میتونید همه سایت های AI رو راست چین کنید و تجربه بهتری داشته باشید
لینک نصب از طریق کروم وب استور:
https://chromewebstore.google.com/detail/ai-rtl/bnholfbcjkocimkdgnbfjhopklnedgim

تغییرات نسخه ۳:
ذخیره تنظیمات (دیگه فقط کافیه یک بار RTL رو برای یک سایت فعال کنید و در بارگزاری های بعدی پیش فرض راستچین خواهد بود)
اضافه شدن Qwen AI

📂 این اکستنش اوپن سورس هستش اگر براتون مفید بود ⭐️ بدید
https://github.com/pouriasabaghi/ai_rtl_extension

@pouriageek
🔥311👍1
Media is too big
VIEW IN TELEGRAM
🔹 اکستنشن Save Quotes
- اگر براتون پیش اومده موقع وب گردی یک تیکه کد، یک دستور لینوکسی، یک متن ساده یا نقل رو دیدید و خواستید ذخیره کنید این اکستنشن میتونه براتون مفید باشه.

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

نصب از وب استور کروم:
https://chromewebstore.google.com/detail/save-quotes/lpnndmpeabbmickgcffgoicfooglojcn

📂 این اکستشن اوپن سورس هستش، لینک ریپو(⭐️):
https://github.com/pouriasabaghi/save_quotes

@pouriageek
👍2🔥2👌1