Node Unique – Telegram
Node Unique
115 subscribers
24 photos
3 videos
4 files
47 links
سلام به برنامه نویس های جاوااسکریپت (nodejs)
اینجا درباره Back-End تجربیات خودم رو مینویسم و به اشتراک میزارم ;)
و همچنین مفاهیم soft-skill که مربوط به Stack خاصی نمیشه هم پوشش خواهم داد.

Owner:
@iDvMH
Download Telegram
🆕~> نقشه راه برای برنامه نویس شدن بک اند (nodejs) طبق نیاز بازار کار 👨‍💻

1️⃣یادگیری 👩‍💻 HTML و 👩‍💻 CSS (مقدماتی)

2️⃣یادگیری 👩‍💻 NPM و RegeX

3️⃣یادگیری جاوااسکریپت 👩‍💻

4️⃣یادگیری 👩‍💻 Express 👩‍💻 & Nodejs

5️⃣یادگیری Redis 👩‍💻

6️⃣خوندن کتاب Clean Code 🏋️‍♀️

7️⃣یادگیری 👩‍💻 Git 👩‍💻 & GitHub

8️⃣یادگیری 👩‍💻 Mongodb 👩‍💻 + Mongoose

9️⃣انجام ۲ نمونه پروژه 😰

0️⃣1️⃣یادگیری دیتابیس MySQL 👩‍💻

1️⃣1️⃣یادگیری یکی از ORM ها ترجیحا برای شروع بین 👩‍💻 Sequelize یا 👩‍💻 Prisma

2️⃣1️⃣انجام ۱ نمونه پروژه 😭

3️⃣1️⃣یادگیری Apollo Server + 👩‍💻 GraphQl + زدن ۱ نمونه پروژه 👋

4️⃣1️⃣یادگیری 👩‍💻 Socket.io + زدن ۱ نمونه پروژه 🐙

5️⃣1️⃣یادگیری 👩‍💻 Typescipt + ریفکتور یکی از پروژها 🐙

6️⃣1️⃣یادگیری Nest js 👩‍💻 + Type Orm + 👩‍💻 Postgresql + زدن چند پروژه 🐙

7️⃣1️⃣یادگیری تست نویسی
8️⃣1️⃣یادگیری میکروسرویس ها
9️⃣1️⃣یادگیری الستیک سرچ
0️⃣2️⃣یادگیری Docker 👩‍💻
1️⃣2️⃣یادگیری design patterns

و .... این راه ادامه دارد


#️⃣ #نقشه_راه

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> معرفی 2 نوع فولدر بندی اصولی و مناسب برای توسعه پروژه هاتون با 👈
Nodejs 👩‍💻 + Express 👩‍💻 + Mongodb 👩‍💻

⭕️~> خودم بشخصه از فولدر بندی 2 بیشتر استفاده میکنم اگر بخوام با Express  پیش برم.

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇


#️⃣ #کاربردی #nodejs #expressjs #mongodb

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> اگه تو پروژت نیازت شد به اسم تمامی استان ها و شهرستان ها ایران 🇮🇷 دسترسی داشته باشی 😒 کافیه این 2 تا ریپو گیت هاب رو کنارت داشته باشی. 👍

🐱 https://github.com/sohilpro/city_state_iran

🐱 https://github.com/premier213/json-list-iran-cities


📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #کاربردی #گیتهاب #معرفی_منبع #github

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
package.json.pdf
121 KB
🆕~> اینم از چیت شیت انواع کانفیگ ها توی فایل package.json همراه با توضیحاتش، البته اینا نسبت به پروژه شما متغییر هست و میتونید کم یا حتی زیادترش بکنید. 👍

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #کاربردی #ترفند

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> انواع معماری‌ها در 👩‍💻 Nodejs: انتخاب بهترین رویکرد برای پروژه. 🧐


⚪️معماری نرم‌افزار یکی از مهم‌ترین عوامل در موفقیت یا شکست یک پروژه است. وقتی صحبت از توسعه‌ی اپلیکیشن‌های مبتنی بر 👩‍💻Node.js می‌شود، انتخاب معماری مناسب می‌تواند عملکرد، مقیاس‌پذیری و نگهداری کد را بهبود بخشد. در این پست، به بررسی رایج‌ترین معماری‌های مورد استفاده در 👩‍💻Nodejs می‌پردازیم. 👍

1️⃣معماری MVC (Model-View-Controller):
⚪️معماری کلاسیک که اپلیکیشن را به سه لایه مدل (مدیریت مدل ها)، نمایش (رابط کاربری)، و کنترلر (مدیریت منطق و واسطه) تقسیم می‌کند.
⚪️مناسب برای پروژه‌های متوسط تا بزرگ که نیازمند کدی سازمان‌دهی‌شده هستند.

2️⃣معماری MVVM (Model-View-ViewModel):
⚪️شبیه به MVC است، اما با تمرکز بیشتر بر داده‌محوری و جداسازی بهتر منطق UI از منطق تجاری.
⚪️معمولاً برای پروژه‌های SPA (تک‌صفحه‌ای) استفاده می‌شود، به ویژه با فریمورک‌هایی مانند 👩‍💻 Vuejs یا 🏤 Angular.

