10.9K subscribers
3.2K photos
19 videos
151 files
3.7K links
Level up daily with insider dev hacks, smart career tips, and real talk! ๐Ÿš€

โšก๏ธ Stay connected with me: linktr.ee/AliSamir
Download Telegram
ุฅุฒุงูŠ ู†ุถู…ู† ุฅู† ุงู„ู…ุดุฑูˆุน ุดุบู‘ุงู„ ุฒูŠ ู…ุง ุงู„ุนู…ูŠู„ ู…ุชูˆู‚ุนุŸ ๐Ÿ’ฏ
.
.
ุงู„ู€ Testing ู…ุด ู…ุฌุฑุฏ ุฎุทูˆุฉ ุจู†ุนู…ู„ู‡ุง ููŠ ุงู„ุขุฎุฑ "ุนู„ุดุงู† ู†ุทู…ู†"ุŒ ูˆู„ุง ู‡ูˆ ุดูˆูŠุฉ Test Cases ุจู†ูƒุชุจู‡ู… ูˆุงู„ุณู„ุงู….

ุงู„ู…ูˆุถูˆุน ุฃุนู…ู‚ ู…ู† ูƒุฏู‡ ุจูƒุชูŠุฑ...

ูˆุงู„ู„ูŠ ุจูŠุญุฏุฏ ุดูƒู„ู‡ ูˆุชูˆู‚ูŠุชู‡ ูˆุทุฑูŠู‚ุชู‡ ู‡ูˆ ู†ูˆุน ุงู„ู€ Software Development Methodology ุงู„ู„ูŠ ุงู„ู…ุดุฑูˆุน ุดุบุงู„ ุจู‡ุง.

โ€”โ€”โ€”

๐Ÿ“Œ ุฃูˆู„ู‹ุง.. ูŠุนู†ูŠ ุฅูŠู‡ Software TestingุŸ

ุจุงุฎุชุตุงุฑุŒ ุงู„ู€ Testing ู‡ูˆ ุงู„ุทุฑูŠู‚ุฉ ุงู„ู„ูŠ ุจู†ูƒุชุดู ุจู‡ุง ุงู„ู€ bugs ู‚ุจู„ ู…ุง ุชูˆุตู„ ู„ู„ู…ุณุชุฎุฏู….

ูˆูƒู…ุงู† ุจู†ู‚ูŠุณ ู‡ู„ ุงู„ู€ software ุจูŠุญู‚ู‚ ุงู„ู€ requirements ูˆู„ุง ู„ุงุŸ
ู‡ู„ ู‚ุงุจู„ ู„ู„ุงุณุชุฎุฏุงู…ุŸ
ู‡ู„ ุจูŠุดุชุบู„ ูƒูˆูŠุณ ุชุญุช ุงู„ุถุบุทุŸ
ู‡ู„ ุงู„ู€ UI ุณู‡ู„ ูˆูˆุงุถุญุŸ

ูƒู„ ุฏูŠ ุฃู†ูˆุงุน ู…ุฎุชู„ูุฉ ู…ู† ุงู„ู€ Testing...

โ€”โ€”โ€”

๐Ÿ“Œ ุฅุฒุงูŠ ุงู„ู€ Methodology ุจุชุฃุซุฑ ุนู„ู‰ ุงู„ู€ TestingุŸ

ุชุนุงู„ ู†ุนุฑู ุงู„ูุฑู‚...

1. ุงู„ู€ Waterfall Model:

ููŠ ุงู„ู€ WaterfallุŒ ุงู„ู€ Testing ุจูŠูŠุฌูŠ ููŠ ุงู„ุขุฎุฑ ุจุนุฏ ู…ุง ูƒู„ ุญุงุฌุฉ ุชุฎู„ุต.

ูŠุนู†ูŠ:
Requirements โžก๏ธ Design โžก๏ธ Development โžก๏ธ Testing

