en
Feedback
DevGuide

DevGuide

Open in Telegram

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

Show more

๐Ÿ“ˆ Analytical overview of Telegram channel DevGuide

Channel DevGuide (@the_developer_guide) is an active participant. Currently, the community unites 11 079 subscribers, ranking 11 258 in the Technologies & Applications category and 11 144 in the Iraq region.

๐Ÿ“Š Audience metrics and dynamics

Since its creation on ะฝะตะฒั–ะดะพะผะพ, the project has demonstrated rapid growth, gathering an audience of 11 079 subscribers.

According to the latest data from 11 June, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -26 over the last 30 days and by -3 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 6.95%. Within the first 24 hours after publication, content typically collects 3.00% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 770 views. Within the first day, a publication typically gains 332 views.
  • Reactions and interaction: The audience actively supports content: the average number of reactions per post is 4.
  • Thematic interests: Content is focused on key topics such as ู…ูŽุดุฑููˆุน, ุญูŽุงุฌูŽุฉ, ุจูŽูŠูŽุงู†, ุฌูุฏู‘, ุทูŽู„ูŽุจ.

๐Ÿ“ Description and content policy

The author describes the resource as a platform for expressing subjective opinions:
โ€œ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โ€

Thanks to the high frequency of updates (latest data received on 12 June, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.

11 079
Subscribers
-324 hours
+17 days
-2630 days
Posts Archive
DevGuide
11 079
ูƒูŠู ุชุนู…ู„ ุงู„ู€ JavaScript ุฎู„ู ุงู„ูƒูˆุงู„ูŠุณุŸ JS Event Loop https://youtu.be/5PbmjScmt4Y โ€”โ€”โ€” ๐Ÿ’ก ุณุคุงู„ ู…ู‡ู… ุฌุฏู‹ุง ูˆู‡ุชู‚ุงุจู„ู‡ ุชู‚ุฑูŠุจู‹ุง ููŠ ุฃูŠ
ูƒูŠู ุชุนู…ู„ ุงู„ู€ JavaScript ุฎู„ู ุงู„ูƒูˆุงู„ูŠุณุŸ JS Event Loop https://youtu.be/5PbmjScmt4Y โ€”โ€”โ€” ๐Ÿ’ก ุณุคุงู„ ู…ู‡ู… ุฌุฏู‹ุง ูˆู‡ุชู‚ุงุจู„ู‡ ุชู‚ุฑูŠุจู‹ุง ููŠ ุฃูŠ ุงู†ุชุฑููŠูˆ ู„ู‡ ุนู„ุงู‚ุฉ ุจุงู„ู€ JS

DevGuide
11 079
ู…ูู‡ูˆู… ุงู„ู€ Webhooks ๐Ÿ’ก . . ุชุฎูŠู„ ู…ุนุงูŠุง ุฅู†ูƒ ู…ุณุชู†ูŠ ุตุงุญุจูƒ ูŠุฌูŠู„ูƒ. ุจุฏู„ ู…ุง ูƒู„ ุดูˆูŠุฉ ุชู‚ูˆู… ุชุจุต ู…ู† ุงู„ุดุจุงูƒ ุชุดูˆู ูˆุตู„ ูˆู„ุง ู„ุงุŒ ู‡ูˆ ุฃูˆู„ ู…ุง ูŠูˆุตู„
ู…ูู‡ูˆู… ุงู„ู€ Webhooks ๐Ÿ’ก . . ุชุฎูŠู„ ู…ุนุงูŠุง ุฅู†ูƒ ู…ุณุชู†ูŠ ุตุงุญุจูƒ ูŠุฌูŠู„ูƒ. ุจุฏู„ ู…ุง ูƒู„ ุดูˆูŠุฉ ุชู‚ูˆู… ุชุจุต ู…ู† ุงู„ุดุจุงูƒ ุชุดูˆู ูˆุตู„ ูˆู„ุง ู„ุงุŒ ู‡ูˆ ุฃูˆู„ ู…ุง ูŠูˆุตู„ ูŠุจุนุชู„ูƒ ุฑุณุงู„ุฉ ูŠู‚ูˆู„ูƒ "ุฃู†ุง ูˆุตู„ุช". ุงู„ุณูŠู†ุงุฑูŠูˆ ุฏู‡ ุจุงู„ุถุจุท ุดุจู‡ ุงู„ู„ูŠ ุจูŠุนู…ู„ู‡ ุงู„ู€ Webhook. ุจุฏู„ ู…ุง ุงู„ู€ Application ุจุชุงุนูƒ ูŠูุถู„ ูƒู„ ุดูˆูŠุฉ ูŠุณุฃู„ "ููŠู‡ ุญุงุฌุฉ ุฌุฏูŠุฏุฉ ุญุตู„ุชุŸ" (ูˆุฏู‡ ุงุณู…ู‡ Polling)ุŒ ุงู„ู€ Webhook ุจูŠุฎู„ูŠ ุงู„ู€ System ุงู„ุชุงู†ูŠ ู‡ูˆ ุงู„ู„ูŠ ูŠุจุนุชู„ูƒ ุฃูˆู„ ู…ุง ูŠุญุตู„ ุงู„ุชุบูŠูŠุฑ. โ€”โ€”โ€” ๐Ÿ”— LinkedIn: https://www.linkedin.com/posts/mentoor-io_sofwaredevelopment-softwareengineering-softwaredeveloper-activity-7360720810849763329-4CYv ๐Ÿ”— Facebook: https://www.facebook.com/share/p/1Bv7LHEAcf ๐Ÿ”— Qabilah: https://qabilah.com/posts/5Tod1qKZvxU

DevGuide
11 079
ู…ูู‡ูˆู… ุงู„ู€ API Rate Limiting ๐Ÿ’ก . . ุชุฎูŠู„ ุฅู† ุนู†ุฏูƒ Event ุถุฎู… ูˆูƒู„ ุงู„ู†ุงุณ ู‡ุชุฏุฎู„ ู…ู† ุจุงุจ ูˆุงุญุฏ ุจุณ. ู„ูˆ ูƒู„ ุงู„ู†ุงุณ ุญุงูˆู„ุช ุชุฏุฎู„ ููŠ ู†ูุณ ุงู„ู„ุญุธุฉุŒ ุฅูŠู‡ ุงู„ู„ูŠ ู‡ูŠุญุตู„ุŸ ุฒุญู…ุฉุŒ ููˆุถู‰ุŒ ูˆู…ู…ูƒู† ุงู„ู€ Event ูŠุชู„ุบูŠ. ู†ูุณ ุงู„ููƒุฑุฉ ุจุชุญุตู„ ู…ุน ุฃูŠ APIโ€ฆ ู„ู…ุง ุนุฏุฏ ูƒุจูŠุฑ ุฌุฏู‹ุง ู…ู† ุงู„ู€ Requests ูŠูˆุตู„ ู„ู„ุณูŠุฑูุฑ ููŠ ู†ูุณ ุงู„ูˆู‚ุชุŒ ุงู„ุฃุฏุงุก ุจูŠู†ู‡ุงุฑุŒ ูˆุงู„ู€ Users ุจูŠุจุฏุฃูˆุง ูŠุญุณูˆุง ุฅู† ุงู„ุฎุฏู…ุฉ ุจุทูŠุฆุฉ ุฃูˆ ู…ุด ุดุบุงู„ุฉ. ู‡ู†ุง ุจูŠุฌูŠ ุฏูˆุฑ ุงู„ู€ API Rate LimitingุŒ ุงู„ู„ูŠ ู‡ูˆ ุจุจุณุงุทุฉ ู†ุธุงู… ุจูŠุญุท ุญุฏูˆุฏ ูˆุงุถุญุฉ ู„ุนุฏุฏ ุงู„ู€ Requests ุงู„ู„ูŠ ุฃูŠ ู…ุณุชุฎุฏู… ุฃูˆ ุชุทุจูŠู‚ ูŠู‚ุฏุฑ ูŠุจุนุชู‡ ููŠ ูุชุฑุฉ ุฒู…ู†ูŠุฉ ู…ุญุฏุฏุฉุŒ ุนุดุงู† ูŠุถู…ู† ุฅู† ุงู„ุฎุฏู…ุฉ ุชูุถู„ ู…ุณุชู‚ุฑุฉ ูˆุณุฑูŠุนุฉ ู„ูƒู„ ุงู„ู†ุงุณ. โ€”โ€”โ€” ๐Ÿค” ู„ูŠู‡ ู†ุนู…ู„ Rate LimitingุŸ 1- ุญู…ุงูŠุฉ ุงู„ู€ Server ู„ูˆ ุงู„ู€ API ุงุณุชู‚ุจู„ ุนุฏุฏ Requests ุฃูƒุชุฑ ู…ู† ุทุงู‚ุชู‡ุŒ ู…ู…ูƒู† ูŠู‚ุน ุฃูˆ ูŠุดุชุบู„ ุจุจุทุก ุดุฏูŠุฏ. ุงู„ู€ Rate Limiting ุจูŠุญุงูุธ ุนู„ู‰ ุฃุฏุงุก ุงู„ุณูŠุฑูุฑ. 2- ู…ู†ุน ุงู„ู€ Abuse ููŠู‡ ู†ุงุณ ุจุชุญุจ ุชุฌุฑุจ ุชุจุนุช ู…ู„ุงูŠูŠู† Requests ุจุณุฑุนุฉ ุนุดุงู† ุชู‡ุงูƒ ุฃูˆ ุชุนู…ู„ Spam. ุงู„ุญุฏูˆุฏ ุฏูŠ ุจุชูˆู‚ูู‡ู…. 3- ุชูˆุฒูŠุน ุงู„ู€ Resources ุจุทุฑูŠู‚ุฉ ู…ู†ุงุณุจุฉ ู„ูˆ ููŠู‡ ุฃูƒุชุฑ ู…ู† ุนู…ูŠู„ ุจูŠุณุชุฎุฏู… ุงู„ู€ APIุŒ ู…ุด ู…ุนู‚ูˆู„ ูˆุงุญุฏ ู…ู†ู‡ู… ูŠุงุฎุฏ 90% ู…ู† ุงู„ู€ Resources ูˆุงู„ุจุงู‚ูŠ ูŠุชุฎุงู†ู‚ูˆุง ู…ุน ุจุนุถ. โ€”โ€”โ€” โš™๏ธ ุฅุฒุงูŠ ู†ุทุจู‚ ุงู„ู€ Rate LimitingุŸ - ุงู„ู€ Fixed Window ุจุชุญุฏุฏ ู…ุซู„ู‹ุง 100 ุทู„ุจ ููŠ ูƒู„ ุฏู‚ูŠู‚ุฉ. ู„ูˆ ุนุฏูŠุช ุงู„ุนุฏุฏุŒ ู‡ุชุงุฎุฏ Error (ุบุงู„ุจู‹ุง 429 Too Many Requests) ู„ุญุฏ ู…ุง ุงู„ุฏู‚ูŠู‚ุฉ ุชุฎู„ุต. - ุงู„ู€ Sliding Window ู†ูุณ ููƒุฑุฉ ุงู„ู€ Fixed Window ุจุณ ุฃุฐูƒู‰ ุดูˆูŠุฉ. ุจูŠุญุณุจ requests ุฎู„ุงู„ ุขุฎุฑ ูุชุฑุฉ ุฒู…ู†ูŠุฉ ู…ุชุญุฑูƒุฉ ุจุฏู„ ู…ุง ูŠู‚ุณู… ุงู„ูˆู‚ุช ู„ู…ุฑุจุนุงุช ุซุงุจุชุฉ. - ุงู„ู€ Token Bucket ุนู†ุฏูƒ "ุฌูŠุจ" ููŠู‡ TokensุŒ ูƒู„ Request ุจูŠุงุฎุฏ Token. ุงู„ู€ Tokens ุจุชุชุฌุฏุฏ ุจู…ุนุฏู„ ุซุงุจุช. ู„ูˆ ุงู„ุฌูŠุจ ูุงุถูŠุŒ ุงุณุชู†ู‰ ู„ุญุฏ ู…ุง ูŠุชุฌุฏุฏ. - ุงู„ู€ Leaky Bucket ุฒูŠ ุงู„ุตููŠุญุฉ ุงู„ู„ูŠ ููŠู‡ุง ุซู‚ุจ ุตุบูŠุฑ ุจูŠู†ู‚ุท Requests ุจู…ุนุฏู„ ุซุงุจุชุŒ ุญุชู‰ ู„ูˆ ุฌุงู„ูƒ ุฏูุนุฉ ูƒุจูŠุฑุฉ ูุฌุฃุฉ. โ€”โ€”โ€” ๐Ÿ’ก ู†ุตุงุฆุญ ู„ูˆ ุฃู†ุช ุจุชุจู†ูŠ API - ุญุฏุฏ ู…ุนุฏู„ Requests ู…ุนู‚ูˆู„ ุจู†ุงุกู‹ ุนู„ู‰ ู‚ุฏุฑุงุช ุงู„ุณูŠุฑูุฑ ูˆุนุฏุฏ ุงู„ุนู…ู„ุงุก. - ุงุณุชุฎุฏู… Caching ููŠ ุงู„ุญุงุฌุงุช ุงู„ู„ูŠ ู…ุด ู…ุญุชุงุฌุฉ ุชุชุทู„ุจ ู…ู† ุงู„ุณูŠุฑูุฑ ูƒู„ ู…ุฑุฉ. - ุฎู„ูŠ ุนู†ุฏูƒ ุฎุทุฉ ู„ุชุนุงู…ู„ ุฎุงุต ู…ุน ุงู„ุนู…ู„ุงุก ุงู„ู…ู‡ู…ูŠู† (Premium Users). โ€”โ€”โ€” ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ

DevGuide
11 079
React Context vs Redux ๐Ÿ’ฏ Letโ€™s break it down, what they do, when to use them, and how to choose the right one for your app.
+5
React Context vs Redux ๐Ÿ’ฏ
Letโ€™s break it down, what they do, when to use them, and how to choose the right one for your app.

DevGuide
11 079
ูŠุนู†ูŠ ุฅูŠู‡ Dead CodeุŸ ๐Ÿ’€ . . ุชุฎูŠู„ ู…ุนุงูŠุง ุฅู†ูƒ ููŠ ู…ุดุฑูˆุน ูƒุจูŠุฑุŒ ูˆูƒู„ ูŠูˆู… ุจุชูƒุชุจ ููŠู‡ Features ุฌุฏูŠุฏุฉุŒ ูˆุชุนุฏู‘ู„ ุนู„ู‰ ุงู„ูƒูˆุฏ ุงู„ู‚ุฏูŠู…. ู…ุน ุงู„ูˆู‚ุชุŒ ุทุจูŠุนูŠ ุฌุฏู‹ุง ูŠุญุตู„ ุชุฑุงูƒู… ุฃูƒูˆุงุฏ ุบูŠุฑ ู…ุณุชุฎุฏู…ุฉโ€ฆุญุงุฌุงุช ูƒุงู†ุช ู…ู‡ู…ุฉ ุฒู…ุงู†ุŒ ุจุณ ุฏู„ูˆู‚ุชูŠ ู…ุจู‚ุงุด ู„ู‡ุง ุฃูŠ ู„ุงุฒู…ุฉ. ุงู„ุญุงุฌุงุช ุฏูŠ ุงุณู…ู‡ุง Dead Code. ุงู„ู€ Dead Code ู‡ูˆ ุฃูŠ ูƒูˆุฏ ู…ูˆุฌูˆุฏ ุฏุงุฎู„ ุงู„ู…ุดุฑูˆุนุŒ ู„ูƒู† ู„ุง ูŠุชู… ุชู†ููŠุฐู‡ ุฃูˆ ุงุณุชุฎุฏุงู…ู‡ ููŠ ุงู„ู€ Runtime. ูŠุนู†ูŠ ุงู„ูƒูˆุฏ ู…ูˆุฌูˆุฏ ููŠ ุงู„ู€ FilesุŒ ุจุณ ูุนู„ูŠู‹ุง ู…ู„ูˆุด ุฃูŠ ุชุฃุซูŠุฑ ุนู„ู‰ ุงู„ุจุฑู†ุงู…ุฌ ุฃูˆ ุงู„ู€ Output. โ€”โ€”โ€” ๐Ÿ” ุฃู…ุซู„ุฉ ุนู„ู‰ ุงู„ู€ Dead Code: - ุฃูŠ Function ู…ูƒุชูˆุจุฉ ูˆู…ุญุฏุด ุจูŠู†ุงุฏูŠ ุนู„ูŠู‡ุง ููŠ ุฃูŠ ู…ูƒุงู† ููŠ ุงู„ู…ุดุฑูˆุน. - ุฃูŠ Variables ุฃูˆ Constants ู…ุชุนุฑูุฉ ู„ูƒู†ู‡ุง ุบูŠุฑ ู…ุณุชุฎุฏู…ุฉ. - ุฃูŠ Conditions ู…ุด ู…ู…ูƒู† ุชุชุญู‚ู‚ ุฃุจุฏู‹ุง (Unreachable Code). - ุฃูŠ ูƒูˆุฏ ู‚ุฏูŠู… ุงุณุชุจุฏู„ู†ุงู‡ ุจูƒูˆุฏ ุฃุญุฏุซุŒ ุจุณ ู†ุณูŠู†ุง ู†ู…ุณุญู‡. โ€”โ€”โ€” ๐Ÿ’ก ุทูŠุจ ุฅูŠู‡ ุงู„ู…ุดูƒู„ุฉุŸ ูŠู…ูƒู† ุชุญุณ ุฅู† ู…ููŠุด ุถุฑุฑุŒ ู„ูƒู† ุงู„ุญู‚ูŠู‚ุฉ ููŠู‡ ู…ุดุงูƒู„ ูƒุชูŠุฑ: 1- ุฒูŠุงุฏุฉ ุญุฌู… ุงู„ูƒูˆุฏ: ุจูŠุฎู„ูŠ ุงู„ู…ุดุฑูˆุน ุชู‚ูŠู„ ูˆู…ู„ูŠุงู† ุญุงุฌุงุช ู…ู„ู‡ุงุด ู„ุงุฒู…ุฉ. 2- ุตุนูˆุจุฉ ุงู„ุตูŠุงู†ุฉ: ู„ู…ุง ุชูŠุฌูŠ ุชุตู„ู‘ุญ Bug ุฃูˆ ุชุนุฏู‘ู„ FeatureุŒ ู‡ุชู„ู ูˆุชุฏูˆุฑ. 3- ู…ู…ูƒู† ุญุฏ ูŠุดูˆู Function ู…ูˆุฌูˆุฏุฉ ูˆูŠุธู† ุฅู†ู‡ุง ุจุชุณุชุฎุฏู…ุŒ ููŠุจุฏุฃ ูŠุดุชุบู„ ุนู„ูŠู‡ุง ูˆู‡ูˆ ู…ุด ูˆุงุฎุฏ ุจุงู„ู‡ ุฅู†ู‡ุง Dead. 4- ุฃุฏุงุก ุฃุจุทุฃ ููŠ ุจุนุถ ุงู„ุญุงู„ุงุช: ุญุชู‰ ู„ูˆ ู…ุด ุจุชุชู†ูุฐุŒ ูˆุฌูˆุฏู‡ุง ู…ู…ูƒู† ูŠุฃุซุฑ ุนู„ู‰ ูˆู‚ุช ุงู„ู€ Build ุฃูˆ ุญุฌู… ุงู„ู€ Bundle ููŠ ุงู„ู€ Frontend. 5- ุงู„ู€ Code Smell: ุนู„ุงู…ุฉ ุนู„ู‰ ุฅู† ุงู„ู…ุดุฑูˆุน ู…ุด Managed ูƒูˆูŠุณุŒ ูˆุฏู‡ ุจูŠุฃุซุฑ ุนู„ู‰ ุงู„ู€ Code Quality. โ€”โ€”โ€” ๐Ÿ›  ุฅุฒุงูŠ ู†ูƒุชุดู ุงู„ู€ Dead CodeุŸ โœ… ููŠ JavaScript/TypeScript: - ุงุณุชุฎุฏู… Tools ุฒูŠ ESLint ู…ุน Rule ุฒูŠ no-unused-vars ุฃูˆ no-unreachable. - ุงู„ู€ ts-prune: ุฃุฏุงุฉ ู‚ูˆูŠุฉ ุจุชุญุฏุฏู„ูƒ ุงู„ู€ Exports ุงู„ู„ูŠ ู…ุด ู…ุณุชุฎุฏู…ุฉ. - ุงู„ู€ webpack-bundle-analyzer: ูŠุนุฑููƒ ุฅูŠู‡ ุงู„ู„ูŠ ุฏุงุฎู„ ููŠ ุงู„ู€ Bundle ูˆู…ุด ู…ุญุชุงุฌู‡. โœ… ููŠ ู„ุบุงุช ุชุงู†ูŠุฉ ุฒูŠ Java ุฃูˆ #C: - ุงู„ู€ IDE ู†ูุณู‡ ุฒูŠ IntelliJ ุฃูˆ Visual Studio ุบุงู„ุจู‹ุง ุจูŠุญุฏุฏู„ูƒ ุงู„ู€ Unused Code ุจุนู„ุงู…ุฉ ุฃูˆ ู„ูˆู† ุจุงู‡ุช. โ€”โ€”โ€” ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ

DevGuide
11 079
๐Ÿ”ต๐ŸŸข ูŠุนู†ูŠ ุฅูŠู‡ Blue-Green DeploymentุŸ . . ุชุนุงู„ ุฃู‚ูˆู„ูƒ ุนู„ู‰ ู…ูˆู‚ู ุญุตู„ ุชู‚ุฑูŠุจู‹ุง ู…ุน ูƒู„ ุงู„ู†ุงุณ ุงู„ู„ูŠ ุงุดุชุบู„ุช ุนู„ู‰ ู…ุดุงุฑูŠุน ุดุบุงู„ุฉ ููŠ ุงู„ู€ (Production)... ุฃู†ุช ุฎู„ุตุช ู…ูŠุฒุฉ ุฌุฏูŠุฏุฉ (Feature) ุฃูˆ ุตู„ุญุช ู…ุดูƒู„ุฉ (Bug Fix)ุŒ ูˆู…ุจุณูˆุท ุฃูˆูŠ ุจุงู„ุดุบู„ ุงู„ู„ูŠ ุนู…ู„ุชู‡ุŒ ูˆุฏุงุฎู„ ุชุนู…ู„ deploy ู„ู„ูƒูˆุฏ. ุฃูˆู„ ู…ุง ุชุนู…ู„ DeployุŒ ุชูƒุชุดู ุฅู† ุญุตู„ุช ู…ุดูƒู„ุฉ ู…ุด ู…ุชูˆู‚ุนุฉุŒ ูˆุงู„ู…ูˆู‚ุน ูˆู‚ุน ุฃูˆ ุงู„ู…ุณุชุฎุฏู…ูŠู† ุงุดุชูƒูˆุง ู…ู† ุญุงุฌุฉ ู…ุฎุฏุชุด ุจุงู„ูƒ ู…ู†ู‡ุง. ุณุงุนุชู‡ุง ุจุชูƒูˆู† ููŠ ู„ุญุธุฉ ุชูˆุชุฑ ู…ุด ุทุจูŠุนูŠุฉุŒ ูˆุชุญุงูˆู„ ุชุฑุฌุน ุงู„ูƒูˆุฏ ุงู„ู‚ุฏูŠู… ุจุณุฑุนุฉ ุจุฃูŠ ุทุฑูŠู‚ุฉ. ู‡ู†ุง ุจู‚ู‰ ุจูŠูŠุฌูŠ ุฏูˆุฑ ุงู„ู€ Blue-Green Deployment ุนู„ุดุงู† ูŠู…ู†ุน ูƒู„ ุงู„ูƒูˆุงุฑุซ ุฏูŠ... โ€”โ€”โ€” ๐Ÿ’ก ูŠุนู†ูŠ ุฅูŠู‡ Blue-Green DeploymentุŸ ุงู„ู€ Blue-Green Deployment ู‡ูˆ ุฃุณู„ูˆุจ ููŠ ู†ุดุฑ ุงู„ุชุญุฏูŠุซุงุช (Deployment Strategy) ุจูŠุฎู„ูŠูƒ ุชู†ุดุฑ ุงู„ุชุบูŠูŠุฑุงุช ุจุชุงุนุชูƒ ุจุดูƒู„ ุขู…ู† ูˆุณู„ุณ ูˆู…ู† ุบูŠุฑ downtime. ุจุจุณุงุทุฉุŒ ุจุฏู„ ู…ุง ุนู†ุฏูƒ ู†ุณุฎุฉ ูˆุงุญุฏุฉ ุดุบุงู„ุฉ ู…ู† ุงู„ุชุทุจูŠู‚ุŒ ุจุชุจู‚ู‰ ู…ุดุบู‘ู„ ู†ุณุฎุชูŠู†: - ๐ŸŸข ุงู„ู†ุณุฎุฉ ุงู„ุญุงู„ูŠุฉ ุงู„ู„ูŠ ุงู„ู†ุงุณ ูƒู„ู‡ุง ุจุชุณุชุฎุฏู…ู‡ุง ุฏู„ูˆู‚ุชูŠ ุงุณู…ู‡ุง Green - ๐Ÿ”ต ุงู„ู†ุณุฎุฉ ุงู„ุฌุฏูŠุฏุฉ ุงู„ู„ูŠ ููŠู‡ุง ุงู„ุชุนุฏูŠู„ุงุช ูˆุงู„ุชุญุฏูŠุซุงุช ุงุณู…ู‡ุง Blue ุฃู†ุช ุจุชุฌู‡ู‘ุฒ ู†ุณุฎุฉ ุงู„ู€ BlueุŒ ูˆุชุนู…ู„ ุนู„ูŠู‡ุง ูƒู„ ุงู„ุงุฎุชุจุงุฑุงุช ุงู„ู…ุทู„ูˆุจุฉ. ูˆู„ู…ุง ุชุชุฃูƒุฏ ุฅู† ูƒู„ ุญุงุฌุฉ ุดุบุงู„ุฉ ุชู…ุงู…ุŒ ุจุชุจุฏู‘ู„ ุงู„ู€ Traffic ู…ู† Green ู„ู€ Blue. ูŠุนู†ูŠ ุงู„ู…ุณุชุฎุฏู…ูŠู† ุจุฏู„ ู…ุง ุจูŠุชุนุงู…ู„ูˆุง ู…ุน ุงู„ู†ุณุฎุฉ ุงู„ู‚ุฏูŠู…ุฉุŒ ุจูŠุชุญูˆู„ูˆุง ูุฌุฃุฉ ู„ู„ู†ุณุฎุฉ ุงู„ุฌุฏูŠุฏุฉ ู…ู† ุบูŠุฑ ู…ุง ูŠุญุณูˆุง ุจุฃูŠ downtime. โ€”โ€”โ€” ๐Ÿค” ู„ูŠู‡ ุงู„ุฃุณู„ูˆุจ ุฏู‡ ู…ู…ุชุงุฒ ุฌุฏู‹ุงุŸ 1- ุงู„ู€ Zero Downtime ู…ููŠุด ูˆู‚ุช ุชูˆู‚ู. ุงู„ุชุญุฏูŠุซ ุจูŠุญุตู„ ููŠ ุงู„ุฎู„ููŠุฉุŒ ูˆุฃูˆู„ ู…ุง ูŠูƒูˆู† ุฌุงู‡ุฒุŒ ุจูŠุชุญูˆู‘ู„ ุงู„ู€ Traffic ุจุณ. 2- ุงู„ู€ Rollback ุณู‡ู„ ุฌุฏู‹ุง ู„ูˆ ุญุตู„ุช ู…ุดูƒู„ุฉ ููŠ ุงู„ู†ุณุฎุฉ ุงู„ุฌุฏูŠุฏุฉุŒ ุชู‚ุฏุฑ ุชุฑุฌุน ุงู„ู…ุณุชุฎุฏู…ูŠู† ุชุงู†ูŠ ู„ู„ู†ุณุฎุฉ ุงู„ู‚ุฏูŠู…ุฉ ุจูƒู„ ุณู‡ูˆู„ุฉ. 3- ุงู„ุงุฎุชุจุงุฑ ุนู„ู‰ ุฃุฑุถ ุงู„ูˆุงู‚ุน ุชู‚ุฏุฑ ุชุฌุฑุจ ุงู„ู†ุณุฎุฉ ุงู„ุฌุฏูŠุฏุฉ ุนู„ู‰ ุนุฏุฏ ู…ุญุฏูˆุฏ ู…ู† ุงู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ุฃูˆู„ (canary testing) ู‚ุจู„ ู…ุง ุชุนู…ู„ ุงู„ู€ switch ุงู„ูƒุงู…ู„. 4- ู…ุด ู‡ุชุจู‚ู‰ ุฎุงูŠู ุชุนู…ู„ Deploy. ุญุชู‰ ู„ูˆ ููŠู‡ ุฎุทุฃุŒ ููŠู‡ ุฏุงูŠู…ู‹ุง ู†ุณุฎุฉ ุณู„ูŠู…ุฉ ุชู‚ุฏุฑ ุชุฑุฌุน ู„ู‡ุง. โ€”โ€”โ€” ููŠู‡ ุฃูƒุชุฑ ู…ู† ุทุฑูŠู‚ุฉ ุชุทุจู‘ู‚ ุจูŠู‡ุง Blue-Green DeploymentุŒ ุนู„ู‰ ุญุณุจ ุงู„ุจู†ูŠุฉ ุงู„ุชุญุชูŠุฉ ุงู„ู„ูŠ ุจุชุดุชุบู„ ุนู„ูŠู‡ุง: 1- ู„ูˆ ุดุบุงู„ ุนู„ู‰ KubernetesุŒ ู…ู…ูƒู† ุชุณุชุฎุฏู… ู…ุซู„ู‹ุง: - ุงู„ู€ Services + Deployments ุนู„ุดุงู† ุชุชุญูƒู… ููŠ ุงู„ู€ Traffic. - ุฃุฏูˆุงุช ุฒูŠ Argo Rollouts ุฃูˆ Spinnaker 2- ู„ูˆ ุจุชุณุชุฎุฏู… Cloud Platforms ุฒูŠ AWS ุฃูˆ GCPุŒ ููŠู‡ ุฃุฏูˆุงุช built-in ุจุชุณุงุนุฏูƒ ุชุนู…ู„ ุงู„ุชุจุฏูŠู„ ู…ุง ุจูŠู† ุงู„ู†ุณุฎ. 3- ูˆู„ูˆ ุดุบุงู„ ุจุดูƒู„ ูŠุฏูˆูŠุŒ ู…ู…ูƒู† ุชุณุชุฎุฏู… load balancer (ุฒูŠ NGINX ุฃูˆ HAProxy) ูˆุชุบูŠู‘ุฑ ุงู„ุชูˆุฌูŠู‡ ู…ู†ู‡ ู„ู„ู†ุณุฎุฉ ุงู„ุฌุฏูŠุฏุฉ ูˆู‚ุช ู…ุง ุชูƒูˆู† ุฌุงู‡ุฒุฉ. โ€”โ€”โ€” - ู„ุงุฒู… ุงู„ู†ุณุฎุชูŠู† (Blue ูˆ Green) ูŠุดุชุบู„ูˆุง ุนู„ู‰ ู†ูุณ ู‚ุงุนุฏุฉ ุงู„ุจูŠุงู†ุงุช ุฃูˆ ูŠูƒูˆู† ููŠ ุญู„ ู…ู†ุงุณุจ ู„ู…ุฒุงู…ู†ุฉ ุงู„ุจูŠุงู†ุงุช. ูˆุฅู„ุง ู…ู…ูƒู† ุชูˆุงุฌู‡ ู…ุดุงูƒู„ ููŠ ุงู„ู€ schema ุฃูˆ ุงู„ุจูŠุงู†ุงุช ู†ูุณู‡ุง. - ู„ุงุฒู… ุชุชุฃูƒุฏ ุฅู† ุงู„ู€ Blue ู†ุณุฎุฉ ุทุจู‚ ุงู„ุฃุตู„ ู…ู† Green + ุงู„ุชุนุฏูŠู„ุงุช ุงู„ุฌุฏูŠุฏุฉุŒ ุนู„ุดุงู† ุชุถู…ู† ุฅู† rollback ู‡ูŠุดุชุบู„ ูƒูˆูŠุณ ู„ูˆ ุงุถุทุฑุฑุช ุชุฑุฌู‘ุน. โ€”โ€”โ€” ๐Ÿ‘€ ู‡ู„ ู„ุงุฒู… ุฏุงูŠู…ู‹ุง ุชุณุชุฎุฏู… Blue-Green DeploymentุŸ ู„ุง ู…ุด ุฏุงูŠู…ู‹ุง. ุงู„ุฃุณู„ูˆุจ ุฏู‡ ู…ููŠุฏ ุฌุฏู‹ุง ู„ูˆ: - ุงู„ุชุทุจูŠู‚ ุจุชุงุนูƒ ุจูŠุดุชุบู„ ู„ุนุฏุฏ ูƒุจูŠุฑ ู…ู† ุงู„ู…ุณุชุฎุฏู…ูŠู†. - ุงู„ุชุญุฏูŠุซุงุช ุงู„ู„ูŠ ุจุชุนู…ู„ู‡ุง ุญุณุงุณุฉ ูˆู…ู…ูƒู† ุชุนู…ู„ ู…ุดุงูƒู„ ูƒุจูŠุฑุฉ. ู„ูƒู† ู„ูˆ ู…ุดุฑูˆุน ุตุบูŠุฑ ุฃูˆ ู…ุด ูุงุฑู‚ ู…ุนุงูƒ downtime ุจุณูŠุทุŒ ู…ู…ูƒู† ุชุณุชุฎุฏู… ุฃุณุงู„ูŠุจ ุฃุจุณุท ุฒูŠ Rolling Deployment. โ€”โ€”โ€” ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ

DevGuide
11 079
๐Ÿ”ต๐ŸŸข ูŠุนู†ูŠ ุฅูŠู‡ Blue-Green DeploymentุŸ . . ุชุนุงู„ ุฃู‚ูˆู„ูƒ ุนู„ู‰ ู…ูˆู‚ู ุญุตู„ ุชู‚ุฑูŠุจู‹ุง ู…ุน ูƒู„ ุงู„ู†ุงุณ ุงู„ู„ูŠ ุงุดุชุบู„ุช ุนู„ู‰ ู…ุดุงุฑูŠุน ุดุบุงู„ุฉ ููŠ ุงู„ู€ (Production)... ุฃู†ุช ุฎู„ุตุช ู…ูŠุฒุฉ ุฌุฏูŠุฏุฉ (Feature) ุฃูˆ ุตู„ุญุช ู…ุดูƒู„ุฉ (Bug Fix)ุŒ ูˆู…ุจุณูˆุท ุฃูˆูŠ ุจุงู„ุดุบู„ ุงู„ู„ูŠ ุนู…ู„ุชู‡ุŒ ูˆุฏุงุฎู„ ุชุนู…ู„ deploy ู„ู„ูƒูˆุฏ. ุฃูˆู„ ู…ุง ุชุนู…ู„ DeployุŒ ุชูƒุชุดู ุฅู† ุญุตู„ุช ู…ุดูƒู„ุฉ ู…ุด ู…ุชูˆู‚ุนุฉุŒ ูˆุงู„ู…ูˆู‚ุน ูˆู‚ุน ุฃูˆ ุงู„ู…ุณุชุฎุฏู…ูŠู† ุงุดุชูƒูˆุง ู…ู† ุญุงุฌุฉ ู…ุฎุฏุชุด ุจุงู„ูƒ ู…ู†ู‡ุง. ุณุงุนุชู‡ุง ุจุชูƒูˆู† ููŠ ู„ุญุธุฉ ุชูˆุชุฑ ู…ุด ุทุจูŠุนูŠุฉุŒ ูˆุชุญุงูˆู„ ุชุฑุฌุน ุงู„ูƒูˆุฏ ุงู„ู‚ุฏูŠู… ุจุณุฑุนุฉ ุจุฃูŠ ุทุฑูŠู‚ุฉ. ู‡ู†ุง ุจู‚ู‰ ุจูŠูŠุฌูŠ ุฏูˆุฑ ุงู„ู€ Blue-Green Deployment ุนู„ุดุงู† ูŠู…ู†ุน ูƒู„ ุงู„ูƒูˆุงุฑุซ ุฏูŠ... โ€”โ€”โ€” ๐Ÿ’ก ูŠุนู†ูŠ ุฅูŠู‡ Blue-Green DeploymentุŸ ุงู„ู€ Blue-Green Deployment ู‡ูˆ ุฃุณู„ูˆุจ ููŠ ู†ุดุฑ ุงู„ุชุญุฏูŠุซุงุช (Deployment Strategy) ุจูŠุฎู„ูŠูƒ ุชู†ุดุฑ ุงู„ุชุบูŠูŠุฑุงุช ุจุชุงุนุชูƒ ุจุดูƒู„ ุขู…ู† ูˆุณู„ุณ ูˆู…ู† ุบูŠุฑ downtime. ุจุจุณุงุทุฉุŒ ุจุฏู„ ู…ุง ุนู†ุฏูƒ ู†ุณุฎุฉ ูˆุงุญุฏุฉ ุดุบุงู„ุฉ ู…ู† ุงู„ุชุทุจูŠู‚ุŒ ุจุชุจู‚ู‰ ู…ุดุบู‘ู„ ู†ุณุฎุชูŠู†: - ๐ŸŸข ุงู„ู†ุณุฎุฉ ุงู„ุญุงู„ูŠุฉ ุงู„ู„ูŠ ุงู„ู†ุงุณ ูƒู„ู‡ุง ุจุชุณุชุฎุฏู…ู‡ุง ุฏู„ูˆู‚ุชูŠ ุงุณู…ู‡ุง Green - ๐Ÿ”ต ุงู„ู†ุณุฎุฉ ุงู„ุฌุฏูŠุฏุฉ ุงู„ู„ูŠ ููŠู‡ุง ุงู„ุชุนุฏูŠู„ุงุช ูˆุงู„ุชุญุฏูŠุซุงุช ุงุณู…ู‡ุง Blue ุฃู†ุช ุจุชุฌู‡ู‘ุฒ ู†ุณุฎุฉ ุงู„ู€ BlueุŒ ูˆุชุนู…ู„ ุนู„ูŠู‡ุง ูƒู„ ุงู„ุงุฎุชุจุงุฑุงุช ุงู„ู…ุทู„ูˆุจุฉ. ูˆู„ู…ุง ุชุชุฃูƒุฏ ุฅู† ูƒู„ ุญุงุฌุฉ ุดุบุงู„ุฉ ุชู…ุงู…ุŒ ุจุชุจุฏู‘ู„ ุงู„ู€ Traffic ู…ู† Green ู„ู€ Blue. ูŠุนู†ูŠ ุงู„ู…ุณุชุฎุฏู…ูŠู† ุจุฏู„ ู…ุง ุจูŠุชุนุงู…ู„ูˆุง ู…ุน ุงู„ู†ุณุฎุฉ ุงู„ู‚ุฏูŠู…ุฉุŒ ุจูŠุชุญูˆู„ูˆุง ูุฌุฃุฉ ู„ู„ู†ุณุฎุฉ ุงู„ุฌุฏูŠุฏุฉ ู…ู† ุบูŠุฑ ู…ุง ูŠุญุณูˆุง ุจุฃูŠ downtime. โ€”โ€”โ€” ๐Ÿค” ู„ูŠู‡ ุงู„ุฃุณู„ูˆุจ ุฏู‡ ู…ู…ุชุงุฒ ุฌุฏู‹ุงุŸ 1- ุงู„ู€ Zero Downtime ู…ููŠุด ูˆู‚ุช ุชูˆู‚ู. ุงู„ุชุญุฏูŠุซ ุจูŠุญุตู„ ููŠ ุงู„ุฎู„ููŠุฉุŒ ูˆุฃูˆู„ ู…ุง ูŠูƒูˆู† ุฌุงู‡ุฒุŒ ุจูŠุชุญูˆู‘ู„ ุงู„ู€ Traffic ุจุณ. 2- ุงู„ู€ Rollback ุณู‡ู„ ุฌุฏู‹ุง ู„ูˆ ุญุตู„ุช ู…ุดูƒู„ุฉ ููŠ ุงู„ู†ุณุฎุฉ ุงู„ุฌุฏูŠุฏุฉุŒ ุชู‚ุฏุฑ ุชุฑุฌุน ุงู„ู…ุณุชุฎุฏู…ูŠู† ุชุงู†ูŠ ู„ู„ู†ุณุฎุฉ ุงู„ู‚ุฏูŠู…ุฉ ุจูƒู„ ุณู‡ูˆู„ุฉ. 3- ุงู„ุงุฎุชุจุงุฑ ุนู„ู‰ ุฃุฑุถ ุงู„ูˆุงู‚ุน ุชู‚ุฏุฑ ุชุฌุฑุจ ุงู„ู†ุณุฎุฉ ุงู„ุฌุฏูŠุฏุฉ ุนู„ู‰ ุนุฏุฏ ู…ุญุฏูˆุฏ ู…ู† ุงู„ู…ุณุชุฎุฏู…ูŠู† ุงู„ุฃูˆู„ (canary testing) ู‚ุจู„ ู…ุง ุชุนู…ู„ ุงู„ู€ switch ุงู„ูƒุงู…ู„. 4- ู…ุด ู‡ุชุจู‚ู‰ ุฎุงูŠู ุชุนู…ู„ Deploy. ุญุชู‰ ู„ูˆ ููŠู‡ ุฎุทุฃุŒ ููŠู‡ ุฏุงูŠู…ู‹ุง ู†ุณุฎุฉ ุณู„ูŠู…ุฉ ุชู‚ุฏุฑ ุชุฑุฌุน ู„ู‡ุง. โ€”โ€”โ€” ููŠู‡ ุฃูƒุชุฑ ู…ู† ุทุฑูŠู‚ุฉ ุชุทุจู‘ู‚ ุจูŠู‡ุง Blue-Green DeploymentุŒ ุนู„ู‰ ุญุณุจ ุงู„ุจู†ูŠุฉ ุงู„ุชุญุชูŠุฉ ุงู„ู„ูŠ ุจุชุดุชุบู„ ุนู„ูŠู‡ุง: 1- ู„ูˆ ุดุบุงู„ ุนู„ู‰ KubernetesุŒ ู…ู…ูƒู† ุชุณุชุฎุฏู… ู…ุซู„ู‹ุง: - ุงู„ู€ Services + Deployments ุนู„ุดุงู† ุชุชุญูƒู… ููŠ ุงู„ู€ Traffic. - ุฃุฏูˆุงุช ุฒูŠ Argo Rollouts ุฃูˆ Spinnaker 2- ู„ูˆ ุจุชุณุชุฎุฏู… Cloud Platforms ุฒูŠ AWS ุฃูˆ GCPุŒ ููŠู‡ ุฃุฏูˆุงุช built-in ุจุชุณุงุนุฏูƒ ุชุนู…ู„ ุงู„ุชุจุฏูŠู„ ู…ุง ุจูŠู† ุงู„ู†ุณุฎ. 3- ูˆู„ูˆ ุดุบุงู„ ุจุดูƒู„ ูŠุฏูˆูŠุŒ ู…ู…ูƒู† ุชุณุชุฎุฏู… load balancer (ุฒูŠ NGINX ุฃูˆ HAProxy) ูˆุชุบูŠู‘ุฑ ุงู„ุชูˆุฌูŠู‡ ู…ู†ู‡ ู„ู„ู†ุณุฎุฉ ุงู„ุฌุฏูŠุฏุฉ ูˆู‚ุช ู…ุง ุชูƒูˆู† ุฌุงู‡ุฒุฉ. โ€”โ€”โ€” - ู„ุงุฒู… ุงู„ู†ุณุฎุชูŠู† (Blue ูˆ Green) ูŠุดุชุบู„ูˆุง ุนู„ู‰ ู†ูุณ ู‚ุงุนุฏุฉ ุงู„ุจูŠุงู†ุงุช ุฃูˆ ูŠูƒูˆู† ููŠ ุญู„ ู…ู†ุงุณุจ ู„ู…ุฒุงู…ู†ุฉ ุงู„ุจูŠุงู†ุงุช. ูˆุฅู„ุง ู…ู…ูƒู† ุชูˆุงุฌู‡ ู…ุดุงูƒู„ ููŠ ุงู„ู€ schema ุฃูˆ ุงู„ุจูŠุงู†ุงุช ู†ูุณู‡ุง. - ู„ุงุฒู… ุชุชุฃูƒุฏ ุฅู† ุงู„ู€ Blue ู†ุณุฎุฉ ุทุจู‚ ุงู„ุฃุตู„ ู…ู† Green + ุงู„ุชุนุฏูŠู„ุงุช ุงู„ุฌุฏูŠุฏุฉุŒ ุนู„ุดุงู† ุชุถู…ู† ุฅู† rollback ู‡ูŠุดุชุบู„ ูƒูˆูŠุณ ู„ูˆ ุงุถุทุฑุฑุช ุชุฑุฌู‘ุน. โ€”โ€”โ€” ๐Ÿ‘€ ู‡ู„ ู„ุงุฒู… ุฏุงูŠู…ู‹ุง ุชุณุชุฎุฏู… Blue-Green DeploymentุŸ ู„ุง ู…ุด ุฏุงูŠู…ู‹ุง. ุงู„ุฃุณู„ูˆุจ ุฏู‡ ู…ููŠุฏ ุฌุฏู‹ุง ู„ูˆ: - ุงู„ุชุทุจูŠู‚ ุจุชุงุนูƒ ุจูŠุดุชุบู„ ู„ุนุฏุฏ ูƒุจูŠุฑ ู…ู† ุงู„ู…ุณุชุฎุฏู…ูŠู†. - ุงู„ุชุญุฏูŠุซุงุช ุงู„ู„ูŠ ุจุชุนู…ู„ู‡ุง ุญุณุงุณุฉ ูˆู…ู…ูƒู† ุชุนู…ู„ ู…ุดุงูƒู„ ูƒุจูŠุฑุฉ. ู„ูƒู† ู„ูˆ ู…ุดุฑูˆุน ุตุบูŠุฑ ุฃูˆ ู…ุด ูุงุฑู‚ ู…ุนุงูƒ downtime ุจุณูŠุทุŒ ู…ู…ูƒู† ุชุณุชุฎุฏู… ุฃุณุงู„ูŠุจ ุฃุจุณุท ุฒูŠ Rolling Deployment. โ€”โ€”โ€” ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ

DevGuide
11 079
Introducing Zustand (State Management) Zustand is a minimal, but fun and effective state management library. https://frontend
Introducing Zustand (State Management) Zustand is a minimal, but fun and effective state management library. https://frontendmasters.com/blog/introducing-zustand

DevGuide
11 079
ูƒูŠู ุบูŠุฑุช ุงู„ู€ containers ุจู†ุงุก ุงู„ุจุฑู…ุฌูŠุงุช ุนุงู„ู…ูŠุง | ูƒูˆุฑุณ Docker | Docker - Containers - Images - Volumes https://youtu.be/Xnu-zoqopNM

DevGuide
11 079
ุญุงุจุจ ุชุชู†ุงู‚ุด ููŠ ููƒุฑุฉ ุฃูˆ ุนู†ุฏูƒ ุงุณุชูุณุงุฑุŸ ุงุณุฃู„ู†ูŠ ููŠ ุฃูŠ ูˆู‚ุช ู…ู† ุฎู„ุงู„ ุญุณุงุจูŠ ุนู„ู‰ ู…ู†ุตุฉ ู‚ุจูŠู„ุฉ ๐Ÿ‘‡ https://qabilah.com/profile/alisamir
ุญุงุจุจ ุชุชู†ุงู‚ุด ููŠ ููƒุฑุฉ ุฃูˆ ุนู†ุฏูƒ ุงุณุชูุณุงุฑุŸ ุงุณุฃู„ู†ูŠ ููŠ ุฃูŠ ูˆู‚ุช ู…ู† ุฎู„ุงู„ ุญุณุงุจูŠ ุนู„ู‰ ู…ู†ุตุฉ ู‚ุจูŠู„ุฉ ๐Ÿ‘‡ https://qabilah.com/profile/alisamir

DevGuide
11 079
API Design ๐Ÿ’ฏ
API Design ๐Ÿ’ฏ

DevGuide
11 079
ุงู„ูุฑู‚ ุจูŠู† Hashing ูˆ Encoding ูˆ Encryption ๐Ÿ” . . ู„ูˆ ุจุชุดุชุบู„ ููŠ ุงู„ุจุงูƒ ุฅู†ุฏุŒ ุฃูˆ ุจุชุชุนุงู…ู„ ู…ุน APIsุŒ ุฃูˆ ุญุชู‰ ุจุชุดุชุบู„ ุนู„ู‰ ุชุทุจูŠู‚ ุจุณูŠุท ููŠู‡ ุนู…ู„ูŠุฉ ุชุณุฌูŠู„ ุฏุฎูˆู„โ€ฆ ุฃูƒูŠุฏ ู‚ุงุจู„ุช ู…ุตุทู„ุญุงุช ุฒูŠ Hashing ูˆ Encoding ูˆ Encryption. ูˆู…ู…ูƒู† ุชูุชูƒุฑ ุฅู†ู‡ู… ุดุจู‡ ุจุนุถุŒ ุฃูˆ ุฅู† ุฃูŠ ูˆุงุญุฏ ููŠู‡ู… "ุจูŠุฃู…ู† ุงู„ุจูŠุงู†ุงุช ูˆุฎู„ุงุต". ู„ูƒู† ุงู„ุญู‚ูŠู‚ุฉ ุฅู† ูƒู„ ูˆุงุญุฏ ู„ู‡ ู‡ุฏู ู…ุฎุชู„ู ุชู…ุงู…ู‹ุงุŒ ูˆู„ูˆ ุงุณุชุฎุฏู…ุช ุญุงุฌุฉ ุบู„ุท ู…ู…ูƒู† ุชูุชุญ ุซุบุฑุงุช ุฃู…ู†ูŠุฉ ูˆุฃู†ุช ู…ุด ูˆุงุฎุฏ ุจุงู„ูƒ. ุชุนุงู„ ู†ุฏุฑุฏุด ุดูˆูŠุฉ ุนู† ุงู„ูุฑู‚ ุจูŠู†ู‡ู…... โ€”โ€”โ€”
โœ… ุฃูˆู„ู‹ุง: ุงู„ู€ Hashing:
ุชุฎูŠู„ ุฅู†ูƒ ุจุชุนู…ู„ ุจุตู…ุฉ ู„ุฃูŠ ู…ุนู„ูˆู…ุฉโ€ฆ ู…ุด ุนู„ุดุงู† ุชุฑุฌุน ู„ู‡ุง ุจุนุฏูŠู†ุŒ ู„ูƒู† ุนู„ุดุงู† ุชุชุฃูƒุฏ ุฅู†ู‡ุง ู…ุชุบูŠุฑุชุด. ุงู„ู€ Hashing ุจูŠุงุฎุฏ ู‚ูŠู…ุฉ (ุฒูŠ password ู…ุซู„ู‹ุง)ุŒ ูˆูŠุทู„ุน ู…ู†ู‡ุง ุณู„ุณู„ุฉ ุซุงุจุชุฉ ุงู„ุทูˆู„ ุดูƒู„ู‡ุง ุนุดูˆุงุฆูŠ โ€“ ุงุณู…ู‡ุง Hash โ€“ ูˆุงู„ู„ูŠ ุจุชุณุชุฎุฏู…ู‡ุง ุนุดุงู† ุชุทุงุจู‚ ุฃูˆ ุชุชุญู‚ู‚ ู…ู† ุงู„ุจูŠุงู†ุงุช ู…ู† ุบูŠุฑ ู…ุง ุชุญุชุงุฌ ุชุฎุฒู† ุงู„ุฃุตู„. ๐ŸŽฏ ุงู„ู…ู‡ู… ู‡ู†ุง: - ุงู„ุนู…ู„ูŠุฉ ุฏูŠ One Way (ู…ููŠุด ุฑุฌูˆุน). - ู„ูˆ ุบูŠุฑุช ุญุฑู ูˆุงุญุฏุŒ ุงู„ู€ Hash ูƒู„ู‡ ุจูŠุชุบูŠุฑ. - ูˆุฏู‡ ุงู„ู„ูŠ ุจู†ุณุชุฎุฏู…ู‡ ู…ุซู„ู‹ุง ู„ู…ุง ู†ุฎุฒู† ุงู„ู€ Passwords ููŠ ู‚ูˆุงุนุฏ ุงู„ุจูŠุงู†ุงุช. โš ๏ธ ู„ูˆ ุญุฏ ุนุฑู ุงู„ู€ HashุŒ ู…ุด ู‡ูŠุนุฑู ูŠุทู„ุน ู…ู†ู‡ ุงู„ุจุงุณูˆุฑุฏ ุงู„ุฃุตู„ูŠ (ุจุณ ู…ู…ูƒู† ูŠุนู…ู„ Brute Force ูˆูŠุญุงูˆู„ ูŠุฎู…ู†ู‡). โ€”โ€”โ€”
โœ… ุซุงู†ูŠู‹ุง: ุงู„ู€ Encoding:
ุฏู‡ ู…ู„ูˆุด ุฃูŠ ุนู„ุงู‚ุฉ ุจุงู„ุณุฑูŠุฉ... ุงู„ู€ Encoding ู‡ูˆ ุทุฑูŠู‚ุฉ ุจู†ุญูˆู„ ุจู‡ุง ุงู„ุจูŠุงู†ุงุช ู„ุดูƒู„ ุชุงู†ูŠ ุนู„ุดุงู† ูŠุณู‡ู„ ุชุฎุฒูŠู†ู‡ุง ุฃูˆ ู†ู‚ู„ู‡ุง. ุฒูŠ Base64ุŒ ุงู„ู„ูŠ ุจุชุญูˆู„ ู…ุซู„ู‹ุง ุตูˆุฑุฉ ุฃูˆ ู†ุต ูŠุญุชูˆูŠ ุฑู…ูˆุฒ ุบุฑูŠุจุฉ ู„ุดูƒู„ ู…ูู‡ูˆู… ู„ุฃูŠ ู†ุธุงู…. ๐ŸŽฏ ุงู„ู…ู‡ู… ู‡ู†ุง: - ุงู„ุนู…ู„ูŠุฉ ุฏูŠ Two Way (ุชู‚ุฏุฑ ุชุฑุฌู‘ุน ุงู„ุจูŠุงู†ุงุช ุงู„ุฃุตู„ูŠุฉ). - ู…ููŠุด ุฃูŠ ุญู…ุงูŠุฉ ุฃูˆ ุชุดููŠุฑุŒ ุฃูŠ ุญุฏ ูŠุนุฑู ู†ูˆุน ุงู„ู€ encoding ูŠู‚ุฏุฑ ูŠููƒู‡ ุจุณู‡ูˆู„ุฉ. - ุงู„ู‡ุฏู ู…ู†ู‡ ุจุณ ุฅู†ูƒ ุชู†ู‚ู„ ุงู„ุฏุงุชุง ุจุฏูˆู† ู…ุง ุชุถูŠุน ุฃูˆ ุชุจูˆุธ. ู…ุซุงู„ ุจุณูŠุท: ู„ูˆ ุนู†ุฏูƒ some text ู…ู…ูƒู† ูŠุชุญูˆู„ ุจู€ Base64 ุฅู„ู‰: c29tZSB0ZXh0 โ€”โ€”โ€”
โœ… ุซุงู„ุซู‹ุง: ุงู„ู€ Encryption:
ุฃู†ุช ุนุงูŠุฒ ุชุจุนุช ุฏุงุชุง ุณุฑูŠุฉ ู„ุญุฏุŒ ูˆู…ุด ุนุงูŠุฒ ุฃูŠ ุญุฏ ููŠ ุงู„ู†ุต ูŠูู‡ู…ู‡ุง. ูุจุชุนู…ู„ ู„ู‡ุง ุชุดููŠุฑ ุจุงุณุชุฎุฏุงู… ู…ูุชุงุญ (Key)ุŒ ูˆุงู„ู…ุณุชู„ู… ุงู„ู„ูŠ ู…ุนุงู‡ ุงู„ู…ูุชุงุญ ูŠู‚ุฏุฑ ูŠููƒู‡ุง. ๐ŸŽฏ ุงู„ู…ู‡ู… ู‡ู†ุง: - ุงู„ุนู…ู„ูŠุฉ ุฏูŠ Two WayุŒ ุจุณ ู„ุงุฒู… ุงู„ู…ูุชุงุญ. - ู„ูˆ ุงู„ู…ูุชุงุญ ุงุชุณุฑู‘ุจ ุฃูˆ ุถุงุนุŒ ุฃูŠ ุญุฏ ูŠู‚ุฏุฑ ูŠููƒ ุงู„ุจูŠุงู†ุงุช. - ุจุชุณุชุฎุฏู…ู‡ุง ููŠ ุฅุฑุณุงู„ ู…ุนู„ูˆู…ุงุช ุญุณุงุณุฉ ุฒูŠ ุจุทุงู‚ุงุช ุงู„ุฏูุน ุฃูˆ ุจูŠุงู†ุงุช ุงู„ู…ุณุชุฎุฏู…ูŠู†. ููŠู‡ ู†ูˆุนูŠู† ู…ู† ุงู„ู€ Encryption: - ุงู„ู€ Symmetric: ู†ูุณ ุงู„ู…ูุชุงุญ ุจูŠุดูู‘ุฑ ูˆูŠููƒ (ุฒูŠ AES). - ุงู„ู€ Asymmetric: ู…ูุชุงุญูŠู†ุŒ ูˆุงุญุฏ ุจูŠุดูู‘ุฑ (public) ูˆุงู„ุชุงู†ูŠ ุจูŠููƒ (private) โ€“ ุฒูŠ ุงู„ู„ูŠ ุจูŠุณุชุฎุฏู… ููŠ HTTPS. โ€”โ€”โ€” ๐Ÿ’ก ุฅู…ุชู‰ ุชุณุชุฎุฏู… ู…ูŠู†ุŸ - ุจุชุฎุฒู† passwordsุŸ ูŠุจู‚ู‰ Hashing - ุจุชุจุนุช ุตูˆุฑุฉ ุฃูˆ ุฏุงุชุง ุนุจุฑ APIุŸ ูŠุจู‚ู‰ Encoding - ุจุชุจุนุช ู…ุนู„ูˆู…ุงุช ุญุณุงุณุฉ ุฒูŠ tokens ุฃูˆ ุจูŠุงู†ุงุช ู…ุณุชุฎุฏู…ุŸ ูŠุจู‚ู‰ Encryption โ€”โ€”โ€” ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ

DevGuide
11 079
How to Learn Databases? ๐Ÿค” 1- Database Fundamentals 2- Data Models and Types 3- Querying and Language 4- Indexing and Optimiz
How to Learn Databases? ๐Ÿค” 1- Database Fundamentals 2- Data Models and Types 3- Querying and Language 4- Indexing and Optimization 5- Security, Backups, and Scaling 6- Tools and Ecosystem

DevGuide
11 079
16 Coding Patterns That Make Interviews Easy ๐Ÿ’ฏ 1- Two-Pointer Technique 2- HashMaps 3- Linked Lists 4- Fast and Slow Pointer
16 Coding Patterns That Make Interviews Easy ๐Ÿ’ฏ 1- Two-Pointer Technique 2- HashMaps 3- Linked Lists 4- Fast and Slow Pointers 5- Sliding Window Technique 6- Binary Search 7- Stacks 8- Heaps 9- Prefix Sum 10- Trees 11- Tries 12- Graphs 13- Backtracking 14- Dynamic Programming 15- Greedy Algorithms 16- Intervals

DevGuide
11 079
The Most Confused Concepts in Engineering https://youtu.be/z5lpHsl8qQ4 โ€”โ€”โ€” ๐Ÿ’ก ุฅู† ุดุงุก ุงู„ู„ู‡ ู‚ุฑูŠุจ ู†ุดุฑุญ ุงู„ูุฑู‚ ุจูŠู†ู‡ู… ุจุงู„ุนุฑุจูŠ

DevGuide
11 079
ู…ูู‡ูˆู… ุงู„ู€ Atomicity ๐Ÿ’ฏ . . ุชุฎูŠู„ ุฅู†ูƒ ุดุบุงู„ ุนู„ู‰ ุณูŠุณุชู… ุชุญูˆูŠู„ ูู„ูˆุณ. ุงู„ุนู…ูŠู„ ุญูˆู„ 1000 ุฌู†ูŠู‡ ู…ู† ุญุณุงุจู‡ุŒ ุงู„ุณูŠุณุชู… ุฎุตู… ุงู„ูู„ูˆุณโ€ฆ ูˆู‚ุจู„ ู…ุง ูŠุญุทู‡ู… ููŠ ุญุณุงุจ ุงู„ุดุฎุต ุงู„ุชุงู†ูŠุŒ ุงู„ูƒู‡ุฑุจุงุก ู‚ุทุนุช. ูƒุฏู‡ ุงู„ูู„ูˆุณ ุทุงุฑุชุŸ ูˆู„ุง ู‡ุชุฑุฌุนุŸ ูˆู„ุง ู‡ุชุชุญูˆู„ุŸ ุงู„ุณุคุงู„ ุฏู‡ ุจูŠุฌุงูˆุจ ุนู„ูŠู‡ ู…ูู‡ูˆู… ู…ู‡ู… ุฌุฏู‹ุง ููŠ ุงู„ุจุฑู…ุฌุฉ ูˆุงู„ู€ Databasese ูˆู‡ูˆ ุงู„ู€ Atomicity ูŠุง ุฅู…ุง ูƒู„ ุงู„ุฎุทูˆุงุช ุชุชู… ุจุงู„ูƒุงู…ู„...ูŠุง ู…ููŠุด ูˆู„ุง ุฎุทูˆุฉ ุชุชู…. โ€”โ€”โ€” ๐Ÿค” ูŠุนู†ูŠ ุฅูŠู‡ AtomicityุŸ ุชุฎูŠู„ ุฅู†ูƒ ุจุชุณุญุจ ูู„ูˆุณ ู…ู† ุงู„ู€ ATM. ุงู„ุนู…ู„ูŠุฉ ุฏูŠ ููŠู‡ุง ุฎุทูˆุชูŠู†: 1- ุงู„ุจู†ูƒ ูŠุฎุตู… ุงู„ู…ุจู„ุบ ู…ู† ุญุณุงุจูƒ. 2- ุงู„ู…ุงูƒูŠู†ุฉ ุชุทู„ุน ู„ูƒ ุงู„ูู„ูˆุณ. ู„ูˆ ุญุตู„ ุฅู† ุงู„ุณูŠุณุชู… ุนู…ู„ ุงู„ุฎุทูˆุฉ ุงู„ุฃูˆู„ู‰ ุจุณุŒ ูˆูˆู‚ู ูุฌุฃุฉ ู‚ุจู„ ู…ุง ูŠูˆุตู„ูƒ ุงู„ูู„ูˆุณโ€ฆ ุฃู†ุช ูƒุฏู‡ ุฎุณุฑุช ูู„ูˆุณูƒุŸ ู‡ู†ุง ุจู‚ู‰ ูŠูŠุฌูŠ ุฏูˆุฑ ุงู„ู€ Atomicity. ุงู„ู€ Atomicity ู…ุนู†ุงู‡ุง ุฅู† ุงู„ุนู…ู„ูŠุฉ ูƒู„ู‡ุง ุชุชู†ูุฐ ุจุงู„ูƒุงู…ู„ ู…ู† ุฃูˆู„ู‡ุง ู„ุขุฎุฑู‡ุงุŒ ุฃูˆ ู…ุง ุชุชู†ูุฐ ุฎุงู„ุต. ูŠุนู†ูŠ All or Nothing. ููŠ ู…ุซุงู„ ุงู„ู€ ATM: ูŠุง ุงู„ุจู†ูƒ ูŠุฎุตู… ูˆุชุงุฎุฏ ุงู„ูู„ูˆุณุŒ ูŠุง ู…ูŠุญุตู„ุด ุฃูŠ ุญุงุฌุฉ ุฃุตู„ู‹ุง. ู…ููŠุด ู†ุต ุนู…ู„ูŠุฉ. โ€”โ€”โ€” ๐Ÿ’ก ุฅุฒุงูŠ ุฏู‡ ุจูŠุชู…ุŸ ุงู„ู€ Atomicity ู‡ูŠ ูˆุงุญุฏุฉ ู…ู† ุงู„ู€ ACID Properties ุงู„ู„ูŠ ุจุชุถู…ู† ุณู„ุงู…ุฉ ุงู„ุจูŠุงู†ุงุช ุฎุตูˆุตู‹ุง ููŠ ุงู„ู€ Databases. ุนู„ุดุงู† ุชุญู‚ู‚ ุงู„ู€ AtomicityุŒ ุงู„ุณูŠุณุชู… ุจูŠุณุชุฎุฏู… ุญุงุฌุฉ ุงุณู…ู‡ุง Transactions. ูƒู„ Transaction ุจุชุชูƒูˆู† ู…ู† ู…ุฌู…ูˆุนุฉ ุนู…ู„ูŠุงุช (ุฒูŠ insertุŒ updateุŒ delete)ุŒ ูˆุงู„ู…ูุฑูˆุถ ุฅู† ูƒู„ ุงู„ุนู…ู„ูŠุงุช ุฏูŠ ูŠุญุตู„ู‡ุง commit ููŠ ู†ูุณ ุงู„ูˆู‚ุชุŒ ุฃูˆ ูŠุญุตู„ู‡ุง rollback ู„ูˆ ุญุตู„ ุฃูŠ ุฎุทุฃ. ู…ุซุงู„:
BEGIN TRANSACTION;

UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;

COMMIT;
ู„ูˆ ุฃูŠ ูˆุงุญุฏุฉ ู…ู† ุงู„ู€ 2 updates ูุดู„ุชุŒ ุงู„ู€ transaction ูƒู„ู‡ุง ู‡ุชุชููƒุŒ ูˆุงู„ุฏุงุชุง ุชุฑุฌุน ุฒูŠ ู…ุง ูƒุงู†ุช ูƒุฃู† ู…ููŠุด ุญุงุฌุฉ ุญุตู„ุช. โ€”โ€”โ€” โš ๏ธ ุฅูŠู‡ ุงู„ู„ูŠ ู…ู…ูƒู† ูŠุจูˆู‘ุธ ุงู„ู€ AtomicityุŸ - ู‚ุทุน ุงู„ูƒู‡ุฑุจุงุก ุฃูˆ ุฃูŠ Crash ููŠ ุงู„ู†ุต. - ุงู„ู€ Exceptions ุฃูˆ ุงู„ู€ Errors ููŠ ุฌุฒุก ู…ู† ุงู„ู€ transaction. - ุฅู†ูƒ ุชู†ูุฐ queries ู…ู† ุบูŠุฑ transaction ุฃุตู„ู‹ุง ูˆู„ูˆ ุงู„ุณูŠุณุชู… ู…ุด ุจูŠุทุจู‚ ุงู„ู€ Atomicity ุตุญุŒ ุงู„ุฏุงุชุง ู…ู…ูƒู† ุชุจู‚ู‰ corruptedุŒ ูˆุณุงุนุชู‡ุง ุฑุจู†ุง ูŠุณุชุฑ. โ€”โ€”โ€” ๐Ÿ“Œ ุฅูŠู‡ ุงู„ูุฑู‚ ุจูŠู† ุงู„ู€ Atomicity ูˆุจูŠู† ุงู„ู€ ConsistencyุŸ ุงู„ู€ Atomicity ุจุชุชูƒู„ู… ุนู† ู‡ู„ ุงู„ุนู…ู„ูŠุฉ ูƒู„ู‡ุง ุชู…ุช ุฃูˆ ู„ุงุŸ ุงู„ู€ Consistency ุจุชุณุฃู„ ู‡ู„ ุงู„ุฏุงุชุง ุจุนุฏ ุงู„ุนู…ู„ูŠุฉ ููŠ ุญุงู„ุฉ ุตุญูŠุญุฉุŸ ูŠุนู†ูŠ: - ุงู„ู€ Atomicity = ุญุตู„ commit ูƒุงู…ู„ ูˆู„ุง ู„ุงุŸ - ุงู„ู€ Consistency = ู„ูˆ ุญุตู„ุŒ ุงู„ุฏุงุชุง ุจู‚ุช consistent ูˆู„ุง ู„ุงุŸ ุงู„ุงุชู†ูŠู† ู…ูƒู…ู„ูŠู† ุจุนุถุŒ ุจุณ ู…ุด ู†ูุณ ุงู„ุญุงุฌุฉ. โ€”โ€”โ€” ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ

DevGuide
11 079
ู…ูู‡ูˆู… ุงู„ู€ Atomicity ๐Ÿ’ฏ . . ุชุฎูŠู„ ุฅู†ูƒ ุดุบุงู„ ุนู„ู‰ ุณูŠุณุชู… ุชุญูˆูŠู„ ูู„ูˆุณ. ุงู„ุนู…ูŠู„ ุญูˆู„ 1000 ุฌู†ูŠู‡ ู…ู† ุญุณุงุจู‡ุŒ ุงู„ุณูŠุณุชู… ุฎุตู… ุงู„ูู„ูˆุณโ€ฆ ูˆู‚ุจู„ ู…ุง ูŠุญุทู‡ู… ููŠ ุญุณุงุจ ุงู„ุดุฎุต ุงู„ุชุงู†ูŠุŒ ุงู„ูƒู‡ุฑุจุงุก ู‚ุทุนุช. ูƒุฏู‡ ุงู„ูู„ูˆุณ ุทุงุฑุชุŸ ูˆู„ุง ู‡ุชุฑุฌุนุŸ ูˆู„ุง ู‡ุชุชุญูˆู„ุŸ ุงู„ุณุคุงู„ ุฏู‡ ุจูŠุฌุงูˆุจ ุนู„ูŠู‡ ู…ูู‡ูˆู… ู…ู‡ู… ุฌุฏู‹ุง ููŠ ุงู„ุจุฑู…ุฌุฉ ูˆุงู„ู€ Databasese ูˆู‡ูˆ ุงู„ู€ Atomicity ูŠุง ุฅู…ุง ูƒู„ ุงู„ุฎุทูˆุงุช ุชุชู… ุจุงู„ูƒุงู…ู„...ูŠุง ู…ููŠุด ูˆู„ุง ุฎุทูˆุฉ ุชุชู…. โ€”โ€”โ€” ๐Ÿค” ูŠุนู†ูŠ ุฅูŠู‡ AtomicityุŸ ุชุฎูŠู„ ุฅู†ูƒ ุจุชุณุญุจ ูู„ูˆุณ ู…ู† ุงู„ู€ ATM. ุงู„ุนู…ู„ูŠุฉ ุฏูŠ ููŠู‡ุง ุฎุทูˆุชูŠู†: 1- ุงู„ุจู†ูƒ ูŠุฎุตู… ุงู„ู…ุจู„ุบ ู…ู† ุญุณุงุจูƒ. 2- ุงู„ู…ุงูƒูŠู†ุฉ ุชุทู„ุน ู„ูƒ ุงู„ูู„ูˆุณ. ู„ูˆ ุญุตู„ ุฅู† ุงู„ุณูŠุณุชู… ุนู…ู„ ุงู„ุฎุทูˆุฉ ุงู„ุฃูˆู„ู‰ ุจุณุŒ ูˆูˆู‚ู ูุฌุฃุฉ ู‚ุจู„ ู…ุง ูŠูˆุตู„ูƒ ุงู„ูู„ูˆุณโ€ฆ ุฃู†ุช ูƒุฏู‡ ุฎุณุฑุช ูู„ูˆุณูƒุŸ ู‡ู†ุง ุจู‚ู‰ ูŠูŠุฌูŠ ุฏูˆุฑ ุงู„ู€ Atomicity. ุงู„ู€ Atomicity ู…ุนู†ุงู‡ุง ุฅู† ุงู„ุนู…ู„ูŠุฉ ูƒู„ู‡ุง ุชุชู†ูุฐ ุจุงู„ูƒุงู…ู„ ู…ู† ุฃูˆู„ู‡ุง ู„ุขุฎุฑู‡ุงุŒ ุฃูˆ ู…ุง ุชุชู†ูุฐ ุฎุงู„ุต. ูŠุนู†ูŠ All or Nothing. ููŠ ู…ุซุงู„ ุงู„ู€ ATM: ูŠุง ุงู„ุจู†ูƒ ูŠุฎุตู… ูˆุชุงุฎุฏ ุงู„ูู„ูˆุณุŒ ูŠุง ู…ูŠุญุตู„ุด ุฃูŠ ุญุงุฌุฉ ุฃุตู„ู‹ุง. ู…ููŠุด ู†ุต ุนู…ู„ูŠุฉ. โ€”โ€”โ€” ๐Ÿ’ก ุฅุฒุงูŠ ุฏู‡ ุจูŠุชู…ุŸ ุงู„ู€ Atomicity ู‡ูŠ ูˆุงุญุฏุฉ ู…ู† ุงู„ู€ ACID Properties ุงู„ู„ูŠ ุจุชุถู…ู† ุณู„ุงู…ุฉ ุงู„ุจูŠุงู†ุงุช ุฎุตูˆุตู‹ุง ููŠ ุงู„ู€ Databases. ุนู„ุดุงู† ุชุญู‚ู‚ ุงู„ู€ AtomicityุŒ ุงู„ุณูŠุณุชู… ุจูŠุณุชุฎุฏู… ุญุงุฌุฉ ุงุณู…ู‡ุง Transactions. ูƒู„ Transaction ุจุชุชูƒูˆู† ู…ู† ู…ุฌู…ูˆุนุฉ ุนู…ู„ูŠุงุช (ุฒูŠ insertุŒ updateุŒ delete)ุŒ ูˆุงู„ู…ูุฑูˆุถ ุฅู† ูƒู„ ุงู„ุนู…ู„ูŠุงุช ุฏูŠ ูŠุญุตู„ู‡ุง commit ููŠ ู†ูุณ ุงู„ูˆู‚ุชุŒ ุฃูˆ ูŠุญุตู„ู‡ุง rollback ู„ูˆ ุญุตู„ ุฃูŠ ุฎุทุฃ. ู…ุซุงู„: BEGIN TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE id = 1; UPDATE accounts SET balance = balance + 100 WHERE id = 2; COMMIT; ู„ูˆ ุฃูŠ ูˆุงุญุฏุฉ ู…ู† ุงู„ู€ 2 updates ูุดู„ุชุŒ ุงู„ู€ transaction ูƒู„ู‡ุง ู‡ุชุชููƒุŒ ูˆุงู„ุฏุงุชุง ุชุฑุฌุน ุฒูŠ ู…ุง ูƒุงู†ุช ูƒุฃู† ู…ููŠุด ุญุงุฌุฉ ุญุตู„ุช. โ€”โ€”โ€” โš ๏ธ ุฅูŠู‡ ุงู„ู„ูŠ ู…ู…ูƒู† ูŠุจูˆู‘ุธ ุงู„ู€ AtomicityุŸ - ู‚ุทุน ุงู„ูƒู‡ุฑุจุงุก ุฃูˆ ุฃูŠ Crash ููŠ ุงู„ู†ุต. - ุงู„ู€ Exceptions ุฃูˆ ุงู„ู€ Errors ููŠ ุฌุฒุก ู…ู† ุงู„ู€ transaction. - ุฅู†ูƒ ุชู†ูุฐ queries ู…ู† ุบูŠุฑ transaction ุฃุตู„ู‹ุง ูˆู„ูˆ ุงู„ุณูŠุณุชู… ู…ุด ุจูŠุทุจู‚ ุงู„ู€ Atomicity ุตุญุŒ ุงู„ุฏุงุชุง ู…ู…ูƒู† ุชุจู‚ู‰ corruptedุŒ ูˆุณุงุนุชู‡ุง ุฑุจู†ุง ูŠุณุชุฑ. โ€”โ€”โ€” ๐Ÿ“Œ ุฅูŠู‡ ุงู„ูุฑู‚ ุจูŠู† ุงู„ู€ Atomicity ูˆุจูŠู† ุงู„ู€ ConsistencyุŸ ุงู„ู€ Atomicity ุจุชุชูƒู„ู… ุนู† ู‡ู„ ุงู„ุนู…ู„ูŠุฉ ูƒู„ู‡ุง ุชู…ุช ุฃูˆ ู„ุงุŸ ุงู„ู€ Consistency ุจุชุณุฃู„ ู‡ู„ ุงู„ุฏุงุชุง ุจุนุฏ ุงู„ุนู…ู„ูŠุฉ ููŠ ุญุงู„ุฉ ุตุญูŠุญุฉุŸ ูŠุนู†ูŠ: - ุงู„ู€ Atomicity = ุญุตู„ commit ูƒุงู…ู„ ูˆู„ุง ู„ุงุŸ - ุงู„ู€ Consistency = ู„ูˆ ุญุตู„ุŒ ุงู„ุฏุงุชุง ุจู‚ุช consistent ูˆู„ุง ู„ุงุŸ ุงู„ุงุชู†ูŠู† ู…ูƒู…ู„ูŠู† ุจุนุถุŒ ุจุณ ู…ุด ู†ูุณ ุงู„ุญุงุฌุฉ. โ€”โ€”โ€” ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ

DevGuide
11 079
ู…ูู‡ูˆู… ุงู„ู€ Dependency Inversion Principle ๐Ÿ’ก . . ููŠู‡ ู…ุจุฏุฃ ู…ู† ู…ุจุงุฏุฆ SOLID ุจูŠุบูŠู‘ุฑ ุทุฑูŠู‚ุฉ ุชููƒูŠุฑูƒ ููŠ ุชุตู…ูŠู… ุงู„ูƒูˆุฏ ุจุดูƒู„ ูƒุจูŠุฑ ุฌุฏู‹ุง... ู…ุจุฏุฃ ุฃูˆู„ ู…ุง ุชูู‡ู…ู‡ ูƒูˆูŠุณ ูˆุชุทุจู‘ู‚ู‡ ุตุญุŒ ู‡ุชุญุณ ุฅู† ุงู„ู…ุดุฑูˆุน ุจู‚ู‰ modular ุฃูƒุชุฑุŒ ูˆุงู„ู€ testing ุจู‚ู‰ ุฃุณู‡ู„ุŒ ูˆุงู„ู€ bugs ุจู‚ุช ู‚ู„ูŠู„ุฉ ุฅู„ู‰ ุญุฏ ู…ุง... ุชุนุงู„ ู†ุฏุฑุฏุด ุดูˆูŠุฉ ุนู† ู…ุจุฏุฃ ุงู„ู€ Dependency Inversion... โ€”โ€”โ€” ๐Ÿ“Œ ูŠุนู†ูŠ ุฅูŠู‡ Dependency Inversion PrincipleุŸ ุงู„ู…ุจุฏุฃ ุฏู‡ ุจูŠู‚ูˆู„: "High-level modules should not depend on low-level modules. Both should depend on abstractions." ูˆ "Abstractions should not depend on details. Details should depend on abstractions." ูŠุนู†ูŠ ู„ู…ุง ุชูŠุฌูŠ ุชุจู†ูŠ ุฌุฒุก ูƒุจูŠุฑ ู…ู† ุงู„ุณูŠุณุชู… (ุฒูŠ ู…ุซู„ุงู‹ order service ููŠ ุชุทุจูŠู‚ ุชุฌุงุฑุฉ ุฅู„ูƒุชุฑูˆู†ูŠุฉ)ุŒ ุงู„ู…ูุฑูˆุถ ู…ูŠูƒู†ุด ุงู„ู€ high-level logic (ุฒูŠ ุฅุฒุงูŠ ุงู„ู€ order ุจูŠุชู…) ุจูŠุนุชู…ุฏ ู…ุจุงุดุฑุฉ ุนู„ู‰ ุงู„ู€ details ุฒูŠ ู…ุซู„ุง API ู…ุนูŠู† ุฃูˆ database ู…ุนูŠู†ุฉ ุฃูˆ class ุจุชุจุนุช ุฅูŠู…ูŠู„ุงุช. ุจุฏู„ ูƒุฏู‡ุŒ ุงู„ู…ูุฑูˆุถ ูŠูƒูˆู† ุจูŠุนุชู…ุฏ ุนู„ู‰ abstraction (interface ุฃูˆ contract)ุŒ ุจุญูŠุซ ุงู„ุชูุงุตูŠู„ ุฏูŠ ุชู‚ุฏุฑ ุชุชุบูŠุฑ ุจุณู‡ูˆู„ุฉ ุจุนุฏ ูƒุฏู‡ ู…ู† ุบูŠุฑ ู…ุง ุชุบูŠู‘ุฑ ููŠ ุงู„ู€ business logic ู†ูุณู‡. โ€”โ€”โ€”
๐Ÿ“ฆ ู…ุซุงู„ ุจุณูŠุท:
[ ูƒู„ ุงู„ุฃูƒูˆุงุฏ ููŠ ุงู„ุชุนู„ูŠู‚ุงุช ๐Ÿ‘‡ ]
class EmailService {
  sendEmail(to: string, body: string) {
    // logic to send email
  }
}

class OrderService {
  private emailService = new EmailService();

  placeOrder(orderData: any) {
    // logic to place order
    this.emailService.sendEmail(orderData.customerEmail, "Order placed!");
  }
}
ูƒุฏู‡ ุงู„ู€ OrderService ู…ุนุชู…ุฏ ุจุดูƒู„ ู…ุจุงุดุฑ ุนู„ู‰ ุงู„ู€ EmailService. ู„ูˆ ุญุจูŠุช ุชุบูŠุฑ ูˆุณูŠู„ุฉ ุฅุฑุณุงู„ ุงู„ุฅูŠู…ูŠู„ ุฃูˆ ุชุจุนุชู‡ุง ุนุจุฑ SMS ุฃูˆ push notificationุŒ ู‡ุชุถุทุฑ ุชุบูŠู‘ุฑ ููŠ ุงู„ูƒูˆุฏ ุจุชุงุน OrderService ู†ูุณู‡โ€ฆ ูˆุฏู‡ ุถุฏ ู…ุจุฏุฃ open/closed principle ูƒู…ุงู†. โ€”โ€”โ€”
โœ… ุงู„ุญู„ุŸ
interface Notifier {
  notify(to: string, message: string): void;
}

class EmailService implements Notifier {
  notify(to: string, message: string) {
    // send email
  }
}

class SMSService implements Notifier {
  notify(to: string, message: string) {
    // send sms
  }
}

class OrderService {
  constructor(private notifier: Notifier) {}

  placeOrder(orderData: any) {
    // logic to place order
    this.notifier.notify(orderData.customerContact, "Order placed!");
  }
}
ูƒุฏู‡ ุงู„ู€ OrderService ู…ูŠุนุฑูุด ุฃูŠ ุญุงุฌุฉ ุนู† ุงู„ู€ implementation ุจุชุงุน ุงู„ู€ notifierุŒ ุณูˆุงุก ูƒุงู† email ุฃูˆ sms. ู‡ูˆ ุจุณ ุจูŠุชุนุงู…ู„ ู…ุน abstraction (interface ุงุณู…ู‡ุง Notifier). ูˆุจุงู„ุชุงู„ูŠ ุชู‚ุฏุฑ ุชุบูŠุฑ ุงู„ู€ implementation ููŠ ุฃูŠ ูˆู‚ุช ู…ู† ุบูŠุฑ ู…ุง ุชู„ู…ุณ ุงู„ู€ OrderService. โ€”โ€”โ€”
๐Ÿ’ก ุฅุฒุงูŠ ุฏู‡ ู‡ูŠูุฑู‚ ู…ุนุงูƒุŸ
- ุงู„ูƒูˆุฏ ุจุชุงุนูƒ ุจู‚ู‰ loosely coupled. - ุจู‚ู‰ modular ูˆุฃุณู‡ู„ ููŠ ุงู„ุชุนุฏูŠู„ ูˆุงู„ุตูŠุงู†ุฉ. - ุงู„ู€ testing ุจู‚ู‰ ุฃุจุณุท ู„ุฃู†ูƒ ุชู‚ุฏุฑ ุชุนู…ู„ mock ู„ู€ Notifier ุจุณู‡ูˆู„ุฉ. - ุจู‚ูŠุช ุชู‚ุฏุฑ ุชุจุฏู‘ู„ ุงู„ู€ implementation ู…ู† ุบูŠุฑ ู…ุง ุชุนู…ู„ refactor ุชู‚ูŠู„. โ€”โ€”โ€” ุงู„ู€ Dependency Inversion ุจูŠุฎู„ูŠูƒ ุฏุงูŠู…ู‹ุง ุชููƒุฑ ููŠ dependencies ุนู„ู‰ ุฅู†ู‡ุง ุดูŠุก ู…ู…ูƒู† ูŠุชุบูŠุฑโ€ฆ ูุจุฏู„ ู…ุง ุชุจู†ูŠ ุนู„ูŠู‡ุง ุจุดูƒู„ ู…ุจุงุดุฑุŒ ุงุณุชุฎุฏู… abstraction ุชูุตู„ ุจู‡ ุจูŠู† high-level logic ูˆ low-level details. โ€”โ€”โ€” ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ

DevGuide
11 079
Struggling with authentication bugs? โš ๏ธ Learn clean NextAuth.js patterns to secure your Next.js app like a pro!
+6
Struggling with authentication bugs? โš ๏ธ Learn clean NextAuth.js patterns to secure your Next.js app like a pro!

DevGuide
11 079
System Design was HARD until I Learned these 30 Concepts ๐Ÿ’ฏ https://medium.com/algomaster-io/system-design-was-hard-until-i-l
System Design was HARD until I Learned these 30 Concepts ๐Ÿ’ฏ https://medium.com/algomaster-io/system-design-was-hard-until-i-learned-these-30-concepts-78042ff99cae