3️⃣معماری لایه‌ای (Layered Architecture):
⚪️این معماری شامل لایه‌های مختلفی مانند کنترلر، سرویس‌ها، و مدل ها است.
⚪️مناسب برای پروژه‌هایی که نیاز به جداسازی وظایف در بخش‌های مختلف دارند.

4️⃣معماری میکروسرویس‌ها (Microservices):
⚪️اپلیکیشن به سرویس‌های کوچک و مستقل تقسیم می‌شود که هرکدام می‌توانند به طور جداگانه توسعه، تست، و مستقر شوند.
⚪️مناسب برای پروژه‌های بزرگ و پیچیده با تیم‌های متعدد.

5️⃣معماری Serverless (بدون سرور):
⚪️کد به صورت تابع‌های کوچک اجرا می‌شود و مدیریت سرورها بر عهده‌ی ارائه‌دهندگان ابری مثل AWS Lambda است.
⚪️برای پروژه‌هایی با نیاز به مقیاس‌پذیری بالا و هزینه‌های پایین مناسب است.

6️⃣معماری Event-Driven (مبتنی بر رویداد):
⚪️با استفاده از رویدادها و پیام‌ها (event emitters) کار می‌کند.
⚪️مناسب برای اپلیکیشن‌های بلادرنگ (real-time) مثل سیستم‌های چت، بازی‌های آنلاین، و اعلان‌ها.

7️⃣معماری Clean (معماری تمیز):
⚪️تأکید بر جداسازی منطق تجاری از زیرساخت‌ها و فناوری‌ها.
⚪️هدف آن ایجاد کدی خوانا، قابل نگهداری و مقیاس‌پذیر است.

8️⃣معماری Hexagonal (شش‌ضلعی):
⚪️به نام Ports and Adapters هم شناخته می‌شود.
⚪️هدف آن انعطاف‌پذیری بیشتر با جداسازی منطق کسب‌وکار از جزئیات تکنیکی است.

9️⃣معماری Monolithic (یکپارچه):
⚪️اپلیکیشن به صورت یک واحد بزرگ ساخته می‌شود.
⚪️مناسب برای پروژه‌های کوچک یا زمانی که نیاز به پیچیدگی کم و استقرار ساده است.

0️⃣1️⃣معماری Modular (ماژولار):
⚪️پروژه به ماژول‌های مستقل تقسیم می‌شود که هرکدام مسئولیت مشخصی دارند.
⚪️برای کدهای با قابلیت استفاده مجدد (reusable code) مناسب است و 🤟 nodejs با فریم ورک های مثل 👩‍💻 nestjs و angular 🏤 استفاده میشه بیشتر.

1️⃣1️⃣معماری CQRS (Command Query Responsibility Segregation):
⚪️وظایف دریافت داده‌ها (Query) و دستکاری داده‌ها (Command) را جدا می‌کند.
⚪️معمولاً در پروژه‌هایی با حجم بالای داده یا نیاز به پردازش پیچیده استفاده می‌شود.

2️⃣1️⃣معماری SOA (Service-Oriented Architecture):
⚪️مشابه میکروسرویس‌ها است، اما سرویس‌ها کمتر مستقل هستند و ارتباطات بیشتری دارند.
⚪️مناسب برای پروژه‌هایی با نیاز به سرویس‌های اشتراکی.

3️⃣1️⃣معماری Multi-Tenant (چند مستأجر):
⚪️برای سیستم‌هایی که به طور همزمان توسط چند کاربر یا شرکت استفاده می‌شوند (مانند SaaS) طراحی شده است.
⚪️مناسب برای پروژه‌های SaaS (نرم‌افزار به‌عنوان سرویس).

4️⃣1️⃣معماری Pipeline (خط لوله):
⚪️داده‌ها به صورت مرحله‌ای پردازش می‌شوند.
⚪️معمولاً در سیستم‌های پردازش داده‌های بزرگ (Big Data) استفاده می‌شود.

♨️~>لپ مطلب:
⚪️هر معماری مزایا و معایب خاص خود را دارد. انتخاب معماری مناسب به نیازهای پروژه، مقیاس آن، و تیم توسعه بستگی دارد. 👍

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #کاربردی #مقاله #معماری_نرم_افزار #nodejs

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> چند ساعت به لپ تاپ خیره بشیم؟ راه های که به چشممون استراحت بدیم چیاست؟

⚪️ امروز داشتم مقاله هایی مرتبط با سلامت رو میخوندم و چشم خورد به یه مقاله درمورد آسیب هایی که به چشم میان و راه حل های زیادی که نام برده بود، حتما اخر شب یه مطالعه کنین این لینکی که قرار میدم رو.
سلامتی مخصوصن ما برنامه نویسا واقعا باید جدی بگیریم آسیب هایی که به چشم، کمر اعصاب(موقع ارور 👷‍♂️) میان رو ازشون راحت نگذرین.

🧾 https://mojeradical.com/%D8%AD%D9%81%D8%B8-%D8%B3%D9%84%D8%A7%D9%85%D8%AA-%DA%86%D8%B4%D9%85/


📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #کاربردی #مقاله #روانشناسی

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> اگه دنبال کیبورد های مناسب میگردین تو این پست میخوام لیستی از کیبورد های اقتصادی رو معرفی کنم که راهنمای دقیق تری داشته باشین. 🫰

