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
Event Emitters in JavaScript ๐Ÿ’ฏ

Event emitters decouple components, enabling scalable, event-driven architectures.


โ€”โ€”โ€”

๐Ÿ“Œ Ideal For:

- UI interactions (clicks, form submissions)
- APIs/HTTP servers (request/response handling)
- Real-time apps (chat, notifications)
- Modular systems (plugins, micro-services)
โค5
As a React.js developer,

Please learn:

1. Advanced State Management
- Redux & Redux Toolkit
- Context API
- Recoil or Zustand

2. React Performance Optimization
- Memoization (React.memo, useMemo, useCallback)
- Code Splitting
- React Profiler

3. Component Design Patterns
- Higher-Order Components (HOCs)
- Custom Hooks

4. Server-Side Rendering (SSR)
- Next.js
- Hydration

5. TypeScript with React
- Type Safety
- Advanced Types and Generics

6. Testing
- React Testing Library
- End-to-End Testing (Cypress, Playwright)
- Mocking and Stubbing

7. React Ecosystem and Tooling
- Webpack and Babel
- ESLint and Prettier

8. API Integration
- GraphQL (Apollo Client, Relay)
- SWR and React Query
- WebSockets and Real-Time Updates

9. Authentication and Authorization
- OAuth and JWT
- Role-Based Access Control (RBAC)

10. Code Architecture
- Monorepos (Nx, Lerna)
- Micro-Frontends
- Atomic Design

11. Web Performance Optimization
- Lazy Loading
- Progressive Web Apps (PWA)
- Service Workers
โค6๐Ÿ’ฏ1
Master Hydration in React 19.2 ๐Ÿ’ฏ
โค5
ู„ูˆ ุจุชุฏูˆุฑ ุนู„ู‰ ุดุบู„ ุนู† ุจูุนุฏ ููŠ ู…ุฌุงู„ ุงู„ู€ Tech ๐Ÿ’ฏ
.
.
ู‚ุงุฆู…ุฉ ุชุญุชูˆูŠ ุนู„ู‰ ู…ุฌู…ูˆุนุฉ ุดุฑูƒุงุช ุจุชูˆูุฑ ูุฑุต ุดุบู„ ุฌุฒุฆูŠ ุฃูˆ ูƒู„ูŠ ุนู† ุจูุนุฏ.

โ€”โ€”โ€”

Remote-Friendly Companies ๐Ÿ’ฏ

A list of semi to fully remote-friendly companies (jobs) in tech.

https://github.com/remoteintech/remote-jobs
โค8๐Ÿ”ฅ1
ูŠุนู†ูŠ ุฅูŠู‡ Cross-Site Scripting (XSS)ุŸ โš ๏ธ
.
.
ุงู„ู€ XSS ู‡ูˆ ู†ูˆุน ู…ู† ุฃู†ูˆุงุน ุงู„ุซุบุฑุงุช ุงู„ุฃู…ู†ูŠุฉ ุงู„ู„ูŠ ู…ู…ูƒู† ุชูƒูˆู† ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ู…ูˆุงู‚ุนุŒ ูˆุจูŠุณุชุบู„ู‡ุง ุงู„ู‡ุงูƒุฑุฒ ุนู„ุดุงู† ูŠู†ูุฐูˆุง ุฃูƒูˆุงุฏ ุถุงุฑุฉ ุฏุงุฎู„ ุตูุญุฉ ุงู„ูˆูŠุจ ุงู„ู„ูŠ ุจูŠุณุชุฎุฏู…ู‡ุง ุงู„ุถุญูŠุฉุŒ ูˆูƒุฏู‡ ุงู„ู‡ุงูƒุฑ ูŠู‚ุฏุฑ ูŠุชุญูƒู… ููŠ ุงู„ู…ูˆู‚ุน ุฃูˆ ุญุณุงุจุงุช ุงู„ู…ุณุชุฎุฏู…ูŠู†ุŒ ุฃูˆ ุญุชู‰ ูŠุณุญุจ ุจูŠุงู†ุงุชู‡ู… ุงู„ุฎุงุตุฉ.

โ€”โ€”โ€”

๐Ÿ“Œ ุงู„ุซุบุฑุฉ ุฏูŠ ุจุชุดุชุบู„ ุฅุฒุงูŠุŸ

ุฎู„ูŠู†ูŠ ุฃุดุฑุญู„ูƒ ุงู„ุณูŠู†ุงุฑูŠูˆ ุงู„ุจุณูŠุท ุงู„ู„ูŠ ู…ู…ูƒู† ูŠุญุตู„:

1- ุงู„ู‡ุงูƒุฑ ุจูŠูƒูˆู† ุนู†ุฏู‡ ูƒูˆุฏ JavaScript ุถุงุฑ ูˆุนุงูŠุฒ ูŠุฒุฑุนู‡ ููŠ ุงู„ู…ูˆู‚ุน.

2- ุจูŠุณุชุบู„ ุซุบุฑุฉ ููŠ ุงู„ู…ุฏุฎู„ุงุช (Inputs) ุงู„ู…ูˆุฌูˆุฏุฉ ููŠ ุงู„ู…ูˆู‚ุน ุฒูŠ ุงู„ู€ Forms ุฃูˆ ุงู„ู€ CommentsุŒ ุฃูˆ ุญุชู‰ ููŠ URL ู„ูˆ ุงู„ู…ูˆู‚ุน ู…ุด ู…ุคู…ู‘ู† ูƒูˆูŠุณ.