๐Ÿ“Œ ุฏู‡ ู…ุนู†ุงู‡ ุฅู†ูƒ ู…ุด ู‡ุชุจุฏุฃ ุชุฎุชุจุฑ ุบูŠุฑ ู„ู…ุง ุงู„ู…ุดุฑูˆุน ูƒู„ู‡ ูŠูƒูˆู† ุฌุงู‡ุฒ.

ูˆุฏู‡ ุจูŠุฎู„ูŠ ุงู„ู€ Testing ุนุจุงุฑุฉ ุนู† Quality Gate: ู„ูˆ ุงู„ูƒูˆุฏ ููŠู‡ ู…ุดุงูƒู„ุŒ ุจู†ุฑุฌุน ุฎุทูˆุฉ ูˆุฑุงุŒ ูˆู†ุตู„ุญ.

โš ๏ธ ุงู„ุนูŠุจ ู‡ู†ุงุŸ ู„ูˆ ููŠู‡ bug ููŠ ุงู„ุจุฏุงูŠุฉุŒ ู‡ุชูƒุชุดูู‡ ู…ุชุฃุฎุฑ ุฌุฏู‹ุงุŒ ูˆู‡ุชูƒู„ููƒ ูƒุชูŠุฑ.

โ€”โ€”โ€”

2. ุงู„ู€ Agile Methodology:

ู…ูˆุฌูˆุฏ ููŠ ู…ุนุธู… ุงู„ุดุฑูƒุงุช ุฏู„ูˆู‚ุชูŠ.

ู‡ู†ุง ุจู†ุดุชุบู„ ููŠ Sprints ู‚ุตูŠุฑุฉุŒ ูˆุงู„ู€ Testing ุจูŠูƒูˆู† ุฌุฒุก ู…ู† ูƒู„ Sprint.

๐Ÿ“Œ ุงู„ู€ Testing ุจูŠุญุตู„ ู…ุน ูƒู„ ู…ูŠุฒุฉ ุฌุฏูŠุฏุฉ.
ูˆุงู„ู€ QA ุจู‚ู‰ ุฌุฒุก ู…ู† ุงู„ุชูŠู… ู…ู† ุฃูˆู„ ูŠูˆู….

๐ŸŽฏ ุงู„ู†ุชูŠุฌุฉุŸ

- ุจุชู‚ุฏุฑ ุชูƒุชุดู ุงู„ู€ Bugs ุจุฏุฑูŠ
- ูƒู…ุงู† ุชู‚ุฏุฑ ุชุงุฎุฏ Feedback ู…ู† ุงู„ุนู…ูŠู„ ุจุดูƒู„ ู…ุณุชู…ุฑ ุนู„ุดุงู† ู„ูˆ ููŠู‡ ุชุนุฏูŠู„
- ูˆุทุจุนู‹ุง ุงู„ุชูƒู„ูุฉ ู‡ุชูƒูˆู† ุฃู‚ู„

โ€”โ€”โ€”

3. ุงู„ู€ DevOps / Continuous Integration:

ู‡ู†ุง ุงู„ู€ testing ุจูŠูƒูˆู† ุฌุฒุก ู…ู† ุงู„ู€ pipeline ู†ูุณู‡ุง.

๐Ÿ“Œ ู‡ู†ุง ุจู†ุณุชุฎุฏู… Tools ุฒูŠ Jest ุฃูˆ Cypress ุฃูˆ SeleniumุŒ ูˆุบูŠุฑู‡ุงุŒ ู†ูƒุชุจ ุจู‡ุง Automated Tests

ูˆุฃูˆู„ ู…ุง ุงู„ู€ developer ูŠุนู…ู„ PushุŒ ุงู„ู€ Tests ุจุชุดุชุบู„ ุฃูˆุชูˆู…ุงุชูŠูƒ.

๐Ÿ”ฅ ุฏู‡ ุจูŠุฎู„ูŠ ุงู„ู€ Testing ุฌุฒุก ู…ู† ุญูŠุงุฉ ุงู„ูƒูˆุฏุŒ ู…ุด ุฎุทูˆุฉ ู…ู†ูุตู„ุฉ.