⚪️کیبورد رپو مدل V500 Alloy Version
⚪️کیبورد ردراگون K552 سویچ قرمز
⚪️کیبورد ردراگون K512
⚪️کیبورد ردراگون K208
⚪️کیبورد ردراگون K568
⚪️کیبورد ردراگون مدل karura 2
⚪️کیبورد رپو v500 pro

📣~> من خودم قبل از خرید یادمه ۱ روز نشستم همه کیبورد هارو مقایسه کردم و حتی حضوری میرفتم ولیعصر تا از نزدیک هم تست کنم🥹 اما در نهایت کیبورد k552 رو برداشتم و کیفیت فوق‌العاده ایی از ردراگون رو حس کردم، تو کیبوردت چیه؟ اینجا معرفی کن 👇

#️⃣ #کاربردی #متفرقه

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> برنامه نویسی! هودی مشکی، قهوه فول کافئین، درآمد میلیارد دلاری، تم هکری، حتما لینوکس یوزر باشی، تازه کالی بریزی فاز هکری برداری نیست!

⚪️ متاسفانه امروزه در شبکه های اجتماعی الخصوص اینستاگرام که مرکز فرماندهی همه رویا فروشانه از شاخه مهارت برنامه نویسی تبلیغات زردی انجام میشه مثلا با کلماتی مثله میخوای تو خونه دراز بکشی درامد دلاری داشته باشی؟ میخوای از طریق برنامه نویسی بری آمریکا با ترامپ ملاقات داشته باشی؟میخوای پشت صندلی بشینی پول پارو کنی؟میخوای برنامه نویس فرانت بشی بری تو تیم دیجیکالا؟ حتی یجا دیدم حموم نرفتن جزو اخلاقیات عجیب برنامه نویساس 😐 و ...
در صورتی که برنامه نویسی و بهتره بگم یک برنامه‌نویس در صورتی میتونه موفقیت عمل کنه که این نوع حاشیه هارو توجه نکنه و با دید یک سازنده وارد هر شاخه بشه. اما اگه یسری موارد فاکتور بگیریم یسری موارد بین همه برنامه نویسان مشترکه که اگه این نوع موارد تمرکز بیشتری روشون بزاریم نتیجه و خروجی خوبی بعدن دریافت میکنیم.

⚪️شامل:
- پیگیر در یادگیری
- توانایی حل مشکلات و باگ ها
- دید منطقی به مشکلات و باگ ها
- توانایی در نوع برخورد با مشکلات
- توانایی دیباگینگ و سرچ

⚪️حالا بیاین یه مثال بزنم براتون
- ایشون که توسعه دهنده کرنل لینوکس داره با یه شلوارک
- بدون syntax highlighting
- بدون LSP
- فقط یک پنجره ترمینال، بدون tmux
- فقط ترمینال خام و vi پایه
- از ابتدا یک درایور USB کرنل را تو 3 ساعت داره مینویسه

- اونوقت اقا / خانوم X انتظار داره ترمینالش حالت دارک هکری بگیره تا بتونه شروع کنه فقط.

♨️~> تبلیغات زرد رو جدی نگیرید و رو مسیرتون تمرکز کنین این یه پست دلی بود امیدوارم خوشتون اومده باشه.

⚪️اینم ویدیوش اگه دوست داشتین ببینین.

▶️ https://www.youtube.com/watch?v=IXBC85SGC0Q


📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #کاربردی #دلی #روانشناسی #فکت

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> به لیست از 13 تا "طلایی ترین" توصیه های برنامه نویسی خیلی توجه کن چونکه این چند مورد پشتش تجربه چندین ساله هستش ‼️

1️⃣قبل از اینکه بخوای از ORMها استفاده کنی، اول با SQL آشنا شو.

2️⃣جاوا اسکریپت 👩‍💻 رو خوب یاد بگیر قبل از اینکه بری سراغ 👩‍💻 React 👩‍💻 / Node.

3️⃣ اول با 👩‍💻 REST APIها کار کن، بعد برو سراغ 👩‍💻 GraphQL.

4️⃣قبل از اینکه بخوای 👩‍💻 jQuery یاد بگیری، اول DOM رو یاد بگیر.

5️⃣قبل از استفاده از 👩‍💻 Docker، یه سر و گوشی به لینوکس 👩‍💻 بزن.

6️⃣اول 👩‍💻 HTML 👩‍💻 /CSS رو تمرین کن بعدش برو سراغ جاوا اسکریپت 👩‍💻.

7️⃣اول با 👩‍💻 Git راحت باش، بعد سراغ ابزارهای CI/CD برو.

8️⃣اول 👩‍💻 Docker رو خوب بفهم، بعد به Kubernetes 👩‍💻 فکر کن.

9️⃣اول مبانی TCP/IP رو یاد بگیر، بعد برو سراغ WebSocket 👩‍💻.

0️⃣1️⃣بعد از اینکه ساختارهای داده رو خوب فهمیدی، روی الگوریتمها تمرکز کن.

1️⃣1️⃣قبل از اینکه بخوای TDD رو یاد بگیری، Manual Testing رو یاد بگیر.

2️⃣1️⃣اول معماری Monolithicرو درک کن، بعد برو سراغ میکروسرویسها.