3- ุงู„ู…ุณุชุฎุฏู… ุงู„ุนุงุฏูŠุŒ ุงู„ู„ูŠ ู‡ูˆ ุงู„ุถุญูŠุฉุŒ ุจูŠูุชุญ ุงู„ุตูุญุฉ ู…ู† ุบูŠุฑ ู…ุง ูŠุนุฑูุŒ ูˆุงู„ูƒูˆุฏ ุงู„ุถุงุฑ ุงู„ู„ูŠ ูƒุชุจู‡ ุงู„ู‡ุงูƒุฑ ุจูŠุจุฏุฃ ูŠุดุชุบู„ ุชู„ู‚ุงุฆูŠุŒ ูˆุฏู‡ ุจูŠุฏู‘ูŠ ุงู„ู‡ุงูƒุฑ ุตู„ุงุญูŠุงุช ูƒุจูŠุฑุฉ ุฏุงุฎู„ ุญุณุงุจุงุช ุงู„ุถุญูŠุฉ ุฃูˆ ุญุชู‰ ุจูŠุชู…ูƒู† ู…ู† ุณุฑู‚ุฉ ุงู„ุจูŠุงู†ุงุช ุงู„ู„ูŠ ู…ูˆุฌูˆุฏุฉ ุนู„ู‰ ุงู„ู…ูˆู‚ุน.

๐Ÿ’ฅ ูŠุนู†ูŠ ุงู„ูƒูˆุฏ ุงู„ุถุงุฑ ุงู„ู„ูŠ ูƒุชุจู‡ ุงู„ู‡ุงูƒุฑ ู…ู…ูƒู† ูŠุชุญูƒู… ููŠ ุฃูŠ ุญุงุฌุฉ ุจุชุธู‡ุฑ ู„ู„ู…ุณุชุฎุฏู… ุนู„ู‰ ุงู„ู…ูˆู‚ุนุŒ ูˆุฏู‡ ู…ู…ูƒู† ูŠูƒูˆู† ู…ู† ุฎู„ุงู„:

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

- ุชุบูŠูŠุฑ ู…ุญุชูˆู‰ ุงู„ุตูุญุฉ: ู…ู…ูƒู† ุงู„ู‡ุงูƒุฑ ูŠุญุท ุญุงุฌุงุช ุฃูˆ ุฑุณุงุฆู„ ูˆู‡ู…ูŠุฉ ููŠ ุงู„ุตูุญุฉ ุชุฎู„ู‘ูŠ ุงู„ู…ุณุชุฎุฏู…ูŠู† ูŠุฏุฎู„ูˆุง ุจูŠุงู†ุงุชู‡ู… ุงู„ุดุฎุตูŠุฉุŒ ุฒูŠ ุฑุณุงุฆู„ "ุชุณุฌูŠู„ ุงู„ุฏุฎูˆู„" ุฃูˆ "ุชุญุฏูŠุซ ุงู„ุญุณุงุจ".

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

โ€”โ€”โ€”

๐Ÿ” ุฃู†ูˆุงุน ุงู„ู€ XSS:

ููŠู‡ ุฃูƒุชุฑ ู…ู† ู†ูˆุน ูŠุฎุต ุงู„ู€ XSSุŒ ูˆูƒู„ ู†ูˆุน ู„ู‡ ุทุฑูŠู‚ุฉ ู…ุฎุชู„ูุฉ ููŠ ุงู„ุชู†ููŠุฐ ูˆุฃุซุฑ ู…ุฎุชู„ูุŒ ุฎู„ูŠู†ูŠ ุฃู‚ูˆู„ูƒ ุงู„ุฃู†ูˆุงุน ุงู„ุฑุฆูŠุณูŠุฉ:

๐Ÿ“ ุงู„ู€ Stored XSS: ุงู„ู†ูˆุน ุฏู‡ ุจูŠุญุตู„ ู„ู…ุง ุงู„ูƒูˆุฏ ุงู„ุถุงุฑ ุจูŠุชุฎุฒู† ููŠ ุงู„ู…ูˆู‚ุน ู†ูุณู‡ุŒ ูŠุนู†ูŠ ุจูŠูƒูˆู† ุซุงุจุช ูˆูƒู„ ู…ุฑุฉ ุญุฏ ูŠูุชุญ ุงู„ุตูุญุฉ ูŠุชู†ู‘ูุฐ ุนู„ู‰ ุทูˆู„.

๐Ÿ“ ุงู„ู€ Reflected XSS: ุงู„ู†ูˆุน ุฏู‡ ุจูŠุดุชุบู„ ู„ู…ุง ุงู„ูƒูˆุฏ ุจูŠุชู†ู‘ูุฐ ููˆุฑู‹ุง ููŠ ุงู„ุตูุญุฉ ุงู„ู„ูŠ ุงุชุถุงู ููŠู‡ุงุŒ ุฒูŠ ู„ู…ุง ุญุฏ ูŠุจุนุชู‡ ููŠ ุฑุงุจุท URLุŒ ูˆุงู„ู…ุณุชุฎุฏู… ูŠูุชุญู‡ ููŠู„ุงู‚ูŠ ุงู„ูƒูˆุฏ ุดุบุงู„.

