DevGuide ๐Ÿ‡ต๐Ÿ‡ธ
10.9K subscribers
2.51K photos
17 videos
127 files
3.52K 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
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
ุฏูˆุฑุฉ ู…ุฌุงู†ูŠุฉ ุจุนู†ูˆุงู†: Power BI 101

ุชู‡ุฏู ู‡ุฐู‡ ุงู„ุฏูˆุฑุฉ ุฅู„ู‰ ุงู„ุชุนุฑู ุนู„ู‰ ุฃุณุงุณูŠุงุช Power BIุŒ ุจุฏุกู‹ุง ู…ู† ุงุณุชูŠุฑุงุฏ ุงู„ุจูŠุงู†ุงุชุŒ ุฅู„ู‰ ุชู…ุซูŠู„ ุงู„ุจูŠุงู†ุงุช ูˆุฅู†ุดุงุก ุงู„ุชู‚ุงุฑูŠุฑ ูˆdashboard.

ุณุชุณุงุนุฏูƒ ุงู„ุฏูˆุฑุฉ ุนู„ู‰ ุงูƒุชุณุงุจ ุงู„ู…ู‡ุงุฑุงุช ุงู„ู„ุงุฒู…ุฉ ู„ุชู…ุซูŠู„ ุงู„ุจูŠุงู†ุงุช ูˆุฅู†ุดุงุก ุชู‚ุงุฑูŠุฑ ูุนู‘ุงู„ุฉ ุจุงุณุชุฎุฏุงู… Power BI.

https://satr.codes/course/OC6sfVMdl9/view
โค2
ุงู„ู€ MVC

ู†ู…ุท ุงู„ู€ MVCุŒ ุฃูˆ Model-View-ControllerุŒ ูŠุนุชุจุฑ ู…ู† ุฃุดู‡ุฑ ุงู„ุฃู†ู…ุงุท ุงู„ู…ุณุชุฎุฏู…ุฉ ููŠ ู‡ู†ุฏุณุฉ ุงู„ุจุฑู…ุฌูŠุงุชุŒ ูˆุจูŠุณุงุนุฏ ุนู„ู‰ ุชู†ุธูŠู… ุงู„ูƒูˆุฏ ุจุดูƒู„ ูŠุฎู„ูŠ ุนู…ู„ูŠุฉ ุชุทูˆูŠุฑ ูˆุตูŠุงู†ุฉ ุงู„ุจุฑุงู…ุฌ ุฃุจุณุท ูˆุฃุณู‡ู„.

โ€”โ€”โ€”

ุทูŠุจ ูŠุนู†ูŠ ุฅูŠู‡ MVCุŸ ๐Ÿค”

ุงู„ู€ MVC ุจูŠุชูƒูˆู† ู…ู† 3 ู…ูƒูˆู†ุงุช ุฃุณุงุณูŠุฉ:

โœ… ุงู„ู€ Model: ุงู„ุฌุฒุก ุฏู‡ ู‡ูˆ ุงู„ู„ูŠ ุจูŠุชุนุงู…ู„ ู…ุน ุงู„ุจูŠุงู†ุงุช. ุงู„ู€ Model ุจูŠู‚ูˆู… ุจุชุฎุฒูŠู† ุงู„ุจูŠุงู†ุงุชุŒ ู…ุนุงู„ุฌุฉ ุงู„ุจูŠุงู†ุงุชุŒ ูˆุงู„ุชูˆุงุตู„ ู…ุน ู‚ูˆุงุนุฏ ุงู„ุจูŠุงู†ุงุช.

ู…ู…ูƒู† ุชุนุชุจุฑู‡ ุฒูŠ ุงู„ู…ุณุฆูˆู„ ุนู† "ุงู„ู…ู†ุทู‚" ุฃูˆ "ุงู„ุดุบู„" ุงู„ู„ูŠ ุจูŠุญุตู„ ููŠ ุงู„ุชุทุจูŠู‚. ู…ุซู„ู‹ุง ู„ูˆ ุนู†ุฏูƒ ุชุทุจูŠู‚ ุจูŠุนุฑุถ ู‚ุงุฆู…ุฉ ุจุงู„ู…ู†ุชุฌุงุชุŒ ูุงู„ู€ Model ู‡ูˆ ุงู„ู„ูŠ ู‡ูŠุฌูŠุจ ุงู„ุจูŠุงู†ุงุช ุฏูŠ ู…ู† ู‚ุงุนุฏุฉ ุงู„ุจูŠุงู†ุงุช ูˆูŠุฌู‡ุฒู‡ุง.

