DevGuide ๐Ÿ‡ต๐Ÿ‡ธ
10.9K subscribers
2.61K photos
18 videos
127 files
3.55K links
Join our channel for top-notch programming hacks, epic discussions, and brilliant career moves. ๐Ÿš€

โšก๏ธ Stay connected with me: linktr.ee/AliSamir

๐Ÿ“ To advertise on the channel: https://telega.io/c/the_developer_guide
Download Telegram
10 Best GitHub Repositories to Learn Node.js (2025) ๐Ÿ’ฏ


1- Learn Node.js โ€“ A Beginner-Friendly Guide
https://github.com/manthanank/learn-nodejs

2- Node.js Best Practices
https://github.com/goldbergyoni/nodebestpractices

3- Node.js Projects
https://github.com/MAshrafM/NodeJS_Projects

4- JavaScript Algorithms
https://github.com/trekhleb/javascript-algorithms

5- Awesome Node.js
https://github.com/sindresorhus/awesome-nodejs

6- Node.js Full Stack Tutorial
https://github.com/Subham-Maity/node-js-full-stack-tutorial

7- The Node.js Master Class
https://github.com/pirple/The-NodeJS-Master-Class

8- Learn You Node
https://github.com/workshopper/learnyounode

9- Express.js Boilerplate
https://github.com/hagopj13/node-express-boilerplate

10- GraphQL Starter Kit
https://github.com/kriasoft/graphql-starter-kit
โค3๐Ÿ‘1
Operating Systems Course for Beginners ๐Ÿš€


This course will give you a comprehensive understanding of how operating systems function and manage resources.

https://youtu.be/yK1uBHPdp30
๐Ÿ‘3
Professional English for Software Engineer

This program is designed to provide you with the knowledge, skills, and tools necessary to become a highly effective professional communicator.

https://app.manara.tech/learning/36
โค5
ู„ูŠู‡ ู„ุงุฒู… ุชุณุชุฎุฏู… ุงู„ู€ Module BundlerุŸ ๐Ÿค”
.
.
ู„ู…ุง ุชุจุฏุฃ ู…ุดุฑูˆุน ูˆูŠุจ ุฌุฏูŠุฏุŒ ุงู„ุฃู…ูˆุฑ ููŠ ุงู„ุฃูˆู„ ุจุชูƒูˆู† ุจุณูŠุทุฉ ูˆุณู‡ู„ุฉุŒ ู…ุฌุฑุฏ ูƒุงู… ู…ู„ู HTML ูˆ CSS ูˆ JavaScriptุŒ ูˆูƒู„ ุญุงุฌุฉ ุดุบุงู„ุฉ ุชู…ุงู….

ู„ูƒู† ู…ุน ุงู„ูˆู‚ุชุŒ ูˆู…ุน ุฅุถุงูุฉ ู…ูŠุฒุงุช ุฌุฏูŠุฏุฉุŒ ุจุชุจุฏุฃ ุงู„ุฃู…ูˆุฑ ุชุชุนู‚ุฏ ุชุฏุฑูŠุฌูŠู‹ุงุŒ ูˆุชู„ุงู‚ูŠ ู†ูุณูƒ ุจุชูˆุงุฌู‡ ู…ุดุงูƒู„ ุฒูŠ ุจุทุก ุงู„ุชุญู…ูŠู„ ุฃูˆ ุตุนูˆุจุฉ ููŠ ุชู†ุธูŠู… ุงู„ูƒูˆุฏ...

ูˆุงู„ุญู„ ุงู„ุณุญุฑูŠ ู„ูƒู„ ุงู„ู…ุดุงูƒู„ ุฏูŠ ู‡ูˆ ุงู„ู€ Module Bundler... ุชุนุงู„ ู†ูˆุถุญ ุงู„ู…ูˆุถูˆุน ุจุจุณุงุทุฉ...๐Ÿ’ฏ

โ€”โ€”โ€”

ุฅูŠู‡ ู‡ูˆ ุงู„ู€ Module BundlerุŸ ๐Ÿ› 

ุจุจุณุงุทุฉุŒ ู‡ูˆ ุฃุฏุงุฉ ุจุชุงุฎุฏ ูƒู„ ุงู„ู…ู„ูุงุช ุงู„ู„ูŠ ุจุชุณุชุฎุฏู…ู‡ุง ููŠ ู…ุดุฑูˆุนูƒ (JS, CSS, Images... ุฅู„ุฎ)ุŒ ูˆุชุธุจุทู‡ุง ูˆุชุฌู…ุนู‡ู… ููŠ ู…ู„ู ูˆุงุญุฏ ุฃูˆ ู…ุฌู…ูˆุนุฉ ู…ู„ูุงุช ุตุบูŠุฑุฉ ูˆู…ู†ุธู…ุฉุŒ ุจุญูŠุซ ุชูƒูˆู† ุฌุงู‡ุฒุฉ ู„ู„ุชุดุบูŠู„ ุนู„ู‰ ุงู„ู…ุชุตูุญ ุจูƒูุงุกุฉ ุนุงู„ูŠุฉ.

ู…ู† ุฃุดู‡ุฑ ุงู„ู€ Bundlers ุงู„ู„ูŠ ู…ู…ูƒู† ุชุณุชุฎุฏู…ู‡ู…:

- Webpack
- Vite
- Parcel
- Rollup

โ€”โ€”โ€”

ู„ูŠู‡ ุชุณุชุฎุฏู… ุงู„ู€ Module BundlerุŸ ๐Ÿคทโ€โ™‚๏ธ

1- ุชุญุณูŠู† ุงู„ุฃุฏุงุก (Performance Optimization) ๐Ÿš€

- ุจูŠุนู…ู„ Minification ู„ู„ูƒูˆุฏุŒ ูŠุนู†ูŠ ุจูŠุดูŠู„ ุงู„ู…ุณุงูุงุช ูˆุงู„ุชุนู„ูŠู‚ุงุช ุงู„ุฒุงูŠุฏุฉุŒ ูุญุฌู… ุงู„ู…ู„ู ุจูŠุตุบุฑ ูˆูŠุชุญู…ู‘ู„ ุฃุณุฑุน.
- ุจูŠุนู…ู„ Tree ShakingุŒ ูŠุนู†ูŠ ุจูŠุดูŠู„ ุฃูŠ ูƒูˆุฏ ู…ุด ู…ุณุชุฎุฏู… ู…ู† ุงู„ู…ุดุฑูˆุน ุนู„ุดุงู† ูŠุจู‚ู‰ ุฎููŠู.


2- ุชู‚ู„ูŠู„ ุนุฏุฏ ุงู„ู€ Requests ๐Ÿ“ฆ

ุจุฏู„ ู…ุง ุงู„ู…ุชุตูุญ ูŠุทู„ุจ 100 ู…ู„ู JavaScript ูˆ CSSุŒ ุงู„ู€ Bundler ุจูŠุญุทู‡ู… ููŠ ู…ู„ู ูˆุงุญุฏ ุฃูˆ ูƒุงู… ู…ู„ู ู‚ู„ูŠู„ูŠู†ุŒ ูุงู„ุตูุญุฉ ุชูุชุญ ุฃุณุฑุน.


3- ุงู„ุชุนุงู…ู„ ู…ุน ุงู„ู€ Dependencies ุจุณู‡ูˆู„ุฉ ๐Ÿ”—

ู„ูˆ ุจุชุณุชุฎุฏู… ู…ูƒุชุจุงุช ุฒูŠ React ุฃูˆ VueุŒ ุงู„ู€ Bundler ุจูŠู†ุธู…ู‡ุง ูˆูŠุฏู…ุฌู‡ุง ููŠ ุงู„ูƒูˆุฏ ุจุฐูƒุงุก.


4- ุงู„ุชูˆุงูู‚ ู…ุน ุฌู…ูŠุน ุงู„ู…ุชุตูุญุงุช ๐ŸŒ

ุจูŠุญูˆู„ ุงู„ูƒูˆุฏ ุงู„ุญุฏูŠุซ ู„ูƒูˆุฏ ู‚ุฏูŠู… ู…ูู‡ูˆู… ู„ู„ู…ุชุตูุญุงุช ุงู„ู‚ุฏูŠู…ุฉ ุจุงุณุชุฎุฏุงู… ุฃุฏูˆุงุช ุฒูŠ Babel.