๐Ÿ“ ุงู„ู€ DOM-based XSS: ุฏู‡ ู†ูˆุน ุฃุฐูƒู‰ ุดูˆูŠู‡ ู„ุฃู†ู‡ ุจูŠุดุชุบู„ ุนู„ู‰ ู…ุณุชูˆู‰ ุงู„ู€ DOM ุจุชุงุน ุงู„ุตูุญุฉุŒ ูŠุนู†ูŠ ุจูŠุชุนุงู…ู„ ู…ุจุงุดุฑุฉ ู…ุน ุงู„ุนู†ุงุตุฑ ุงู„ู„ูŠ ุจุชุชุบูŠุฑ ููŠ ูˆุงุฌู‡ุฉ ุงู„ู…ุณุชุฎุฏู…ุŒ ูˆุฏู‡ ุจูŠุฎู„ูŠ ุงู„ุซุบุฑุฉ ุฃุตุนุจ ุดูˆูŠุฉ ููŠ ุงู„ุงูƒุชุดุงู.

โ€”โ€”โ€”

๐Ÿ’ก ุฅุฒุงูŠ ู†ู…ู†ุน ุงู„ู€ XSSุŸ

ุนุดุงู† ุชุญู…ูŠ ู…ูˆู‚ุนูƒ ุฃูˆ ุชุทู…ู‘ู† ุฅู†ูƒ ู…ุชุฃู…ู† ุถุฏ ุงู„ุซุบุฑุฉ ุฏูŠุŒ ู„ุงุฒู… ุชุฑูƒุฒ ุนู„ู‰ ูƒุงู… ุญุงุฌุฉ:

๐Ÿ“Œ ุฃูŠ ุญุงุฌุฉ ุจูŠุถูŠูู‡ุง ุงู„ู…ุณุชุฎุฏู… ููŠ ุงู„ู…ูˆู‚ุน (ุฒูŠ ุงู„ู†ุตูˆุต ุฃูˆ ุงู„ุชุนู„ูŠู‚ุงุช) ู„ุงุฒู… ูŠุชุนู…ู„ ุนู„ูŠู‡ุง ูู„ุชุฑ ูˆ Validation ูˆุชุชุฃูƒุฏ ุฅู† ู…ููŠู‡ุงุด ุฃูƒูˆุงุฏ ุถุงุฑุฉ.

๐Ÿ“Œ ุงุณุชุฎุฏุงู… Content Security Policy (CSP): ุฏู‡ ุฒูŠ ุทุจู‚ุฉ ุญู…ุงูŠุฉ ุฅุถุงููŠุฉ ุจุชู…ู†ุน ุชู†ููŠุฐ ุงู„ุฃูƒูˆุงุฏ ุงู„ู„ูŠ ุฌุงูŠู‡ ู…ู† ู…ุตุงุฏุฑ ุบูŠุฑ ู…ูˆุซูˆู‚ุฉ.

๐Ÿ“Œ ุชุดููŠุฑ ุงู„ู…ุฏุฎู„ุงุช ูˆุงู„ู…ุฎุฑุฌุงุช: ุนู† ุทุฑูŠู‚ ุงุณุชุฎุฏุงู… HTML encoding ุนุดุงู† ุชุญูˆู„ ุงู„ุฑู…ูˆุฒ ุงู„ู„ูŠ ู…ู…ูƒู† ุชุณุจุจ ู…ุดุงูƒู„ (ุฒูŠ < ูˆ >) ู„ุฑู…ูˆุฒ ุขู…ู†ุฉ.

๐Ÿ“Œ ู…ู†ุน ุงู„ูƒูˆูƒูŠุฒ ู…ู† ุงู„ุณุฑู‚ุฉ: ุจุงุณุชุฎุฏุงู… ุญุงุฌุฉ ุฒูŠ HttpOnly ุงู„ู„ูŠ ุจุชุญู…ูŠ ุงู„ูƒูˆูƒูŠุฒ ู…ู† ุงู„ูˆุตูˆู„ ุงู„ู…ุจุงุดุฑ ุนุจุฑ JavaScript.

โ€”โ€”โ€”

โœ‹ ุงู„ู€ XSS ุซุบุฑุฉ ุฎุทูŠุฑุฉ ุฌุฏู‹ุง ู…ู…ูƒู† ุชู‡ุฏุฏ ุฎุตูˆุตูŠุฉ ุงู„ู…ุณุชุฎุฏู…ูŠู† ูˆุชุถุฑ ุจุณู…ุนุฉ ุงู„ู…ูˆู‚ุน ูƒู…ุงู†. ุนุดุงู† ูƒุฏู‡ ู„ุงุฒู… ุชูƒูˆู† ูุงู‡ู… ุชูุงุตูŠู„ู‡ุง ูƒูˆูŠุณ ูˆุชู‚ุฏุฑ ุชุฃู…ู† ู…ูˆู‚ุนูƒ ู…ู†ู‡ุง....
โค7
System Performance Metrics Every Engineer Should Know ๐Ÿ’ฏ
โค2
ุงู„ู€ OOP ุฃูˆ Object-Oriented Programming ๐Ÿ”ป