โœ… ุงู„ู€ View: ูˆุฏู‡ ุงู„ู…ุณุฆูˆู„ ุนู† ูƒู„ ุงู„ู„ูŠ ุงู„ู…ุณุชุฎุฏู… ุจูŠุดูˆูู‡ ู‚ุฏุงู…ู‡ ุนู„ู‰ ุงู„ุดุงุดุฉ. ู‡ูˆ ุงู„ู…ุณุฆูˆู„ ุนู† ุนุฑุถ ุงู„ุจูŠุงู†ุงุช ุงู„ู„ูŠ ุฌู‡ุฒู‡ุง ุงู„ู€ Model.

ูŠุนู†ูŠ ู…ุซู„ู‹ุง ู„ูˆ ุนู†ุฏูƒ ุตูุญุฉ ุจุชุนุฑุถ ุงู„ู…ู†ุชุฌุงุชุŒ ูุงู„ู€ View ู‡ูˆ ุงู„ู„ูŠ ุจูŠุญุฏุฏ ุฅุฒุงูŠ ุงู„ู…ู†ุชุฌุงุช ู‡ุชุธู‡ุฑ (ุงู„ุฃู„ูˆุงู†ุŒ ุงู„ุดูƒู„ุŒ ุงู„ุชุฑุชูŠุจ... ุฅู„ุฎ).

โœ… ุงู„ู€ Controller: ูˆุฏู‡ ุงู„ูˆุณูŠุท ุงู„ู„ูŠ ุจูŠุนู…ู„ ุงู„ุชู†ุณูŠู‚ ุจูŠู† ุงู„ู€ Model ูˆุงู„ู€ View.

ุจู…ุนู†ู‰ ุชุงู†ูŠุŒ ู‡ูˆ ุงู„ู„ูŠ ุจูŠุณุชู‚ุจู„ ุทู„ุจุงุช ุงู„ู…ุณุชุฎุฏู…ูŠู†ุŒ ุฒูŠ ู„ู…ุง ุชุถุบุท ุนู„ู‰ ุฒุฑุงุฑ ุฃูˆ ุชุฏุฎู„ ุจูŠุงู†ุงุช ููŠ ููˆุฑู…ุŒ ูˆุจุนุฏูŠู† ูŠูˆุฌู‡ ุงู„ุทู„ุจ ู„ู„ู€ Model ุนู„ุดุงู† ูŠุนุงู„ุฌ ุงู„ุจูŠุงู†ุงุชุŒ ูˆููŠ ุงู„ุขุฎุฑ ูŠุฑุฌุน ุงู„ุจูŠุงู†ุงุช ุฏูŠ ู„ู„ู€ View ุนู„ุดุงู† ูŠุนุฑุถู‡ุง.

โ€”โ€”โ€”

ู…ุซุงู„ ุจุณูŠุท ๐Ÿ› 

ุชุฎูŠู„ ุฅู†ูƒ ูุงุชุญ ู…ูˆู‚ุน ู„ู„ุชุณูˆู‚ ูˆุนุงูŠุฒ ุชุดูˆู ู‚ุงุฆู…ุฉ ุงู„ู…ู†ุชุฌุงุช:

โšก๏ธ ุฃูˆู„ ุญุงุฌุฉ ุจุชุถุบุท ุนู„ู‰ ุฒุฑุงุฑ "ุนุฑุถ ุงู„ู…ู†ุชุฌุงุช" โ€“ ู‡ู†ุง ุงู„ู€ Controller ุจูŠุณุชู‚ุจู„ ุงู„ุทู„ุจ ุฏู‡.

โšก๏ธ ุจุนุฏ ูƒุฏู‡ุŒ ุงู„ู€ Controller ุจูŠุฑูˆุญ ู„ู„ู€ Model ุนู„ุดุงู† ูŠุฌูŠุจ ุงู„ุจูŠุงู†ุงุช ู…ู† ู‚ุงุนุฏุฉ ุงู„ุจูŠุงู†ุงุช (ู‚ุงุฆู…ุฉ ุงู„ู…ู†ุชุฌุงุช).

โšก๏ธ ุงู„ู€ Model ุจูŠุฏูˆุฑ ููŠ ู‚ุงุนุฏุฉ ุงู„ุจูŠุงู†ุงุช ูˆูŠุฌูŠุจ ุงู„ู…ู†ุชุฌุงุช.