5- ุณู‡ูˆู„ุฉ ุชู‚ุณูŠู… ุงู„ูƒูˆุฏ (Code Splitting) ๐Ÿงฉ

ู…ู…ูƒู† ุชุญู…ู„ ุฃุฌุฒุงุก ู…ุนูŠู†ุฉ ู…ู† ุงู„ูƒูˆุฏ ู„ู…ุง ุชุญุชุงุฌู‡ุง ุจุณุŒ ุจุฏู„ ู…ุง ุชุญู…ู„ ูƒู„ ุญุงุฌุฉ ู…ุฑุฉ ูˆุงุญุฏุฉุŒ ูˆุฏู‡ ุจูŠุณุฑู‘ุน ุงู„ุตูุญุฉ.


6- ุฏุนู… ุงู„ู€ Hot Reloading ๐Ÿ”„

ู…ุน ุฃุฏูˆุงุช ุงู„ุชุทูˆูŠุฑ ุงู„ู„ูŠ ุจุชูŠุฌูŠ ู…ุน ุงู„ู€ Bundler (ุฒูŠ Vite ุฃูˆ Webpack Dev Server)ุŒ ู„ู…ุง ุชุนุฏู„ ุงู„ูƒูˆุฏ ุงู„ุตูุญุฉ ุจุชุชุญุฏุซ ู„ูˆุญุฏู‡ุง ู…ู† ุบูŠุฑ ู…ุง ุชุนู…ู„ Refresh.


7- ุณู‡ูˆู„ุฉ ุงู„ุชุนุงู…ู„ ู…ุน ุงู„ู…ู„ูุงุช ุงู„ู…ุฎุชู„ูุฉ ๐ŸŽจ

ุชู‚ุฏุฑ ุชุณุชุฎุฏู… CSS ูˆ SCSS ูˆุชุถูŠู ุตูˆุฑ ูˆุฎุทูˆุท ุจุณู‡ูˆู„ุฉ ุนู† ุทุฑูŠู‚ ุฅุนุฏุงุฏุงุช ุงู„ู€ Bundler ุฒูŠ ุงู„ู€ Loaders ููŠ Webpack.

โ€”โ€”โ€”

ุงู…ุชู‰ ู…ู…ูƒู† ุชุณุชุบู†ู‰ ุนู† ุงู„ู€ BundlerุŸ โŒ

ู„ูˆ ู…ุดุฑูˆุนูƒ ุตุบูŠุฑ ุฌุฏู‹ุงุŒ ุฒูŠ ุตูุญุฉ HTML ุจุณูŠุทุฉ ู…ุน ุดูˆูŠุฉ CSS ูˆ JSุŒ ู…ู…ูƒู† ุชุดุชุบู„ ู…ู† ุบูŠุฑ Bundler. ู„ูƒู† ู„ูˆ ุงู„ู…ุดุฑูˆุน ูƒุจุฑ ูˆุฏุฎู„ ููŠู‡ ู…ูƒุชุจุงุช ุฃูˆ ุฃูƒูˆุงุฏ ูƒุชูŠุฑุŒ ู‡ุชุญุชุงุฌู‡ ุฌุฏู‹ุง.

โ€”โ€”โ€”

ุฎู„ุงุตุฉ ุงู„ูƒู„ุงู… ๐ŸŽฏ

ุงุณุชุฎุฏุงู… Module Bundler ุจูŠุณุงุนุฏูƒ ููŠ:

โœ… ุชุญุณูŠู† ุงู„ุฃุฏุงุก ูˆุชุณุฑูŠุน ุงู„ุชุญู…ูŠู„.
โœ… ุชู†ุธูŠู… ุงู„ู…ุดุฑูˆุน ูˆุชู‚ู„ูŠู„ ุงู„ู…ุดุงูƒู„.
โœ… ุชูˆุงูู‚ ุฃูุถู„ ู…ุน ุงู„ู…ุชุตูุญุงุช.
โœ… ุชุฌุฑุจุฉ ุชุทูˆูŠุฑ ุฃุณู‡ู„ ูˆุฃุณุฑุน.

โ€”โ€”โ€”

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค12๐Ÿ‘5๐Ÿ‘2
ู„ูˆ ุดุบุงู„ ุจู€ ReactุŒ ุฃูƒูŠุฏ ุณู…ุนุช ุนู† useCallbackุŒ ุจุณ ู‡ู„ ูุนู„ู‹ุง ู…ุญุชุงุฌ ุชุณุชุฎุฏู…ู‡ุŸ ๐Ÿค”

ููŠ ุงู„ู…ู‚ุงู„ ุฏู‡ุŒ ู‡ุชูู‡ู… ุงู„ู€ useCallback ุจุทุฑูŠู‚ุฉ ุจุณูŠุทุฉุŒ ูˆุฅุฒุงูŠ ุชุณุชุฎุฏู…ู‡ ุตุญ ุนุดุงู† ุชุญุณู† ุฃุฏุงุก ุงู„ูƒูˆุฏ ุจุชุงุนูƒ ุจุฏูˆู† ุชุนู‚ูŠุฏ. ๐Ÿš€

โ€”โ€”-

Simplifying React Hooks: useCallback ๐Ÿ’ฏ


๐Ÿ“ Dev Community
https://dev.to/alisamir/simplifying-react-hooks-usecallback-46pp

๐Ÿ“ Medium
https://medium.com/@dev.alisamir/simplifying-react-hooks-usecallback-bb03cf54a641
โค4
25 JavaScript String Methods Cheat Sheet - Part 1.pdf
891.6 KB
ุฃู‡ู… 25 ุฏุงู„ุฉ ู„ู„ุชุนุงู…ู„ ู…ุน ุงู„ู€ Strings ููŠ JavaScript ๐Ÿ’ฏ
.
.
25 JavaScript String Methods Cheat Sheet - Part 1 ๐Ÿ’ก


1. length
2. charAt()
3. charCodeAt()
4. toUpperCase()
5. toLowerCase()
6. slice()
7. substring()
8. trim()
9. trimStart()
10. trimEnd()
11. String.concat()
12. endsWith()

โ€”โ€”โ€”

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค5
ุฏุฑุฏุดุฉ ุณุฑูŠุนุฉ ุนู† ุงู„ู€ Shadow DOM ๐Ÿ’ก
.
.
ุชุฎูŠู„ ู…ุนุงูŠุง ุฃู†ูƒ ุดุบุงู„ ุนู„ู‰ ู…ุดุฑูˆุน ุถุฎู…ุŒ ูˆุนุงู…ู„ Components ModularุŒ ุจุณ ูุฌุฃุฉ ุญุตู„ุช ูƒุงุฑุซุฉ! ุงู„ู€ CSS ุงู„ู„ูŠ ูƒุชุจุชู‡ ู„ู€ู…ูƒูˆู† (Component) ู…ุนูŠู† ุจู‚ู‰ ุจูŠุฃุซุฑ ุนู„ู‰ ู…ูƒูˆู†ุงุช (Components) ุชุงู†ูŠุฉ ููŠ ุงู„ุตูุญุฉุŒ ูˆุงู„ู€ JavaScript ุจุฏุฃ ูŠุฏุฎู„ ููŠ ู…ุชุงู‡ุงุช ุจุณุจุจ ุงู„ู€ Global Scope. ุงู„ุญู„ุŸ ู‡ู†ุง ุจูŠูŠุฌูŠ ุฏูˆุฑ Shadow DOM!

ุชุนุงู„ ู†ุฏุฑุฏุด ุดูˆูŠุฉ ุนู† Shadow DOMุŒ ุฅุฒุงูŠ ุจูŠุดุชุบู„ุŒ ู„ูŠู‡ ู‡ูˆ ู…ู‡ู…ุŒ ูˆุฅุฒุงูŠ ุชุณุชุฎุฏู…ู‡ ุนู…ู„ูŠู‹ุง ููŠ ู…ุดุงุฑูŠุนูƒ...๐Ÿ”ฅ

โ€”โ€”โ€”

๐Ÿ“ LinkedIn

https://www.linkedin.com/posts/dev-alisamir_webdeveloper-webdevelopment-devabrguide-activity-7303859163757957121-bwdh

๐Ÿ“ Qabilah

https://qabilah.com/posts/pXMvwi8VKXk

๐Ÿ“ Facebook

