Programming diaries
12 subscribers
1 file
4 links
Contact me
irvaniali79@gmail.com
تگ های قابل جستوجو
#structure
#tech
#trade_off
#git
#test
#think
#اصطلاح
#نصیحت
Download Telegram
Channel photo updated
Mock
کل قضیه اینه که با یه سری container، میاییم تیکه ها و unit ها، components هامونو اجرا میکنیم که بتونیم dependency هاش رو کم کنیم و بتونیم به شکل منحصر به فرد یا به اصطلاح mimic تستش کنیم یا اجراش کنیم.

از توابع بگیر تا شبکه و دیتا بیس همه چیزو میشه ماک کرد
بیشتر استفاده تویه test هستش.
و ما سعی میکنیم قسمت هایه domain driven رو جدا کنیم و تست کنیم و لاجیکمون رو pass کنیم.

nock, rewire...
از جمله ‌پکیجایه js هستن که میشه باهاشون اینکارو کرد. تحت شبکه و unit ها
#test
برای تست کامپوننت طوری برنامه بنویسید که بخش ها بتونن در اختیار واحد تست قرار بگیرن
مثلا یک روتر رو بتونیم در اختیار واحد تست بذاریم و اونها بدون سرور ران کردن بخش هارو تست کنن
درواقع بتونن خودشونو expose کنن هرجایی که لازمه
#structure
git rm -r --cached <filename>
یه دستور خوب برای دیلیت کردن فایل از ریپو
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
و البته معماری انتخابی خیلی وابسته به زبون و کاری که میخواید بکنید داره
#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
Forwarded from Alireza
Nodejs Design @Max_Academy .pdf
8.1 MB
خانوم ها و اقایان این سایت خوبیه برای تمرین و اشنایی با سیستم دیزاین

https://bytebytego.com/courses/system-design-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