یکی از اشتباهات رایج در پروژههای next.js اینه که :
همهچیز داخل یک لایه فکر میشه.
مثلا =>
UI
data fetching
state management
همه رو میایم باهم میکس میکنیم و میزاریم توی فولدر app
نتیجه چیمیشه حالا =>
app در کوتاه مدت کار میکنه، ولی هرچی پروژه مقیاس پذیرتر و بزرگ تر میشه
re-render غیرقابل کنترل
coupling بالا میره
و performance drift
برات مشکل ایجاد میکنه.
امروز چندتا از بهترین و استانداردترین ساختارهای پروژه های نکست که توی 3 لول دسته بندی میشن رو براتون کامل تفسیر و توضیح میدم.
ریاکشن بزن کلی مفاهیم جدید داریم 😉🤝
#Labs_Tips
همهچیز داخل یک لایه فکر میشه.
مثلا =>
UI
data fetching
state management
همه رو میایم باهم میکس میکنیم و میزاریم توی فولدر app
نتیجه چیمیشه حالا =>
app در کوتاه مدت کار میکنه، ولی هرچی پروژه مقیاس پذیرتر و بزرگ تر میشه
re-render غیرقابل کنترل
coupling بالا میره
و performance drift
برات مشکل ایجاد میکنه.
امروز چندتا از بهترین و استانداردترین ساختارهای پروژه های نکست که توی 3 لول دسته بندی میشن رو براتون کامل تفسیر و توضیح میدم.
ریاکشن بزن کلی مفاهیم جدید داریم 😉🤝
#Labs_Tips
❤1
بیاین ساختار فایلها در Next.js را یک بار برای همیشه حل کنیم 👨💻
خیلیها از همون روز اول هر چه دارن رو توی پوشه app/ میریزن. اما واقعیت اینه که سلیقه ما ساختار پروژه را مشخص نمیکنه، بلکه مقیاس (Scale) پروژهست که تعیین میکند چطور باید کد بنویسیم.
🟢 پروژههای کوچک (MVP)
فقط: app, components, lib
سرعت بالا و مینیمال. اما اگر پروژه ناگهان رشد کند، این ساختار شکننده میشود.
🟡 پروژههای در حال رشد (Growth)
در اینجا باید بین UI و Logic خط بکشیم:
app, features, components, services, hooks, lib
کدها قابل نگهداری (maintainable) میشوند و اضافه کردن ویژگی جدید همه چیز را به هم نمیریزد.
🔴 پروژههای سازمانی (Enterprise)
ورود به معماریهای جدی مثل Domain-driven. پوشه app/ فقط برای مسیریابی (Routing) باقی میماند:
app, modules, shared, services, infrastructure
مقیاسپذیری واقعی برای کار تیمی.
⚠️ حرف آخر:
برای یک پروژه کوچک ساختار سازمانی نچینید، و پروژه بزرگ را هم با ساختار MVP پیش نبرید. معماری باید مهندسی شود!
📚 لینک های زیر یه منبع کمکی هستن :
Next.js Routing Docs
Feature-Sliced Design
Patterns.dev
#Labs_Nextjs
خیلیها از همون روز اول هر چه دارن رو توی پوشه app/ میریزن. اما واقعیت اینه که سلیقه ما ساختار پروژه را مشخص نمیکنه، بلکه مقیاس (Scale) پروژهست که تعیین میکند چطور باید کد بنویسیم.
🟢 پروژههای کوچک (MVP)
فقط: app, components, lib
سرعت بالا و مینیمال. اما اگر پروژه ناگهان رشد کند، این ساختار شکننده میشود.
🟡 پروژههای در حال رشد (Growth)
در اینجا باید بین UI و Logic خط بکشیم:
app, features, components, services, hooks, lib
کدها قابل نگهداری (maintainable) میشوند و اضافه کردن ویژگی جدید همه چیز را به هم نمیریزد.
🔴 پروژههای سازمانی (Enterprise)
ورود به معماریهای جدی مثل Domain-driven. پوشه app/ فقط برای مسیریابی (Routing) باقی میماند:
app, modules, shared, services, infrastructure
مقیاسپذیری واقعی برای کار تیمی.
⚠️ حرف آخر:
برای یک پروژه کوچک ساختار سازمانی نچینید، و پروژه بزرگ را هم با ساختار MVP پیش نبرید. معماری باید مهندسی شود!
📚 لینک های زیر یه منبع کمکی هستن :
Next.js Routing Docs
Feature-Sliced Design
Patterns.dev
#Labs_Nextjs
❤1
Foad Labs
بیاین ساختار فایلها در Next.js را یک بار برای همیشه حل کنیم 👨💻 خیلیها از همون روز اول هر چه دارن رو توی پوشه app/ میریزن. اما واقعیت اینه که سلیقه ما ساختار پروژه را مشخص نمیکنه، بلکه مقیاس (Scale) پروژهست که تعیین میکند چطور باید کد بنویسیم. 🟢 پروژههای…
موافق هستین توی همین موضوع عمیق بشیم و یه محتوای 5 پارته داشته باشیم برای بهتر درک کردن و عمیق شدن معماری نکست ؟
Anonymous Poll
100%
اره 👌🏻
0%
نه 👎🏻
👾1
🚀 سری ۵ قسمتی معماری و ساختار در Next.js
🟢 پارت ۱ — شروع اشتباه
همه این حس رو میشناسیم؛ create-next-app رو میزنی و سریع چندتا صفحه بالا میاری. سرعت Next.js کیف مده، ولی راستش... دقیقاً همینجا داری اولین خشت کج رو میذاری!
کابوسِ پوشهی app/
ذهن ما راحتترین راه رو میره: "همهچی تو یه فایل!" یه page.tsx داری که هم API کال میکنه، هم useState داره، هم کل UI همونجاست. مرزی بین لاجیک و ظاهر نیست و با تغییر یه دکمه، کل صفحه میشکنه.
تلهای به اسم MVP
توجیه همیشگی : "فعلاً MVP میزنیم سریع بیاد بالا، بعداً ریفکتور میکنیم!"
اما اون "بعداً" هیچوقت نمیاد! کدی که بدون فکر به Scale (بزرگ شدن) نوشته بشه، با اضافهشدن فیچر جدید یا نفر دوم به تیم قفل میشه. تو در واقع سریع نیستی، فقط داری «بدهی فنی» تولید میکنی.
👇 از الان قبل از استارت پروژه بعدی از خودت بپرس :
واقعاً دارم MVP میسازم، یا با توهمِ سرعت، یه بمب ساعتی کوک میکنم؟
#Labs_fiveStepToMasterInNextArchitecture
🟢 پارت ۱ — شروع اشتباه
همه این حس رو میشناسیم؛ create-next-app رو میزنی و سریع چندتا صفحه بالا میاری. سرعت Next.js کیف مده، ولی راستش... دقیقاً همینجا داری اولین خشت کج رو میذاری!
کابوسِ پوشهی app/
ذهن ما راحتترین راه رو میره: "همهچی تو یه فایل!" یه page.tsx داری که هم API کال میکنه، هم useState داره، هم کل UI همونجاست. مرزی بین لاجیک و ظاهر نیست و با تغییر یه دکمه، کل صفحه میشکنه.
تلهای به اسم MVP
توجیه همیشگی : "فعلاً MVP میزنیم سریع بیاد بالا، بعداً ریفکتور میکنیم!"
اما اون "بعداً" هیچوقت نمیاد! کدی که بدون فکر به Scale (بزرگ شدن) نوشته بشه، با اضافهشدن فیچر جدید یا نفر دوم به تیم قفل میشه. تو در واقع سریع نیستی، فقط داری «بدهی فنی» تولید میکنی.
👇 از الان قبل از استارت پروژه بعدی از خودت بپرس :
واقعاً دارم MVP میسازم، یا با توهمِ سرعت، یه بمب ساعتی کوک میکنم؟
#Labs_fiveStepToMasterInNextArchitecture
👌2👾1
🚀 ۵ ابزار مدرن فرانتاند که باید بشناسید
دوران بیلدهای طولانی و کدهای درهم گذشته است! برای سرعت و کیفیت بیشتر، این ۵ ابزار کلیدی را دریابید: 🛠✨
🌐 Next.js (خداحافظی با مشکلات سئو):
ریاکت خام در سئو و سرعت لود چالش دارد. نکست با رندر سمت سرور (SSR)، سایت شما را فوقسریع لود کرده و محبوب موتورهای جستجو میکند. 🚀🔍
⚡️ Vite 8 (سرعت نور):
خداحافظی با کندی باندلرها! سرور توسعه را در کسری از ثانیه بالا آورده و تغییرات را فوراً روی صفحه اعمال میکند. 🏎💨
🛡 TypeScript (پایان باگهای پنهان):
مثل کمربند ایمنی عمل کرده و ارورها را قبل از اجرای برنامه در ادیتور نشان میدهد. 🧠✅
📦 pnpm (نجاتدهنده هارد):
برخلاف npm، پکیجها را فقط یکبار ذخیره میکند. نتیجه؟ نصب فوقسریع و صرفهجویی شدید در فضای هارد. 💾📉
🎨 Tailwind CSS (استایلدهی سریع):
با کلاسهای آماده مستقیماً درون HTML استایل دهید. سرعت طراحی بالا رفته و از شلوغی فایلهای CSS جلوگیری میشود. 🖌🎯
📄 مستندات رسمی :
Next.js
vite8
TypeScript
pnpm
Tailwindcss
#Labs_ModernFrontendTools
دوران بیلدهای طولانی و کدهای درهم گذشته است! برای سرعت و کیفیت بیشتر، این ۵ ابزار کلیدی را دریابید: 🛠✨
🌐 Next.js (خداحافظی با مشکلات سئو):
ریاکت خام در سئو و سرعت لود چالش دارد. نکست با رندر سمت سرور (SSR)، سایت شما را فوقسریع لود کرده و محبوب موتورهای جستجو میکند. 🚀🔍
⚡️ Vite 8 (سرعت نور):
خداحافظی با کندی باندلرها! سرور توسعه را در کسری از ثانیه بالا آورده و تغییرات را فوراً روی صفحه اعمال میکند. 🏎💨
🛡 TypeScript (پایان باگهای پنهان):
مثل کمربند ایمنی عمل کرده و ارورها را قبل از اجرای برنامه در ادیتور نشان میدهد. 🧠✅
📦 pnpm (نجاتدهنده هارد):
برخلاف npm، پکیجها را فقط یکبار ذخیره میکند. نتیجه؟ نصب فوقسریع و صرفهجویی شدید در فضای هارد. 💾📉
🎨 Tailwind CSS (استایلدهی سریع):
با کلاسهای آماده مستقیماً درون HTML استایل دهید. سرعت طراحی بالا رفته و از شلوغی فایلهای CSS جلوگیری میشود. 🖌🎯
📄 مستندات رسمی :
Next.js
vite8
TypeScript
pnpm
Tailwindcss
#Labs_ModernFrontendTools
❤2🔥1
Foad Labs
🚀 ۵ ابزار مدرن فرانتاند که باید بشناسید دوران بیلدهای طولانی و کدهای درهم گذشته است! برای سرعت و کیفیت بیشتر، این ۵ ابزار کلیدی را دریابید: 🛠✨ 🌐 Next.js (خداحافظی با مشکلات سئو): ریاکت خام در سئو و سرعت لود چالش دارد. نکست با رندر سمت سرور (SSR)، سایت…
با دوستانتون به اشتراک بزارین ، عصر پارت دوم رو داریم 😁
❤2
🚀 ۵ ابزار مدرن فرانتاند که باید بشناسید (پارت دوم)
✨ shadcn/ui (خداحافظی با کامپوننتهای دستنویس):
شاد سیان کلی کامپوننت خوشساخت و زیبا داره که مستقیم میاد تو پروژهات. کار باهاش راحته و دیگه وقتت رو تلف نمیکنی.
📖 Storybook (خونهی امن کامپوننتها):
کامپوننتها رو وسط شلوغی پروژه نساز! بیارشون تو محیط ایزولهی استوریبوک تا راحت تستشون کنی و مثل یه کاتالوگ داشته باشی.
🔄 TanStack Query (خداحافظی با دردسرهای useEffect)
: سروکله زدن با useEffect تمام شد! تناستک همهچیز رو حل میکنه: گرفتن داده، کش کردن و آپدیت. مدیریت داده سرور دیگه یه رویاست.
🐻 Zustand (استیت منجمنت بیدردسر):
خسته شدی از پیچیدگی ابزارهای قدیمی؟ زاستند کوچیک، سریع و سادست و کارهای استیت کلاینت رو بیدردسر انجام میده.
🛡 Zod (دیوار دفاعی دادهها):
نذار دیتای خراب وارد اپلیکیشنت بشه! زود مثل نگهبان سختگیر مطمئن میشه ورودیها همون شکلیه که انتظار داری. امنیت دادهها در زمان اجرا.
مستندات رسمی :
shadcn_ui
storybook
TanStack_query
zustand
zod
#Labs_ModernFrontendTools_Part2
✨ shadcn/ui (خداحافظی با کامپوننتهای دستنویس):
شاد سیان کلی کامپوننت خوشساخت و زیبا داره که مستقیم میاد تو پروژهات. کار باهاش راحته و دیگه وقتت رو تلف نمیکنی.
📖 Storybook (خونهی امن کامپوننتها):
کامپوننتها رو وسط شلوغی پروژه نساز! بیارشون تو محیط ایزولهی استوریبوک تا راحت تستشون کنی و مثل یه کاتالوگ داشته باشی.
🔄 TanStack Query (خداحافظی با دردسرهای useEffect)
: سروکله زدن با useEffect تمام شد! تناستک همهچیز رو حل میکنه: گرفتن داده، کش کردن و آپدیت. مدیریت داده سرور دیگه یه رویاست.
🐻 Zustand (استیت منجمنت بیدردسر):
خسته شدی از پیچیدگی ابزارهای قدیمی؟ زاستند کوچیک، سریع و سادست و کارهای استیت کلاینت رو بیدردسر انجام میده.
🛡 Zod (دیوار دفاعی دادهها):
نذار دیتای خراب وارد اپلیکیشنت بشه! زود مثل نگهبان سختگیر مطمئن میشه ورودیها همون شکلیه که انتظار داری. امنیت دادهها در زمان اجرا.
مستندات رسمی :
shadcn_ui
storybook
TanStack_query
zustand
zod
#Labs_ModernFrontendTools_Part2
❤4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
قابل توجه وایب کدینگ ها 😁
پ.ن: آفکورس که بچههای Labs وایب کدر نیستن 😌
پ.ن: آفکورس که بچههای Labs وایب کدر نیستن 😌
git commit -m "Good night devs"
👌3👨💻1👀1
🚀 سری ۵ قسمتی معماری Next.js 🟢
پارت ۲ — Scale واقعا یعنی چی؟
وقتی میگیم یه پروژه قراره Scale بشه، خیلیا فکر میکنن ترافیک و سرور میافته. ولی تو فرانتاند، Scale یعنی یه چیز: رشدِ وحشتناکِ پیچیدگیِ کد (Complexity)
سایز پروژه، معماری رو تعیین میکنه :
🔹 پروژههای Small: یه لندینگ ساده. اینجا همون ریختن فایلها تو
🔹 پروژههای Medium: داشبورد، سبد خرید، سیستم Auth. اینجا لاجیک داره با UI گره میخوره. اگه اینجا مرزبندی نکنی، کمکم داری وارد باتلاق میشی.
🔹 پروژههای Enterprise: چند تیم همزمان، دهها فیچر. اینجا اگه معماری و لایهبندی دقیق نداشته باشی، با هر Pull Request که مِرج میشه، یه جای دیگه سایت میترکه!
اشتباه مهلک چیه؟ اینکه با ساختارِ یه سایت شخصی بخوای یه استارتاپ رو بالا بیاری، یا برعکس، یه معماری خفنِ سازمانی رو به زور بچپونی تو یه پروژه کوچیک.
👇 این قانون رو برای همیشه گوشه ذهنت پین کن :
ما تو برنامهنویسی چیزی به اسم «بهترین ساختارِ ثابت» نداریم؛ ما Context (شرایط و نیاز پروژه) داریم.
#Labs_fiveStepToMasterInNextArchitecture
پارت ۲ — Scale واقعا یعنی چی؟
وقتی میگیم یه پروژه قراره Scale بشه، خیلیا فکر میکنن ترافیک و سرور میافته. ولی تو فرانتاند، Scale یعنی یه چیز: رشدِ وحشتناکِ پیچیدگیِ کد (Complexity)
سایز پروژه، معماری رو تعیین میکنه :
🔹 پروژههای Small: یه لندینگ ساده. اینجا همون ریختن فایلها تو
app/ جوابه. الکی فولدرها رو تو در تو نکن (Over-engineering سَمه!). 🔹 پروژههای Medium: داشبورد، سبد خرید، سیستم Auth. اینجا لاجیک داره با UI گره میخوره. اگه اینجا مرزبندی نکنی، کمکم داری وارد باتلاق میشی.
🔹 پروژههای Enterprise: چند تیم همزمان، دهها فیچر. اینجا اگه معماری و لایهبندی دقیق نداشته باشی، با هر Pull Request که مِرج میشه، یه جای دیگه سایت میترکه!
اشتباه مهلک چیه؟ اینکه با ساختارِ یه سایت شخصی بخوای یه استارتاپ رو بالا بیاری، یا برعکس، یه معماری خفنِ سازمانی رو به زور بچپونی تو یه پروژه کوچیک.
👇 این قانون رو برای همیشه گوشه ذهنت پین کن :
ما تو برنامهنویسی چیزی به اسم «بهترین ساختارِ ثابت» نداریم؛ ما Context (شرایط و نیاز پروژه) داریم.
#Labs_fiveStepToMasterInNextArchitecture
❤3
به دلایلی شاید چند روز آینده نتونم مثل قبل فعالیت داشته باشم
توی این مدت خوشحال میشم پست هارو با دوستانتون به اشتراک بزارین ❤️🌹
توی این مدت خوشحال میشم پست هارو با دوستانتون به اشتراک بزارین ❤️🌹
❤3
توی کانال بله جوین بشین اونجا ادامه فعالیتمون رو خواهیم داشت در صورت قطعی❤️
https://ble.ir/foad_journey
https://ble.ir/foad_journey
Foad Labs
🚀 سری ۵ قسمتی معماری Next.js 🟢 پارت ۲ — Scale واقعا یعنی چی؟ وقتی میگیم یه پروژه قراره Scale بشه، خیلیا فکر میکنن ترافیک و سرور میافته. ولی تو فرانتاند، Scale یعنی یه چیز: رشدِ وحشتناکِ پیچیدگیِ کد (Complexity) سایز پروژه، معماری رو تعیین میکنه : …
🚀 سری ۵ قسمتی: معماری Next.js
🟡 پارت ۳ — معماری MVP (ساده اما خطرناک)
تو پارت قبل دیدیم که ساختار پروژه به سایز و نیازش بستگی داره. حالا بیایم سراغ محبوبترین و دمدستیترین مدل: یعنی همون ساختار پیشفرضِ Next.js بدون فولدربندی خاص. ساختاری که روز اول خیلی سریع بالا میاد، ولی به شدت شکنندهست!
چرا سادهترین ساختار، خطرناکترینه؟
سرعت روزهای اول این مدل خیرهکنندهست؛ همهچیز دم دسته و سریع کامپوننت میزنی. اما دقیقاً همینجا داری سنگینترین بدهی فنی (Technical Debt) رو بالا میاری.
💥 چرا پروژه با اولین رشد، منفجر میشه؟
کدها به هم جوش میخورن: لاجیک و UI انقدر تو هم گره میخورن که برای تغییرِ فرمتِ یک ریکوئست ساده، باید کل کامپوننت و کدهای ظاهر رو زیر و رو کنی.
تستناپذیر میشه: وقتی منطق بیزینس وسط تگهای HTML رها شده، نوشتن تست برای بخشهای مختلف پروژه رسماً غیرممکنه.
سرعتت منفی میشه: به جای توسعه فیچرهای جدید، کل وقت تیم صرف پیدا کردن باگهای عجیب و غریبی میشه که از تداخل کدها به وجود اومدن.
این ساختار مثل یه آلونک چوبیه؛ سریع سرپا میشه ولی اصلاً تحمل ساختنِ طبقهی دوم رو نداره و با اولین طوفان فرو میریزه.
👇 این واقعیت رو قبول کن:
"کدِ شلخته نوشتن به بهونه سرعت، مثل وام گرفتن با نزولِ سنگینه؛ اولش کارِت راه میفته، ولی جلوتر جریمهاش چرخ پروژهات رو پنچر میکنه!"
#Labs_fiveStepToMasterInNextArchitecture
🟡 پارت ۳ — معماری MVP (ساده اما خطرناک)
تو پارت قبل دیدیم که ساختار پروژه به سایز و نیازش بستگی داره. حالا بیایم سراغ محبوبترین و دمدستیترین مدل: یعنی همون ساختار پیشفرضِ Next.js بدون فولدربندی خاص. ساختاری که روز اول خیلی سریع بالا میاد، ولی به شدت شکنندهست!
چرا سادهترین ساختار، خطرناکترینه؟
سرعت روزهای اول این مدل خیرهکنندهست؛ همهچیز دم دسته و سریع کامپوننت میزنی. اما دقیقاً همینجا داری سنگینترین بدهی فنی (Technical Debt) رو بالا میاری.
💥 چرا پروژه با اولین رشد، منفجر میشه؟
کدها به هم جوش میخورن: لاجیک و UI انقدر تو هم گره میخورن که برای تغییرِ فرمتِ یک ریکوئست ساده، باید کل کامپوننت و کدهای ظاهر رو زیر و رو کنی.
تستناپذیر میشه: وقتی منطق بیزینس وسط تگهای HTML رها شده، نوشتن تست برای بخشهای مختلف پروژه رسماً غیرممکنه.
سرعتت منفی میشه: به جای توسعه فیچرهای جدید، کل وقت تیم صرف پیدا کردن باگهای عجیب و غریبی میشه که از تداخل کدها به وجود اومدن.
این ساختار مثل یه آلونک چوبیه؛ سریع سرپا میشه ولی اصلاً تحمل ساختنِ طبقهی دوم رو نداره و با اولین طوفان فرو میریزه.
👇 این واقعیت رو قبول کن:
"کدِ شلخته نوشتن به بهونه سرعت، مثل وام گرفتن با نزولِ سنگینه؛ اولش کارِت راه میفته، ولی جلوتر جریمهاش چرخ پروژهات رو پنچر میکنه!"
#Labs_fiveStepToMasterInNextArchitecture
از الان میتونین نظراتتون رو داخل کامنت های هر پست به اشتراک بزارین تا بتونیم باهم محتوا رو روز به روز بهتر کنیم ❤️