برای تست کامپوننت طوری برنامه بنویسید که بخش ها بتونن در اختیار واحد تست قرار بگیرن
مثلا یک روتر رو بتونیم در اختیار واحد تست بذاریم و اونها بدون سرور ران کردن بخش هارو تست کنن
درواقع بتونن خودشونو expose کنن هرجایی که لازمه
#structure
مثلا یک روتر رو بتونیم در اختیار واحد تست بذاریم و اونها بدون سرور ران کردن بخش هارو تست کنن
درواقع بتونن خودشونو expose کنن هرجایی که لازمه
#structure
git rm -r --cached <filename>
یه دستور خوب برای دیلیت کردن فایل از ریپو
git merge --abort
مال وقتیه که تویه pull کردن یا merge کردن میخوایید دکمه خروجو بزنید و انجامش ندید وقتی به کانفلیکت میخورید و merge تون faile میشه
git reset --hard HEAD
خب وقتی خیلی همه چی قهوه ای شد میتونید برگردید به اخرین checkpoint ی که گذاشتید تو ریپوتون، یعنی اخرین کامیت ریپو و کل لوکال و کاراتون بعد HEAD پاک میشع پس قبلش یه log بگیرید و مطمئن بشید
#git
یه دستور خوب برای دیلیت کردن فایل از ریپو
git merge --abort
مال وقتیه که تویه pull کردن یا merge کردن میخوایید دکمه خروجو بزنید و انجامش ندید وقتی به کانفلیکت میخورید و merge تون faile میشه
git reset --hard HEAD
خب وقتی خیلی همه چی قهوه ای شد میتونید برگردید به اخرین checkpoint ی که گذاشتید تو ریپوتون، یعنی اخرین کامیت ریپو و کل لوکال و کاراتون بعد HEAD پاک میشع پس قبلش یه log بگیرید و مطمئن بشید
#git
در رابطه با استفاده از کلمه Repository در معماری های mvc باید بگم که همنطور که به معنی مخزن هست کارش پنهان کردن لایهی مخازن از business layer که حالا ممکنه در سرویس اتفاق بیوفته یا در کنترولر . مثل دیتابیسا٬ کار با فایلا و هرچیزی که با خارج از مموری شما کار داره یا میشه mock اشون کرد ...
هر رپو میتونه مدل ورودی و خروجی خودش رو داشته باشه یا توابعش خودشون مستقل ورودی و خروجی رو مدل کنن. منظور اینکه نوع ورودی خروجی خودشون رو مشخص کنند.
و حالا راجب Model ها در معماری باید بگم که معمولا برایه human readable بودن، دیتابیس رو و جداول اون رو شبی سازی میکنند یا همون مدل میکنند. چون که دیتابیس با انها کار میکنه باعث بهبود و انسجام بک اند با دیتا بیس میشه.
- این ازون extension های mvc هست که با query builder کار میکنه
#structure
هر رپو میتونه مدل ورودی و خروجی خودش رو داشته باشه یا توابعش خودشون مستقل ورودی و خروجی رو مدل کنن. منظور اینکه نوع ورودی خروجی خودشون رو مشخص کنند.
و حالا راجب Model ها در معماری باید بگم که معمولا برایه human readable بودن، دیتابیس رو و جداول اون رو شبی سازی میکنند یا همون مدل میکنند. چون که دیتابیس با انها کار میکنه باعث بهبود و انسجام بک اند با دیتا بیس میشه.
- این ازون extension های mvc هست که با query builder کار میکنه
#structure
مقایسهی Django و js frameworks:
خیلی خلاصه میشه گفت که Django برای پروژههای با امنیت بالا و scalability بالاتر بهتر عمل می کنه و سرعت توسعهی بالاتری داره اما مقداری کند تر از js هست و concurrency یکی از برتری های js هستش.
و حالا js برای نوشتن ماژول ها و ماکروسرویس ها فوق العاده عمل میکنه و همینطور برای پروژه های کوچیک به مراتب از Django بهتر هستش.
البته منظورم این نیست که js برای پروژه های با scale بالا بده ولی Django ساخت یافته تر عمل میکنه
درکل مقایسهی js با فریم ورک python درست نیست اما می شه اینا رو تو تصمیم گیریتون برای پروژهها لحاظ کنید
#trade_off
منبع :
https://blog.devgenius.io/django-vs-node-js-which-one-is-better-for-web-development-58b4c66c6dee
خیلی خلاصه میشه گفت که Django برای پروژههای با امنیت بالا و scalability بالاتر بهتر عمل می کنه و سرعت توسعهی بالاتری داره اما مقداری کند تر از js هست و concurrency یکی از برتری های js هستش.
و حالا js برای نوشتن ماژول ها و ماکروسرویس ها فوق العاده عمل میکنه و همینطور برای پروژه های کوچیک به مراتب از Django بهتر هستش.
البته منظورم این نیست که js برای پروژه های با scale بالا بده ولی Django ساخت یافته تر عمل میکنه
درکل مقایسهی js با فریم ورک python درست نیست اما می شه اینا رو تو تصمیم گیریتون برای پروژهها لحاظ کنید
#trade_off
منبع :
https://blog.devgenius.io/django-vs-node-js-which-one-is-better-for-web-development-58b4c66c6dee
Medium
Django vs Node.js: Which One is Better For Web Development?
What should I learn next? If you are a developer, this question should always be in your mind. Every day, new technologies are introduced…
لینک مفید راجب به اصول طراحی شئی گرای grasp هست به زبان فارسی
#structure
https://www.dntips.ir/post/2487/%d8%a7%d8%b5%d9%88%d9%84-%d8%b7%d8%b1%d8%a7%d8%ad%db%8c-%d8%b4%db%8c%d8%a1-%da%af%d8%b1%d8%a7-oo-design-principles
#structure
https://www.dntips.ir/post/2487/%d8%a7%d8%b5%d9%88%d9%84-%d8%b7%d8%b1%d8%a7%d8%ad%db%8c-%d8%b4%db%8c%d8%a1-%da%af%d8%b1%d8%a7-oo-design-principles
.NET Tips
اصول طراحی شیء گرا: OO Design Principles
قصد دارم مجموعه ای کامل از اصول طراحی شیء گرا، الگوهای
طراحی و best practice های مربوطه را ارائه دهم. از این رو
ابتدا با اصول طراحی شروع میکنم. سپس در مقالات آتی به الگوهای مختلف خواهم
پرداخت و تا جایی که معلومات اجازه دهد مشخص خواهم…
طراحی و best practice های مربوطه را ارائه دهم. از این رو
ابتدا با اصول طراحی شروع میکنم. سپس در مقالات آتی به الگوهای مختلف خواهم
پرداخت و تا جایی که معلومات اجازه دهد مشخص خواهم…
یک سری تفاوت های django و laravel و nodejs.
https://terasol.medium.com/django-vs-laravel-vs-nodejs-best-backend-framework-to-choose-for-2022-c414cb2b7cf2
https://terasol.medium.com/django-vs-laravel-vs-nodejs-best-backend-framework-to-choose-for-2022-c414cb2b7cf2
Medium
Django vs Laravel vs Nodejs: Best Backend Framework To Choose For 2022
Among several backend development frameworks, we compare Django vs Laravel vs Nodejs: on various parameters to make the right choice.
خانوم ها و اقایان این سایت خوبیه برای تمرین و اشنایی با سیستم دیزاین
https://bytebytego.com/courses/system-design-interview/
یسری بخش های رایگان داره که خوندنش جالبه قطعا و بخش های دیگشم میتونین با یوتیوب یا دیپ وب یا روش های دیگه با استفاده از عنوان و تایتل هاش مطالعه کنین
https://bytebytego.com/courses/system-design-interview/
یسری بخش های رایگان داره که خوندنش جالبه قطعا و بخش های دیگشم میتونین با یوتیوب یا دیپ وب یا روش های دیگه با استفاده از عنوان و تایتل هاش مطالعه کنین
ByteByteGo
System Design · Coding · Behavioral · Machine Learning Interviews
Ace Every Stage of Your Next Technical Interview
✅ Complete Chat Summary
1. Process vs Thread in Linux
• A process has its own memory and resources.
• A thread shares memory inside the same process.
• Processes are heavier and isolated; threads are lighter but not isolated.
• Linux implements threads as lightweight processes via clone().
2. Threads vs Workers in Node.js
• Node uses libuv threads internally for async native operations (file I/O, crypto).
• Worker Threads in Node execute JavaScript in separate V8 instances.
• Workers have separate event loops and communicate using message passing.
3. Mapping Node.js to Linux
• Worker Threads are Linux threads, but they behave conceptually like processes because they have separate JS heaps.
• libuv threads are real Linux threads used for internal async tasks.
• Node.js Cluster creates real OS processes.
4. Do Workers run on the same CPU core?
• No — Node.js workers can run on different CPU cores.
• They achieve true parallel execution, not just concurrency.
• OS scheduler assigns each worker thread to available cores.
5. Parallel File Reading
• Yes, Node.js can read files in parallel using async I/O or workers.
• True speedup depends on storage type:
• SSD/NVMe → supports real parallel I/O (fast)
• HDD → parallel reads often slow (sequential head movement)
• Multiple workers can read different chunks of the same file simultaneously.
⸻
#NodeJs #os #threads #process #parallel #parallelIO #file #concurrent
1. Process vs Thread in Linux
• A process has its own memory and resources.
• A thread shares memory inside the same process.
• Processes are heavier and isolated; threads are lighter but not isolated.
• Linux implements threads as lightweight processes via clone().
2. Threads vs Workers in Node.js
• Node uses libuv threads internally for async native operations (file I/O, crypto).
• Worker Threads in Node execute JavaScript in separate V8 instances.
• Workers have separate event loops and communicate using message passing.
3. Mapping Node.js to Linux
• Worker Threads are Linux threads, but they behave conceptually like processes because they have separate JS heaps.
• libuv threads are real Linux threads used for internal async tasks.
• Node.js Cluster creates real OS processes.
4. Do Workers run on the same CPU core?
• No — Node.js workers can run on different CPU cores.
• They achieve true parallel execution, not just concurrency.
• OS scheduler assigns each worker thread to available cores.
5. Parallel File Reading
• Yes, Node.js can read files in parallel using async I/O or workers.
• True speedup depends on storage type:
• SSD/NVMe → supports real parallel I/O (fast)
• HDD → parallel reads often slow (sequential head movement)
• Multiple workers can read different chunks of the same file simultaneously.
⸻
#NodeJs #os #threads #process #parallel #parallelIO #file #concurrent