โ€”โ€”โ€”

โœ… ู„ุงุฒู… ุชุจู‚ู‰ ูุงู‡ู… ู†ูˆุน ุงู„ู€ methodology ุงู„ู„ูŠ ุงู„ู…ุดุฑูˆุน ู…ุงุดูŠ ุจู‡ุงุŒ ุนู„ุดุงู† ุชุนุฑู ุฅู…ุชู‰ ูˆุฅุฒุงูŠ ุชุฎุชุจุฑ.

โœ… ุจู„ุงุด ุชุนุชู…ุฏ ุจุณ ุนู„ู‰ ุงู„ู€ QAุŒ ุฃู†ุช ูƒู€ Developer ู…ุณุคูˆู„ ุนู† ูƒุชุงุจุฉ Unit Tests ุนู„ู‰ ุงู„ุฃู‚ู„.

โœ… ูƒู„ ู…ุง ุชูƒุชุจ Tests ุฃูƒุชุฑุŒ ูƒู„ ู…ุง ุงู„ูƒูˆุฏ ุจุชุงุนูƒ ู‡ูŠุจู‚ู‰ ุฃุณู‡ู„ ููŠ ุงู„ู€ RefactorุŒ ูˆุฃู‚ู„ Bugs.
โค8
ุฃูƒูŠุฏ ุชุนุฑู npm install ุฃูˆ npm i
.
.
ู„ูƒู† ู‡ู„ ุชุนุฑู npm ciุŸ

ู„ู…ุง ุชูƒุชุจ npm installุŒ ู‡ูˆ ุจูŠุจุต ุนู„ู‰ ุงู„ู€ package.json ูˆูŠุดูˆู ุฅูŠู‡ ุงู„ู€ packages ุงู„ู…ุทู„ูˆุจุฉุŒ ูˆุจุนุฏูŠู†:

- ู„ูˆ ููŠู‡ package-lock.json ุจูŠุญุงูˆู„ ูŠุทุงุจู‚ู‡.

- ูˆู„ูˆ ู…ุด ู…ูˆุฌูˆุฏุŒ ุจูŠุจุฏุฃ ูŠุฑูƒู‘ุจ ุงู„ู„ูŠ ู…ุญุชุงุฌู‡ ูˆูŠุนู…ู„ ูˆุงุญุฏ ุฌุฏูŠุฏ.

- ูˆูƒู…ุงู† ู…ู…ูƒู† ูŠุญุฏุซ ุจุนุถ ุงู„ู€ packages ู„ูˆ ุดุงู ุฅู† ููŠู‡ ุฅุตุฏุงุฑ ุฃุญุฏุซ ู…ุชูˆุงูู‚ ู…ุน ุงู„ุดุฑูˆุท.

ูˆุทุจุนู‹ุง ุฏู‡ ูƒูˆูŠุณ ู„ูƒู† ู…ู…ูƒู† ูŠุญุตู„ ุงุฎุชู„ุงูุงุช ู…ู† ุฌู‡ุงุฒ ู„ู„ุชุงู†ูŠ...

โ€”โ€”โ€”

ุงู„ู€ ci ู…ุนู†ุงู‡ุง "continuous integration"ุŒ ูˆุงู„ุฃู…ุฑ ุฏู‡ ู…ุนู…ูˆู„ ู…ุฎุตูˆุต ุนุดุงู† ุงู„ู€ automation ูˆุจูŠุดุชุบู„ ุจุดูƒู„ ุฃุณุฑุน ูˆุฃุณู‡ู„.

- ุจูŠู…ุณุญ ููˆู„ุฏุฑ node_modules ุชู…ุงู…ู‹ุง.

- ูˆุจุนุฏูŠู† ูŠุฑูƒู‘ุจ ุงู„ู€ packages ุจุงู„ุถุจุท ุฒูŠ ู…ุง ู‡ูŠ ู…ูƒุชูˆุจุฉ ููŠ package-lock.json.

