Forwarded from insomniacrazy
سلام سلام!
چند وقت پیش برای استفاده کردن از یه سری هوکای آماده یه پکیج نصب کردم که کارمو راحت کنم، اما خب مشکلاتی داشت، از اصلی ترین مشکلات:
- Scalability
- Bundle Size
- Version Management
- Flexibility
هروقت که از پکیج ها استفاده میکنید درواقع باید به قانون Risk/Reward هم یک نیم نگاهی داشته باشید که بدونید ایا این پکیج واقعا متناسب با مقیاس پروژه منه؟
و خب من به جوابم رسیدم: نه!
چون نمیتونستم صرفا با import کردن از یک پکیج اون لاجیکی که نیاز دارمو پیاده سازی کنم، درواقع استفاده کردن از پکیج، من رو محدود به مقیاس پذیری میکرد و اجبارا باید مقیاس پروژم رو با مقیاس اون پکیج مچ میکردم و خب این کار درستی نیست! برای همین باید سراغ یه چیزی میرفتم که بتونم نسبت به پروژم اون رو ادغام کنم. تصمیم گرفتم که با کمک معماری Monorepo و Streamline Development این مشکل رو حل کنم و شروع کردم به نوشتن کاستوم هوک های آماده ای کاملا قابلیت Reusability رو داشته باشن تا در آینده به مشکل نخورم. قدم بعدی فراهم کردن ابزاری بود که این هوکارو تو پروژم اضافه کنه (اما سریع!).
پس رفتم سراغ CLI تا بتونم این پروسه رو پیاده سازی کنم، اما از اونجایی که برای اضافه کردن هوک ها به پروژه نیاز به دانلود کردنشون از گیتهاب بود، سعی کردم دنبال راه جدید باشم تا بتونم خیلی سریع هوک هارو اضافه کنم. و تونستم با کمک Rust خیلی سریع هوکارو به یک Structural JSON تبدیل کنم که فقط با کال کردن API و ارسال پارامتر های خاص به API به هوک ها تو CLI دسترسی داشته باشم.
در آخر تونستم با این حرکت یک CLI رو آماده کنم که واقعا تموم مشکل هایی که داشتمو حل میکرد! بنابرین تصمیم گرفتم تا این پروژه رو به صورت Open-Source توسعه بدم تا بتونم دید بهتری نسبت به مشکلات این چنینی به برنامه نویسامون بدم.
هممون میدونیم که برای پیاده سازی لاجیک یه برنامه میتونیم از کاستوم هوک ها استفاده کنیم، و این هوکای Reusable هستند که برنامه مارو تشکیل میدن، اما تو اپلیکیشن های Large Scale پیاده سازی این هوک ها مرتبط با لاجیک مورد نظر به مراتب سخت میشه.
امروز Rehooks CLI در کنار شماست تا رفرنسی باشه برای ساختن کاستوم هوک های مرتبط خودتون با لاجیک مورد نظر!
دیگه نیازی به نصب خارجی یک Library نیست پس شما میتونید از مزایا زیر برخوردار باشید
- Zero Bundle Size
- Full Type Safety
- Complete Customization
- SOLID Principles
این پروژه کاملا اوپن سورسه و یک قدمی جلوتر به سوی Codebase Distribution هست و به حمایت شما نیاز داره 🌟🤍
Repo: https://github.com/pyr33x/rehooks
Docs: https://rehooks.pyr33x.ir
Demo: https://youtu.be/aoFWIJtEyBg?si=eWKXerPQyk7oK3iq
Find me on:
- Github
- LinkedIn
- Twitter
چند وقت پیش برای استفاده کردن از یه سری هوکای آماده یه پکیج نصب کردم که کارمو راحت کنم، اما خب مشکلاتی داشت، از اصلی ترین مشکلات:
- Scalability
- Bundle Size
- Version Management
- Flexibility
هروقت که از پکیج ها استفاده میکنید درواقع باید به قانون Risk/Reward هم یک نیم نگاهی داشته باشید که بدونید ایا این پکیج واقعا متناسب با مقیاس پروژه منه؟
و خب من به جوابم رسیدم: نه!
چون نمیتونستم صرفا با import کردن از یک پکیج اون لاجیکی که نیاز دارمو پیاده سازی کنم، درواقع استفاده کردن از پکیج، من رو محدود به مقیاس پذیری میکرد و اجبارا باید مقیاس پروژم رو با مقیاس اون پکیج مچ میکردم و خب این کار درستی نیست! برای همین باید سراغ یه چیزی میرفتم که بتونم نسبت به پروژم اون رو ادغام کنم. تصمیم گرفتم که با کمک معماری Monorepo و Streamline Development این مشکل رو حل کنم و شروع کردم به نوشتن کاستوم هوک های آماده ای کاملا قابلیت Reusability رو داشته باشن تا در آینده به مشکل نخورم. قدم بعدی فراهم کردن ابزاری بود که این هوکارو تو پروژم اضافه کنه (اما سریع!).
پس رفتم سراغ CLI تا بتونم این پروسه رو پیاده سازی کنم، اما از اونجایی که برای اضافه کردن هوک ها به پروژه نیاز به دانلود کردنشون از گیتهاب بود، سعی کردم دنبال راه جدید باشم تا بتونم خیلی سریع هوک هارو اضافه کنم. و تونستم با کمک Rust خیلی سریع هوکارو به یک Structural JSON تبدیل کنم که فقط با کال کردن API و ارسال پارامتر های خاص به API به هوک ها تو CLI دسترسی داشته باشم.
در آخر تونستم با این حرکت یک CLI رو آماده کنم که واقعا تموم مشکل هایی که داشتمو حل میکرد! بنابرین تصمیم گرفتم تا این پروژه رو به صورت Open-Source توسعه بدم تا بتونم دید بهتری نسبت به مشکلات این چنینی به برنامه نویسامون بدم.
هممون میدونیم که برای پیاده سازی لاجیک یه برنامه میتونیم از کاستوم هوک ها استفاده کنیم، و این هوکای Reusable هستند که برنامه مارو تشکیل میدن، اما تو اپلیکیشن های Large Scale پیاده سازی این هوک ها مرتبط با لاجیک مورد نظر به مراتب سخت میشه.
امروز Rehooks CLI در کنار شماست تا رفرنسی باشه برای ساختن کاستوم هوک های مرتبط خودتون با لاجیک مورد نظر!
دیگه نیازی به نصب خارجی یک Library نیست پس شما میتونید از مزایا زیر برخوردار باشید
- Zero Bundle Size
- Full Type Safety
- Complete Customization
- SOLID Principles
این پروژه کاملا اوپن سورسه و یک قدمی جلوتر به سوی Codebase Distribution هست و به حمایت شما نیاز داره 🌟🤍
Repo: https://github.com/pyr33x/rehooks
Docs: https://rehooks.pyr33x.ir
Demo: https://youtu.be/aoFWIJtEyBg?si=eWKXerPQyk7oK3iq
Find me on:
- Github
GitHub
GitHub - Pyr33x/rehooks: A CLI to scaffold your react custom hooks, with a focus on performance, reusability, and type-safety.
A CLI to scaffold your react custom hooks, with a focus on performance, reusability, and type-safety. - Pyr33x/rehooks
🍾4
سلام رفقا
امیدوارم حالتون خوب باشه🤞🏻
هفته بعد چهارشنبه عصر (۲۴ ام)
میاید بریم کافه چند ساعتی راجب چالش های روزمره و ترند های اکوسیستم (تِک و پروداکت) گپ بزنیم ؟
در حد ۱۵ نفر میتونیم دور هم جمع شیم
اگه خواستید پیشمون باشید بهم پیام بدید.❤️🥂
@arminshaikhy
امیدوارم حالتون خوب باشه🤞🏻
هفته بعد چهارشنبه عصر (۲۴ ام)
میاید بریم کافه چند ساعتی راجب چالش های روزمره و ترند های اکوسیستم (تِک و پروداکت) گپ بزنیم ؟
در حد ۱۵ نفر میتونیم دور هم جمع شیم
اگه خواستید پیشمون باشید بهم پیام بدید.❤️🥂
@arminshaikhy
🍾6
Armin codes
سلام رفقا امیدوارم حالتون خوب باشه🤞🏻 هفته بعد چهارشنبه عصر (۲۴ ام) میاید بریم کافه چند ساعتی راجب چالش های روزمره و ترند های اکوسیستم (تِک و پروداکت) گپ بزنیم ؟ در حد ۱۵ نفر میتونیم دور هم جمع شیم اگه خواستید پیشمون باشید بهم پیام بدید.❤️🥂 @arminshaikhy
سلام رفقا امیدوارم خوب باشید
این برنامه تایمش جا به جا شد و برای دوستانی که پیام دادن تایم مجدد رو میفرستم❤️
این برنامه تایمش جا به جا شد و برای دوستانی که پیام دادن تایم مجدد رو میفرستم❤️
🍾1
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
سازنده ردیس، چند وقتی میشه که به تیمش برگشته، و چند روز پیش این پست رو با عنوان "We are destroying software" تو بلاگ شخصیش منتشر کرده
کل پست صرفاً چند جمله که با همین عبارت شروع میشه، ولی واقعاً جای تفکر داره
چیزی نمیگم، خیلی کوتاهه خودتون بخونید :)
antirez.com/news/145
@DevTwitter | <Taqi/>
کل پست صرفاً چند جمله که با همین عبارت شروع میشه، ولی واقعاً جای تفکر داره
چیزی نمیگم، خیلی کوتاهه خودتون بخونید :)
antirez.com/news/145
@DevTwitter | <Taqi/>
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
یه سال و نیم پیش این پست رو گذاشتم و ازش استقبال خوبی شد.
وبسایت SheCodesFoundation سعی داره برنامهنویسی رو به بانوان آموزش بده.
از سال 1401 که آزادی بانوان ایرانی تو دنیا مطرح شد، این وبسایت اومد و برای خانمهای ایرانی بوتکمپهای رایگان برگزار کرد. اون سال تا 10,000 نفر ظرفیت داشت.
الان بررسی کردم دیدم هنوز فعاله و ظرفیتش شده 50,000 بانو که حدودا نصفش پر شده.
حتما شرکت کنید که خیلی خوبه، برای دوستاتون هم بفرستید.
https://shecodesfoundation.org/iran
@DevTwitter
وبسایت SheCodesFoundation سعی داره برنامهنویسی رو به بانوان آموزش بده.
از سال 1401 که آزادی بانوان ایرانی تو دنیا مطرح شد، این وبسایت اومد و برای خانمهای ایرانی بوتکمپهای رایگان برگزار کرد. اون سال تا 10,000 نفر ظرفیت داشت.
الان بررسی کردم دیدم هنوز فعاله و ظرفیتش شده 50,000 بانو که حدودا نصفش پر شده.
حتما شرکت کنید که خیلی خوبه، برای دوستاتون هم بفرستید.
https://shecodesfoundation.org/iran
@DevTwitter
🍾5⚡1
Data Structures🏛️
یادگیری ساختارهای داده یکی از مباحث پایهای در مهندسی نرمافزار هست که تأثیر زیادی روی بهینهسازی عملکرد برنامهها داره. ساختار دادهها به ما این امکان رو میده که دادهها رو به بهترین شکل ممکن ذخیره و مدیریت کنیم. این کار باعث کاهش زمان جستجو، مرتبسازی و پردازش میشه.
بر ساختارهای داده نه تنها کد شما رو بهینهتر میکنه، بلکه توی مصاحبههای فنی و حل مشکلات پیچیدهتر هم به شما کمک میکنه.
این پلی لیست یوتیوب رو چند روز پیش دیدم و خیلی ساده و جذاب داشت توضیح میداد و یک سریشونرو هم با JS پیاده میکنه.
پیشنهاد میکنم یه نگاهی بهش بندازید🤞🏻🥂
https://www.youtube.com/playlist?list=PLpWvGP6yhJUhC1SpdouTObbd5yGgV4opL
یادگیری ساختارهای داده یکی از مباحث پایهای در مهندسی نرمافزار هست که تأثیر زیادی روی بهینهسازی عملکرد برنامهها داره. ساختار دادهها به ما این امکان رو میده که دادهها رو به بهترین شکل ممکن ذخیره و مدیریت کنیم. این کار باعث کاهش زمان جستجو، مرتبسازی و پردازش میشه.
بر ساختارهای داده نه تنها کد شما رو بهینهتر میکنه، بلکه توی مصاحبههای فنی و حل مشکلات پیچیدهتر هم به شما کمک میکنه.
این پلی لیست یوتیوب رو چند روز پیش دیدم و خیلی ساده و جذاب داشت توضیح میداد و یک سریشونرو هم با JS پیاده میکنه.
پیشنهاد میکنم یه نگاهی بهش بندازید🤞🏻🥂
https://www.youtube.com/playlist?list=PLpWvGP6yhJUhC1SpdouTObbd5yGgV4opL
YouTube
Data Structures - Javanoscript
All about Javanoscript Data Structure with example of implementation and sample projects
Forwarded from جادی | Jadi
نابغه باید بمیرد - aaron swartz.pdf
2.2 MB
نگاهی به زندگی آرون شواتز و معرفی کتاب «نابغه باید بمیرد»
آرون شوارتز، آرون سوارتزِ سوارتس یا ارون سورتز یا هر جور دیگه که تلفظش کنین، نابغهای در دنیای کامپیوتر بود. کسی که چیزهایی مثل آر اس اس، ردیت و مارکداون بخشی از کارهاش هستن و هکتیویسمش نمونه ای برای هرکسی که می فهمه خوبه سواد فنیاش فایده اجتماعی هم داشته باشه.
در این ویدئوی خیلی کوتاه با توجه به خبری که اخیرا در مورد شرکت متا / فیسبوک بوده نگاهی به زندگیش داریم و دلیل خودکشی اش و معرفی کتاب کوتاه «نابغه باید بمیرد» که نسترن خسروی از نوشتههاش جمع کرده.
https://youtu.be/qlWZmJzXBvY
#کتاب #ویدئو
آرون شوارتز، آرون سوارتزِ سوارتس یا ارون سورتز یا هر جور دیگه که تلفظش کنین، نابغهای در دنیای کامپیوتر بود. کسی که چیزهایی مثل آر اس اس، ردیت و مارکداون بخشی از کارهاش هستن و هکتیویسمش نمونه ای برای هرکسی که می فهمه خوبه سواد فنیاش فایده اجتماعی هم داشته باشه.
در این ویدئوی خیلی کوتاه با توجه به خبری که اخیرا در مورد شرکت متا / فیسبوک بوده نگاهی به زندگیش داریم و دلیل خودکشی اش و معرفی کتاب کوتاه «نابغه باید بمیرد» که نسترن خسروی از نوشتههاش جمع کرده.
https://youtu.be/qlWZmJzXBvY
#کتاب #ویدئو
🔥1
کمک کردن و راهنمایی همیشه برام یه انگیزه بزرگ بوده، و خیلی خوشحالم که توی این مسیر دارم جلو میرم. حالا با کلی ذوق و انرژی باید بگم که توی 50 منتور برتر فرانتاند در ADPList قرار گرفتم! 😍
این اتفاق بدون همراهی و انگیزه شما ممکن نبود! هر جلسه منتورینگ برای من یه تجربه جدید و یه فرصت برای یادگیری بیشتر بوده. مرسی از همه شما که بهم اعتماد کردید و این فرصت رو دادید که بخشی از مسیر یادگیریتون باشم. ❤️
بیصبرانه منتظرم که به آدمای بیشتری کمک کنم و باهم رشد کنیم! 🚀
پینوشت: فعلاً تایمهام رو توی ADPList بستم، ولی اگه نیاز به منتورینگ دارید، رزومهتون رو برام بفرستید تا هماهنگ کنیم.
این اتفاق بدون همراهی و انگیزه شما ممکن نبود! هر جلسه منتورینگ برای من یه تجربه جدید و یه فرصت برای یادگیری بیشتر بوده. مرسی از همه شما که بهم اعتماد کردید و این فرصت رو دادید که بخشی از مسیر یادگیریتون باشم. ❤️
بیصبرانه منتظرم که به آدمای بیشتری کمک کنم و باهم رشد کنیم! 🚀
پینوشت: فعلاً تایمهام رو توی ADPList بستم، ولی اگه نیاز به منتورینگ دارید، رزومهتون رو برام بفرستید تا هماهنگ کنیم.
امروز صبح توی یه جلسهی منتورینگ، یه سوال جالب مطرح شد:
"چطور میتونم توی مسیر یادگیری ثابتقدم بمونم؟ هیجان دارم، ولی بعد یه مدت انگیزهم کم میشه!"
واقعیت اینه که موفقیت با دیسیپلین ساخته میشه، نه انگیزه.
انگیزه جرقهست، ولی این عادتهای کوچیک و مداوم هستن که مسیر رو هموار میکنن، مثل:
ایجاد سیستم پیگیری رشد
تمرکز روی فرآیند، نه فقط نتیجه
💡 نکتهی مهم:
اگه فقط وقتی انگیزه داری کار کنی، پیشرفتت محدود میشه. ولی با دیسیپلین، یادگیری تبدیل به عادت میشه.
🔗 منابع پیشنهادی:
📖 Atomic Habits – James Clear
📖 Deep Work – Cal Newport
"چطور میتونم توی مسیر یادگیری ثابتقدم بمونم؟ هیجان دارم، ولی بعد یه مدت انگیزهم کم میشه!"
واقعیت اینه که موفقیت با دیسیپلین ساخته میشه، نه انگیزه.
انگیزه جرقهست، ولی این عادتهای کوچیک و مداوم هستن که مسیر رو هموار میکنن، مثل:
ایجاد سیستم پیگیری رشد
تمرکز روی فرآیند، نه فقط نتیجه
💡 نکتهی مهم:
اگه فقط وقتی انگیزه داری کار کنی، پیشرفتت محدود میشه. ولی با دیسیپلین، یادگیری تبدیل به عادت میشه.
🔗 منابع پیشنهادی:
📖 Atomic Habits – James Clear
📖 Deep Work – Cal Newport
نسخه جدید Next.js 15.2 منتشر شد!
یه سری بهبود اضافه شده که کار با نکست رو راحتتر و سریعتر میکنه:
🔹 خطاهای واضحتر و بهتر – طراحی جدید برای ارورها و استکترِیسهای دقیقتر.(این خیلی لازم بود)
🔹 استریم متادیتا – دیگه نیازی نیست برای لود شدن متادیتا صبر کنی، صفحه زودتر میاد بالا.
🔹 Turbopack سریعتر از همیشه – کامپایل تا ۵۷٪ سریعتر و مصرف رم ۳۰٪ کمتر!(فک نکنم)
🔹 افکت برای تغییر صفحات (آزمایشی) – با View Transitions انیمیشن بین صفحات هندل میشه.
🔹 Middleware با Node.js (آزمایشی) – حالا میتونی از Node.js توی Middleware استفاده کنی.
🎯 چندتا تغییر دیگه:
✅ یه Dev Indicator جدید که وضعیت رندر، کامپایل و خطاها رو یه جا نشون
میده.
(فک کنم بره سمت دوو تولز ناکس)
✅ پشتیبانی از --api برای ساخت پروژههای فقط API.(اکپرس بزن خب!)
✅ بهبود تصاویر (images.qualities)، سئو.
یه سری بهبود اضافه شده که کار با نکست رو راحتتر و سریعتر میکنه:
🔹 خطاهای واضحتر و بهتر – طراحی جدید برای ارورها و استکترِیسهای دقیقتر.(این خیلی لازم بود)
🔹 استریم متادیتا – دیگه نیازی نیست برای لود شدن متادیتا صبر کنی، صفحه زودتر میاد بالا.
🔹 Turbopack سریعتر از همیشه – کامپایل تا ۵۷٪ سریعتر و مصرف رم ۳۰٪ کمتر!(فک نکنم)
🔹 افکت برای تغییر صفحات (آزمایشی) – با View Transitions انیمیشن بین صفحات هندل میشه.
🔹 Middleware با Node.js (آزمایشی) – حالا میتونی از Node.js توی Middleware استفاده کنی.
🎯 چندتا تغییر دیگه:
✅ یه Dev Indicator جدید که وضعیت رندر، کامپایل و خطاها رو یه جا نشون
میده.
(فک کنم بره سمت دوو تولز ناکس)
✅ پشتیبانی از --api برای ساخت پروژههای فقط API.(اکپرس بزن خب!)
✅ بهبود تصاویر (images.qualities)، سئو.
🍾4 4
🎍🧩
یادگیری پارادایمهای برنامهنویسی تأثیر زیادی در بهبود مهارتهای برنامهنویسی داره و میتونه خیلی دید بهتری بده:
۱. درک بهتر مفاهیم برنامهنویسی
۲. افزایش مهارت حل مسئله
۳. انعطافپذیری بیشتر در انتخاب تکنولوژیها
۴. درک بهتر کدهای دیگران
۵. تقویت تفکر منطقی و خلاقیت در برنامهنویسی
چطور بهتر یاد بگیریم؟
✔ با زبانهای چندپارادایمی مانند Python یا JavaScript کار کنید.
✔ یک پروژه را با رویکردهای مختلف پیادهسازی کنید و تفاوتها را بررسی کنید.
✔ کدهای دیگران را مطالعه کنید و از بهترین روشها یاد بگیرید.
چند تا لینک مفید:
freecodecamp.org/news/an-introduction-to-programming-paradigms
geeksforgeeks.org/introduction-of-programming-paradigms
datacamp.com/blog/introduction-to-programming-paradigms
یادگیری پارادایمهای برنامهنویسی تأثیر زیادی در بهبود مهارتهای برنامهنویسی داره و میتونه خیلی دید بهتری بده:
۱. درک بهتر مفاهیم برنامهنویسی
۲. افزایش مهارت حل مسئله
۳. انعطافپذیری بیشتر در انتخاب تکنولوژیها
۴. درک بهتر کدهای دیگران
۵. تقویت تفکر منطقی و خلاقیت در برنامهنویسی
چطور بهتر یاد بگیریم؟
✔ با زبانهای چندپارادایمی مانند Python یا JavaScript کار کنید.
✔ یک پروژه را با رویکردهای مختلف پیادهسازی کنید و تفاوتها را بررسی کنید.
✔ کدهای دیگران را مطالعه کنید و از بهترین روشها یاد بگیرید.
چند تا لینک مفید:
freecodecamp.org/news/an-introduction-to-programming-paradigms
geeksforgeeks.org/introduction-of-programming-paradigms
datacamp.com/blog/introduction-to-programming-paradigms
Forwarded from 🎄 DevTwitter | توییت برنامه نویسی
فرق بین Heap Memory و Stack Memory در جاواسکریپت؟
دیروز با یکی از شرکت ایرانی مصاحبه رفتم فارغ از یه
سری سوالات تکراری مباحثی مانند hoisting closure , type vs interface , prototype , hook ها و... از heap و stack مموری ازم پرسیدن و همچنین مدیرت درست heap در جاوااسکریپت!
۱ - استک مموری
- پشته (Stack) در JS برای ذخیره متغیرهای مقدار (Primitive Values) و فراخوانی توابع استفاده میشود.
- هر تابعی که فراخوانی شود، یک Stack Frame (قاب پشته) دریافت میکند که شامل متغیرهای محلی و پارامترهای آن تابع است.
- تخصیص حافظه در استک سریع و خودکار است.
۲ - هیپ مموری
- حافظه هیپ (Heap) برای ذخیره اشیاء (Objects) و دادههای غیر اولیه (Non-Primitive) استفاده میشود.
- حافظه در هیپ داینامیک تخصیص داده میشود و Garbage Collector آن را مدیریت میکند که هندل کردن این بر عهده برنامه نویس هست.
نکته مهم: هنگامی که یک شیء یا آرایه ساخته میشود، مقدار آن در Heap Memory ذخیره شده و آدرس (Reference) آن در Stack Memory قرار میگیرد.
خب نکته مهم دیگر این هست که اگر برنامه نویس داده زیادی را در heap ذحیره کند باید حتما بعد از استفاده مموری را آزاد کند تا سیستم دچار Memory Leak نشود که روش آزاد سازی هم به این شکل هست که اگر دیگر نیازی به داده ندارید، مقدار null یا undefined را به متغیر اختصاص دهید تا ارجاع از بین برود و یا میتونید از WeakMap استفاده کنید که خود به خود ارجاع های بدون استفاده را حذف میکند.
@DevTwitter | <Alireza Majdi/>
دیروز با یکی از شرکت ایرانی مصاحبه رفتم فارغ از یه
سری سوالات تکراری مباحثی مانند hoisting closure , type vs interface , prototype , hook ها و... از heap و stack مموری ازم پرسیدن و همچنین مدیرت درست heap در جاوااسکریپت!
۱ - استک مموری
- پشته (Stack) در JS برای ذخیره متغیرهای مقدار (Primitive Values) و فراخوانی توابع استفاده میشود.
- هر تابعی که فراخوانی شود، یک Stack Frame (قاب پشته) دریافت میکند که شامل متغیرهای محلی و پارامترهای آن تابع است.
- تخصیص حافظه در استک سریع و خودکار است.
۲ - هیپ مموری
- حافظه هیپ (Heap) برای ذخیره اشیاء (Objects) و دادههای غیر اولیه (Non-Primitive) استفاده میشود.
- حافظه در هیپ داینامیک تخصیص داده میشود و Garbage Collector آن را مدیریت میکند که هندل کردن این بر عهده برنامه نویس هست.
نکته مهم: هنگامی که یک شیء یا آرایه ساخته میشود، مقدار آن در Heap Memory ذخیره شده و آدرس (Reference) آن در Stack Memory قرار میگیرد.
خب نکته مهم دیگر این هست که اگر برنامه نویس داده زیادی را در heap ذحیره کند باید حتما بعد از استفاده مموری را آزاد کند تا سیستم دچار Memory Leak نشود که روش آزاد سازی هم به این شکل هست که اگر دیگر نیازی به داده ندارید، مقدار null یا undefined را به متغیر اختصاص دهید تا ارجاع از بین برود و یا میتونید از WeakMap استفاده کنید که خود به خود ارجاع های بدون استفاده را حذف میکند.
@DevTwitter | <Alireza Majdi/>
Forwarded from FullstacksJS — Academy
تو این پست یه سری نکته ها هست که خیلی دقیق نیست
درباره این پست زیاد میشه صحبت کرد.
یه ویس دربارش میگیرم.
درباره این پست زیاد میشه صحبت کرد.
یه ویس دربارش میگیرم.
عید همیشه فرصت خوبی برای یادگیری بوده
ما امسال تو دیجیشهر یک برنامه کارآموزی داریم تصمیم گرفتم برای کارآموزای تیمم (فرانت) یه پیش شادی آماده کنم😁💐
شامل:
کانسپت های جاوااسکریپت
ریکت
لینوکس
یه سری لینک های مفید رو هم گذاشتم که دیدنشون خالی از لطف نیست.
اینجا هم به اشتراک میذارم شاید برای دوستان دیگه هم مفید باشه❤️
https://roadmap.sh/r/peyk-shadi-2cwiq
ما امسال تو دیجیشهر یک برنامه کارآموزی داریم تصمیم گرفتم برای کارآموزای تیمم (فرانت) یه پیش شادی آماده کنم😁💐
شامل:
کانسپت های جاوااسکریپت
ریکت
لینوکس
یه سری لینک های مفید رو هم گذاشتم که دیدنشون خالی از لطف نیست.
اینجا هم به اشتراک میذارم شاید برای دوستان دیگه هم مفید باشه❤️
https://roadmap.sh/r/peyk-shadi-2cwiq
💙💙💙
امروز تقریبا شد دو سال که در مجموعه دیجیشهر به عنوان فرانتاند تیم لید فعالم و این دو سال برای من پر از تجربه های مختلف بوده که دوست دارم مهمتریناش رو به صورت یک جملهای اینجا بذارم:
۱. دیسیپلین کلید پیشرفت توی طولانی مدته.
۲. یادگیری رو به عنوان یه پروژه نگاه نکنید٬ یه روتینه.
۳. هر آدمی یه لمی داره و کار کردن با آدما خیلی میتونه پیچیده بشه اگه دقیق بهشون دقت نکنی.
۴. سافت اسکیل به اندازه هارد اسکلیل مهمه!
۵. اگه روز اول همکاری با یه مجموعه به این فکر کنی که چه برندی از خودت میخوای بسازی خیلی کارت راحتتر میشه.
۶. کنجکاو باش و سعی کن بیزنسی که داری براش ارزش خلق میکنی رو بفهمی.
۷. رو آدم ها حساب کن و بهشون شانس بده!
امروز تقریبا شد دو سال که در مجموعه دیجیشهر به عنوان فرانتاند تیم لید فعالم و این دو سال برای من پر از تجربه های مختلف بوده که دوست دارم مهمتریناش رو به صورت یک جملهای اینجا بذارم:
۱. دیسیپلین کلید پیشرفت توی طولانی مدته.
۲. یادگیری رو به عنوان یه پروژه نگاه نکنید٬ یه روتینه.
۳. هر آدمی یه لمی داره و کار کردن با آدما خیلی میتونه پیچیده بشه اگه دقیق بهشون دقت نکنی.
۴. سافت اسکیل به اندازه هارد اسکلیل مهمه!
۵. اگه روز اول همکاری با یه مجموعه به این فکر کنی که چه برندی از خودت میخوای بسازی خیلی کارت راحتتر میشه.
۶. کنجکاو باش و سعی کن بیزنسی که داری براش ارزش خلق میکنی رو بفهمی.
۷. رو آدم ها حساب کن و بهشون شانس بده!
👾15🍾13🔥2