ุงู„ู€ OOP ุจุชู‚ูˆู… ุนู„ู‰ ุฃุฑุจุน ุฃุนู…ุฏุฉ ุฃุณุงุณูŠุฉ: AbstractionุŒ EncapsulationุŒ InheritanceุŒ ูˆPolymorphism. ุทูŠุจุŒ ุฅูŠู‡ ู…ุนู†ุงู‡ู…ุŸ

โ€”โ€”โ€”

๐ŸŸ  Abstraction

ุงู„ููƒุฑุฉ ููŠ ุงู„ู€ Abstraction ู‡ูŠ ุฅู†ูƒ ุชุฎููŠ ุงู„ุชูุงุตูŠู„ ุงู„ู„ูŠ ุชุฎุต ุงู„ู€ implementation ูˆุชุนุฑุถ ุจุณ ุงู„ุญุงุฌุงุช ุงู„ู…ู‡ู…ุฉ ุงู„ู„ูŠ ุงู„ู…ุณุชุฎุฏู… ู…ุญุชุงุฌ ูŠุนุฑูู‡ุง.

ุฒูŠ ู…ุซู„ู‹ุง ู„ูˆ ุนู†ุฏูƒ class ุงุณู…ู‡ Vehicle ูˆููŠู‡ method ุงุณู…ู‡ุง stopุŒ ุงู„ู€ method ุฏูŠ ู…ู…ูƒู† ุชูƒูˆู† abstract ูŠุนู†ูŠ ู…ุญุฏุด ูŠุนุฑู ุฅุฒุงูŠ ุจุชุดุชุบู„ ู…ู† ุฌูˆุงู‡ุงุŒ ูƒู„ ุงู„ู„ูŠ ุจุงูŠู† ุฅู†ู‡ุง ุจุชูˆู‚ู ุงู„ู€ Vehicle.

โ€”โ€”โ€”

๐ŸŸ  Encapsulation

ุงู„ู€ Encapsulation ู…ุนู†ุงู‡ ุฅู†ูƒ "ุชุบู„ู" ุงู„ุจูŠุงู†ุงุช (ุงู„ู„ูŠ ู‡ูŠ ุงู„ู€ fields) ูˆุงู„ูˆุธุงุฆู (ุงู„ู„ูŠ ู‡ูŠ ุงู„ู€ methods) ููŠ ูˆุญุฏุฉ ูˆุงุญุฏุฉ ุงู„ู„ูŠ ู‡ูŠ ุงู„ู€ class. ูˆูƒู…ุงู†ุŒ ุฅู†ูƒ ุชุญุฏุฏ ู…ูŠู† ูŠู‚ุฏุฑ ูŠูˆุตู„ ู„ู„ุจูŠุงู†ุงุช ุฏูŠ ุนู† ุทุฑูŠู‚ ุงู„ู€ access modifiers.

ุฒูŠ ุฅู†ูƒ ุชุฎู„ูŠ ุงู„ู€ fields ุจุชุงุนุชูƒ privateุŒ ูˆุชุนู…ู„ ู„ู‡ุง getters ูˆ setters ุนู„ุดุงู† ุชุชุญูƒู… ููŠ ุงู„ูˆุตูˆู„ ู„ู‡ุง.

โ€”โ€”โ€”

๐ŸŸ  Inheritance

ุงู„ู€ Inheritance ุจูŠุณู…ุญ ู„ูƒ ุชุนู…ู„ class ุฌุฏูŠุฏ (child class) ูŠูˆุฑุซ ุงู„ู€ attributes ูˆุงู„ู€ methods ู…ู† class ู…ูˆุฌูˆุฏ ุจุงู„ูุนู„ (parent class). ุงู„ู…ูŠุฒุฉ ู‡ู†ุง ุฅู†ูƒ ุจุชู‚ุฏุฑ ุชุนูŠุฏ ุงุณุชุฎุฏุงู… ุงู„ูƒูˆุฏ ุจุฏู„ ู…ุง ุชูƒุชุจู‡ ู…ู† ุฃูˆู„ ูˆุฌุฏูŠุฏ.

ู…ุซุงู„: ุนู†ุฏูƒ class ุงุณู…ู‡ VehicleุŒ ุชุนู…ู„ ู…ู†ู‡ class ุงุณู…ู‡ CarุŒ ูˆุงู„ู€ Car ู‡ูŠุจู‚ู‰ ุนู†ุฏู‡ ู†ูุณ ุตูุงุช ูˆุณู„ูˆูƒูŠุงุช ุงู„ู€ Vehicle.

โ€”โ€”โ€”

๐ŸŸ  Polymorphism

ุงู„ู€ Polymorphism ู…ุนู†ุงู‡ ุฅู† ุงู„ู€ methods ุจุชุดุชุบู„ ุจุดูƒู„ ู…ุฎุชู„ู ุจู†ุงุกู‹ ุนู„ู‰ ุงู„ู€ object ุงู„ู„ูŠ ุจุชุชุทุจู‚ ุนู„ูŠู‡. ูˆุฏู‡ ุจูŠุฎู„ูŠูƒ ุชุณุชุฎุฏู… ู†ูˆุนูŠู† ู„ูŠู‡ู… ู†ูุณ ุงู„ู€ inheritance chain ู…ุน ุจุนุถ ู…ู† ุบูŠุฑ ู…ุดุงูƒู„.