- ู„ูˆ ููŠู‡ ูุฑู‚ ุจูŠู† package.json ูˆ package-lock.json ุจูŠู‚ู ูˆูŠุนู…ู„ Error.

โœ… ุฏู‡ ู…ุนู†ุงู‡ ุฅู† npm ci:

- ุฃุณุฑุน ู…ู† install.

- ุจูŠุนู…ู„ ู†ูุณ ุงู„ู†ุชุงุฆุฌ ูƒู„ ู…ุฑุฉ.

- ู…ู…ุชุงุฒ ููŠ ุงู„ู€ CI/CD pipelines ุฃูˆ ููŠ ุงู„ุดุฑูƒุงุช ุงู„ูƒุจูŠุฑุฉ.

โ€”โ€”โ€”

ู„ูˆ ุดุบุงู„ ู„ูˆุญุฏูƒ ูˆู„ุณู‡ ุจุชุถูŠู/ุชุญุฏุซ packages: ุงุณุชุฎุฏู… npm install.

ู„ูˆ ุจุชุดุชุบู„ ููŠ ุชูŠู… ุฃูˆ ุจุชุนู…ู„ Deploy ุนู„ู‰ ุณูŠุฑูุฑ: ุงุณุชุฎุฏู… npm ci ุนุดุงู† ุชุถู…ู† ุซุจุงุช ุงู„ุจูŠุฆุฉ.
โค5
๐Ÿ”ฐ How to Use Rem Units in CSS

Rem units in CSS can be used for setting font sizes, margins, padding, widths, and heights relative to the root element's font-size. ๐Ÿ’ฏ
โค1
๐Ÿ’ก Claude Tip

If you're frequently switching between Sonnet and Opus, try:
/model opusplan

โ€ข This uses Opus for planning and more complex tasks while falling back to Sonnet for regular work.

โ€ข It's a useful setup when working on larger features, RFCs, architecture discussions, or multi-step tasks, while still keeping everyday interactions fast and efficient.
โค3๐Ÿ‘2๐Ÿ‘1
Infinite queries just got smarter in TanStack Query v5.83 โšก๏ธ

Use server-sent metadata to control pagination and avoid messy cursor logic. Cleaner scroll experiences, fewer bugs.
โค2
๐Ÿ’ก Claude Tip

Run /config, search for Output Style, and select Learning.

โ€ข Instead of giving you the full solution right away, Claude guides you step by step and asks you to write small pieces of code yourself.

โ€ข It's a great way to learn new technologies, understand unfamiliar codebases, and improve your problem-solving skills.
โค2๐Ÿ‘1
โค1
ุฏุฑุฏุดุฉ ุณุฑูŠุนุฉ ุนู† ู…ูู‡ูˆู… ุงู„ู€ Middleware ููŠ Express.js โšก๏ธ
.
.
ู„ูˆ ุจุชุดุชุบู„ ุจู€ Node.js ูˆุจุฏุฃุช ุชุณุชุฎุฏู… Express.jsุŒ ุฃูƒูŠุฏ ู‚ุงุจู„ุช ู…ุตุทู„ุญ ุงู„ู€ "Middleware" ููŠ ุงู„ูƒูˆุฏ... ูˆู…ู…ูƒู† ุชูƒูˆู† ุนุฏูŠุช ุนู„ูŠู‡ ู…ู† ุบูŠุฑ ู…ุง ุชูู‡ู… ู‡ูˆ ุจูŠุนู…ู„ ุฅูŠู‡ ุจุงู„ุถุจุท...

ุชุนุงู„ ู†ุฏุฑุฏุด ุดูˆูŠุฉ ุนู† ุฅุฒุงูŠ ุงู„ู€ Middleware ุจูŠุดุชุบู„ุŸ ูˆู„ูŠู‡ ู‡ูˆ ุฃู‡ู… ุฌุฒุก ุชู‚ุฑูŠุจู‹ุง ููŠ ุฃูŠ ุชุทุจูŠู‚ ู…ุจู†ูŠ ุจู€ ExpressุŸ