3️⃣1️⃣با الگوی MVC شروع کن و بعد به الگوهای پیشرفتهتری مثل MVVM یا فریمورکهای SPA برو.

💡منبع لینکدین.

 📣~> شما هم 14، 15، 16 و . . . بنویس 👇

#️⃣ #کاربردی #تجربه #لینکدین

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> تو این پست میخوام مفهوم ماژولار نویسی رو بصورت واضح و ساده بگم که خیلی از افراد تازه وارد باهاش مشکل دارن. 🤬

⚪️خب ماژولار نویسی (Modular Programming) یکی از روش‌های مهم در طراحی و توسعه نرم‌افزار است که به تقسیم کد به بخش‌های کوچکتر و مستقل به نام "ماژول" انجام میشه. این رویکرد باعث بهبود خوانایی کد ها و فایل ها، توسعه‌پذیری و نگهداریشون میشه.

⚙️تعریف اصلی ماژولار نویسی🤩

⚪️ماژولار نویسی یک روش طراحی است که در آن فایل ها یا بهتره بگم هر موجودیت به بخش‌های کوچکتر و مستقل تقسیم می‌شود. 👍؟
⚪️ هر ماژول یک وظیفه خاص را انجام میده و میتونه به صورت جداگانه توسعه و تست پذیر هم باشه.👏
⚪️این رویکرد با هدف کاهش پیچیدگی کد و افزایش قابلیت استفاده مجدد طراحی شده. 👌

⚙️ویژگی‌های ماژولار نویسی 😎

⚪️استقلال ماژول‌ها: هر ماژول به صورت جداگانه عمل میکنه و وابستگی کمتری به سایر ماژول‌ها داره. 👌

⚪️قابلیت استفاده مجدد: ماژول‌ها میتونن در پروژه‌های مختلف مورد استفاده مجدد قرار بگیره یعنی شما کد پروژه قبلی رو بیاری رو پروژه جدیدت. 🇮🇷

⚪️توسعه و نگهداری آسان: تغییر در یک ماژول تأثیری بر سایر ماژول‌ها هم نداره. 👌

⚪️قابلیت تست مستقل: هر ماژول رو میتونیم به صورت جداگونه تست کنیم. 👍

⚙️ مزایای ماژولار نویسی 👩‍🎓

⚪️خوانایی بالاعه کدها: تقسیم هر موجودین به بخش‌های کوچک‌تر باعث میشه ما اگه بخواهیم مثلا در قسمت کاربران تغییراتی ایجاد کنیم دیگه نیایم تو بخش مثلا محصولات این تغییر ایجاد کنیم مستقیم. 👍

⚪️کاهش پیچیدگی: موجودیت ها به اجزای ساده و قابل درک تقسیم میشه تا خواناتر بشه. 👍

⚪️افزایش بهره‌وری: تیم‌های مختلف می‌توانن به صورت همزمان روی ماژول‌های مختلف کار کنند یعنی مثلا شما منتظر نمیمونی بخش کاربران یکی بزنه بعد شروع کنی محصولات رو بدی به یکی دیگه! همزمان که یکی داره ماژول کاربران توسعه میده شما ماژول محصولات هم میدی یکی دیگه توسعه بده. 👍

⚪️قابلیت استفاده مجدد: ماژول‌های قبلی می‌توانند در پروژه‌های دیگر مورد استفاده قرار بگیرند اگر روند توسعه یکی باشه.

⚙️ معایب ماژولار نویسی 🥹

⚪️افزایش سربار (Overhead): مدیریت و ارتباط بین ماژول‌ها ممکن است پیچیدگی ایجاد کند.

⚪️نیاز به طراحی دقیق: طراحی مناسب ماژول‌ها نیازمند برنامه‌ریزی و تحلیل دقیق است.

⚪️کارایی کمتر در موارد خاص: در برخی موارد، استفاده از ماژولار نویسی ممکن است عملکرد برنامه را کاهش دهد.

⚙️ کاربردهای ماژولار نویسی 😍

⚪️توسعه نرم‌افزارهای بزرگ: مانند سیستم‌های مدیریت محتوا (CMS).

⚪️برنامه‌های تحت وب: تقسیم کد به ماژول‌های مربوط به رابط کاربری، منطق تجاری و ارتباط با پایگاه داده.

⚪️برنامه‌های موبایل: استفاده از ماژول‌های مستقل برای عملکردهای مختلف.

⚪️توسعه کتابخانه‌ها و فریم‌ورک‌ها: ارائه توابع و کلاس‌های قابل استفاده مجدد.

⚙️ مثال از ماژولار نویسی در یک سایت فروشگاهی:

⚪️فرض کنیم سایتی قراره توسعه بدیم که موجودیت هایی مثلا منو، سرچ، کاربران، محصولات، دسته بندی، کامنت، و .. دارد ما داخل پروژه اگه بخواهیم ماژولار پیش بریم ابتدا تمامی موجودیت هارو به یک ماژول مستقل تقسیم میکنیم سپس تمامی ماژول های پروژه رو به یک ماژول اصلی و هسته پروژه مثلا app.module وصل میکنیم!!

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #کدخوانا #معرفی_منبع #کاربردی

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> معرفی Elastic Search 🤨