https://www.facebook.com/share/p/1A8EL2kmMj

โ€”โ€”โ€”

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค5
ุงู„ู€ Asynchronous Programming ููŠ JavaScript โš™๏ธ
.
.
ุงู„ุจุฑู…ุฌุฉ ููŠู‡ุง ู†ูˆุนูŠู† ุฃุณุงุณูŠูŠู†: Synchronous ูˆ AsynchronousุŒ ูˆู„ู…ุง ู†ูู‡ู… ุงู„ูุฑู‚ ุจูŠู†ู‡ู…ุŒ ู‡ูŠุจู‚ู‰ ุฃุณู‡ู„ ู†ุนุฑู ู„ูŠู‡ ุงู„ู€ Asynchronous ู…ู‡ู… ุฌุฏู‹ุง.

๐Ÿ“Œ ุงู„ู€ Synchronous Programming:

ุฏู‡ ูŠุนู†ูŠ ุฅู† ุงู„ูƒูˆุฏ ุจูŠุชู†ูุฐ ุฎุทูˆุฉ ุจุฎุทูˆุฉุŒ ุจู…ุนู†ู‰ ุฅู† ุงู„ูƒูˆุฏ ู…ุจูŠูƒู…ู„ุด ุชู†ููŠุฐ ุฃูŠ ุฎุทูˆุฉ ุชุงู†ูŠุฉ ุฅู„ุง ู„ู…ุง ุงู„ุฎุทูˆุฉ ุงู„ู„ูŠ ู‚ุจู„ู‡ุง ุชุฎู„ุต. ูŠุนู†ูŠ ู„ูˆ ุนู†ุฏูƒ ุนู…ู„ูŠุฉ ุจุชุงุฎุฏ ูˆู‚ุช ุฒูŠ ุฅู†ูƒ ุจุชุญู…ู„ ุจูŠุงู†ุงุช ู…ู† ุงู„ุณุฑูุฑ ุนู† ุทุฑูŠู‚ ุงู„ู€ APIุŒ ุงู„ูƒูˆุฏ ู‡ูŠูุถู„ ู…ุณุชู†ูŠ ู„ุญุฏ ู…ุง ุงู„ุจูŠุงู†ุงุช ุชุชุญู…ู„ ู‚ุจู„ ู…ุง ูŠูƒู…ู„ ุจุงู‚ูŠ ุงู„ุชู†ููŠุฐ.

๐Ÿ“Œ ุงู„ู€ Asynchronous Programming:

ุฃู…ุง ููŠ ุงู„ุจุฑู…ุฌุฉ ุงู„ู€ AsynchronousุŒ ุงู„ูƒูˆุฏ ูŠู‚ุฏุฑ ูŠู†ูุฐ ุญุงุฌุงุช ูƒุชูŠุฑ ููŠ ู†ูุณ ุงู„ูˆู‚ุช ู…ู† ุบูŠุฑ ู…ุง ูŠุณุชู†ู‰ ุงู„ุนู…ู„ูŠุฉ ุงู„ุทูˆูŠู„ุฉ ุชุฎู„ุต. ูŠุนู†ูŠ ู„ูˆ ุนู†ุฏูƒ ุนู…ู„ูŠุฉ ุฒูŠ ุชุญู…ูŠู„ ุงู„ุจูŠุงู†ุงุช ู…ู† ุงู„ุณุฑูุฑุŒ ุงู„ูƒูˆุฏ ู…ู…ูƒู† ูŠุณุชู…ุฑ ููŠ ุชู†ููŠุฐ ุฃูƒูˆุงุฏ ุชุงู†ูŠุฉุŒ ูˆู„ู…ุง ุงู„ุจูŠุงู†ุงุช ุชุชุญู…ู„ุŒ ุงู„ูƒูˆุฏ ู‡ูŠุนุฑู ูˆูŠุชุนุงู…ู„ ู…ุน ุงู„ู†ุชูŠุฌุฉ.

โ€”โ€”โ€”

๐Ÿ“Œ ุฅุฒุงูŠ ุงู„ูƒู„ุงู… ุฏู‡ ุจูŠุญุตู„ ููŠ JavaScriptุŸ


ููŠ JavaScriptุŒ ุนู†ุฏู†ุง ุทุฑูŠู‚ุชูŠู† ุฑุฆูŠุณูŠุชูŠู† ู„ู„ุชุนุงู…ู„ ู…ุน ุงู„ู€ asynchronous programming

๐Ÿ”ป ุงู„ู€ Callbacks
๐Ÿ”ป ุงู„ู€ Promises

(ูˆุทุจุนู‹ุง async/await ุงู„ู„ูŠ ู‡ูˆ ุชุญุณูŠู† ู„ู„ู€ Promises)

โ€”โ€”โ€”

๐Ÿ“Œ ุงู„ู€ Callbacks

ุฃูˆู„ ุทุฑูŠู‚ุฉ ู„ู„ุชุนุงู…ู„ ู…ุน ุงู„ู€ asynchronous programming ูƒุงู†ุช ุนู† ุทุฑูŠู‚ ุงู„ู€ Callbacks. ุงู„ููƒุฑุฉ ุจุจุณุงุทุฉ ุฅู†ูƒ ุจุชู…ุฑุฑ ุฏุงู„ุฉ ู…ุนูŠู†ุฉ ูƒู€ "callback" ู„ู„ูƒูˆุฏ ุงู„ู„ูŠ ุจูŠุชู†ูุฐุŒ ูˆู„ู…ุง ุงู„ูƒูˆุฏ ุฏู‡ ูŠุฎู„ุตุŒ ุงู„ุฏุงู„ุฉ ุฏูŠ ุจุชุดุชุบู„.

ู„ูƒู† ุงู„ู€ callbacks ุจุชุชุญูˆู„ ุจุณุฑุนุฉ ู„ูƒูˆุฏ ู…ุนู‚ุฏ ุฌุฏู‹ุง ู„ู…ุง ูŠูƒูˆู† ุนู†ุฏูƒ ุนู…ู„ูŠุงุช ูƒุชูŠุฑ ูˆุจุชุญุชุงุฌ ุชูƒุชุจ ุญุงุฌุงุช ูƒุชูŠุฑ ุฌูˆุฉ ุจุนุถู‡ุงุŒ ูˆุฏู‡ ุงู„ู„ูŠ ุจู†ุณู…ูŠู‡ Callback Hell.


๐Ÿ“Œ ุงู„ุญู„: ุงู„ู€ Promises

ู‡ู†ุง ุจูŠุฌูŠ ุฏูˆุฑ ุงู„ู€ PromisesุŒ ุงู„ู„ูŠ ู‡ูŠ ุทุฑูŠู‚ุฉ ุฌุฏูŠุฏุฉ ูˆุฃูƒุซุฑ ุชู†ุธูŠู…ู‹ุง ู„ู„ุชุนุงู…ู„ ู…ุน ุงู„ุนู…ู„ูŠุงุช ุงู„ู€ asynchronous. ุงู„ู€ Promise ู‡ูˆ ููŠ ุงู„ุฃุณุงุณ "ูˆุนุฏ" ุฅู† ุงู„ุนู…ู„ูŠุฉ ู‡ุชุฎู„ุต ููŠ ุงู„ู…ุณุชู‚ุจู„.

ุงู„ู€ Promise ุจูŠูƒูˆู† ู„ูŠู‡ 3 ุญุงู„ุงุช:

๐Ÿ”ป ุญุงู„ุฉ ุงู„ู€ Pending: ูŠุนู†ูŠ ุงู„ุนู…ู„ูŠุฉ ู„ุณู‡ ู…ุฎู„ุตุชุด.
๐Ÿ”ป ุญุงู„ุฉ ุงู„ู€ Fulfilled: ูŠุนู†ูŠ ุงู„ุนู…ู„ูŠุฉ ู†ุฌุญุช ูˆุทู„ุนุช ุงู„ู†ุชูŠุฌุฉ.
๐Ÿ”ป ุญุงู„ุฉ ุงู„ู€ Rejected: ูŠุนู†ูŠ ุงู„ุนู…ู„ูŠุฉ ูุดู„ุช ูˆููŠู‡ ุฎุทุฃ ุญุตู„.