โšก๏ธ ุจุนุฏ ู…ุง ุงู„ู€ Model ูŠุฌู‡ุฒ ุงู„ุจูŠุงู†ุงุชุŒ ุจูŠุฑุฌู‘ุนู‡ุง ู„ู„ู€ Controller ุงู„ู„ูŠ ุจุฏูˆุฑู‡ ูŠุจุนุชู‡ุง ู„ู„ู€ View.

โšก๏ธ ูˆุฃุฎูŠุฑู‹ุงุŒ ุงู„ู€ View ุจูŠุนุฑุถ ุงู„ู…ู†ุชุฌุงุช ุนู„ู‰ ุงู„ุดุงุดุฉ ุจุงู„ุดูƒู„ ุงู„ู…ู†ุงุณุจ ุงู„ู„ูŠ ุงู„ู…ุณุชุฎุฏู… ูŠู‚ุฏุฑ ูŠุดูˆูู‡ ูˆูŠุชูุงุนู„ ู…ุนุงู‡.

โ€”โ€”โ€”

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

๐Ÿ“Œ ุชู†ุธูŠู… ุงู„ูƒูˆุฏ: ุจูŠุฎู„ูŠ ุงู„ูƒูˆุฏ ู…ู†ุธู… ุฃูƒุชุฑุŒ ุจุญูŠุซ ุชู‚ุฏุฑ ุชูุตู„ ู…ู†ุทู‚ ุงู„ุนู…ู„ (ุงู„ู€ Model) ุนู† ุงู„ุนุฑุถ (ุงู„ู€ View) ูˆุนู† ุงู„ุชุญูƒู… (ุงู„ู€ Controller)ุŒ ูˆุจุงู„ุชุงู„ูŠ ู„ูˆ ุนุงูŠุฒ ุชุนุฏู„ ููŠ ุฌุฒุก ู…ุนูŠู†ุŒ ุจุชุนุฏู„ ุนู„ูŠู‡ ู…ู† ุบูŠุฑ ู…ุง ุชุฃุซุฑ ุนู„ู‰ ุงู„ุฃุฌุฒุงุก ุงู„ุชุงู†ูŠุฉ.

๐Ÿ“Œ ุณู‡ูˆู„ุฉ ุงู„ุชุทูˆูŠุฑ ูˆุงู„ุตูŠุงู†ุฉ: ูƒู„ ู…ูƒูˆู† ููŠ ุงู„ู€ MVC ุจูŠุดุชุบู„ ุจุดูƒู„ ู…ุณุชู‚ู„ุŒ ูู„ูˆ ููŠ ู…ุดูƒู„ุฉ ููŠ ุงู„ุนุฑุถ (ุงู„ู€ View) ู…ุด ู„ุงุฒู… ุชู„ู…ุณ ุงู„ูƒูˆุฏ ุงู„ุฎุงุต ุจุงู„ุจูŠุงู†ุงุช (ุงู„ู€ Model) ุฃูˆ ุงู„ุชุญูƒู… (ุงู„ู€ Controller).

๐Ÿ“Œ ุฅุนุงุฏุฉ ุงุณุชุฎุฏุงู… ุงู„ูƒูˆุฏ: ุจู…ุง ุฅู† ุงู„ูƒูˆุฏ ู…ุชู‚ุณู… ูˆู…ู†ุธู…ุŒ ู…ู…ูƒู† ุชุนูŠุฏ ุงุณุชุฎุฏุงู… ุฃุฌุฒุงุก ู…ุนูŠู†ุฉ ู…ู†ู‡ ููŠ ู…ุดุงุฑูŠุน ุชุงู†ูŠุฉ.

โ€”โ€”โ€”

ู†ู…ุท ุงู„ู€ MVC ู‡ูŠุณู‡ู„ ุนู„ูŠูƒ ุงู„ุฏู†ูŠุง ุฎุตูˆุตู‹ุง ู„ูˆ ุดุบุงู„ ุนู„ู‰ ู…ุดุงุฑูŠุน ูƒุจูŠุฑุฉ ูˆู…ุนู‚ุฏุฉ ู„ุฃู†ู‡ ุจูŠูุตู„ ุจุดูƒู„ ูˆุงุถุญ ุจูŠู† ุงู„ุฃุฏูˆุงุฑ ุงู„ู…ุฎุชู„ูุฉ ู„ูƒู„ ู…ูƒูˆู† ููŠ ุงู„ุชุทุจูŠู‚.