⚪️خب Elasticsearch یک موتور جستجوی متن باز (Open Source) است که برای جستجو و تحلیل داده‌ها طراحی شده است. این ابزار بر پایه کتابخانه Apache Lucene ساخته شده و به دلیل سرعت و کارایی بالا در پردازش داده‌ها، محبوبیت زیادی در میان توسعه‌دهندگان و تحلیل‌گران داده پیدا کرده است.

🧠 ویژگی‌های اصلی Elasticsearch 😌

⚪️جستجوی تمام‌متنی (Full-Text Search):
- یعنی Elasticsearch میتونه جستجوی پیشرفته در متن ها یا رشته های string رو فراهم میکنه. 👏

⚪️قابلیت مقیاس‌پذیری (Scalability):
- به راحتی میتونیم سیستم رو برای پردازش حجم زیادی از داده‌ها گسترش بدیم. 🔥

⚪️پشتیبانی از API‌های RESTful:
- میتونیم به‌سادگی با Elasticsearch ارتباط برقرار کنیم از طریق api. 👍

⚪️تحلیل داده‌ها:
- از ابزارهایی برای تجزیه و تحلیل داده‌های بزرگ پشتیبانی میکنه. 👍

⭐️ کاربردهای Elasticsearch ☺️

⚪️جستجو در وب‌سایت‌ها:
- به‌عنوان مثال، موتور جستجوی داخلی در سایت‌های تجارت الکترونیک. 🤯

⚪️تحلیل لاگ‌ها:
- جمع‌آوری و تحلیل لاگ‌های سیستم‌های مختلف. 😍

⚪️مانیتورینگ و امنیت:
- استفاده از Elasticsearch به همراه Kibana و Logstash (مجموعه ELK) برای نظارت بر سیستم‌ها. 🍰

⚪️تجزیه و تحلیل داده‌ها:
- تحلیل داده‌های بزرگ به صورت ریل تایم (Real-Time). 👏

🛸 مزایای Elasticsearch 💪

⚪️سرعت بالا: به دلیل استفاده از ساختارهای پیشرفته مانند inverted index.

⚪️قابلیت توسعه: معماری توزیع‌شده Elasticsearch امکان مدیریت حجم بالای داده‌ها را فراهم می‌کند.

⚪️متن باز بودن: دسترسی رایگان به کد منبع و امکان استفاده گسترده.

⚪️انعطاف‌پذیری: قابلیت تطبیق با نیازهای مختلف سازمانی.

⚙️معایب Elasticsearch 🥺

⚪️پیچیدگی در پیکربندی: برای کاربران تازه‌کار ممکن است دشوار باشد.

⚪️مصرف منابع بالا: به ویژه در سیستم‌هایی با داده‌های بسیار زیاد.

⚪️وابستگی به سایر ابزارها: برای بهره‌گیری کامل از قابلیت‌ها نیاز به ابزارهای مکملی مانند Kibana وجود دارد.

⭕️~> نمونه مثال: جستجوی محصولات در یک فروشگاه آنلاین

⚪️فرض کنیم یک فروشگاه آنلاین با هزاران محصول داریم و کاربران میخوان محصول مورد نظر خودشون رو جستجو کنن. خب برای پیاده‌سازی این قابلیت میتونیم از Elasticsearch استفاده کنیم:

⚪️اول ایندکس کردن داده‌ها: ابتدا اطلاعات محصولات (مانند نام، توضیحات، قیمت و دسته‌بندی) را به‌صورت ساختاریافته به Elasticsearch ارسال میکنیم.
{
  "name": "لپ‌تاپ Dell XPS 13",
  "denoscription": "لپ‌تاپ سبک و قدرتمند با صفحه نمایش 13 اینچی.",
  "price": 25000000,
  "category": "الکترونیک"
}

⚪️انجام جستجو: کاربر کلمه‌ای مانند "لپ‌تاپ" را جستجو میکنه. Elasticsearch نتایج مرتبط را برمیگردونه.

{
  "query": {
    "match": {
      "name": "لپ‌تاپ"
    }
  }
}

⚪️نمایش نتایج: نتایج جستجو شامل اطلاعات محصولاتی است که با کلمه جستجو شده همخوانی دارند.


⚪️این یک پست معرفی elastic search بود برای نحوه استفاده و همچنین متود های این موتور جستجو، به داکیومنت Elasticsearch مراجعه کنین:
🧾 https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html


🎞 برای یادگیری Elastic Search این ویدیو یوتیوب رو مشاهده کنین حتما.
🔴 https://youtube.com/playlist?list=PLS1QulWo1RIYkDHcPXUtH4sqvQQMH3_TN&si=9SUimQjbHGlIR9Ps
📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #معرفی_منبع #ویدیو_آموزشی #elasticsearch

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> کتاب کلین‌کد میگه برای اسم variable ها و Function و ..مخفف(کوتاه سازی از من درآوردی) نکنیم 🚫

💡مثل
const ymdh = "year month day hour" 
const incrUser = () => {}
const delUser = () => {}

⚪️باید اسم variable ها و ... خوانا و مرتب باشه، بطوری که از ۱۰۰ کیلومتری بشه با بار اول متوجه شد کارایی اون خط کد رو. 👍

💡مثل

