11.1K subscribers
3.12K photos
19 videos
138 files
3.66K links
Level up daily with insider dev hacks, smart career tips, and real talk! ๐Ÿš€

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

๐Ÿ“ To advertise on the channel: https://telega.io/c/the_developer_guide
Download Telegram
Optimizing Streams in JavaScript ๐Ÿš€
โค6
ุฏุฑุฏุดุฉ ุณุฑูŠุนุฉ ุนู† ู…ูู‡ูˆู… ุงู„ู€ ACID ููŠ ุงู„ู€ Database โšก๏ธ
.
.
ุชุฎูŠู„ ุฅู†ูƒ ุดุบุงู„ ุนู„ู‰ system ุถุฎู… ุฒูŠ ุชุทุจูŠู‚ ุจู†ูƒูŠ ุฃูˆ ู…ูˆู‚ุน ุจูŠุน ุฃูˆู†ู„ุงูŠู†โ€ฆ
ููŠ ุงู„ู„ุญุธุฉ ุงู„ู„ูŠ ุงู„ู…ุณุชุฎุฏู… ุจูŠุญูˆู‘ู„ ููŠู‡ุง ูู„ูˆุณ ุฃูˆ ุจูŠุฃูƒุฏ ุนู…ู„ูŠุฉ ุดุฑุงุกุŒ ู„ุงุฒู… ุชูƒูˆู† ู…ุชุฃูƒุฏ ุฅู† ุงู„ุจูŠุงู†ุงุช ุฏูŠ ู…ุญููˆุธุฉ ุตุญุŒ ูˆู…ููŠุด ุฃูŠ ุงุญุชู…ุงู„ ูŠุญุตู„ ููŠู‡ุง ุฎู„ู„ ุฃูˆ ุชุถุงุฑุจุŒ ุญุชู‰ ู„ูˆ ุงู„ุณูŠุฑูุฑ ูˆู‚ุน ุฃูˆ ุงู„ูƒู‡ุฑุจุงุก ู‚ุทุนุช. โš ๏ธ

ูˆู‡ู†ุง ูŠูŠุฌูŠ ุฏูˆุฑ ุงู„ู€ ACID ูˆู‡ูˆ ุฏู‡ ุงู„ุนู…ูˆุฏ ุงู„ูู‚ุฑูŠ ุงู„ู„ูŠ ุจูŠุฎู„ูŠ ุงู„ู€ Database ุชูƒูˆู† ุซุงุจุชุฉุŒ ู…ูˆุซูˆู‚ุฉุŒ ูˆู…ุชูˆู‚ุนุฉ ุงู„ุณู„ูˆูƒ ููŠ ูƒู„ ุงู„ุญุงู„ุงุชุŒ ุณูˆุงุก ูƒุงู† ุนู†ุฏูƒ ุนู…ู„ูŠุฉ ูˆุงุญุฏุฉ ุจุณูŠุทุฉ ุฃูˆ ุขู„ุงู ุงู„ู€ transactions ููŠ ู†ูุณ ุงู„ุซุงู†ูŠุฉ.

ุงู„ู€ ACID ุจูŠุญุท ุฃุฑุจุน ู‚ูˆุงุนุฏ ุฃุณุงุณูŠุฉ ุจุชุฎู„ูŠ ุฃูŠ Database system ูŠุนุฑู ูŠุชุตุฑู ูˆู‚ุช ุงู„ู…ุดุงูƒู„ ูˆูŠุญุงูุธ ุนู„ู‰ ุงู„ุจูŠุงู†ุงุช ู…ู† ุบูŠุฑ ู…ุง ูŠุญุตู„ chaos ุฃูˆ data corruption.

โ€”โ€”โ€”

๐Ÿ“Œ ุฃูˆู„ู‹ุง: Atomicity


ูŠุนู†ูŠ ู„ูˆ ุนู†ุฏูƒ transaction ุจุชู†ู‚ู„ ูู„ูˆุณ ู…ู† ุญุณุงุจ ู„ุญุณุงุจ:
- ุชุณุญุจ 1000 ุฌู†ูŠู‡ ู…ู† ุญุณุงุจ A
- ูˆุชุถูŠู 1000 ู„ุญุณุงุจ B

ู„ูˆ ุฃูˆู„ ุฎุทูˆุฉ ู†ุฌุญุช ูˆุงู„ุชุงู†ูŠุฉ ูุดู„ุช ู„ุฃูŠ ุณุจุจ (ู…ุซู„ู‹ุง ุงู„ุณูŠุฑูุฑ ูˆู‚ุน)ุŒ ุงู„ู…ูุฑูˆุถ ุงู„ู€ Database ุชุฑุฌุน ูƒู„ ุญุงุฌุฉ ุฒูŠ ุงู„ุฃูˆู„ุŒ ูƒุฃู† ุงู„ุนู…ู„ูŠุฉ ู…ุญุตู„ุชุด.

โ€”โ€”โ€”