ุฏู‡ ู‡ูŠูˆูุฑ ุนู„ูŠูƒ ูˆู‚ุช ูˆู…ุฌู‡ูˆุฏ ูˆู‡ุชู‚ุฏุฑ ุชุนู…ู„ ุชุนุฏูŠู„ ููŠ ุงู„ุชุทุจูŠู‚ ุจุชุงุนูƒ ุจูƒู„ ุณู‡ูˆู„ุฉ.

ุจุงู„ุชูˆููŠู‚ ูŠุง ุจุทู„ ๐Ÿ’ช๐Ÿป
โค9
ุงู„ูุฑู‚ ุจูŠู† AOT Compiler ูˆ JIT Compiler ููŠ Angular ๐Ÿ’ก
.
.
ุทุจุนู‹ุง ุฃู†ุช ุนุงุฑู ุฅู† ุงู„ู…ุชุตูุญ ู…ุจูŠูู‡ู…ุด ุบูŠุฑ ู„ุบุฉ ูˆุงุญุฏุฉ ููŠ ุงู„ุขุฎุฑุŒ ูˆู‡ูŠ ุงู„ู€ JavaScript. ูŠุนู†ูŠ ู…ู‡ู…ุง ูƒุชุจุช ูƒูˆุฏ ุจู„ุบุฉ ุฒูŠ TypeScript ุฃูˆ ุญุชู‰ HTML ูˆCSSุŒ ู„ุงุฒู… ููŠ ุงู„ู†ู‡ุงูŠุฉ ุงู„ูƒู„ุงู… ุฏู‡ ูƒู„ู‡ ูŠุชุญูˆู„ ู„ู€ JavaScript ุนุดุงู† ุงู„ู…ุชุตูุญ ูŠู†ูุฐู‡ ูˆูŠุทู„ุน ุงู„ู…ูˆู‚ุน ุนู„ู‰ ุงู„ุดุงุดุฉ.

ูˆุฏู‡ ุจูŠุญุตู„ ุนู† ุทุฑูŠู‚ ุญุงุฌุฉ ุงุณู…ู‡ุง ุงู„ู€ Compiler (ุฃูˆ ุงู„ู€ Transpiler ููŠ ุจุนุถ ุงู„ุญุงู„ุงุช ุฒูŠ TypeScript). ูˆู„ูƒู† ููŠ AngularุŒ ุงู„ู€ compilation ุฏู‡ ู…ู…ูƒู† ูŠุญุตู„ ุจุทุฑูŠู‚ุชูŠู† ู…ุฎุชู„ูุชูŠู†ุŒ ูˆูƒู„ ุทุฑูŠู‚ุฉ ู„ู‡ุง ู…ู…ูŠุฒุงุช ูˆุนูŠูˆุจ.

โ€”โ€”โ€”

https://www.linkedin.com/posts/dev-alisamir_angular-devabrguide-typescript-activity-7305272573439713280-pq-Q
โค3
ุงู„ูุฑู‚ ุจูŠู† Dependency Injection ูˆ Inversion of Control ๐Ÿ’ก

ู„ู…ุง ุชุชุนู…ู‚ ุดูˆูŠุฉ ููŠ ู…ุฌุงู„ ุงู„ุณูˆูุชูˆูŠุฑ ู‡ุชุณู…ุน ุนู† ู…ุตุทู„ุญุงุช ุฒูŠ Dependency Injection ูˆ Inversion of ControlุŒ ูˆููŠู‡ ู†ุงุณ ุจุชุชู„ุฎุจุท ุจูŠู†ู‡ู… ูˆุจุชููƒุฑ ุฅู†ู‡ู… ุญุงุฌุฉ ูˆุงุญุฏุฉ. ุฎู„ูŠู†ุง ู†ูˆุถุญ ุงู„ูุฑู‚ ุจุทุฑูŠู‚ุฉ ุจุณูŠุทุฉ ุชูู‡ู…ูƒ ุงู„ููƒุฑุฉ ูƒูˆูŠุณ...

โ€”โ€”โ€”

๐Ÿ“ ุฅูŠู‡ ู‡ูˆ Inversion of Control (IoC)ุŸ