const expiredTime= "year month day hour" 
const incrementUser= () => {}
const deleteUser = () => {}

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #تجربه #ترفند #کاربردی #کلین_کد #cleancode

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> فرقی نمیکنه فرانت کار باشی یا بک اند کار، اگه با 👩‍💻 Typescipt کد میزنی حتما این 👩‍💻 extension رو باید نصب داشته باشی. 🌟

⚪️این 👩‍💻 extension میاد ارور های typescipt 🥶 که داری رو تمیز تر نشون میده برات👻

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #کاربردی #معرفی_ابزار

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> اگه در کار با درگاه پرداخت زرین پال بصورت request خام مشکل داری یا از کثیف شدن کد هات خوشت نمیاد میتونی از این پکیج استفاده کنی کار با باهاشو راحت کرده کافیه متود هاشو فراخوانی کنی خودش پشت پرده request میزنه 😎

🐱 https://github.com/fanishah/zarinpal-pay


📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #کاربردی #معرفی_منبع

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> هر استارتاپی میتونه موفقیت آمیز / شکست باشه، در صورتی برای استارتاپ فردی از هزینه های خودتون بزارین که سهمی در اون استارتاپ دارین(خارج از هزینه لانچ که دریافت باید کنین اول کار) چون در غیر این صورت باید منتظر بمونین تا طرف کارش (شاید) به درآمد برسه تا حقوق برنامه نویسشم بده، سری که درد نمیکنه رو دستمال نبندین 😀

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #تجربه

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
⚪️احراز چه هویت 😐

⭐️ احراز هویت با کتابخانه Passport.js 😐

🔘کتابخانه Passport.js یک کتابخانه یه ماژولار و انعطاف‌پذیر برای احراز هویت (Authentication) در پروژه‌های Node.js است. این کتابخانه از استراتژی‌های مختلفی برای احراز هویت مانند local، JWT، OAuth و OpenID و حتی گوگل پشتیبانی میکنه. 🔥
استفاده از Passport.js به توسعه‌دهندگان کمک می‌کند تا فرآیند احراز هویت را به شکلی ساده، امن و قابل گسترش پیاده‌سازی کنند. 👏

🔘ویژگی‌های Passport.js 😐

⚪️سبک و انعطاف‌پذیر: Passport.js طراحی ماژولار دارد و به راحتی می‌توان آن را با پروژه‌های موجود ادغام کرد. 😎

⚪️پشتیبانی از چندین استراتژی: می‌توانید از استراتژی‌های مختلف احراز هویت برای نیازهای متفاوت استفاده کنید.😉

⚪️سادگی در استفاده: پیاده‌سازی ساده با استفاده از API‌های خوانا. 🍺

⚪️جامعه فعال: مجموعه‌ای گسترده از افزونه‌ها و مستندات. 🫶

🔘مزایای استفاده از Passport.js 📰

⚪️انعطاف‌پذیری بالا: این کتابخانه امکان استفاده از چندین روش احراز هویت را فراهم می‌کند، مانند ورود با ایمیل و رمز عبور، استفاده از توکن JWT، یا استفاده از پلتفرم‌های واسطه مانند گوگل و فیسبوک. 😠

⚪️سازگاری: Passport.js به راحتی با فریم‌ورک‌هایی مانند Express و Nestjs مَچ میشه و می‌توان آن را به سرعت در پروژه‌های موجود پیاده‌سازی کرد. 😠

⚪️جامعه و مستندات قوی: با وجود افزونه‌های متعدد و پشتیبانی جامعه، توسعه‌دهندگان می‌توانند به سرعت مشکلات خود را حل کرده و از منابع موجود استفاده کنند. 🫶

⚪️مدیریت استراتژی‌های مختلف: Passport.js از رویکرد ماژولار برای مدیریت استراتژی‌ها استفاده می‌کند که باعث می‌شود هر استراتژی به صورت مستقل مدیریت شود. 🙂

🔘محدودیت‌های Passport.js 😭

⚪️پیچیدگی در تنظیمات پیشرفته: برای پیاده‌سازی استراتژی‌های سفارشی یا ترکیب چندین روش احراز هویت ممکن است نیاز به دانش پیشرفته باشد. ☹️

⚪️نیاز به مدیریت دستی خطاها: در Passport.js مدیریت خطاها و پیام‌ها به صورت دستی انجام می‌شود که ممکن است در پروژه‌های بزرگ به پیچیدگی افزایش پیدا کند. 🙁

🔘موارد استفاده Passport.js 😎

⚪️ورود کاربران با اطلاعات حساب کاربری: امکان احراز هویت کاربران با استفاده از نام کاربری و رمز عبور یا سایر اطلاعات کاربری مانند ثبت نام یا ورود با ایمیل. 😍

⚪️اتصال به سرویس‌های گوگل یا فیسبوک: ورود با استفاده از حساب‌های کاربری سرویس‌هایی مانند گوگل، فیسبوک یا گیت‌هاب. 🥳

⚪️استفاده از توکن JWT: احراز هویت کاربران با استفاده از توکن‌های JSON Web Token برای افزایش امنیت و کارایی در API‌ها. 👍

⚪️احراز هویت ترکیبی: پیاده‌سازی چندین روش احراز هویت مثل با رمز عبور یا ایمیل یا اس مس برای راحتی ورود / ثبت نام کاربران. 🛍