๐Ÿ“Œ ุซุงู†ูŠู‹ุง: Consistency


ุงู„ู€ Consistency ู…ุนู†ุงู‡ุง ุฅู† ุงู„ู€ Database ุชูุถู„ ุฏุงูŠู…ู‹ุง ููŠ state ุตุญูŠุญุฉ ูˆู…ุธุจูˆุทุฉ.
ูŠุนู†ูŠ ูƒู„ ุงู„ู‚ูˆุงุนุฏ (constraints, rules, triggers) ุงู„ู„ูŠ ุฃู†ุช ู…ุญุฏุฏู‡ุง ู„ุงุฒู… ุชูุถู„ ู…ุชุทุจู‚ุฉ ุจุนุฏ ุฃูŠ ุนู…ู„ูŠุฉ.

ู…ุซู„ู‹ุง: ู„ูˆ ุนู†ุฏูƒ rule ุจูŠู‚ูˆู„ ุฅู† ุงู„ุฑุตูŠุฏ ู…ูŠู†ูุนุด ูŠูƒูˆู† ุจุงู„ุณุงู„ุจุŒ ูู€ ุจุนุฏ ุฃูŠ transaction ู„ุงุฒู… ุงู„ู€ DB ุชูุถู„ ู…ุญุงูุธุฉ ุนู„ู‰ ุงู„ู‚ุงุนุฏุฉ ุฏูŠ.
ู„ูˆ ุญุตู„ violation ู„ู„ู‚ูˆุงุนุฏ ุฏูŠุŒ ุงู„ุนู…ู„ูŠุฉ ูƒู„ู‡ุง ุชุชู„ุบูŠ.

โ€”โ€”โ€”

ุซุงู„ุซู‹ุง: Isolation


ุชุฎูŠู„ ู…ุนุงูŠุง ูƒุฐุง transaction ุดุบุงู„ูŠู† ููŠ ู†ูุณ ุงู„ูˆู‚ุช...
ูˆุงุญุฏ ุจูŠุถูŠู ุจูŠุงู†ุงุชุŒ ูˆุงู„ุชุงู†ูŠ ุจูŠุนุฏู‘ู„ุŒ ูˆุงู„ุชุงู„ุช ุจูŠู‚ุฑุฃ.
ู„ูˆ ู…ููŠุด IsolationุŒ ุงู„ุฏู†ูŠุง ู‡ุชุจู‚ู‰ ููˆุถู‰ุŒ ูˆูƒู„ transaction ู‡ูŠุดูˆู ุงู„ู€ data ูˆู‡ูŠ ู„ุณู‡ ุจุชุชุบูŠุฑ!

ู„ูƒู† ู…ุน ูˆุฌูˆุฏ ุงู„ู€ IsolationุŒ ูƒู„ transaction ุจุชุชุนุงู…ู„ ูƒุฃู†ู‡ุง ุงู„ุนู…ู„ูŠุฉ ุงู„ูˆุญูŠุฏุฉ ุงู„ู„ูŠ ุจุชุชู†ูุฐ.
ูŠุนู†ูŠ ุญุชู‰ ู„ูˆ ูƒุฐุง transaction ุดุบุงู„ูŠู† ููŠ ู†ูุณ ุงู„ู„ุญุธุฉุŒ ุงู„ู†ุชุงุฆุฌ ุงู„ู„ูŠ ุจูŠุดูˆููˆู‡ุง ู…ุถู…ูˆู†ุฉ ูˆู…ููŠู‡ุงุด ุชุฏุงุฎู„ ุฃูˆ corruption.

ูˆุทุจุนู‹ุง ููŠู‡ ู…ุณุชูˆูŠุงุช ู…ุฎุชู„ูุฉ ู„ู„ู€ Isolation (ุฒูŠ Read Uncommitted, Read Committed, Repeatable Read, Serializable)ุŒ ูˆูƒู„ ูˆุงุญุฏุฉ ู„ู‡ุง trade-offs ุจูŠู† ุงู„ุฃุฏุงุก ูˆุงู„ุฏู‚ุฉ.

โ€”โ€”โ€”

ุฑุงุจุนู‹ุง: Durability


ุงู„ู€ Durability ู…ุนู†ุงู‡ุง ุฅู† ุจู…ุฌุฑุฏ ู…ุง ุงู„ู€ Database ุชู‚ูˆู„ูƒ "ุชู…ุช ุงู„ุนู…ู„ูŠุฉ ุจู†ุฌุงุญ"ุŒ ูŠุจู‚ู‰ ุฎู„ุงุต ุงู„ู€ data ุฏูŠ ู…ุญููˆุธุฉ ูˆู…ุด ู‡ุชุถูŠุน ุญุชู‰ ู„ูˆ ุงู„ุณูŠุฑูุฑ ูˆู‚ุน ุฃูˆ ุงู„ูƒู‡ุฑุจุงุก ู‚ุทุนุช.