ุฎู„ูŠู†ุง ู†ุจุฏุฃ ุจู€ Inversion of Control ุฃูˆ ุฒูŠ ู…ุง ุจู†ุฎุชุตุฑู‡ุง IoC. ุงู„ู…ูู‡ูˆู… ุฏู‡ ุจุจุณุงุทุฉ ุจูŠู‚ูˆู„ ุฅู† ุจุฏู„ ู…ุง ุงู„ูƒูˆุฏ ุจุชุงุนูƒ ู‡ูˆ ุงู„ู„ูŠ ูŠุชุญูƒู… ููŠ ูƒู„ ุญุงุฌุฉ ุจู†ูุณู‡ (ูŠุนู†ูŠ ู‡ูˆ ุงู„ู„ูŠ ุจูŠุนู…ู„ ุงู„ูƒุงุฆู†ุงุช (Objects) ุงู„ู„ูŠ ู‡ูŠุดุชุบู„ ุจูŠู‡ุง ูˆูŠุนุชู…ุฏ ุนู„ูŠู‡ุง)ุŒ ุจูŠูƒูˆู† ููŠู‡ ุฌู‡ุฉ ุชุงู†ูŠุฉ ู‡ูŠ ุงู„ู„ูŠ ุจุชุนู…ู„ ุฏู‡ ูˆุชุฏูŠุฑ ุงู„ู…ูˆุถูˆุน.

ูŠุนู†ูŠ ุงู„ูƒูˆุฏ ุจุชุงุนูƒ ู…ุด ุจูŠู‡ุชู… ุจุฃู†ู‡ "ูŠู†ุดุฆ" ุงู„ู€ dependencies (ุงู„ูƒุงุฆู†ุงุช ุงู„ู„ูŠ ุจูŠุนุชู…ุฏ ุนู„ูŠู‡ุง)ุŒ ุจู„ ุจูŠุณุชู‚ุจู„ู‡ุง ุฌุงู‡ุฒุฉ.

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

โ€”โ€”โ€”

๐Ÿ“ ุฅูŠู‡ ุญูƒุงูŠุฉ Dependency InjectionุŸ

ู‡ู†ุง ุจู‚ู‰ ูŠูŠุฌูŠ ุฏูˆุฑ ุงู„ู€ Dependency Injection. ุฏู‡ ุจุจุณุงุทุฉ ุฃุณู„ูˆุจ ุฃูˆ ุทุฑูŠู‚ุฉ ู„ุชุทุจูŠู‚ ู…ูู‡ูˆู… ุงู„ู€ Inversion of Control.

ุจุฏู„ ู…ุง ุงู„ูƒูˆุฏ ุจุชุงุนูƒ ู‡ูˆ ุงู„ู„ูŠ ูŠู‚ูˆู„ "ุฃู†ุง ู…ุญุชุงุฌ ุงู„ูƒุงุฆู† ุฏู‡ ุฃูˆ ุงู„ู…ูƒูˆู† ุฏู‡ ุนุดุงู† ุฃุดุชุบู„"ุŒ ุญุงุฌุฉ ุชุงู†ูŠุฉ (ุฒูŠ ุงู„ู€ framework ุฃูˆ ุงู„ู€ container) ุจุชูƒูˆู† ู…ุณุคูˆู„ุฉ ุนู† ุฅู†ู‡ุง "ุชุถุฎ" ุงู„ูƒุงุฆู†ุงุช ุฏูŠ ู„ูƒ ููŠ ุงู„ูˆู‚ุช ุงู„ู…ู†ุงุณุจ.

โ€”โ€”โ€”

๐Ÿ“Œ ู…ุซุงู„ ูŠูˆุถุญ ุงู„ูุฑู‚:

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

ู„ูƒู† ู„ูˆ ููŠ ู†ุธุงู… ุฐูƒูŠ ููŠ ุงู„ุนุฑุจูŠุฉ ู‡ูˆ ุงู„ู„ูŠ ุจูŠุชุญูƒู… ูˆูŠูˆุตู„ ู„ู‡ุง ุงู„ุจู†ุฒูŠู† ู…ู† ุบูŠุฑ ู…ุง ุฃู†ุช ุชุชุฏุฎู„ุŒ ูŠุจู‚ู‰ ุฏู‡ Inversion of ControlุŒ ู„ุฃู†ูƒ ุณุจุช ุงู„ุณูŠุทุฑุฉ ู„ู„ู†ุธุงู… ุฅู†ู‡ ูŠุฏูŠุฑ ุงู„ู…ูˆุถูˆุน.