ู„ู…ุง ุงู„ุนู…ู„ูŠุฉ ุชุฎู„ุต ุจู†ุฌุงุญุŒ ุงู„ู€ Promise ุจูŠุชุญูˆู„ ู„ุญุงู„ุฉ "fulfilled"ุŒ ูˆู„ูˆ ุงู„ุนู…ู„ูŠุฉ ูุดู„ุช ุจูŠุชุญูˆู„ ู„ุญุงู„ุฉ "rejected".

โ€”โ€”โ€”

ุฎู„ูŠู†ุง ู†ุดูˆู ู…ุซุงู„ ุนุดุงู† ู†ูู‡ู… ุงู„ูƒู„ุงู… ุฏู‡ ุจุดูƒู„ ุฃูˆุถุญ. ู‡ู†ูุชุฑุถ ุฅู†ู†ุง ุนุงูŠุฒูŠู† ู†ุญุงูƒูŠ ุนู…ู„ูŠุฉ ุงุณุชุฑุฌุงุน ุจูŠุงู†ุงุช ู…ู† ุงู„ู€ API.

const fetchData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
const dataAvailable = true;

if (dataAvailable) {
resolve("Data retrieved successfully!");
} else {
reject("Error: Unable to retrieve data.");
}
}, 3000);
});
};

fetchData()
.then((result) => console.log(result))
.catch((error) => console.log(error));


ููŠ ุงู„ูƒูˆุฏ ุฏู‡ุŒ ุงู„ุฏุงู„ุฉ fetchData ุจุชุฑุฌุน Promise. ุฏุงุฎู„ ุงู„ู€ PromiseุŒ ุจู†ุณุชุฎุฏู… ุฅู…ุง resolve ู„ูˆ ุงู„ุนู…ู„ูŠุฉ ู†ุฌุญุช ุฃูˆ reject ู„ูˆ ุญุตู„ ุฎุทุฃ.

ุจุงุณุชุฎุฏุงู… thenุŒ ุจู†ู‚ุฏุฑ ู†ุชุนุงู…ู„ ู…ุน ุงู„ู†ุชูŠุฌุฉ ู„ูˆ ุงู„ุนู…ู„ูŠุฉ ู†ุฌุญุชุŒ ูˆู„ูˆ ุญุตู„ ุฎุทุฃุŒ ุงู„ู€ catch ุจุชุณุงุนุฏู†ุง ููŠ ุงู„ุชุนุงู…ู„ ู…ุนุงู‡.

โ€”โ€”โ€”

๐Ÿ“Œ ุงู„ู€ Async/Await

ุนู„ุดุงู† ู†ุฎู„ูŠ ุงู„ูƒูˆุฏ ุฃุจุณุท ูˆุฃูˆุถุญุŒ ุธู‡ุฑ ุญุงุฌุฉ ุงุณู…ู‡ุง async/await ุงู„ู„ูŠ ุจุชุดุชุบู„ ุนู„ู‰ ุงู„ู€ Promises ุจุณ ุจุดูƒู„ ู…ุจุณุท ุฌุฏู‹ุง ูˆุจุชุฎู„ูŠ ุงู„ูƒูˆุฏ ูŠุจุงู† ูƒุฃู†ู‡ synchronous.

ู†ูุณ ุงู„ู…ุซุงู„ ุงู„ู„ูŠ ุงู„ู„ูŠ ูุงุช ู†ู‚ุฏุฑ ู†ูƒุชุจู‡ ุจุทุฑูŠู‚ุฉ async/await ุจุงู„ุดูƒู„ ุฏู‡:

const fetchData = async () => {
try {
const result = await new Promise((resolve, reject) => {
setTimeout(() => {
const dataAvailable = true;
if (dataAvailable) {
resolve("Data retrieved successfully!");
} else {
reject("Error: Unable to retrieve data.");
}
}, 3000);
});
console.log(result);
} catch (error) {
console.log(error);
}
};

fetchData();


ุงู„ู…ูŠุฒุฉ ู‡ู†ุง ุฅู†ู†ุง ุงุณุชุฎุฏู…ู†ุง await ุนุดุงู† ู†ุณุชู†ู‰ ุงู„ู†ุชูŠุฌุฉ ู…ู† ุงู„ู€ Promise ูˆูƒุฃู† ุงู„ุนู…ู„ูŠุฉ ุฏูŠ synchronousุŒ ู„ูƒู† ููŠ ุงู„ุญู‚ูŠู‚ุฉ ุงู„ูƒูˆุฏ ุดุบุงู„ ุจุทุฑูŠู‚ุฉ asynchronous.

ูˆุจุฏู„ ู…ุง ู†ุณุชุฎุฏู… then ูˆ catchุŒ ุงุณุชุฎุฏู…ู†ุง try ูˆ catch ุนู„ุดุงู† ู†ุชุนุงู…ู„ ู…ุน ุงู„ู†ุฌุงุญ ุฃูˆ ุงู„ูุดู„.

โ€”โ€”โ€”

๐Ÿ“Œ ู„ูŠู‡ ุชุณุชุฎุฏู… ุงู„ู€ Promises ูˆุงู„ู€ Async/AwaitุŸ

โœ… ุชู†ุธูŠู… ุงู„ูƒูˆุฏ: ุงู„ูƒูˆุฏ ุจูŠุจู‚ู‰ ุฃู†ุถู ูˆุฃุจุณุท ููŠ ุงู„ูู‡ู… ู…ู‚ุงุฑู†ุฉ ุจุงู„ู€ Callbacks.
โœ… ุงู„ู€ Error Handling ุฃูุถู„: ุงู„ุชุนุงู…ู„ ู…ุน ุงู„ุฃุฎุทุงุก ุจู‚ู‰ ุฃุณู‡ู„ ุจุงุณุชุฎุฏุงู… try/catch.
โœ… ู„ู…ุง ูŠูƒูˆู† ุนู†ุฏูƒ ู…ุดุฑูˆุน ูƒุจูŠุฑุŒ ุงู„ู€ async/await ู‡ูŠุณุงุนุฏูƒ ููŠ ุฅุฏุงุฑุฉ ุงู„ุฃูƒูˆุงุฏ ุงู„ุทูˆูŠู„ุฉ ูˆุงู„ู…ุนู‚ุฏุฉ ุจุณู‡ูˆู„ุฉ.

โ€”โ€”โ€”

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค12๐Ÿ”ฅ2
ูŠุนู†ูŠ ุฅูŠู‡ Bearer Token ูˆุฅุฒุงูŠ ุจูŠุดุชุบู„ุŸ ๐Ÿค”

.
.
ุฎู„ูŠู†ูŠ ุฃุณุฃู„ูƒ ุณุคุงู„... ู„ู…ุง ุชุฏุฎู„ ุฃูŠ ู…ูˆู‚ุน ูˆูŠุทู„ุจ ู…ู†ูƒ ุชุณุฌูŠู„ ุงู„ุฏุฎูˆู„ุŒ ู‡ู„ ูƒู„ ู…ุฑุฉ ุจุชูุชุญ ุงู„ู…ูˆู‚ุน ุจูŠุทู„ุจ ู…ู†ูƒ ุงุณู… ุงู„ู…ุณุชุฎุฏู… ูˆุงู„ุจุงุณูˆุฑุฏ ู…ู† ุงู„ุฃูˆู„ุŸ "ููŠ ุงู„ุบุงู„ุจ" ู„ุงุŒ ู„ุฃู†ู‡ ุจุนุฏ ู…ุง ุจุชุณุฌู‘ู„ ุฏุฎูˆู„ ุจูŠุชู… ุฅุตุฏุงุฑ Token ุชุณุชุฎุฏู…ู‡ ุจุฏู„ ู…ุง ุชุฏุฎู„ ุจูŠุงู†ุงุชูƒ ูƒู„ ู…ุฑุฉ.

