DevGuide ๐Ÿ‡ต๐Ÿ‡ธ
10.9K subscribers
2.49K 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
Writing tests that actually last?

Letโ€™s go beyond โ€œit rendersโ€ and explore how to write robust, maintainable tests with React Testing Library
โค4
ุงู„ูุฑู‚ ุจูŠู† ุงู„ู€ 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 ุงู„ูƒุจูŠุฑุฉ.

โ€”โ€”โ€”

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

โ€”โ€”โ€”

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค5๐Ÿ‘1
ุฅุฒุงูŠ ุงู„ู…ูˆู‚ุน ุจูŠุดุชุบู„ ู…ู† ุบูŠุฑ ุงู†ุชุฑู†ุชุŸ ๐ŸŒ
.
.
ุนู…ุฑูƒ ููƒุฑุช ุฅุฒุงูŠ ู…ู…ูƒู† ุชูุชุญ ู…ูˆู‚ุน ูˆูŠุจ ูˆูŠูุถู„ ูŠุดุชุบู„ ุญุชู‰ ู„ูˆ ุงู„ุฅู†ุชุฑู†ุช ูุตู„ุŸ ุฃูˆ ุชู„ุงู‚ูŠ ุงู„ู…ูˆู‚ุน ุณุฑูŠุน ุฌุฏู‹ุง ูƒุฃู†ู‡ ู…ุฎุฒู† ูƒู„ ุญุงุฌุฉ ุนู†ุฏูƒุŸ ุงู„ุณุฑ ู‡ู†ุง ููŠ ุงู„ู€ Service Workers.

ุงู„ู€ Service Workers ุจุชู„ุนุจ ุฏูˆุฑ ูƒุจูŠุฑ ููŠ ุชุญุณูŠู† ุชุฌุฑุจุฉ ุงู„ู…ุณุชุฎุฏู…ุŒ ูƒู…ุงู† ุจุชุฎู„ูŠ ุงู„ู…ูˆุงู‚ุน ุชุดุชุบู„ ุจุณุฑุนุฉ ูˆูƒูุงุกุฉ ุญุชู‰ ููŠ ุญุงู„ุฉ ุงู†ู‚ุทุงุน ุงู„ุฅู†ุชุฑู†ุช.

ุชุนุงู„ ู†ูู‡ู… ุงู„ู…ูˆุถูˆุน ุจุจุณุงุทุฉ...

โ€”โ€”โ€”

๐Ÿ“Œ ูŠุนู†ูŠ ุฅูŠู‡ Service WorkerุŸ

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

- ุงู„ู€ (Caching): ูŠุนู†ูŠ ูŠุญูุธ ู…ู„ูุงุช ุงู„ู…ูˆู‚ุน ุนู†ุฏูƒ ุนู„ู‰ ุงู„ุฌู‡ุงุฒ ุนุดุงู† ูŠูุชุญ ุจุณุฑุนุฉ ุญุชู‰ ู„ูˆ ุงู„ุฅู†ุชุฑู†ุช ุถุนูŠู.
- ุงู„ุนู…ู„ ุฃูˆูู„ุงูŠู†: ุงู„ู…ูˆู‚ุน ูŠุดุชุบู„ ุญุชู‰ ู„ูˆ ุงู„ุฅู†ุชุฑู†ุช ู‚ุงุทุน.
- ุงู„ู€ (Push Notifications): ุงู„ุฑุณุงุฆู„ ุงู„ู„ูŠ ุจุชุฌูŠู„ูƒ ู…ู† ุงู„ู…ูˆู‚ุน ุญุชู‰ ู„ูˆ ู…ุด ูุงุชุญ ุงู„ุตูุญุฉ.

โ€”โ€”โ€”

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

1- ุงู„ุชุณุฌูŠู„ (Registration): ุฃูˆู„ ู…ุง ุงู„ู…ุณุชุฎุฏู… ูŠูุชุญ ุงู„ู…ูˆู‚ุนุŒ ุงู„ู€ Service Worker ุจูŠุชุณุฌู„ ู…ุฑุฉ ูˆุงุญุฏุฉ.
2- ุงู„ุชุซุจูŠุช (Installation): ู‡ู†ุง ูŠู‚ุฏุฑ ูŠุจุฏุฃ ูŠุดุชุบู„ ูˆูŠุญูุธ ุงู„ู…ู„ูุงุช ุงู„ู„ูŠ ู…ุญุชุงุฌู‡ุง.
3- ุงู„ุญุฏุซ (Fetch Event): ู„ู…ุง ุงู„ู…ุณุชุฎุฏู… ูŠุทู„ุจ ุฃูŠ ุญุงุฌุฉ (ุฒูŠ ุตูˆุฑุฉ ุฃูˆ ุตูุญุฉ)ุŒ ุงู„ู€ Service Worker ูŠู‚ุฑุฑ ูŠุฌูŠุจู‡ุง ู…ู† ุงู„ูƒุงุด ูˆู„ุง ู…ู† ุงู„ุณูŠุฑูุฑ.