โ€”โ€”โ€”

๐Ÿ“Œ ุชุนุงู„ ู†ุจุฏุฃ ู…ู† ุงู„ุขุฎุฑ:

ุงู„ู€ Express.js ุนุจุงุฑุฉ ุนู† ู…ุฌู…ูˆุนุฉ Middleware functions ู…ุงุดูŠุฉ ููŠ ุฎุท ูˆุงุญุฏ...

ูŠุนู†ูŠ ุงู„ู€ Request ุจูŠุฏุฎู„ ู„ู„ุณูŠุฑูุฑุŒ ุจูŠุนุฏูŠ ุนู„ู‰ ุณู„ุณู„ุฉ Middleware functions ูˆุฑุง ุจุนุถุŒ ูˆูƒู„ ูˆุงุญุฏุฉ ููŠู‡ู… ุชู‚ุฏุฑ:

- ุชุนุฏู„ ุงู„ู€ Request ุฃูˆ ุงู„ู€ Response
- ุชูˆู‚ู ุงู„ู€ flow
- ุชูƒู…ู„ ู„ู„ู€ Middleware ุงู„ู„ูŠ ุจุนุฏู‡
- ุฃูˆ ุญุชู‰ ุชุฑุฌุน Response ู„ู„ู€ Client ูˆุชู‚ูู„ ุงู„ู…ูˆุถูˆุน ุฎุงู„ุต

โ€”โ€”โ€”

๐Ÿ“Œ ูŠุนู†ูŠ ุฅูŠู‡ MiddlewareุŸ

ู‡ูˆ function ุจุชุณุชู‚ุจู„ 3 arguments:

(req, res, next)

- ุงู„ู€ req: ุงู„ู€ request ุงู„ู„ูŠ ุฌุงูŠ ู…ู† ุงู„ู€ client
- ุงู„ู€ res: ุงู„ู€ response ุงู„ู„ูŠ ู‡ูŠุฑุฌุน ู„ู„ู€ client
- ุงู„ู€ next: ูˆุฏูŠ function ุจุชุณุชุฎุฏู…ู‡ุง ุนู„ุดุงู† ุชู†ุชู‚ู„ ู„ู„ู€ middleware ุงู„ู„ูŠ ุจุนุฏู‡

โ€”โ€”โ€”

๐Ÿ“Œ ุฅูŠู‡ ุงู„ู„ูŠ ู‡ูŠุญุตู„ ู„ูˆ next ู…ุด ู…ูˆุฌูˆุฏุฉุŸ

ุงู„ู€ request ู‡ูŠู‚ู ุนู†ุฏ ุงู„ู€ middleware ุฏู‡ุŒ ูˆุงู„ู€ Express ู…ุด ู‡ูŠูƒู…ู„ ู„ุจุงู‚ูŠ ุงู„ู€ handlersุŒ ูˆู‡ูŠูุถู„ ุงู„ู€ client ู…ุณุชู†ูŠ response ู…ุด ู‡ูŠูˆุตู„ ุฃุจุฏู‹ุง...

โ€”โ€”โ€”

๐Ÿ“Œ ุฃู†ูˆุงุน ุงู„ู€ Middleware ููŠ Express:

1- ุงู„ู€ Application-level middleware

- ุจูŠุชูƒุชุจ ุจู€ app.use ุฃูˆ app.get ุฃูˆ app.post... ุฅู„ุฎ
- ุจูŠุชุทุจู‚ ุนู„ู‰ ูƒู„ ุฃูˆ ุจุนุถ ุงู„ู€ routes


2- ุงู„ู€ Router-level middleware