ู‡ู†ุง ุจู‚ู‰ ุจูŠูŠุฌูŠ ุฏูˆุฑ ุงู„ู€ Bearer Token... ุฏู‡ ูˆุงุญุฏ ู…ู† ุฃุดู‡ุฑ ุฃู†ูˆุงุน ุงู„ู€ Access Tokens ูˆุงู„ู„ูŠ ุจูŠุชู… ุงุณุชุฎุฏุงู…ู‡ ููŠ ุงู„ู€ authentication (ูˆุบุงู„ุจู‹ุง ู…ุน ู…ุนูŠุงุฑ OAuth 2.0)ุŒ ูˆุฏู‡ ู…ุนู†ุงู‡ ุฅู†ูƒ ู„ู…ุง ุชุจุนุช request ู„ุฃูŠ API ู…ุญู…ูŠ (Protected)ุŒ ุจุฏู„ ู…ุง ุชุจุนุช ุจูŠุงู†ุงุช ุชุณุฌูŠู„ ุงู„ุฏุฎูˆู„ ูƒู„ ู…ุฑุฉุŒ ุจุชุจุนุช ุงู„ู€ Token ุจูŠุฃูƒุฏ ุฅู†ูƒ ุดุฎุต ู…ูˆุซูˆู‚.

ุจุณ ุฎู„ูŠู†ูŠ ุฃู‚ูˆู„ูƒ ุฅู† ุงุณุชุฎุฏุงู… Bearer Token ู…ุญุชุงุฌ ุดูˆูŠุฉ ุชูุงุตูŠู„ ู„ุงุฒู… ุชุจู‚ู‰ ูุงู‡ู…ู‡ุง ูƒูˆูŠุณุŒ ู„ุฃู† ุฃูŠ ุบู„ุทุฉ ููŠ ุงู„ุชุนุงู…ู„ ู…ุนุงู‡ ู…ู…ูƒู† ุชุฎู„ูŠ ุจูŠุงู†ุงุชูƒ ุนุฑุถุฉ ู„ู„ุฅุฎุชุฑุงู‚.
.
.
ู„ุง ุชู†ุณูˆุง ุฃู‡ู„ู†ุง ุงู„ู…ุณุชุถุนููŠู† ู…ู† ุงู„ุฏุนุงุก.
โ€”โ€”โ€”

๐Ÿ“Œ ุฅุฒุงูŠ ุงู„ู€ Bearer Token ุจูŠุดุชุบู„ุŸ


ุงู„ู…ูˆุถูˆุน ุจูŠุชู… ุนู„ู‰ 3 ู…ุฑุงุญู„:

1- ุชุณุฌูŠู„ ุงู„ุฏุฎูˆู„: ู„ู…ุง ุงู„ู…ุณุชุฎุฏู… ุจูŠุฏุฎู„ ุจูŠุงู†ุงุชู‡ ุงู„ุตุญุŒ ุงู„ุณูŠุฑูุฑ ุจูŠุนู…ู„ู‡ authenticateุŒ ูˆุจุนุฏู‡ุง ุจูŠุตุฏุฑู„ู‡ Bearer Token (ู…ู…ูƒู† ูŠูƒูˆู† ู…ุดูุฑ ุฒูŠ JWT).

2- ุงุณุชุฎุฏุงู… ุงู„ู€ Token: ููŠ ูƒู„ request ุจุนุฏ ูƒุฏู‡ุŒ ุงู„ู€ Token ุจูŠุชุจุนุช ู…ุน ุงู„ู‡ูŠุฏุฑ (Header) ููŠ ุงู„ู€ Authorization ุจุงู„ุดูƒู„ ุฏู‡:

Authorization: Bearer YOUR_ACCESS_TOKEN


ูˆุฏู‡ ู…ุนู†ุงู‡ ุฅู† ุฃูŠ ุญุฏ ู…ุนุงู‡ ุงู„ู€ Token ูŠู‚ุฏุฑ ูŠุณุชุฎุฏู…ู‡ ู„ู„ูˆุตูˆู„ ู„ู„ู€ API

3- ุงู„ุชุญู‚ู‚ ู…ู† ุงู„ู€ Token: ุงู„ุณูŠุฑูุฑ ุจูŠุณุชู„ู… ุงู„ู€ Token ูˆูŠุดูˆู ุฅุฐุง ูƒุงู† ุตุงู„ุญ ูˆู„ุง ู„ุง (ู…ู…ูƒู† ุจู…ูุชุงุญ ุชุดููŠุฑ ู„ูˆ ู…ุดูุฑ)ุŒ ูˆู„ูˆ ูƒุงู† ุตุญูŠุญุŒ ุจูŠูƒู…ู„ ุชู†ููŠุฐ ุงู„ุทู„ุจุŒ ูˆู„ูˆ ูƒุงู† ู…ู†ุชู‡ูŠ ุฃูˆ ุบูŠุฑ ุตุญูŠุญุŒ ุจูŠุฑุฏ ุจุฎุทุฃ Unauthorized (401).

โ€”โ€”โ€”

๐Ÿ“Œ ุทุจ ู„ูŠู‡ ุงุณู…ู‡ Bearer TokenุŸ


ูƒู„ู…ุฉ Bearer ู…ุนู†ุงู‡ุง "ุญุงู…ู„"ุŒ ูˆุฏู‡ ู„ุฃู† ุฃูŠ ุญุฏ ู…ุนุงู‡ ุงู„ู€ Token ุฏู‡ ูŠู‚ุฏุฑ ูŠุณุชุฎุฏู…ู‡ ู…ู† ุบูŠุฑ ู…ุง ูŠุซุจุช ู‡ูˆูŠุชู‡ ุจุฃูŠ ุญุงุฌุฉ ุชุงู†ูŠุฉ. ุจู…ุนู†ู‰ ุฅู† ุงู„ู€ Token ู„ูˆ ุงุชุณุฑู‚ุŒ ุงู„ู„ูŠ ุณุฑู‚ู‡ ู‡ูŠู‚ุฏุฑ ูŠุณุชุฎุฏู…ู‡ ูƒุฃู†ู‡ ุฃู†ุช ุจุงู„ุถุจุท.

โ€”โ€”โ€”

๐Ÿ“Œ ุฅูŠู‡ ุงู„ู…ุดุงูƒู„ ุงู„ุฃู…ู†ูŠุฉ ุงู„ู„ูŠ ู…ู…ูƒู† ุชูˆุงุฌู‡ูƒ ู…ุน Bearer TokenุŸ


๐Ÿ’€ ุงู„ู€ Token Theft: ู„ูˆ ุญุฏ ู‚ุฏุฑ ูŠุญุตู„ ุนู„ู‰ ุงู„ู€ Token ุจุชุงุนูƒุŒ ูŠู‚ุฏุฑ ูŠุณุชุฎุฏู…ู‡ ูƒุฃู†ู‡ ุฃู†ุชุŒ ูˆู…ููŠุด extra verification ุฒูŠ ุงู„ู€ refresh tokens ุฃูˆ OAuth flows ุงู„ู„ูŠ ุจุชุชุฃูƒุฏ ุฅู† ุงู„ุดุฎุต ูุนู„ู‹ุง ู‡ูˆ ุงู„ู…ุณุชุฎุฏู… ุงู„ุญู‚ูŠู‚ูŠ.

โŒ›๏ธ ุงู„ู€ Expiration Issues: ู„ูˆ ุงู„ู€ Token ู…ุด ุจูŠุฎู„ุต ุจุณุฑุนุฉุŒ ูŠุจู‚ู‰ ุนู†ุฏูƒ ู…ุดูƒู„ุฉุŒ ู„ุฃู† ุฃูŠ ุญุฏ ูŠุณุฑู‚ู‡ ูŠู‚ุฏุฑ ูŠุณุชุฎุฏู…ู‡ ู„ู…ุฏุฉ ุทูˆูŠู„ุฉุŒ ุนุดุงู† ูƒุฏู‡ ุงู„ู€ Tokens ุจุชุจู‚ู‰ ู„ู‡ุง expiry timeุŒ ูˆุจุนุฏู‡ุง ู„ุงุฒู… ุชุนู…ู„ refresh.

๐Ÿ“ก ุงู„ู€ Man-in-the-Middle Attacks: ู„ูˆ ุงู„ู€ Token ุจูŠุชุจุนุช ู…ู† ุบูŠุฑ encryptionุŒ ู…ู…ูƒู† ุญุฏ ูŠุนุชุฑุถู‡ ูˆูŠุณุชุฎุฏู…ู‡ุŒ ุนุดุงู† ูƒุฏู‡ ู„ุงุฒู… ุชุชุฃูƒุฏ ุฅู† ูƒู„ ุญุงุฌุฉ ุจุชุชู… ุชุญุช HTTPS ู…ุด HTTP