ูŠุนู†ูŠ ู„ูˆ ุนู†ุฏูƒ method ุจุชุงุฎุฏ Vehicle ูƒู€ parameterุŒ ู…ู…ูƒู† ุชุจุนุช ู„ู‡ุง Car ุฃูˆ Bike ูˆู‡ุชุดุชุบู„ ุนุงุฏูŠ ุทุงู„ู…ุง ุฅู†ู‡ู… ุจูŠูˆุฑุซูˆุง ู…ู† Vehicle.

โ€”โ€”โ€”

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค9๐Ÿ‘3
ุฏุฑุฏุดุฉ ุณุฑูŠุนุฉ ุนู† ุงู„ู€ Interface Segregation Principle ๐Ÿ’ฏ
.
.
ุชุฎูŠู„ ุฃู†ูƒ ููŠ ุดุบู„ุงู†ุฉ ู…ุนูŠู†ุฉ ูˆูƒู„ ุดูˆูŠุฉ ุญุฏ ูŠุทู„ุจ ู…ู†ูƒ ุชุงุณูƒุงุช ู…ู„ู‡ุงุด ุนู„ุงู‚ุฉ ุจุจุนุถ ูˆู„ุง ู„ูŠู‡ุง ุนู„ุงู‚ุฉ ุจุงู„ุดุบู„ุงู†ุฉ...ุทุจูŠุนูŠ ู‡ุชู„ุงู‚ูŠ ู†ูุณูƒ ู…ุดุชุช ุจูŠู† ุงู„ุชุงุณูƒุงุช ูƒู„ู‡ุง ูˆู…ููŠุด ูุฑุตุฉ ุชุฑูƒุฒ ููŠ ุงู„ุดุบู„ุงู†ุฉ ุงู„ุฃุณุงุณูŠุฉ ุงู„ู„ูŠ ุฌุงูŠ ุนู„ุดุงู†ู‡ุง ูˆูƒู…ุงู† ู…ุด ู‡ุชุนู…ู„ู‡ุง ุจุฃูุถู„ ุดูƒู„.

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

ูˆู‡ู†ุง ู‡ุชู„ุงู‚ูŠ ุฏูˆุฑ ุงู„ู€ Interface Segregation PrincipleุŒ ูˆุงุญุฏ ู…ู† ุฃู‡ู… ุงู„ู…ุจุงุฏุฆ ุงู„ุฎู…ุณุฉ ู„ู…ูู‡ูˆู… SOLIDุŒ ุนุดุงู† ูŠุญู„ ุงู„ู…ุดูƒู„ุฉ ุฏูŠ.

โ€”โ€”โ€”

ูŠุนู†ูŠ ุฅูŠู‡ Interface Segregation PrincipleุŸ ๐Ÿค”


ุงู„ู€ ISP ุจูŠู‚ูˆู„ ุจุจุณุงุทุฉ: "ู…ูŠู†ูุนุด ุชุฎู„ูŠ ุงู„ูƒูˆุฏ ูŠู„ุชุฒู… ุจุญุงุฌุงุช ู‡ูˆ ู…ุด ู…ุญุชุงุฌู‡ุง."

ู„ูˆ ุนู†ุฏูƒ Interface ููŠู‡ ู…ู„ูŠูˆู† ูˆุธูŠูุฉ (methods) ู„ูƒู† ุงู„ูƒุงุฆู† (object) ุงู„ู„ูŠ ู‡ูŠุณุชุฎุฏู… ุงู„ู€ Interface ุฏู‡ ู‡ูŠุญุชุงุฌ ูƒุงู… ุญุงุฌุฉ ุจุณุŒ ูŠุจู‚ู‰ ูƒุฏู‡ ุฃู†ุช ุจุชุญู…ู‘ู„ู‡ ุดุบู„ ู…ู„ูˆุด ู„ุงุฒู…ุฉุŒ ูˆุฏู‡ ู‡ูŠุนู…ู„ ู…ุดุงูƒู„ ููŠ ุงู„ูƒูˆุฏ ุจุนุฏูŠู†.

โ€”โ€”โ€”

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


ู„ูˆ ุนู†ุฏูƒ Interface ุงุณู…ู‡ Bird

interface Bird {
fly(): void;
swim(): void;
}


ู„ูˆ ุนู…ู„ุช ูƒุงุฆู† (object) ุฒูŠ Duck ู‡ูŠุจู‚ู‰ ู…ู†ุทู‚ูŠ ุฌุฏู‹ุง ุฅู†ู‡ ูŠู‚ุฏุฑ ูŠุทูŠุฑ (fly) ูˆูŠุนูˆู… (swim).
ู„ูƒู† ู„ูˆ ุนู†ุฏูƒ ูƒุงุฆู† ุฒูŠ PenguinุŸ ุงู„ุจุทุฑูŠู‚ ุจูŠุนูˆู… ุจุณุŒ ูˆู…ุด ุจูŠุนุฑู ูŠุทูŠุฑ!

ููŠ ุงู„ุญุงู„ุฉ ุฏูŠ ุงู„ู€ Penguin ู‡ูŠุถุทุฑ ูŠุทุจู‚ (implement) ูˆุธูŠูุฉ ู…ู„ูˆุด ุนู„ุงู‚ุฉ ุจูŠู‡ุง ูˆู‡ูŠ flyุŒ ุญุชู‰ ู„ูˆ ู…ุด ู‡ูŠุณุชุฎุฏู…ู‡ุง.