♨️~> لپ مطلب: 🧑‍🎓
• کتابخانه Passport.js یک ابزار قدرتمند برای پیاده‌سازی احراز هویت در برنامه‌های Node.js است. با توجه به پشتیبانی از استراتژی‌های مختلف و سادگی در پیاده‌سازی، این کتابخانه یکی از انتخاب‌های محبوب توسعه‌دهندگان است. این ابزار با رویکرد ماژولار خود امکان ایجاد سیستم‌های احراز هویت پیچیده و منعطف را فراهم می‌کند و به توسعه‌دهندگان کمک می‌کند تا به راحتی نیازهای امنیتی پروژه‌های خود را برآورده کنند.

⚪️این یک پست معرفی Passport js بود برای نحوه استفاده و همچنین استراتژی های مختلف احراز هویت های این کتابخانه، به داکیومنتش مراجعه کنین:
🧾  https://www.passportjs.org/


🎞 برای یادگیری Passport js این ویدیو یوتیوب رو مشاهده کنین حتما:

🔴 https://youtu.be/F-sFp_AvHc8?si=e8r1ImRoGuuWzmgs


📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #ویدیو_آموزشی #authentication #معرفی_منبع

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
Code_Unique.pdf
692 KB
🆕~> این PDF بدرد رفیقایی میخوره که اکانت لینکدینشون بن شده ، به نظرم حتما نگاه بندازید من خودم انقدر بن شدم کلا دلسرد شدم از فعالیت داخل لینکدین. 🥹

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #کاربردی #linkedin

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
یه قابلیتی که تلگرام داره و خیلی دوسش دارم قابلیت اینه وقتی تولدته به بقیه نشون میده هدف این کارش از دیدگاه من اینه با وجود شرایط سختی که رو زندگی حاکم و سواره واقعا کوچک ترین شادیا هم از بین رفته.
امروز دیدم تولدمه و وارد دهه ۲۰ - ۳۰ شدم و به عنوان یه برادر کوچیک خواستم کمی دردودلی داشته باشم.
دهه ۲۰ تا ۳۰ یکی از سخت‌ترین دهه های هر فرد محسوب میشه تو این برهه انقدر باید استرس، فشار، بی پولی بی خوابی و حتی شده گشنگی بکشی تا بتونی با موفقیت بیای بیرون.
من تو زندگی و روندی که پیش گرفتم به این اصل که میگه اقا از ۲۰ تا ۳۰ سالگی نرو با رفیقات drink بزن، نرو با دختر مردم با جیب خالی لاس بزنی رو مهارت هات تمرکز کن خودتو ارتقا بده تو این سن، تا افسوس دهه ۳۰ تا ۴۰ نخوری که میتونستی بکنی اما نکردی!!

یجا ویدیو دیدم داشت می‌گفت من الان تورو برای کارم تو آمریکا بخوام ایا اماده ایی برام کار کنی؟ رو زبانت کار کردی؟ رو بدنت کار کردی؟ باشگاه میری تا استایلت مناسب باشه؟ مرد بار اومدی اصلا!!. من خودم قید دانشگاهمو زدم تا بتونم با تمرکز بالاتری رو مهارت هام کار کنم، نمیگم شمام بزنین نه! اگه میبینی دانشگاه برات مفیده حتما برو ولی به دید این نرو دانشگاه بهت پول برسونه که اوج بدبختی این زمانه، مخصوصن ما پسرا که بعدش سربازی داریم:) تازه با این دلار ۸۰ تومنی.

هرجا دیدین کم اوردین مطعن باشین یه پله برای موفقیت بعدیتونه نمیخوام برم بالا ممبر فاز نصیحت بردارم چون نه جاش اینجاس نه به برنامه نویسی ربط داره اما شاید رو شخصیت فرد تاثیر بزاره
اینو یه گوشه ذهنتون داشته باشید به عنوان برادر کوچکتر از من: اگه میخواهی تو دهه ۳۰ تا ۴۰ که انشالله خانواده خوبیم تشکیل بدی دردی رو تحمل نکنی / و نزاری تحمل کنن خونودات، این دهه ۲۰ سالگی تا ۳۰ سالگیو جدی بگیر اگم از این دهه گذشتی خیلی خوش حالم برات و مطعنم تو روند خوبی داری پیش میری.

با اجازتون امروز پستی نداشته باشیم تا بتونم با فکری بازتر محتوا قرار بدم 🙏 ❤️

هروقت دوست داشتی با فرد غریبه ایی دردودل بکنی باعث افتخارمه بیای پیویم تا کنارت باشم قطعا جوابتو میدم رفیق ❤️
@idvmh
🆕~> معرفی انواع عملگرها (Operators) در SQL.

🔥قسمت اول.

1️⃣عملگرهای مقایسه‌ای (Comparison Operators)

⚪️= برابر (equal)
⚪️!= یا <> نابرابر (not equal)
⚪️> بزرگ‌تر (Greater than)
⚪️< کوچک‌تر (less than)
⚪️>= بزرگ‌تر یا مساوی ( Greater than or equal to)
⚪️<= کوچک‌تر یا مساوی (less than or equal to)