๐Ÿ”„ ุงู„ู€ Replay Attacks: ู„ูˆ ู…ูƒู†ุด ููŠู‡ ุญู…ุงูŠุฉ ุฒูŠ timestampsุŒ ู…ู…ูƒู† ุญุฏ ูŠุณุชุฎุฏู… ุงู„ู€ Token ุงู„ู…ุณุฑูˆู‚ ุฃูƒุชุฑ ู…ู† ู…ุฑุฉ.

โ€”โ€”โ€”

๐Ÿ“Œ ุฅุฒุงูŠ ุชุฃู…ู† ุงู„ู€ Bearer TokenุŸ


โœ… ุงุณุชุฎุฏู… HTTPS: ุนุดุงู† ุชู…ู†ุน ุฃูŠ ุญุฏ ู…ู† ุงู„ุชุฌุณุณ ุนู„ู‰ ุงู„ู€ Token ุฃุซู†ุงุก ู†ู‚ู„ู‡.

โœ… ุญุฏุฏ ู…ุฏุฉ ุตู„ุงุญูŠุฉ ู‚ุตูŠุฑุฉ ู„ู„ู€ Token: ุฎู„ูŠ ุงู„ู€ Token ูŠุฎู„ุต ุจุนุฏ ูุชุฑุฉ ู‚ุตูŠุฑุฉ ุนุดุงู† ู„ูˆ ุงุชุณุฑู‚ุŒ ูŠุจู‚ู‰ ู…ู„ูˆุด ู„ุงุฒู…ุฉ.

โœ… ุงุณุชุฎุฏู… Refresh Tokens: ุนุดุงู† ุงู„ู…ุณุชุฎุฏู… ูŠู‚ุฏุฑ ูŠุญุตู„ ุนู„ู‰ Token ุฌุฏูŠุฏ ู„ู…ุง ุงู„ู€ Token ุงู„ู‚ุฏูŠู… ูŠุฎู„ุต.

โœ… ุฎุฒู† ุงู„ู€ Token ููŠ ู…ูƒุงู† ุขู…ู†: ููŠ ุงู„ู…ุชุตูุญุŒ ุจู„ุงุด ุชุฎุฒู†ู‡ ููŠ localStorage ู„ุฃู†ู‡ ู…ู…ูƒู† ูŠุชุณุฑู‚ ุจุณู‡ูˆู„ุฉุŒ ุงุณุชุฎุฏู… HttpOnly Cookies ู„ูˆ ุฃู…ูƒู†.

โœ… ุงุณุชุฎุฏู… Scopes: ู„ูˆ ุจุชุณุชุฎุฏู… APIุŒ ู…ุชุฏูŠุด ุงู„ู€ Token ุตู„ุงุญูŠุงุช ุฃูƒุชุฑ ู…ู† ุงู„ู…ุทู„ูˆุจุŒ ู…ุซู„ู‹ุง ู…ุชุฏูŠู„ูˆุด ุตู„ุงุญูŠุฉ ุฅู†ู‡ ูŠู…ุณุญ ุฏุงุชุง ู„ูˆ ู‡ูˆ ุจุณ ู‡ูŠู‚ุฑุฃ ุจูŠุงู†ุงุช.

โœ… ุธุจุท CORS ูƒูˆูŠุณ: ุนุดุงู† ุชู…ู†ุน ุฃูŠ ู…ุตุฏุฑ ู…ุด ู…ูˆุซูˆู‚ ู…ู† ุงุณุชุฎุฏุงู… ุงู„ู€ Token.

โ€”โ€”โ€”

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค11๐Ÿ‘2
ุจุฑู†ุงู…ุฌ ITIDA Gigs ู„ุชุฃู‡ูŠู„ ุงู„ุดุจุงุจ ู„ู„ุนู…ู„ ุงู„ุญุฑ

https://landing.eyouthlearning.com/index.php/digital-freelancing-placement-program
๐Ÿ’ก ุงู„ุญู„ ู‡ูˆ ุงู„ุชุทุจูŠู‚ ุงู„ุนู…ู„ูŠ


ููŠ ุงู„ู€ Front-EndุŒ ู…ู…ูƒู† ุชุจุฏุฃ ุจู…ุดุงุฑูŠุน ุจุณูŠุทุฉ ุฒูŠ ุตูุญุฉ ูˆูŠุจ ุดุฎุตูŠุฉ ุฃูˆ ุขู„ุฉ ุญุงุณุจุฉุŒ ูˆุจุนุฏูŠู† ุชุทูˆุฑ ู†ูุณูƒ ุจู…ุดุงุฑูŠุน ุฒูŠ ุชุทุจูŠู‚ ุฅุฏุงุฑุฉ ู…ู‡ุงู… ุฃูˆ ู…ูˆู‚ุน ุฅุฎุจุงุฑูŠ ุจูˆุงุฌู‡ุฉ ุงุญุชุฑุงููŠุฉ.

ุฃู…ุง ููŠ ุงู„ู€ Back-EndุŒ ุงุจุฏุฃ ุจู…ุดุงุฑูŠุน ุฒูŠ API ุจุณูŠุทุฉุŒ ูˆู…ุน ุงู„ูˆู‚ุช ุงุดุชุบู„ ุนู„ู‰ ุญุงุฌุงุช ุฒูŠ ู†ุธุงู… ุฅุฏุงุฑุฉ ู…ุณุชุฎุฏู…ูŠู† ุฃูˆ ุชุทุจูŠู‚ ุดุงุช ู…ุชูƒุงู…ู„.

ุงู„ู…ู‡ู… ุชูุถู„ ุชุทุจู‚ ุนู…ู„ูŠ ุนุดุงู† ุงู„ู…ู‡ุงุฑุงุช ุงู„ู„ูŠ ุจุชุชุนู„ู…ู‡ุง ุชุจู‚ู‰ ุซุงุจุชุฉุŒ ูˆูƒู„ ู…ุดุฑูˆุน ู‡ุชุนู…ู„ู‡ ู‡ูŠุฑูุน ู…ู† ู…ุณุชูˆุงูƒ ูˆุงุญุฏุฉ ูˆุงุญุฏุฉ ู„ุญุฏ ู…ุง ุชุจู‚ู‰ ู…ุญุชุฑู.

ุฏูŠ ู…ุฌู…ูˆุนุฉ ู…ุดุงุฑูŠุน ููŠ ู…ุฌุงู„ ุงู„ู€ Front-End ูˆู…ุฌุงู„ ุงู„ู€ Back-End ู‡ุชู†ู‚ู„ูƒ ู…ู† ุงู„ู…ุณุชูˆู‰ ุงู„ู…ุจุชุฏุฆ ู„ู„ู…ุณุชูˆู‰ ุงู„ุงุญุชุฑุงููŠ


โšก๏ธ ู…ุดุงุฑูŠุน ุงู„ู€ Front-End

https://roadmap.sh/frontend/projects

โšก๏ธ ู…ุดุงุฑูŠุน ุงู„ู€ Back-End

https://roadmap.sh/backend/projects
โค8๐Ÿ”ฅ2
ุงู„ูุฑู‚ ุจูŠู† ุงู„ู€ Monorepo ูˆุงู„ู€ Multirepo ๐Ÿ’ฏ
.
.
ุชุฎูŠู„ ุฃู†ูƒ ุดุบุงู„ ุนู„ู‰ ู…ุดุฑูˆุน ุถุฎู…ุŒ ุนู†ุฏูƒ ุฃูƒุชุฑ ู…ู† ูุฑูŠู‚ุŒ ูˆูƒู„ ูุฑูŠู‚ ุจูŠุดุชุบู„ ุนู„ู‰ ุฌุฒุก ู…ุฎุชู„ู. ูุฌุฃุฉุŒ ุชุจุฏุฃ ุงู„ู…ุดุงูƒู„ ุชุธู‡ุฑ: ูƒูˆุฏ ู…ูƒุฑุฑุŒ ุตุนูˆุจุฉ ููŠ ุงู„ุชุนุฏูŠู„ุงุชุŒ ุชุนุงุฑุถ ุจูŠู† ุงู„ูุฑู‚ุŒ ูˆุฃูˆู‚ุงุช ุถุงูŠุนุฉ ุนู„ู‰ ุงู„ู€ builds ูˆุงู„ู€ pipelines.

