بیاین باهم صادق باشیم 🥸
کدوم یکی از ما وقتی یه پکیج جدید نصب میکنیم،
واقعا میریم Bundle Size یا حجم نهایی ای که قراره وارد پروژه کنه رو چک کنیم؟ 😶
همهچی خوبه…
تا وقتی که پروژه رو ران میکنی و یهو با خودت میگی :
داش این چرا اینقدر دیر لود میشه؟! 💀
و بعد تازه داستان شروع میشه 😵💫
همین سناریوهای دردناک باعث شد با experimental-analyze آشنا بشم توی Next.js.
و واقعا چیز خفنیه 👀
نه فقط میگه پروژه سنگینه،
دقیقا لو میده :
- کدوم Route داره باندل رو منفجر میکنه
- کدوم Package مقصره
- و این حجم دقیقا از کجا وارد پروژه شده
لطفاً قبل اینکه سرورهای بیچارهتون Knock Out بشن برید امتحانش کنید 😭😂
🔗 https://nextjs.org/docs/app/guides/package-bundling
#Labs_Inside
#Labs_Package
کدوم یکی از ما وقتی یه پکیج جدید نصب میکنیم،
واقعا میریم Bundle Size یا حجم نهایی ای که قراره وارد پروژه کنه رو چک کنیم؟ 😶
همهچی خوبه…
تا وقتی که پروژه رو ران میکنی و یهو با خودت میگی :
داش این چرا اینقدر دیر لود میشه؟! 💀
و بعد تازه داستان شروع میشه 😵💫
همین سناریوهای دردناک باعث شد با experimental-analyze آشنا بشم توی Next.js.
و واقعا چیز خفنیه 👀
نه فقط میگه پروژه سنگینه،
دقیقا لو میده :
- کدوم Route داره باندل رو منفجر میکنه
- کدوم Package مقصره
- و این حجم دقیقا از کجا وارد پروژه شده
لطفاً قبل اینکه سرورهای بیچارهتون Knock Out بشن برید امتحانش کنید 😭😂
🔗 https://nextjs.org/docs/app/guides/package-bundling
#Labs_Inside
#Labs_Package
🔥3
ظهر بخیر به اونایی که ☕️
هنوز کامل بیدار نشدن،
ولی از روی عادت لپتاپ رو باز کردن 😅
یه سر به پروژه زدن...
یه سر به پیامهای دیشب...
یه سر به تسکهایی که قرار بود فردا انجامشون بدن 😭
و حالا دارن به مانیتور نگاه میکنن و از خودشون میپرسن :
خب... امروز از کجا خرابکاری رو شروع کنیم؟ 😂
روزتون پر از باگهای کوچیک و کامیتهای بزرگ ✌️
#Labs_Life
هنوز کامل بیدار نشدن،
ولی از روی عادت لپتاپ رو باز کردن 😅
یه سر به پروژه زدن...
یه سر به پیامهای دیشب...
یه سر به تسکهایی که قرار بود فردا انجامشون بدن 😭
و حالا دارن به مانیتور نگاه میکنن و از خودشون میپرسن :
خب... امروز از کجا خرابکاری رو شروع کنیم؟ 😂
روزتون پر از باگهای کوچیک و کامیتهای بزرگ ✌️
#Labs_Life
🔥2
یکی از اشتباهات رایج در پروژههای 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