- ุดุจู‡ ุงู„ู€ application-level ุจุณ ุจูŠุชุทุจู‚ ุฏุงุฎู„ ุงู„ู€ Router ุจุณ
- ู…ููŠุฏ ู„ู…ุง ูŠูƒูˆู† ุนู†ุฏูƒ routes ูƒุชูŠุฑ ู…ุชู‚ุณู…ุฉ


3- ุงู„ู€ Error-handling middleware

ุฏู‡ ู„ุงุฒู… ูŠุจู‚ู‰ ู„ู‡ 4 arguments:

(err, req, res, next)
ุจูŠุณุชุฎุฏู… ู„ู…ุง ูŠูƒูˆู† ููŠู‡ Error ูˆุนุงูŠุฒ ุชุชุนุงู…ู„ ู…ุนุงู‡ ุจุทุฑูŠู‚ุฉ ุฃูุถู„


4- ุงู„ู€ Built-in middleware

- ุฒูŠ express.json ุฃูˆ express.static
- ุงู„ู€ Express ุจูŠู‚ุฏู…ู‡ ุฌุงู‡ุฒ ุชู‚ุฏุฑ ุชุณุชุฎุฏู…ู‡ ุนู„ู‰ ุทูˆู„


5- ุงู„ู€ Third-party middleware

- ุฒูŠ morgan, cors, helmet, body-parser...
- ุจุชุณุทุจู‡ ุจู€ npm ูˆุชุณุชุฎุฏู…ู‡ ุนู„ุดุงู† ุชุถูŠู ู…ู…ูŠุฒุงุช ู…ุนูŠู†ุฉ

โ€”โ€”โ€”

๐Ÿ“Œ ุงู„ู€ Request ุจูŠุนุฏูŠ ุฅุฒุงูŠุŸ

ุชุฎูŠู„ ุงู„ู…ูˆุถูˆุน ูƒุฃู†ู‡ ุฎุท ุฅู†ุชุงุฌุŒ ูˆูƒู„ Middleware ูˆุงู‚ู ุนู„ู‰ ู…ุญุทุฉ ุจูŠุดุชุบู„ ุดุบู„ุชู‡:

Client Request
โฌ‡๏ธ
[ Logger Middleware ]
โฌ‡๏ธ
[ Authentication Middleware ]
โฌ‡๏ธ
[ Validation Middleware ]
โฌ‡๏ธ
[ Actual Route Handler ]
โฌ‡๏ธ
Server Response

ู„ูˆ ุฃูŠ Middleware ููŠ ุงู„ู†ุต ู‚ุฑุฑ ุฅู†ู‡ ูŠุฑุฌุน Response ุจู†ูุณู‡ุŒ ุฎู„ุงุต ุงู„ุณูƒุฉ ุจุชู‚ู ูˆู…ุญุฏุด ุจุนุฏู‡ ู‡ูŠุดุชุบู„.

โ€”โ€”โ€”

๐Ÿ“Œ ุงู„ู€ Use-cases ุงู„ู…ุดู‡ูˆุฑุฉ ู„ู„ู€ Middleware:

- ุงู„ู€ Logging ูƒู„ ุงู„ู€ requests
- ุงู„ุชุญู‚ู‚ ู…ู† ุตู„ุงุญูŠุงุช ุงู„ู…ุณุชุฎุฏู… (Authentication/Authorization)
- ุงู„ุชุนุงู…ู„ ู…ุน ุงู„ู€ Errors
- ุงู„ู€ Parsing ุงู„ู€ body
- ุงู„ู€ Setting custom headers
- ุงู„ู€ Rate limiting

#nodejs #backend
โค8
ู„ูˆ ุนู†ุฏูƒ ุณุคุงู„ ููŠ ุงู„ุจุฑู…ุฌุฉุŒ ุชู‚ุฏุฑ ุชุจุนุชู‡ ู…ู† ุฎู„ุงู„ ู…ู†ุตุฉ ู‚ุจูŠู„ุฉ ๐Ÿ’ฏ

https://qabilah.com/profile/alisamir
โค3
โค4