ุงู„ู…ุดูƒู„ุฉ ู‡ู†ุง ู…ู…ูƒู† ุชูƒูˆู† ููŠ ุงู„ุทุฑูŠู‚ุฉ ุงู„ู„ูŠ ุจุชู†ุธู… ุจู‡ุง ุงู„ูƒูˆุฏ ุจุชุงุนูƒ. ๐Ÿ’ก

ู‡ู†ุง ุชุจุฏุฃ ุชุณุฃู„ ู†ูุณูƒ: ุชุฎุชุงุฑ Monorepo ูˆู„ุง MultirepoุŸ

ูƒู„ ุทุฑูŠู‚ุฉ ู„ู‡ุง ู…ูŠุฒุงุชู‡ุง ูˆุนูŠูˆุจู‡ุงุŒ ูˆุงุฎุชูŠุงุฑูƒ ู…ู…ูƒู† ูŠุญุณู† ุดุบู„ูƒ ุจู†ุณุจุฉ ูƒุจูŠุฑุฉ ุฃูˆ ูŠุนู‚ุฏ ุญูŠุงุชูƒ ู„ูˆ ุงุฎุชุงุฑุช ุงู„ุบู„ุท.

ุชุนุงู„ ู†ูˆุถุญ ุงู„ูุฑู‚ ุจูŠู†ู‡ู… ูˆุงู…ุชู‰ ุชุฎุชุงุฑ ุงู„ุทุฑูŠู‚ุฉ ุงู„ู…ู†ุงุณุจุฉ...

โ€”โ€”โ€”

๐Ÿ“Œ ุฃูˆู„ู‹ุง: ูŠุนู†ูŠ ุฅูŠู‡ MonorepoุŸ

ุงู„ู€ Monorepo ุจุจุณุงุทุฉ ู‡ูŠ ุฅู†ูƒ ุชุญุท ูƒู„ ุงู„ูƒูˆุฏ ุงู„ุฎุงุต ุจุงู„ู…ุดุฑูˆุน ุจุชุงุนูƒุŒ ุจูƒู„ ุงู„ู€ components ุฃูˆ ุงู„ู€ modules ุงู„ู„ูŠ ููŠู‡ุŒ ุฏุงุฎู„ Repository ูˆุงุญุฏ.

ูŠุนู†ูŠ ุญุชู‰ ู„ูˆ ุนู†ุฏูƒ ุฃูƒุชุฑ ู…ู† ุฎุฏู…ุฉ (microservices) ุฃูˆ ุฃูƒุชุฑ ู…ู† ู…ูƒุชุจุฉ ุฃูˆ ุฃูƒุชุฑ ู…ู† ุชุทุจูŠู‚ ู…ุฑุชุจุทูŠู† ุจุจุนุถุŒ ูƒู„ู‡ ุจูŠูƒูˆู† ููŠ ู…ูƒุงู† ูˆุงุญุฏ.

โ€”โ€”โ€”

๐Ÿ“ ู…ู…ูŠุฒุงุช ุงู„ู€ Monorepo:

- ุณู‡ูˆู„ุฉ ุฅุฏุงุฑุฉ ุงู„ูƒูˆุฏ: ูƒู„ ุญุงุฌุฉ ููŠ ู…ูƒุงู† ูˆุงุญุฏุŒ ูู„ูˆ ุนุงูŠุฒ ุชุนู…ู„ ุชุบูŠูŠุฑุงุช ุนู„ู‰ ุฃูƒุชุฑ ู…ู† ุฌุฒุกุŒ ู‡ุชุจู‚ู‰ ุดุงูŠู ุงู„ุตูˆุฑุฉ ุงู„ูƒุจูŠุฑุฉ ุจุณู‡ูˆู„ุฉ.

- ุฅุนุงุฏุฉ ุงุณุชุฎุฏุงู… ุงู„ูƒูˆุฏ (Code Reusability): ู„ูˆ ููŠ ู…ูƒุชุจุฉ ุฃูˆ ุฌุฒุก ู…ุนูŠู† ู…ู† ุงู„ูƒูˆุฏ ู…ุญุชุงุฌ ุชุณุชุฎุฏู…ู‡ ููŠ ุฃูƒุชุฑ ู…ู† ู…ูˆุฏูŠูˆู„ุŒ ุชู‚ุฏุฑ ุชุนู…ู„ู‡ ุจุณู‡ูˆู„ุฉ ู…ู† ุบูŠุฑ duplication.

- ุชู†ุณูŠู‚ ุฃูุถู„ ุจูŠู† ุงู„ูุฑู‚: ูƒู„ ูุฑูŠู‚ ุดุงูŠู ุงู„ูƒูˆุฏ ุจุชุงุน ุจุงู‚ูŠ ุงู„ูุฑู‚ุŒ ูุฏู‡ ุจูŠุณู‡ู„ ุงู„ุชุนุงูˆู† ุจูŠู†ู‡ู… ูˆุจูŠู‚ู„ู„ ุชุนุงุฑุถ ุงู„ุชุนุฏูŠู„ุงุช (conflicts).

- ุชูƒุงู…ู„ ุฃูุถู„ ุจูŠู† ุงู„ุฃุฏูˆุงุช: ุฒูŠ ุงู„ู€ CI/CD (Continuous Integration/Continuous Deployment) ุงู„ู„ูŠ ุจูŠุดุชุบู„ ุจุณู‡ูˆู„ุฉ ุนู„ู‰ ู…ุดุฑูˆุน ูˆุงุญุฏ ุจุฏู„ ู…ุง ูŠุชู‚ุณู… ุนู„ู‰ ุฃูƒุชุฑ ู…ู† repository.

โ€”โ€”โ€”

๐Ÿ“ ุนูŠูˆุจ ุงู„ู€ Monorepo:

- ุงู„ุญุฌู… ุงู„ูƒุจูŠุฑ ู„ู„ู€ repo: ู…ุน ู…ุฑูˆุฑ ุงู„ูˆู‚ุช ูˆุนุฏุฏ ุงู„ู…ุณุงู‡ู…ูŠู† ุงู„ูƒุจูŠุฑุŒ ุญุฌู… ุงู„ู€ repo ุจูŠูƒุจุฑ ูˆุฏู‡ ู…ู…ูƒู† ูŠุจุทู‘ุฃ ุงู„ุนู…ู„ูŠุงุช ุฒูŠ cloning ุฃูˆ ุญุชู‰ ุงู„ู€ builds.

- ุงู„ุชุนู‚ูŠุฏ ููŠ ุฅุฏุงุฑุฉ ุงู„ุตู„ุงุญูŠุงุช: ุตุนุจ ุชู‚ูˆู„ ุฅู† ูู„ุงู† ูŠู‚ุฏุฑ ูŠุดุชุบู„ ุนู„ู‰ ุฌุฒุก ู…ุนูŠู† ุจุณ ู…ู† ุบูŠุฑ ู…ุง ูŠุดูˆู ุงู„ุจุงู‚ูŠ.

- ู…ุดุงูƒู„ ู…ุน ุงู„ู€ Tools: ู„ูˆ ู…ุด ุนู†ุฏูƒ ุฃุฏูˆุงุช ู‚ูˆูŠุฉ ู„ุฅุฏุงุฑุฉ ุงู„ู€ monorepoุŒ ู…ู…ูƒู† ุชูˆุงุฌู‡ ู…ุดุงูƒู„ ููŠ ุงู„ุชู†ุธูŠู… ูˆุนู…ู„ูŠุฉ ุงู„ู€ build.

โ€”โ€”โ€”

๐Ÿ“Œ ุซุงู†ูŠู‹ุง: ูŠุนู†ูŠ ุฅูŠู‡ MultirepoุŸ

ุนู„ู‰ ุงู„ุนูƒุณ ุชู…ุงู…ู‹ุงุŒ ุงู„ู€ Multirepo ู…ุนู†ุงู‡ุง ุฅู† ูƒู„ ุฌุฒุก ุฃูˆ ู…ูˆุฏูŠูˆู„ ู…ู† ุงู„ู…ุดุฑูˆุน ูŠูƒูˆู† ููŠ Repository ุฎุงุต ุจู‡. ูŠุนู†ูŠ ูƒู„ ู…ูˆุฏูŠูˆู„ ุจูŠุจู‚ู‰ ู…ุณุชู‚ู„ ุจุฐุงุชู‡ ูˆูƒุฃู†ู‡ ู…ุดุฑูˆุน ู„ูˆุญุฏู‡.