โ€”โ€”โ€”

โœ… ุงู„ุญู„ุŸ


ุงูุตู„ ุงู„ูˆุธุงุฆู ุจุชุงุนุช ุงู„ู€ Interface ุนู„ู‰ ุญุณุจ ุงู„ุงุญุชูŠุงุฌ ุงู„ูุนู„ูŠ:

interface FlyingBird {
fly(): void;
}

interface SwimmingBird {
swim(): void;
}


ูˆูƒุฏู‡ ู„ู…ุง ุชูŠุฌูŠ ุชุนู…ู„ DuckุŒ ู‡ูŠุทุจู‚ ุงู„ุงุชู†ูŠู†:

class Duck implements FlyingBird, SwimmingBird {
fly() {
console.log('Duck is flying');
}

swim() {
console.log('Duck is swimming');
}
}


ุฃู…ุง ุงู„ู€ PenguinุŒ ู‡ูŠุทุจู‘ู‚ ุจุณ ุงู„ู„ูŠ ู„ู‡ ุนู„ุงู‚ุฉ ุจู‡:

class Penguin implements SwimmingBird {
swim() {
console.log('Penguin is swimming');
}
}


โ€”โ€”โ€”

๐Ÿ“Œ ู„ูŠู‡ ุงู„ู…ุจุฏุฃ ุฏู‡ ู…ู‡ู…ุŸ


- ู„ู…ุง ูƒู„ ูƒุงุฆู† ูŠูƒูˆู† ู…ุฑุชุจุท ุจุงู„ูˆุธุงุฆู ุงู„ู„ูŠ ูุนู„ู‹ุง ู…ุญุชุงุฌู‡ุงุŒ ุจูŠุจู‚ู‰ ุฃุณู‡ู„ ุชุนู…ู„ ุชุบูŠูŠุฑุงุช ู…ู† ุบูŠุฑ ู…ุง ุชุณุจุจ ู…ุดุงูƒู„ ู„ุจุงู‚ูŠ ุงู„ูƒูˆุฏ.
- ุงู„ูƒูˆุฏ ุจุชุงุนูƒ ู‡ูŠุจู‚ู‰ ู…ู†ุธู… "Organized" ุฃูƒุชุฑ ูˆู…ูู‡ูˆู… ู„ุฃูŠ ุญุฏ ูŠุดุชุบู„ ุนู„ูŠู‡ ุจุนุฏูƒ.
- ู…ุด ู‡ุชุถุทุฑ ุชุถูŠู ุฏูˆุงู„ (methods) ู…ุด ู…ุณุชุฎุฏู…ุฉุŒ ูˆุฏู‡ ุจูŠู‚ู„ู„ ุงู„ู€ Bugs ุงู„ู„ูŠ ู…ู…ูƒู† ุชุธู‡ุฑ.

โ€”โ€”โ€”

๐Ÿ“ ุฏุงุฆู…ู‹ุง ุฎู„ูŠูƒ ุญุฑูŠุต ุฅู† ุฃูŠ Interface ูŠูƒูˆู† ู…ุชุฎุตุต ูˆู…ุญุฏุฏ ุงู„ูˆุธุงุฆู.
๐Ÿ“ ู„ูˆ ู„ู‚ูŠุช Interface ูƒุจูŠุฑ ูˆู…ุนู‚ุฏุŒ ุงูุตู„ู‡ ู„ุนุฏุฉ Interfaces ุฃุตุบุฑ.
๐Ÿ“ ููƒุฑ ูƒูˆูŠุณ ู‚ุจู„ ู…ุง ุชุนู…ู„ ุฃูŠ implementsุŒ ูˆุงุณุฃู„ ู†ูุณูƒ: ุงู„ูƒุงุฆู† ุฏู‡ ูุนู„ู‹ุง ู…ุญุชุงุฌ ูƒู„ ุงู„ู„ูŠ ู…ูˆุฌูˆุฏ ููŠ ุงู„ู€ InterfaceุŸ

โ€”โ€”โ€”

ูˆูู‚ูƒู… ุงู„ู„ู‡ ู„ูƒู„ ุฎูŠุฑ ๐ŸŒฟ
โค5๐Ÿ‘1
ุฃูƒูŠุฏ ุณู…ุนุช ุนู† Docker ููŠ ุนุงู„ู… ุงู„ุจุฑู…ุฌุฉ ๐Ÿ’ก
.
.
ุชุนุงู„ ู†ุฏุฑุฏุด ุดูˆูŠุฉ ุนู† Docker ุจุทุฑูŠู‚ุฉ ุจุณูŠุทุฉ ูˆู†ูู‡ู… ู‡ูˆ ู„ูŠู‡ ุดูŠุก ุฃุณุงุณูŠ ููŠ ุชุทูˆูŠุฑ ุงู„ุชุทุจูŠู‚ุงุช. ๐Ÿ’ฏ

โ€”โ€”โ€”

๐Ÿ“Œ ุฅูŠู‡ ู‡ูˆ DockerุŸ

ุจุจุณุงุทุฉุŒ Docker ู‡ูˆ ู…ู†ุตุฉ ุจุชุณู…ุญ ู„ูƒ ุชุจู†ูŠุŒ ุชุฎุชุจุฑุŒ ูˆุชุดุบู„ ุชุทุจูŠู‚ุงุชูƒ ููŠ ุญุงุฌุฉ ุงุณู…ู‡ุง Container.