💡مثال
SELECT * FROM Products WHERE price > 5000;

SELECT * FROM Products WHERE price <> 5000;


⭕️~> نماد ستاره (*) asterisk، به معنی همه.

2️⃣عملگرهای منطقی (Logical Operators)
برای ترکیب چند شرط:


⚪️AND: هر دو شرط باید درست باشند.
⚪️OR‌: حداقل یکی از شروط باید درست باشد.
⚪️NOT: شرط را معکوس می‌کند.

💡مثال:
SELECT * FROM users WHERE role = 'user' AND age < 25;

SELECT * FROM users WHERE role = 'user' OR age < 25;

3️⃣عملگرهای محاسباتی (Arithmetic Operators)
برای انجام عملیات ریاضی:

⚪️+ جمع (add)
⚪️- تفریق (subtract)
⚪️* ضرب (multiply)
⚪️/ تقسیم (divide)
⚪️% درصد (module)

💡مثال:
SELECT price, price * 15000 AS newPrice FROM Products;


4️⃣عملگرهای مجموعه‌ای (Set Operators)
برای ترکیب نتایج کوئری‌ها:

⚪️UNION
⚪️INTERSECT
⚪️EXCEPT
💡مثال:

SELECT Name FROM users
UNION
SELECT Name FROM seller;


5️⃣عملگرهای خاص (Special Operators)

⚪️BETWEEN: برای تعریف بازه.
⚪️LIKE: برای جستجوی الگو.
⚪️IN: برای مقادیر خاص.
⚪️IS NULL: بررسی مقدار NULL

💡مثال:
SELECT * FROM Products WHERE price BETWEEN 500 AND 600;

SELECT * FROM users WHERE phone IS NULL;

SELECT * FROM tickets WHERE status IN ("cancel", "accept");

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #sql

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM
🆕~> معرفی Query Builder در SQL

🔥قسمت اول.

🔘در دنیای توسعه‌ی نرم‌افزار و پایگاه‌داده، مدیریت و ساخت کوئری های SQL بخش مهمی از فرآیند کار با داده‌ها است. اما وقتی پروژه‌ها بزرگ‌تر میشوند و پیچیدگی کوئری افزایش می‌یابد، مدیریت کوئری‌های دستی می‌تواند وقت‌گیر و باعث بروز خطا باشه. اینجاست که Query Builderها وارد عمل می‌شوند. ⚡️

⚪️ابتدا درباره این صحبت کنیم Query Builder چیه؟

⭐️ خب Query Builder ها ابزار یا کتابخانه هایی هستن که به توسعه‌دهندگان اجازه میده کوئری‌های SQL را به صورت متود یا فانکشن ها یعنی بدون نیاز به نوشتن مستقیم دستورات زبانی SQL ایجاد کنند. به عبارت ساده‌تر، به جای نوشتن رشته‌های SQL به صورت دستی، می‌توان از توابع و متودهای این ابزارها / کتابخانه ها استفاده کرد تا کوئری‌های مورد نظر را تولید / استفاده کرد.

🔘مزایای استفاده از Query Builder 🔥

1️⃣خوانایی بیشتر کد

⚪️کوئری‌های دستی SQL ممکن است پیچیده و طولانی باشند، اما Query Builderها با ارائه یک واسط کدنویسی خوانا (Readable API) باعث می‌شوند کد به‌مراتب ساده‌تر و واضح‌تر باشد. 🗿

2️⃣جلوگیری از حملات SQL Injection

⚪️بیشتر Query Builderها به صورت خودکار ورودی‌ها را پاکسازی می‌کنند و از حملات خطرناک SQL Injection جلوگیری می‌کنند.🥷

3️⃣قابلیت استفاده مجدد

⚪️ما توسعه‌دهندگان با استفاده از Query Builder ها کوئری‌های پویا ایجاد کنیم که در بخش‌های مختلف برنامه قابل استفاده مجدد باشه. 😇

4️⃣پشتیبانی از چند پایگاه‌داده

⚪️برخی از Query Builderها به شما امکان می‌دهند به‌راحتی با پایگاه‌داده‌های مختلف (مثل MySQL، PostgreSQL، SQLite و ...) کار کنید.

💡نمونه‌ای از Query Builder در با استفاده از کتابخانه knex.js

ممکنه اسم این کتابخانه تا حالا ندونسته باشیت اما این کتابخانه در جاوااسکریپت، یکی از محبوب‌ترین ابزارهای Query Builder است.

const knex = require('knex')({
  client: 'mysql',
  connection: {
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'mytestdb'
  }
});

// ایجاد یک کوئری SELECT
knex('users')
  .select('id', 'name', 'email')
  .where('role', 'admin')
  .orderBy('created_at', 'desc')
  .then((rows) => {
    console.log(rows);
  })
  .catch((error) => {
    console.error(error);
  });

❤️محبوب‌ترین Query Builderها در JavaScript ✌️
Knex.js, Sequelize 👩‍💻 , TypeOrm, Prisma 👩‍💻 , mikro-orm, Drizzle

📣~> اگه موردی بود حتما تو کامنت ها باهام درجریان بزار 👇

#️⃣ #معرفی_ابزار #sql

🔤 @Code_Unique
Please open Telegram to view this post
VIEW IN TELEGRAM