โ€”โ€”โ€”

๐Ÿ“ ู…ู…ูŠุฒุงุช ุงู„ู€ Multirepo:

- ูƒู„ ู…ูˆุฏูŠูˆู„ ู„ูŠู‡ ุญูŠุงุชู‡ ุงู„ุฎุงุตุฉุŒ ูˆุฏู‡ ุจูŠุฎู„ูŠ ุฅุฏุงุฑุฉ ูƒู„ ุฌุฒุก ู…ุณุชู‚ู„ุฉ ูˆุฃุณู‡ู„ ู„ุจุนุถ ุงู„ูุฑู‚.

- ุชู‚ุฏุฑ ุชุญุฏุฏ ู…ูŠู† ูŠุดุชุบู„ ุนู„ู‰ ุฅูŠู‡ ุจู†ุงุกู‹ ุนู„ู‰ ุงู„ู€ repo ุงู„ู„ูŠ ุนู†ุฏู‡ู… ุฃูƒุณุณ ุนู„ูŠู‡.

- ู„ูˆ ููŠู‡ ู…ูˆุฏูŠูˆู„ ุฃูˆ ุฎุฏู…ุฉ ู…ุด ู…ุฑุชุจุท ุจุดูƒู„ ู…ุจุงุดุฑุŒ ู…ุด ู…ุญุชุงุฌ ุชุจู†ูŠ ูƒู„ ุงู„ู…ุดุฑูˆุนุŒ ุจุณ ุชุจู†ูŠ ุงู„ุฌุฒุก ุงู„ู„ูŠ ู…ุญุชุงุฌู‡.

- ูƒู„ ุฌุฒุก ุจูŠูƒูˆู† ุตุบูŠุฑ ูˆู…ุณุชู‚ู„ุŒ ูุฏู‡ ุจูŠุฎู„ูŠ ุงู„ุนู…ู„ูŠุงุช ุฒูŠ cloning ุฃุณุฑุน ูˆุฃุณู‡ู„.

โ€”โ€”โ€”

๐Ÿ“ ุนูŠูˆุจ ุงู„ู€ Multirepo:

- ุชูƒุฑุงุฑ ุงู„ูƒูˆุฏ: ู„ูˆ ููŠู‡ ุฃูƒุชุฑ ู…ู† ู…ูˆุฏูŠูˆู„ ุจูŠุญุชุงุฌ ู†ูุณ ุงู„ูƒูˆุฏุŒ ู…ู…ูƒู† ุชุถุทุฑ ุชูƒุฑุฑู‡ ุฃูˆ ุชุญุท ู…ูƒุชุจุฉ ู…ู†ูุตู„ุฉ ู„ูŠู‡.

- ุชุนู‚ูŠุฏ ููŠ ุงู„ุชู†ุณูŠู‚ ุจูŠู† ุงู„ูุฑู‚: ุงู„ุชุนุงูˆู† ุจูŠู† ุงู„ูุฑู‚ ุจูŠุจู‚ู‰ ุฃุตุนุจุŒ ูˆุฎุตูˆุตู‹ุง ู„ู…ุง ูŠูƒูˆู† ููŠู‡ dependencies ูƒุชูŠุฑ ุจูŠู† ุงู„ู€ modules.

- ุชูƒุงู…ู„ ู…ุนู‚ุฏ ู„ู„ู€ CI/CD: ุนุดุงู† ูƒู„ ุฌุฒุก ููŠ Repository ู…ุฎุชู„ูุŒ ู‡ุชุญุชุงุฌ ุฅุนุฏุงุฏุงุช ุฃูƒุชุฑ ู„ู„ู€ pipelines ุนุดุงู† ูƒู„ ุญุงุฌุฉ ุชุดุชุบู„ ู…ุน ุจุนุถ.

- ุตุนูˆุจุฉ ููŠ ุฅุฏุงุฑุฉ ุงู„ุชุบูŠูŠุฑุงุช ุงู„ูƒุจูŠุฑุฉ: ู„ูˆ ุนู†ุฏูƒ ุชุบูŠูŠุฑ ุถุฎู… ุจูŠุฃุซุฑ ุนู„ู‰ ุฃูƒุชุฑ ู…ู† ู…ูˆุฏูŠูˆู„ุŒ ู‡ุชุญุชุงุฌ ุชุฏุฎู„ ุนู„ู‰ ูƒุฐุง repo ูˆุชุนุฏู„ ููŠ ูƒู„ ูˆุงุญุฏ ู„ูˆุญุฏู‡.

โ€”โ€”โ€”

๐Ÿ“Œ ุงู…ุชู‰ ุชุฎุชุงุฑ ู…ูŠู†ุŸ

โœ… ุงุฎุชุฑ Monorepo ู„ูˆ:

1- ู…ุดุฑูˆุนูƒ ุนุจุงุฑุฉ ุนู† ู…ุฌู…ูˆุนุฉ modules ู…ุฑุชุจุทุฉ ุจุจุนุถู‡ุง.

2- ุนู†ุฏูƒ ูุฑูŠู‚ ุตุบูŠุฑ ุฃูˆ ู…ุชูˆุณุท.

3- ุจุชุญุชุงุฌ ุชุนู…ู„ ุชุบูŠูŠุฑุงุช ุจุดูƒู„ ู…ุชูƒุฑุฑ ุนู„ู‰ ุฃูƒุชุฑ ู…ู† ู…ูˆุฏูŠูˆู„ ููŠ ู†ูุณ ุงู„ูˆู‚ุช.

4- ุงู„ุฃุฏูˆุงุช ุงู„ู„ูŠ ุจุชุณุชุฎุฏู…ู‡ุง ุจุชุฏุนู… ุฅุฏุงุฑุฉ monorepos ุจุดูƒู„ ูƒูˆูŠุณ.


โœ… ุงุฎุชุฑ Multirepo ู„ูˆ:

1- ู…ุดุฑูˆุนูƒ ูƒุจูŠุฑ ุฌุฏู‹ุง ูˆู…ุนู‚ุฏุŒ ูˆูƒู„ ุฌุฒุก ููŠู‡ ู…ุณุชู‚ู„ ุชู…ุงู…ู‹ุง.

2- ุจุชุญุชุงุฌ ุชุชุญูƒู… ููŠ ุงู„ุตู„ุงุญูŠุงุช ุนู„ู‰ ู…ุณุชูˆู‰ ูƒู„ ู…ูˆุฏูŠูˆู„.

3- ุนู†ุฏูƒ ูุฑู‚ ู…ุฎุชู„ูุฉ ูƒู„ ูุฑูŠู‚ ุดุบุงู„ ุนู„ู‰ ู…ูˆุฏูŠูˆู„ ุฎุงุต ุจู‡.

4- ุนุงูŠุฒ ุชุชุฌู†ุจ ุงู„ู…ุดุงูƒู„ ุงู„ู„ูŠ ุจุชุณุจุจู‡ุง ุฃุญุฌุงู… ุงู„ู€ repos ุงู„ูƒุจูŠุฑุฉ.

โ€”โ€”โ€”

ุงู„ู‚ุฑุงุฑ ููŠ ุงู„ุขุฎุฑ ุจูŠุฑุฌุน ู„ุทุจูŠุนุฉ ู…ุดุฑูˆุนูƒ ูˆุงุญุชูŠุงุฌุงุช ูุฑูŠู‚ูƒ. ู…ููŠุด ุทุฑูŠู‚ุฉ "ุตุญ" ูˆุทุฑูŠู‚ุฉ "ุบู„ุท"ุŒ ู„ูƒู† ููŠู‡ ุทุฑูŠู‚ุฉ ู…ู†ุงุณุจุฉ ุฃูƒุชุฑ ุญุณุจ ุธุฑูˆููƒ. ุฃู‡ู… ุญุงุฌุฉ ุฅู†ูƒ ุชูƒูˆู† ูุงู‡ู… ูƒู„ ุทุฑูŠู‚ุฉ ุจุชู‚ุฏู… ุฅูŠู‡ ูˆุนูŠูˆุจู‡ุง ุฅูŠู‡. ๐Ÿ’ก

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค9
Keys In SQL With Tables Well Explained ๐Ÿ’ฏ
โค3๐Ÿ”ฅ1