ุทูŠุจ ูŠุนู†ูŠ ุฅูŠู‡ ContainerุŸ

ููƒุฑ ููŠู‡ุง ุฒูŠ ุนู„ุจุฉ ุจุชุญุท ููŠู‡ุง ุงู„ุชุทุจูŠู‚ ุจุชุงุนูƒ ุจูƒู„ ุงู„ู…ูƒูˆู†ุงุช ุงู„ู„ูŠ ู…ุญุชุงุฌู‡ุง ุนุดุงู† ูŠุดุชุบู„: ุงู„ู€ CodeุŒ ุงู„ู€ LibrariesุŒ ูˆุงู„ู€ Dependencies ุงู„ู„ูŠ ู…ุณุชุฎุฏู…ู‡ุงุŒ ูˆุงู„ู€ System Configurations.

ุงู„ููƒุฑุฉ ุงู„ุฃุณุงุณูŠุฉ ุฅู† ุงู„ู€ Container ุฏู‡ ุจูŠุดุชุบู„ ุฒูŠ ู…ุง ู‡ูˆ ุนู„ู‰ ุฃูŠ ุฌู‡ุงุฒ ุฃูˆ ุณูŠุฑูุฑุŒ ุจุบุถ ุงู„ู†ุธุฑ ุนู† ุงู„ู€ Operating System ุฃูˆ ุงู„ู€ Environment ุงู„ู„ูŠ ุนู„ูŠู‡. ูŠุนู†ูŠ ู„ูˆ ุงู„ุชุทุจูŠู‚ ุดุบุงู„ ุนู†ุฏูƒ ุนู„ู‰ ุฌู‡ุงุฒูƒ ุงู„ุดุฎุตูŠุŒ ู‡ูŠุดุชุบู„ ุจุงู„ุถุจุท ุจู†ูุณ ุงู„ุทุฑูŠู‚ุฉ ุนู„ู‰ ุฃูŠ ุณูŠุฑูุฑ ุชุงู†ูŠ ู…ู† ุบูŠุฑ ู…ุดุงูƒู„.

โ€”โ€”โ€”

๐Ÿ“Œ ู„ูŠู‡ Docker ู…ู‡ู… ููŠ ู…ุฌุงู„ ุงู„ุจุฑู…ุฌุฉุŸ


โšก๏ธ ุงู„ุชูˆุงูู‚ ุจูŠู† ุงู„ุจูŠุฆุงุช ุงู„ู…ุฎุชู„ูุฉ:

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

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

ู‡ู†ุง ุจูŠูŠุฌูŠ ุฏูˆุฑ Docker ู…ู† ุฎู„ุงู„ ุงู„ู€ Container ุงู„ู„ูŠ ุจูŠุจู†ูŠู‡ุงุŒ ูƒู„ ุญุงุฌุฉ ุจุชูƒูˆู† ุฌุงู‡ุฒุฉ ูˆู…ุชูˆุงูู‚ุฉ ู…ุน ุจุนุถู‡ุงุŒ ูุงู„ุชุทุจูŠู‚ ุจุชุงุนูƒ ู‡ูŠุดุชุบู„ ุจู†ูุณ ุงู„ูƒูุงุกุฉ ุนู„ู‰ ุฃูŠ ุจูŠุฆุฉ ุชุงู†ูŠุฉ ู…ู† ุบูŠุฑ ุชุนุฏูŠู„ุงุช.

โ€”โ€”โ€”

โšก๏ธ ุณุฑุนุฉ ุงู„ุงู†ุชู‚ุงู„ ู…ู† ู…ุฑุญู„ุฉ ุงู„ุชุทูˆูŠุฑ ู„ู„ุฅู†ุชุงุฌ:

ุงู„ุนุงุฏูŠ ููŠ ุฃูŠ ู…ุดุฑูˆุน ุฅู†ูƒ ุจุชุจุฏุฃ ุจู€ Development EnvironmentุŒ ูˆุจุนุฏ ูƒุฏู‡ ุชู†ู‚ู„ ุงู„ู…ุดุฑูˆุน ู„ู€ Production Environment.

ู†ู‚ู„ ุงู„ู…ุดุฑูˆุน ุฏู‡ ู…ู…ูƒู† ูŠุงุฎุฏ ูˆู‚ุช ูˆู…ุฌู‡ูˆุฏ ูƒุจูŠุฑุŒ ุฎุตูˆุตู‹ุง ู„ูˆ ุจุชุญุชุงุฌ ุชุนูŠุฏ ุชู‡ูŠุฆุฉ ุงู„ุจูŠุฆุฉ ุงู„ุฌุฏูŠุฏุฉ ูƒู„ ู…ุฑุฉ. Docker ุจูŠุญู„ ุงู„ู…ุดูƒู„ุฉ ุฏูŠ ุนู† ุทุฑูŠู‚ ุฅู†ูƒ ุจุชุฌู‡ุฒ ูƒู„ ุญุงุฌุฉ ููŠ Container ูˆุงุญุฏุŒ ูˆุจุชู‚ุฏุฑ ุชู†ู‚ู„ู‡ ู…ุจุงุดุฑุฉ ู„ุฃูŠ ู…ูƒุงู†ุŒ ูˆุจุงู„ุชุงู„ูŠ ุจุชู‚ู„ู„ ุงู„ูˆู‚ุช ุงู„ู„ูŠ ุจูŠุงุฎุฏู‡ ุงู„ู…ุดุฑูˆุน ุนุดุงู† ูŠุจู‚ู‰ ุฌุงู‡ุฒ ู„ู„ุฅุทู„ุงู‚.