ุฃู…ุง Dependency InjectionุŒ ูู‡ูˆ ุงู„ุขู„ูŠุฉ ุงู„ู„ูŠ ุจูŠุชู… ุจูŠู‡ุง ุชูˆุตูŠู„ ุงู„ุจู†ุฒูŠู† ู„ู„ุนุฑุจูŠุฉ. ูŠุนู†ูŠ ู‡ูŠ ุฏูŠ ุงู„ุทุฑูŠู‚ุฉ ุงู„ู„ูŠ ุงู„ุจู†ุฒูŠู† ุจูŠูˆุตู„ ุจูŠู‡ุง ู„ุนุฑุจูŠุชูƒ ุนุดุงู† ุชู…ุดูŠ.

โ€”โ€”โ€”

๐Ÿ“Œ ุทุจ ู„ูŠู‡ ุจู†ู‡ุชู… ุจุงู„ุญุงุฌุงุช ุฏูŠ ููŠ ุงู„ุจุฑู…ุฌุฉุŸ

ุงู„ููƒุฑุฉ ุจุจุณุงุทุฉ ุฅู† ุงู„ุทุฑูŠู‚ุฉ ุฏูŠ ุจุชุฎู„ูŠู†ุง ู†ูƒุชุจ ูƒูˆุฏ ู…ุฑู† ูˆุณู‡ู„ ุงู„ุชุทูˆูŠุฑ. ู„ูˆ ูƒู„ ูƒุงุฆู† ููŠ ุงู„ูƒูˆุฏ ุจุชุงุนูƒ ุจูŠุนุชู…ุฏ ุนู„ู‰ ูƒุงุฆู†ุงุช ุชุงู†ูŠุฉ ูˆุจูŠุนู…ู„ู‡ุง ุจู†ูุณู‡ุŒ ุฏู‡ ู‡ูŠุฎู„ูŠ ุงู„ูƒูˆุฏ ู…ุนู‚ุฏ ูˆุตุนุจ ุชุฎุชุจุฑู‡ ุฃูˆ ุชุนุฏู„ ุนู„ูŠู‡.

ู„ูƒู† ู„ู…ุง ุชุฎู„ูŠ Dependency Injection ู…ุณุคูˆู„ ุนู† ุชูˆุตูŠู„ ุงู„ู€ dependenciesุŒ ู‡ุชู‚ุฏุฑ ุชุนุฏู„ ุนู„ู‰ ุงู„ูƒูˆุฏ ุฃูˆ ุชุณุชุจุฏู„ ุฃูŠ ุฌุฒุก ุจุณู‡ูˆู„ุฉ ู…ู† ุบูŠุฑ ู…ุง ุชุจู‚ู‰ ู…ุญุชุงุฌ ุชุบูŠูŠุฑุงุช ูƒุจูŠุฑุฉ.

โ€”โ€”โ€”

ุงู„ุฎู€ู„ุงุตู€ุฉ โœ…


ุงู„ู€ Inversion of Control: ู‡ูˆ ุงู„ู…ูู‡ูˆู… ุงู„ู„ูŠ ุจูŠู‚ูˆู„ ุฅู†ูƒ ุชุณูŠุจ ุงู„ุชุญูƒู… ููŠ ุงู„ู€ dependencies ู„ุฌู‡ุฉ ุฎุงุฑุฌูŠุฉ.

ุงู„ู€ Dependency Injection: ู‡ูˆ ุทุฑูŠู‚ุฉ ู„ุชุทุจูŠู‚ ุงู„ู…ูู‡ูˆู… ุฏู‡ ุนู† ุทุฑูŠู‚ ุชูˆุตูŠู„ ุงู„ู€ dependencies ู„ู„ูƒูˆุฏ ุจุชุงุนูƒ ุจุดูƒู„ ุฃูˆุชูˆู…ุงุชูŠูƒูŠ.

ุจุงู„ุชุงู„ูŠุŒ IoC ู‡ูˆ ุงู„ููƒุฑุฉ ุงู„ูƒุจูŠุฑุฉ ุงู„ู„ูŠ ุจุชุญูƒู… ุงู„ู…ูˆุถูˆุนุŒ ูˆDependency Injection ู‡ูˆ ุงู„ุฃุฏุงุฉ ุงู„ู„ูŠ ุจุชุทุจู‚ ุงู„ููƒุฑุฉ ุฏูŠ.

ุจุงู„ุชูˆููŠู‚ ูŠุง ุจุทู„ โšก๏ธ
โค7๐Ÿ‘4