โ€”โ€”โ€”

โœ… ู…ู…ูŠุฒุงุช ุงู„ู€ Service Workers:

- ุฃุฏุงุก ุฃูุถู„: ู„ุฃู†ู‡ ุจูŠู‚ู„ู„ ุงู„ุถุบุท ุนู„ู‰ ุงู„ุณูŠุฑูุฑ.
- ุชุฌุฑุจุฉ ู…ุณุชุฎุฏู… ู…ู…ุชุงุฒุฉ: ู…ู† ู†ุงุญูŠุฉ ุงู„ุณุฑุนุฉ ูˆุฅู…ูƒุงู†ูŠุฉ ุงู„ุชุดุบู„ ุจุฏูˆู† ุฅู†ุชุฑู†ุช.
- ุงู„ุฃู…ุงู†: ู„ุงุฒู… ุงู„ู€ Service Workers ูŠุดุชุบู„ูˆุง ุนู„ู‰ HTTPS ุนุดุงู† ูŠุญุงูุธูˆุง ุนู„ู‰ ุจูŠุงู†ุงุช ุงู„ู…ุณุชุฎุฏู….

โ€”โ€”โ€”

๐Ÿ“Œ ู…ู„ุญูˆุธุงุช ู…ู‡ู…ุฉ

๐Ÿ“ ุงู„ู€ Service Workers ู…ุญุชุงุฌุฉ ุชุฎุทูŠุท ูƒูˆูŠุณ ุนุดุงู† ู…ุชุนู…ู„ุด ูƒุงุด ู„ู„ู…ู„ูุงุช ุฒูŠุงุฏุฉ ุนู† ุงู„ู„ุฒูˆู….
๐Ÿ“ ู…ุด ูƒู„ ุงู„ู…ู…ูŠุฒุงุช ุจุชุดุชุบู„ ููŠ ูƒู„ ุงู„ู…ุชุตูุญุงุชุŒ ูู„ุงุฒู… ุชุนู…ู„ ุญุณุงุจูƒ.

โ€”โ€”โ€”

ุฅุฒุงูŠ ู…ู…ูƒู† ุชุถูŠู ุงู„ู€ Service Workers ููŠ ู…ุดุฑูˆุนูƒุŸ ๐Ÿค”

ุงู„ูƒูˆุฏ ุงู„ุฃุณุงุณูŠ ุจุณูŠุท ุฌุฏู‹ุง:

// Register Service Worker
if ("serviceWorker" in navigator) {
navigator.serviceWorker
.register("/sw.js")
.then(() => {
console.log("Service Worker Registered!");
});
}


โ€”โ€”โ€”

ุฃู…ุง ููŠ ู…ู„ู sw.js:

self.addEventListener("install", (event) => {
console.log("Service Worker Installed");
});

self.addEventListener("fetch", (event) => {
event.respondWith(
caches.match(event.request).then((response) => {
return response || fetch(event.request);
})
);
});


โ€”โ€”โ€”

ู„ูˆ ุนุงูˆุฒ ุชุชุนู…ู‚ ููŠ ุงู„ู…ูˆุถูˆุน ูˆุชุนุฑู ุชูุงุตูŠู„ ุฃูƒุชุฑ ๐Ÿ‘‡

Service Worker API
https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API

Service workers
https://web.dev/learn/pwa/service-workers

โ€”โ€”โ€”

ู„ูˆ ุดุงูŠู ุฅู† ุงู„ุจูˆุณุช ุฏู‡ ู…ููŠุฏุŒ ุงุฏุนู…ู‡ ุจู€ Like ุฃูˆ Share ุนุดุงู† ุงู„ูƒู„ ูŠุณุชููŠุฏ. ๐Ÿ’ก

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค12
ู„ูŠู‡ ุงู„ุฃูˆู„ ุจู€ true ูˆุงู„ุซุงู†ูŠ ุจู€ falseุŸ ๐Ÿค”

ู„ูˆ ูุงู‡ู… ู„ุบุฉ JavaScript ูƒูˆูŠุณ ู‡ุชุฌุงูˆุจ ุตุญ ๐Ÿ’ฏ
๐Ÿ’ฏ5
The Hidden Cost of Over-Engineering in Software Development ๐Ÿค”


Over-engineering in software and systems development occurs when a solution is made more complex than necessary to meet its current requirements.

โ€”โ€”โ€”

๐Ÿ”— Full Article:
https://dev.to/alisamir/the-hidden-cost-of-over-engineering-in-software-development-4dnk
โค4
๐Ÿ”ฐ All CSS Functions
โค5