ุฅุฒุงูŠุŸ
ู„ุฃู† ุงู„ู€ DB ุจุชูƒุชุจ ุงู„ุชุบูŠูŠุฑุงุช ุนู„ู‰ ุงู„ู€ disk (ุฃูˆ ุงู„ู€ log files) ู‚ุจู„ ู…ุง ุชู‚ูˆู„ูƒ ุงู„ุนู…ู„ูŠุฉ ู†ุฌุญุชุŒ ุนู„ุดุงู† ุชู‚ุฏุฑ ุชุณุชุฑุฌุนู‡ุง ู„ูˆ ุญุตู„ ุฃูŠ failure.

โ€”โ€”โ€”

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค5
Linux File Permissions Overview ๐Ÿ’ฏ
โค5๐Ÿ’ฏ2
Stop React apps from crashing with Error Boundaries. ๐Ÿ’ฏ

Catch errors like a pro and show friendly fallbacks instead of broken screens.
โค3
ุงู„ูุฑู‚ ุจูŠู† ุงู„ู€ Monorepo ูˆุงู„ู€ Multirepo ๐Ÿ”ป
.
.
ุชุฎูŠู„ ุฃู†ูƒ ุดุบุงู„ ุนู„ู‰ ู…ุดุฑูˆุน ุถุฎู…ุŒ ุนู†ุฏูƒ ุฃูƒุชุฑ ู…ู† ูุฑูŠู‚ุŒ ูˆูƒู„ ูุฑูŠู‚ ุจูŠุดุชุบู„ ุนู„ู‰ ุฌุฒุก ู…ุฎุชู„ู. ูุฌุฃุฉุŒ ุชุจุฏุฃ ุงู„ู…ุดุงูƒู„ ุชุธู‡ุฑ: ูƒูˆุฏ ู…ูƒุฑุฑุŒ ุตุนูˆุจุฉ ููŠ ุงู„ุชุนุฏูŠู„ุงุชุŒ ุชุนุงุฑุถ ุจูŠู† ุงู„ูุฑู‚ุŒ ูˆุฃูˆู‚ุงุช ุถุงูŠุนุฉ ุนู„ู‰ ุงู„ู€ builds ูˆุงู„ู€ pipelines.

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

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

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

โ€”โ€”โ€”

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


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

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

โ€”โ€”โ€”

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


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

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

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

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

โ€”โ€”โ€”

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


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

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

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

โ€”โ€”โ€”

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


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

โ€”โ€”โ€”

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

- ูƒู„ module ู„ู‡ ุญูŠุงุชู‡ ุงู„ุฎุงุตุฉุŒ ูˆุฏู‡ ุจูŠุฎู„ูŠ ุฅุฏุงุฑุฉ ูƒู„ ุฌุฒุก ู…ุณุชู‚ู„ุฉ ูˆุฃุณู‡ู„ ู„ุจุนุถ ุงู„ูุฑู‚.
- ุชู‚ุฏุฑ ุชุญุฏุฏ ู…ูŠู† ูŠุดุชุบู„ ุนู„ู‰ ุฅูŠู‡ ุจู†ุงุกู‹ ุนู„ู‰ ุงู„ู€ repo ุงู„ู„ูŠ ุนู†ุฏู‡ู… ุฃูƒุณุณ ุนู„ูŠู‡.
- ู„ูˆ ููŠู‡ module ุฃูˆ ุฎุฏู…ุฉ ู…ุด ู…ุฑุชุจุท ุจุดูƒู„ ู…ุจุงุดุฑุŒ ู…ุด ู…ุญุชุงุฌ ุชุจู†ูŠ ูƒู„ ุงู„ู…ุดุฑูˆุนุŒ ุจุณ ุชุจู†ูŠ ุงู„ุฌุฒุก ุงู„ู„ูŠ ู…ุญุชุงุฌู‡.
- ูƒู„ ุฌุฒุก ุจูŠูƒูˆู† ุตุบูŠุฑ ูˆู…ุณุชู‚ู„ุŒ ูุฏู‡ ุจูŠุฎู„ูŠ ุงู„ุนู…ู„ูŠุงุช ุฒูŠ cloning ุฃุณุฑุน ูˆุฃุณู‡ู„.

โ€”โ€”โ€”

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

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

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

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

- ู„ูˆ ุนู†ุฏูƒ ุชุบูŠูŠุฑ ุถุฎู… ุจูŠุฃุซุฑ ุนู„ู‰ ุฃูƒุชุฑ ู…ู† moduleุŒ ู‡ุชุญุชุงุฌ ุชุฏุฎู„ ุนู„ู‰ ูƒุฐุง repo ูˆุชุนุฏู„ ููŠ ูƒู„ ูˆุงุญุฏ ู„ูˆุญุฏู‡.
โค4
Optimizing Streams in JavaScript ๐Ÿ’ฏ

Streams improve performance for large data processing, but require careful optimization.
โค2