ู
ูููู
ุงูู 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 ูู ุญุตู ุฃู ุฎุทุฃ.
ู ุซุงู:
ูู ุฃู ูุงุญุฏุฉ ู ู ุงูู 2 updates ูุดูุชุ ุงูู transaction ูููุง ูุชุชููุ ูุงูุฏุงุชุง ุชุฑุฌุน ุฒู ู ุง ูุงูุช ูุฃู ู ููุด ุญุงุฌุฉ ุญุตูุช.
โโโ
โ ๏ธ ุฅูู ุงููู ู ู ูู ูุจููุธ ุงูู Atomicityุ
- ุงูู Exceptions ุฃู ุงูู Errors ูู ุฌุฒุก ู ู ุงูู transaction.
- ุฅูู ุชููุฐ queries ู ู ุบูุฑ transaction ุฃุตููุง
ููู ุงูุณูุณุชู ู ุด ุจูุทุจู ุงูู Atomicity ุตุญุ ุงูุฏุงุชุง ู ู ูู ุชุจูู corruptedุ ูุณุงุนุชูุง ุฑุจูุง ูุณุชุฑ.
โโโ
๐ ุฅูู ุงููุฑู ุจูู ุงูู Atomicity ูุจูู ุงูู Consistencyุ
ุงูู Atomicity ุจุชุชููู ุนู ูู ุงูุนู ููุฉ ูููุง ุชู ุช ุฃู ูุงุ
ุงูู Consistency ุจุชุณุฃู ูู ุงูุฏุงุชุง ุจุนุฏ ุงูุนู ููุฉ ูู ุญุงูุฉ ุตุญูุญุฉุ
ูุนูู:
- ุงูู Atomicity = ุญุตู commit ูุงู ู ููุง ูุงุ
- ุงูู Consistency = ูู ุญุตูุ ุงูุฏุงุชุง ุจูุช consistent ููุง ูุงุ
ุงูุงุชููู ู ูู ููู ุจุนุถุ ุจุณ ู ุด ููุณ ุงูุญุงุฌุฉ.
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
.
.
ุชุฎูู ุฅูู ุดุบุงู ุนูู ุณูุณุชู ุชุญููู ูููุณ. ุงูุนู ูู ุญูู 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ุ
- ุงูู Exceptions ุฃู ุงูู Errors ูู ุฌุฒุก ู ู ุงูู transaction.
- ุฅูู ุชููุฐ queries ู ู ุบูุฑ transaction ุฃุตููุง
ููู ุงูุณูุณุชู ู ุด ุจูุทุจู ุงูู Atomicity ุตุญุ ุงูุฏุงุชุง ู ู ูู ุชุจูู corruptedุ ูุณุงุนุชูุง ุฑุจูุง ูุณุชุฑ.
โโโ
๐ ุฅูู ุงููุฑู ุจูู ุงูู Atomicity ูุจูู ุงูู Consistencyุ
ุงูู Atomicity ุจุชุชููู ุนู ูู ุงูุนู ููุฉ ูููุง ุชู ุช ุฃู ูุงุ
ุงูู Consistency ุจุชุณุฃู ูู ุงูุฏุงุชุง ุจุนุฏ ุงูุนู ููุฉ ูู ุญุงูุฉ ุตุญูุญุฉุ
ูุนูู:
- ุงูู Atomicity = ุญุตู commit ูุงู ู ููุง ูุงุ
- ุงูู Consistency = ูู ุญุตูุ ุงูุฏุงุชุง ุจูุช consistent ููุง ูุงุ
ุงูุงุชููู ู ูู ููู ุจุนุถุ ุจุณ ู ุด ููุณ ุงูุญุงุฌุฉ.
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
โค10
ุฏุฑุฏุดุฉ ุณุฑูุนุฉ ุนู ุงูู ACID ูู ุงูู Database โก๏ธ
.
.
ุชุฎูู ุฅูู ุดุบุงู ุนูู system ุถุฎู ุฒู ุชุทุจูู ุจููู ุฃู ู ููุน ุจูุน ุฃูููุงููโฆ
ูู ุงููุญุธุฉ ุงููู ุงูู ุณุชุฎุฏู ุจูุญููู ูููุง ูููุณ ุฃู ุจูุฃูุฏ ุนู ููุฉ ุดุฑุงุกุ ูุงุฒู ุชููู ู ุชุฃูุฏ ุฅู ุงูุจูุงูุงุช ุฏู ู ุญููุธุฉ ุตุญุ ูู ููุด ุฃู ุงุญุชู ุงู ูุญุตู ูููุง ุฎูู ุฃู ุชุถุงุฑุจุ ุญุชู ูู ุงูุณูุฑูุฑ ููุน ุฃู ุงูููุฑุจุงุก ูุทุนุช! โ ๏ธ
ูููุง ููุฌู ุฏูุฑ ุงูู ACID ููู ุฏู ุงูุนู ูุฏ ุงูููุฑู ุงููู ุจูุฎูู ุงูู Database ุชููู ุซุงุจุชุฉุ ู ูุซููุฉุ ูู ุชููุนุฉ ุงูุณููู ูู ูู ุงูุญุงูุงุชุ ุณูุงุก ูุงู ุนูุฏู ุนู ููุฉ ูุงุญุฏุฉ ุจุณูุทุฉ ุฃู ุขูุงู ุงูู transactions ูู ููุณ ุงูุซุงููุฉ.
ุงูู ACID ุจูุญุท ุฃุฑุจุน ููุงุนุฏ ุฃุณุงุณูุฉ ุจุชุฎูู ุฃู Database system ูุนุฑู ูุชุตุฑู ููุช ุงูู ุดุงูู ููุญุงูุธ ุนูู ุงูุจูุงูุงุช ู ู ุบูุฑ ู ุง ูุญุตู chaos ุฃู data corruption.
โโโ
ูุนูู ูู ุนูุฏู transaction ุจุชููู ูููุณ ู ู ุญุณุงุจ ูุญุณุงุจ:
- ุชุณุญุจ 1000 ุฌููู ู ู ุญุณุงุจ A
- ูุชุถูู 1000 ูุญุณุงุจ B
ูู ุฃูู ุฎุทูุฉ ูุฌุญุช ูุงูุชุงููุฉ ูุดูุช ูุฃู ุณุจุจ (ู ุซููุง ุงูุณูุฑูุฑ ููุน)ุ ุงูู ูุฑูุถ ุงูู Database ุชุฑุฌุน ูู ุญุงุฌุฉ ุฒู ุงูุฃููุ ูุฃู ุงูุนู ููุฉ ู ุญุตูุชุด.
โโโ
ุงูู Consistency ู ุนูุงูุง ุฅู ุงูู Database ุชูุถู ุฏุงูู ูุง ูู state ุตุญูุญุฉ ูู ุธุจูุทุฉ.
ูุนูู ูู ุงูููุงุนุฏ (constraints, rules, triggers) ุงููู ุฃูุช ู ุญุฏุฏูุง ูุงุฒู ุชูุถู ู ุชุทุจูุฉ ุจุนุฏ ุฃู ุนู ููุฉ.
ู ุซููุง: ูู ุนูุฏู rule ุจูููู ุฅู ุงูุฑุตูุฏ ู ูููุนุด ูููู ุจุงูุณุงูุจุ ูู ุจุนุฏ ุฃู transaction ูุงุฒู ุงูู DB ุชูุถู ู ุญุงูุธุฉ ุนูู ุงููุงุนุฏุฉ ุฏู.
ูู ุญุตู violation ููููุงุนุฏ ุฏูุ ุงูุนู ููุฉ ูููุง ุชุชูุบู.
โโโ
ุชุฎูู ู ุนุงูุง ูุฐุง transaction ุดุบุงููู ูู ููุณ ุงูููุช...
ูุงุญุฏ ุจูุถูู ุจูุงูุงุชุ ูุงูุชุงูู ุจูุนุฏููุ ูุงูุชุงูุช ุจููุฑุฃ.
ูู ู ููุด Isolationุ ุงูุฏููุง ูุชุจูู ููุถูุ ููู transaction ููุดูู ุงูู data ููู ูุณู ุจุชุชุบูุฑ!
ููู ู ุน ูุฌูุฏ ุงูู Isolationุ ูู transaction ุจุชุชุนุงู ู ูุฃููุง ุงูุนู ููุฉ ุงููุญูุฏุฉ ุงููู ุจุชุชููุฐ.
ูุนูู ุญุชู ูู ูุฐุง transaction ุดุบุงููู ูู ููุณ ุงููุญุธุฉุ ุงููุชุงุฆุฌ ุงููู ุจูุดููููุง ู ุถู ููุฉ ูู ูููุงุด ุชุฏุงุฎู ุฃู corruption.
ูุทุจุนูุง ููู ู ุณุชููุงุช ู ุฎุชููุฉ ููู Isolation (ุฒู Read Uncommitted, Read Committed, Repeatable Read, Serializable)ุ ููู ูุงุญุฏุฉ ููุง trade-offs ุจูู ุงูุฃุฏุงุก ูุงูุฏูุฉ.
โโโ
ุงูู Durability ู ุนูุงูุง ุฅู ุจู ุฌุฑุฏ ู ุง ุงูู Database ุชูููู "ุชู ุช ุงูุนู ููุฉ ุจูุฌุงุญ"ุ ูุจูู ุฎูุงุต ุงูู data ุฏู ู ุญููุธุฉ ูู ุด ูุชุถูุน ุญุชู ูู ุงูุณูุฑูุฑ ููุน ุฃู ุงูููุฑุจุงุก ูุทุนุช.
ุฅุฒุงูุ
ูุฃู ุงูู DB ุจุชูุชุจ ุงูุชุบููุฑุงุช ุนูู ุงูู disk (ุฃู ุงูู log files) ูุจู ู ุง ุชูููู ุงูุนู ููุฉ ูุฌุญุชุ ุนูุดุงู ุชูุฏุฑ ุชุณุชุฑุฌุนูุง ูู ุญุตู ุฃู failure.
โโโ
ุงูู ACID ูู ุงููู ุจูุฎูู ุงูุฃูุธู ุฉ ุงูุจูููุฉุ ุงูู e-commerce systemsุ ูุงูู booking platforms ุชุดุชุบู ุจุซูุฉ ุจุฏูู ู ุง ูุญุตู ูููุง chaos.
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
.
.
ุชุฎูู ุฅูู ุดุบุงู ุนูู 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.
โโโ
ุงูู ACID ูู ุงููู ุจูุฎูู ุงูุฃูุธู ุฉ ุงูุจูููุฉุ ุงูู e-commerce systemsุ ูุงูู booking platforms ุชุดุชุบู ุจุซูุฉ ุจุฏูู ู ุง ูุญุตู ูููุง chaos.
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
โค9
Slow server components?
Donโt let users stare at a blank screen. React Suspense lets you load content progressively with smart fallbacks for a faster-feeling UI.
โค2
ูู ุงูู Bundle Size ุจูุฃุซุฑ ุนูู ุฃุฏุงุก ุงูู
ููุนุ ๐
.
.
ูู ุงุดุชุบูุช ูุจู ูุฏู ุนูู ุฃู ู ุดุฑูุน Front-End ูุจูุฑุ ุฃููุฏ ุนุฏู ุนููู ู ุตุทูุญ "Bundle Size" ุณูุงุก ูู PR reviewุ ุฃู ูุฃูุช ุจุชุนู ู debuggingุ ุฃู ูุฃูุช ุจุชุนู ู optimization ููู Core Web Vitalsโฆ ุงูุณุคุงู ููุง:
โ ๏ธ ูู ูุนููุง ุญุฌู ุงูู Bundle ุจููุฑู ูู ุงูุฃุฏุงุกุ ููุง ู ุฌุฑุฏ ุฑูู ูุฎูุงุตุ
ุชุนุงู ูุฏุฑุฏุด ุดููุฉ ุนู ุงูู Bundle Size...
โโโ
๐ฏ ูุนูู ุฅูู Bundle Sizeุ
ุจุจุณุงุทุฉุ ูู ุง ุจุชูุชุจ ููุฏ JavaScript (ุฃู TypeScript ุฃู JSXโฆ)ุ ุงูููุฏ ุฏู ุจูุชุญูู ูู ูู ูุงุญุฏ (ุฃู ุฃูุซุฑ) ุงุณู ู Bundle. ุงูู ูู ุฏู ุจูุญุชูู ูู ุญุงุฌุฉ:
- ุงูููุฏ ุจุชุงุนู
- ุงูู ูุชุจุงุช ุงููู ู ุณุชุฎุฏู ูุง (ุฒู lodash ุฃู moment ุฃู axios)
- ูุฃุญูุงููุง ุญุชู CSS modules ุฃู images/inline SVGs
ุงูู Bundle Size ูู ุจุจุณุงุทุฉ ุญุฌู ุงูู ูู ุฏู ุงููู ุงูู browser ุจูุญู ูู ุนุดุงู ูุดุบู ุงูู ููุน.
โโโ
๐ค ุทุจ ุฅุฒุงู ุฏู ุจูุฃุซุฑ ุนูู ุงูุฃุฏุงุกุ
ููููู ุจู 5 ููุงุท ุจุณุ ูู ููุทุฉ ู ููู ููููุฉ ุฅููุง ุชุจูุธ ุชุฌุฑุจุฉ ุงูู ุณุชุฎุฏู :
1. ููุช ุงูุชุญู ูู (Load Time)
ูู ู ุง ุงูู Bundle ุจูู ุฃูุจุฑุ ูู ู ุง ุงูู ุชุตูุญ ุฃุฎุฏ ููุช ุฃุทูู ูู ุชุญู ููู ู ู ุงูุณูุฑูุฑ.
ูุนูู ุงูู ุณุชุฎุฏู ูููุนุฏ ู ุณุชููุ ูุฏู ุจูุฒูุฏ ุงูู Time To Interactive (TTI) ู First Contentful Paint (FCP).
2. ุงูู Blocking
ุงูู JavaScript ู ููุงุชูุง Render-Blocking ุจุทุจุนูุง.
ูุนูู ุงูุตูุญุฉ ู ุด ูุชุนุฑู ุชูู ู ุชุญู ูู ุบูุฑ ูู ุง ุชุฎูุต ุชุญู ูู ูุชูููุฐ ุงูู JavaScript.
3. ุงูู Parsing ูุงูู Execution
ุงูู ุชุตูุญ ู ุด ุจุณ ุจูุญู ู ุงูู ูู... ุฏู ูู ุงู ูุงุฒู ูููู ููููู ู ููุดุบููู.
ูุฏู ุจูุงุฎุฏ ููุช ูู ุนุงูุฌุฉ (CPU)ุ ูุฎุตูุตูุง ุนูู ุงูู ูุจุงููุงุช ุงูุถุนููุฉ.
4. ุชุฃุซูุฑ ู ุจุงุดุฑ ุนูู SEO ู Core Web Vitals
ุฌูุฌู ุจุชููุณ ุณุฑุนุฉ ุงูู ููุนุ ููู ุงูู bundle ุชููู = ุงูู ููุน ุจุทูุก = ุชุฑุชูุจู ูู ุงูุจุญุซ ุจููู.
5. ุงูู Data Cost
ูู ููู ูุงุณ ุจุชุฒูุฑ ู ููุนู ู ู ู ูุจุงููุงุช ุฃู ุจุงูุงุช ุฅูุชุฑูุช ู ุญุฏูุฏุฉุ ููู ู ูุฌุง ุฒูุงุฏุฉ ูู ุงูู Bundle ุจุชููููู ุฃูุชุฑ ูุจุชุฒูุฏ ุงุญุชู ุงููุฉ ุฅููู ูุณูุจูุง ุงูู ููุน ูุจู ู ุง ูุญู ูู.
โโโ
๐ ุทูุจ ูุญู ุงูู ูุถูุน ุฏู ุฅุฒุงูุ
ููู ุฃูุซุฑ ู ู ุทุฑููุฉ...
1. ุงูู Code Splitting
ุจูุงุด ุชุญู ู ูู ุงูููุฏ ู ุฑุฉ ูุงุญุฏุฉุ ุฎููู ุนูู ุญุณุจ ุงูุตูุญุฉ ุฃู ุงูู component.
ุงุณุชุฎุฏู React.lazy ู Suspense ุฃู dynamic imports ูู Next.js.
2. ุงูู Tree Shaking
ูู ุจุชุณุชุฎุฏู ู ูุชุจุฉ ุฒู lodashุ ุจูุงุด ุชุณุชูุฑุฏ ูู ุญุงุฌุฉ:
import _ from 'lodash' โ
import debounce from 'lodash/debounce' โ
3. ุญุฐู ุงูููุฏ ุบูุฑ ุงูู ุณุชุฎุฏู (Unused Code)
ุดูู ุฅูู ุงููู ู ุด ู ุณุชุฎุฏู ูู ุงูููุฏ ูุดููู.
ุงุณุชุฎุฏู ุฃุฏูุงุช ุฒู PurgeCSS ุฃู Unused Export Detection ูู Webpack ุฃู Vite.
4. ุงุณุชุฎุฏู ู ูุชุจุงุช ุฎูููุฉ (Lighter Libraries)
ู ุซููุง: ุจูุงุด ุชุณุชุฎุฏู moment.js ูุงุณุชุฎุฏู date-fns ุฃู dayjs.
ุนุงูุฒ ุชุนู ู HTTP requestsุ ุจูุงุด ุชุณุชุฎุฏู axios ูู ู ุด ู ุญุชุงุฌ ูู ุงููู ูููุ ุงูู fetch ููุงูุฉ.
5. ุงูู Compress & Minify
ุณูุงุก ุจุงุณุชุฎุฏุงู Terser ุฃู Brotli ุฃู Gzipโฆ ูู ู ุง ุชุถุบุท ุงูููุฏ ุฃูุชุฑุ ูู ู ุง ุงูู bundle ุญุฌู ู ุจููู.
โโโ
ููู Tools ูุชูุฑ ุชูุฏุฑ ุชุฏูู ุฑุคูุฉ ูุงุถุญุฉ ุนู ุงูู Bundle:
- Webpack Bundle Analyzer
- source-map-explorer
- Bundlephobia
โโโ
ุงูู Bundle Size ุจููุฑู ุฌุฏูุงุ ูุฃู optimization ูู ุญุฌู ู ู ู ูู ูุนู ู ูุฑู ุถุฎู ูู:
- ุณุฑุนุฉ ุชุญู ูู ุงูู ููุน
- ุชุฌุฑุจุฉ ุงูู ุณุชุฎุฏู
- ุชุฑุชูุจู ูู SEO
- ุฃุฏุงุก ุงูู ูุจุงููุงุช ุงูุถุนููุฉ
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
.
.
ูู ุงุดุชุบูุช ูุจู ูุฏู ุนูู ุฃู ู ุดุฑูุน Front-End ูุจูุฑุ ุฃููุฏ ุนุฏู ุนููู ู ุตุทูุญ "Bundle Size" ุณูุงุก ูู PR reviewุ ุฃู ูุฃูุช ุจุชุนู ู debuggingุ ุฃู ูุฃูุช ุจุชุนู ู optimization ููู Core Web Vitalsโฆ ุงูุณุคุงู ููุง:
โ ๏ธ ูู ูุนููุง ุญุฌู ุงูู Bundle ุจููุฑู ูู ุงูุฃุฏุงุกุ ููุง ู ุฌุฑุฏ ุฑูู ูุฎูุงุตุ
ุชุนุงู ูุฏุฑุฏุด ุดููุฉ ุนู ุงูู Bundle Size...
โโโ
๐ฏ ูุนูู ุฅูู Bundle Sizeุ
ุจุจุณุงุทุฉุ ูู ุง ุจุชูุชุจ ููุฏ JavaScript (ุฃู TypeScript ุฃู JSXโฆ)ุ ุงูููุฏ ุฏู ุจูุชุญูู ูู ูู ูุงุญุฏ (ุฃู ุฃูุซุฑ) ุงุณู ู Bundle. ุงูู ูู ุฏู ุจูุญุชูู ูู ุญุงุฌุฉ:
- ุงูููุฏ ุจุชุงุนู
- ุงูู ูุชุจุงุช ุงููู ู ุณุชุฎุฏู ูุง (ุฒู lodash ุฃู moment ุฃู axios)
- ูุฃุญูุงููุง ุญุชู CSS modules ุฃู images/inline SVGs
ุงูู Bundle Size ูู ุจุจุณุงุทุฉ ุญุฌู ุงูู ูู ุฏู ุงููู ุงูู browser ุจูุญู ูู ุนุดุงู ูุดุบู ุงูู ููุน.
โโโ
๐ค ุทุจ ุฅุฒุงู ุฏู ุจูุฃุซุฑ ุนูู ุงูุฃุฏุงุกุ
ููููู ุจู 5 ููุงุท ุจุณุ ูู ููุทุฉ ู ููู ููููุฉ ุฅููุง ุชุจูุธ ุชุฌุฑุจุฉ ุงูู ุณุชุฎุฏู :
1. ููุช ุงูุชุญู ูู (Load Time)
ูู ู ุง ุงูู Bundle ุจูู ุฃูุจุฑุ ูู ู ุง ุงูู ุชุตูุญ ุฃุฎุฏ ููุช ุฃุทูู ูู ุชุญู ููู ู ู ุงูุณูุฑูุฑ.
ูุนูู ุงูู ุณุชุฎุฏู ูููุนุฏ ู ุณุชููุ ูุฏู ุจูุฒูุฏ ุงูู Time To Interactive (TTI) ู First Contentful Paint (FCP).
2. ุงูู Blocking
ุงูู JavaScript ู ููุงุชูุง Render-Blocking ุจุทุจุนูุง.
ูุนูู ุงูุตูุญุฉ ู ุด ูุชุนุฑู ุชูู ู ุชุญู ูู ุบูุฑ ูู ุง ุชุฎูุต ุชุญู ูู ูุชูููุฐ ุงูู JavaScript.
3. ุงูู Parsing ูุงูู Execution
ุงูู ุชุตูุญ ู ุด ุจุณ ุจูุญู ู ุงูู ูู... ุฏู ูู ุงู ูุงุฒู ูููู ููููู ู ููุดุบููู.
ูุฏู ุจูุงุฎุฏ ููุช ูู ุนุงูุฌุฉ (CPU)ุ ูุฎุตูุตูุง ุนูู ุงูู ูุจุงููุงุช ุงูุถุนููุฉ.
4. ุชุฃุซูุฑ ู ุจุงุดุฑ ุนูู SEO ู Core Web Vitals
ุฌูุฌู ุจุชููุณ ุณุฑุนุฉ ุงูู ููุนุ ููู ุงูู bundle ุชููู = ุงูู ููุน ุจุทูุก = ุชุฑุชูุจู ูู ุงูุจุญุซ ุจููู.
5. ุงูู Data Cost
ูู ููู ูุงุณ ุจุชุฒูุฑ ู ููุนู ู ู ู ูุจุงููุงุช ุฃู ุจุงูุงุช ุฅูุชุฑูุช ู ุญุฏูุฏุฉุ ููู ู ูุฌุง ุฒูุงุฏุฉ ูู ุงูู Bundle ุจุชููููู ุฃูุชุฑ ูุจุชุฒูุฏ ุงุญุชู ุงููุฉ ุฅููู ูุณูุจูุง ุงูู ููุน ูุจู ู ุง ูุญู ูู.
โโโ
๐ ุทูุจ ูุญู ุงูู ูุถูุน ุฏู ุฅุฒุงูุ
ููู ุฃูุซุฑ ู ู ุทุฑููุฉ...
1. ุงูู Code Splitting
ุจูุงุด ุชุญู ู ูู ุงูููุฏ ู ุฑุฉ ูุงุญุฏุฉุ ุฎููู ุนูู ุญุณุจ ุงูุตูุญุฉ ุฃู ุงูู component.
ุงุณุชุฎุฏู React.lazy ู Suspense ุฃู dynamic imports ูู Next.js.
2. ุงูู Tree Shaking
ูู ุจุชุณุชุฎุฏู ู ูุชุจุฉ ุฒู lodashุ ุจูุงุด ุชุณุชูุฑุฏ ูู ุญุงุฌุฉ:
import _ from 'lodash' โ
import debounce from 'lodash/debounce' โ
3. ุญุฐู ุงูููุฏ ุบูุฑ ุงูู ุณุชุฎุฏู (Unused Code)
ุดูู ุฅูู ุงููู ู ุด ู ุณุชุฎุฏู ูู ุงูููุฏ ูุดููู.
ุงุณุชุฎุฏู ุฃุฏูุงุช ุฒู PurgeCSS ุฃู Unused Export Detection ูู Webpack ุฃู Vite.
4. ุงุณุชุฎุฏู ู ูุชุจุงุช ุฎูููุฉ (Lighter Libraries)
ู ุซููุง: ุจูุงุด ุชุณุชุฎุฏู moment.js ูุงุณุชุฎุฏู date-fns ุฃู dayjs.
ุนุงูุฒ ุชุนู ู HTTP requestsุ ุจูุงุด ุชุณุชุฎุฏู axios ูู ู ุด ู ุญุชุงุฌ ูู ุงููู ูููุ ุงูู fetch ููุงูุฉ.
5. ุงูู Compress & Minify
ุณูุงุก ุจุงุณุชุฎุฏุงู Terser ุฃู Brotli ุฃู Gzipโฆ ูู ู ุง ุชุถุบุท ุงูููุฏ ุฃูุชุฑุ ูู ู ุง ุงูู bundle ุญุฌู ู ุจููู.
โโโ
ููู Tools ูุชูุฑ ุชูุฏุฑ ุชุฏูู ุฑุคูุฉ ูุงุถุญุฉ ุนู ุงูู Bundle:
- Webpack Bundle Analyzer
- source-map-explorer
- Bundlephobia
โโโ
ุงูู Bundle Size ุจููุฑู ุฌุฏูุงุ ูุฃู optimization ูู ุญุฌู ู ู ู ูู ูุนู ู ูุฑู ุถุฎู ูู:
- ุณุฑุนุฉ ุชุญู ูู ุงูู ููุน
- ุชุฌุฑุจุฉ ุงูู ุณุชุฎุฏู
- ุชุฑุชูุจู ูู SEO
- ุฃุฏุงุก ุงูู ูุจุงููุงุช ุงูุถุนููุฉ
โโโ
ููููู ุงููู ููู ุฎูุฑ ๐ฟ
โค6