โ€”โ€”โ€”

โšก๏ธ ู…ุฑูˆู†ุฉ ููŠ ุงู„ุชูˆุณุน (Scalability):

ู„ูˆ ุจุชุดุชุบู„ ุนู„ู‰ ู…ุดุฑูˆุน ูƒุจูŠุฑ ุฃูˆ ุจุชุจู†ูŠ ุชุทุจูŠู‚ ุจูŠุณู…ุญ ุจุนุฏุฏ ูƒุจูŠุฑ ู…ู† ุงู„ู…ุณุชุฎุฏู…ูŠู†ุŒ ู‡ุชุญุชุงุฌ ุชุนู…ู„ Scale ู„ู„ุชุทุจูŠู‚ ุจุณุฑุนุฉ.

ุชู‚ุฏุฑ ุชุนู…ู„ ู†ุณุฎ ู…ุชุนุฏุฏุฉ ู…ู† ุงู„ู€ Containers ูˆุชุดุบู„ู‡ู… ุนู„ู‰ ุฃูŠ ุนุฏุฏ ู…ู† ุงู„ุณูŠุฑูุฑุงุช ุจุณู‡ูˆู„ุฉ ูˆููŠ ูˆู‚ุช ู‚ู„ูŠู„ุŒ ูˆุจุงู„ุชุงู„ูŠ ุชู‚ุฏุฑ ุชุชุนุงู…ู„ ู…ุน ุฒูŠุงุฏุฉ ุงู„ุฃุญู…ุงู„ ุจุฏูˆู† ู…ุดุงูƒู„.

โ€”โ€”โ€”

โšก๏ธ ุณู‡ูˆู„ุฉ ุงู„ุชุฌุฑุจุฉ ูˆุงู„ุงุฎุชุจุงุฑ:

ู…ูŠุฒุฉ Docker ุฅู†ู‡ ุจูŠูˆูุฑ ู„ูƒ ุจูŠุฆุฉ ู…ุนุฒูˆู„ุฉ ู„ุชุฌุฑุจุฉ ุฃููƒุงุฑ ุฌุฏูŠุฏุฉ ุฃูˆ ุชุนุฏูŠู„ ูƒูˆุฏ ู…ุนูŠู† ุจุฏูˆู† ุงู„ุชุฃุซูŠุฑ ุนู„ู‰ ุงู„ุชุทุจูŠู‚ ุงู„ุฑุฆูŠุณูŠ. ูŠุนู†ูŠุŒ ู„ูˆ ุนุงูŠุฒ ุชุฌุฑุจ Framework ุฌุฏูŠุฏ ุฃูˆ ุชุถูŠู Feature ู„ู„ุชุทุจูŠู‚ุŒ ุชู‚ุฏุฑ ุชุนู…ู„ Container ุฌุฏูŠุฏ ูˆุชุฌุฑุจ ุจุฑุงุญุชูƒ ู…ู† ุบูŠุฑ ู…ุง ุชุฃุซุฑ ุนู„ู‰ ุงู„ุจูŠุฆุฉ ุงู„ู„ูŠ ุดุบุงู„ ุนู„ูŠู‡ุง ุจุงู‚ูŠ ุงู„ูุฑูŠู‚ ุฃูˆ ุงู„ู…ุดุฑูˆุน ุงู„ุฃุณุงุณูŠ.

โ€”โ€”โ€”

โšก๏ธ ุงู„ุญูุงุธ ุนู„ู‰ ุงุณุชู…ุฑุงุฑูŠุฉ ุงู„ุนู…ู„:

ู…ู† ุฎู„ุงู„ Docker ุชู‚ุฏุฑ ุชุชุฃูƒุฏ ุฅู† ู†ูุณ ุงู„ู€ Setup ุดุบุงู„ ุนู†ุฏูƒุŒ ุนู†ุฏ ุจุงู‚ูŠ ุงู„ูุฑูŠู‚ุŒ ูˆุนู„ู‰ ุงู„ุณูŠุฑูุฑุงุช ุงู„ู„ูŠ ุจุชุดุบู„ ุงู„ุชุทุจูŠู‚. ุฏู‡ ู…ุนู†ุงู‡ ุฅู† ู…ููŠุด ู…ุดุงูƒู„ ู‡ุชุญุตู„ ุจุณุจุจ ูุฑู‚ ููŠ ุงู„ู€ Configuration ุฃูˆ ุงู„ู€ Environment.

โ€”โ€”โ€”

ู„ูˆ ุชุนุฑู ู…ุตุงุฏุฑ ูƒูˆูŠุณุฉ ุจุชุดุฑุญ Docker ูŠุงุฑูŠุช ุชุถูŠูู‡ุง ููŠ ุงู„ุชุนู„ูŠู‚ุงุช ูˆุชููŠุฏ ุบูŠุฑูƒ โœ…

ุจุงู„ุชูˆููŠู‚ ๐ŸŒฟ
โค11
Error Handling in TypeScript
โค5