Forwarded from Ninja Learn | نینجا لرن
سیستم مدریت محتوا (CMS) Wegtail 🐦
امروز میخوام یه کم درمورد Wagtail صحبت کنیم؛ یه CMS حرفهای و خوشدست که این روزا بین توسعهدهندههای جنگو حسابی محبوب شده. اگه یه بار بخواین یه سیستم مدیریت محتوا (CMS) حرفهای و انعطافپذیر برای پروژههاتون راه بندازین و دیگه وردپرس و اون پلاگینها و پیچیدگیهاش خستهتون کرده، حتماً Wagtail یه گزینه ایدهآل براتونه. 😎
حالا Wagtail چیه؟ 🐦
یه سیستم مدیریت محتوای اپنسورس و مبتنی بر جنگو که برای ساخت سایتهای داینامیک و مقیاسپذیر طراحی شده. توی Wagtail از امکانات عالی جنگو استفاده شده و همینطور یه UI ساده و مینیمال داره که کار باهاش رو خیلی لذتبخش میکنه. 🎨
چرا از Wagtail استفاده کنیم؟ 🤔
1⃣ سرعت و عملکرد بالا 🚀: Wagtail با پایتون و فریمورک Django ساخته شده، که از لحاظ سرعت و پرفورمنس کلاً یه سر و گردن از وردپرس بالاتره.
2⃣ سفارشیسازی قوی 🛠️: با اینکه توی وردپرس هم میشه کد سفارشی نوشت، ولی با معماری Wagtail و قدرت جنگو، میتونید هر نوع سفارشیسازیای رو راحتتر و تمیزتر انجام بدین.
3⃣ سیستم مدیریت تصاویر و ویدئو 📸: یکی از نکات قوت Wagtail سیستم مدیریت تصاویره. این CMS ابزارهای کاملی برای برش، تغییر سایز، و بهینهسازی تصاویر داره و بهتون کمک میکنه تا محتوای تصویری باکیفیتتری بسازید.
4⃣ ـUser Experience بهتر 🧑💻: UI مینیمال و سادهای که داره، کار باهاش رو راحت و لذتبخش میکنه. شما و کاربرهاتون راحتتر میتونید صفحات و محتوای سایت رو مدیریت کنید.
مقایسه با وردپرس 🆚
خب، شاید بگید وردپرس رو همه بلدن و کلی پلاگین داره و اینا. درسته، ولی اینا همیشه هم مزیت نیستن پلاگینهای وردپرس میتونن سنگین و پر از باگ باشن و امنیت سایت رو پایین بیارن. توی Wagtail شما یه کد تمیز و ساختار منظم دارین، که نیاز به پلاگینهای اضافی رو خیلی کم میکنه.
مثال ساده از قدرت Wagtail 💡
فرض کنین میخواین یه صفحه لندینگ طراحی کنید که هم داینامیک باشه و هم زیبا. با Wagtail میتونید با چند خط کد، بلوکهای محتوایی دلخواه خودتون رو بسازید و به هر شکلی که بخواین نمایش بدین. مثلاً یه بلاک تصویر، یه بلاک متن و یه بلاک دکمه که قابل ترتیبدهی باشه. این کار توی Wagtail خیلی سادهتر و سریعتر از وردپرس انجام میشه. 🎉
امنیت و بهروزرسانی 🔐
ـWagtail به خاطر معماری امنتر جنگو و جامعه فعالی که پشتیبانشه، همیشه بهروز و امنه. دیگه نیازی نیست نگران اون همه آپدیتهای وردپرس و ناسازگاری پلاگینها باشین.
جمع بندی 📚
کلاً اگه دنبال یه CMS سریع، امن و منعطف هستید که کدهای تمیز و حرفهای داشته باشه، حتماً یه بار Wagtail رو امتحان کنین. هم از کار باهاش لذت میبرید، هم پروژهتون ساختارمندتر و حرفهایتر میشه. 👌
امید وارم مفید بوده باشه :)
امروز میخوام یه کم درمورد Wagtail صحبت کنیم؛ یه CMS حرفهای و خوشدست که این روزا بین توسعهدهندههای جنگو حسابی محبوب شده. اگه یه بار بخواین یه سیستم مدیریت محتوا (CMS) حرفهای و انعطافپذیر برای پروژههاتون راه بندازین و دیگه وردپرس و اون پلاگینها و پیچیدگیهاش خستهتون کرده، حتماً Wagtail یه گزینه ایدهآل براتونه. 😎
حالا Wagtail چیه؟ 🐦
یه سیستم مدیریت محتوای اپنسورس و مبتنی بر جنگو که برای ساخت سایتهای داینامیک و مقیاسپذیر طراحی شده. توی Wagtail از امکانات عالی جنگو استفاده شده و همینطور یه UI ساده و مینیمال داره که کار باهاش رو خیلی لذتبخش میکنه. 🎨
چرا از Wagtail استفاده کنیم؟ 🤔
1⃣ سرعت و عملکرد بالا 🚀: Wagtail با پایتون و فریمورک Django ساخته شده، که از لحاظ سرعت و پرفورمنس کلاً یه سر و گردن از وردپرس بالاتره.
2⃣ سفارشیسازی قوی 🛠️: با اینکه توی وردپرس هم میشه کد سفارشی نوشت، ولی با معماری Wagtail و قدرت جنگو، میتونید هر نوع سفارشیسازیای رو راحتتر و تمیزتر انجام بدین.
3⃣ سیستم مدیریت تصاویر و ویدئو 📸: یکی از نکات قوت Wagtail سیستم مدیریت تصاویره. این CMS ابزارهای کاملی برای برش، تغییر سایز، و بهینهسازی تصاویر داره و بهتون کمک میکنه تا محتوای تصویری باکیفیتتری بسازید.
4⃣ ـUser Experience بهتر 🧑💻: UI مینیمال و سادهای که داره، کار باهاش رو راحت و لذتبخش میکنه. شما و کاربرهاتون راحتتر میتونید صفحات و محتوای سایت رو مدیریت کنید.
مقایسه با وردپرس 🆚
خب، شاید بگید وردپرس رو همه بلدن و کلی پلاگین داره و اینا. درسته، ولی اینا همیشه هم مزیت نیستن پلاگینهای وردپرس میتونن سنگین و پر از باگ باشن و امنیت سایت رو پایین بیارن. توی Wagtail شما یه کد تمیز و ساختار منظم دارین، که نیاز به پلاگینهای اضافی رو خیلی کم میکنه.
مثال ساده از قدرت Wagtail 💡
فرض کنین میخواین یه صفحه لندینگ طراحی کنید که هم داینامیک باشه و هم زیبا. با Wagtail میتونید با چند خط کد، بلوکهای محتوایی دلخواه خودتون رو بسازید و به هر شکلی که بخواین نمایش بدین. مثلاً یه بلاک تصویر، یه بلاک متن و یه بلاک دکمه که قابل ترتیبدهی باشه. این کار توی Wagtail خیلی سادهتر و سریعتر از وردپرس انجام میشه. 🎉
امنیت و بهروزرسانی 🔐
ـWagtail به خاطر معماری امنتر جنگو و جامعه فعالی که پشتیبانشه، همیشه بهروز و امنه. دیگه نیازی نیست نگران اون همه آپدیتهای وردپرس و ناسازگاری پلاگینها باشین.
جمع بندی 📚
کلاً اگه دنبال یه CMS سریع، امن و منعطف هستید که کدهای تمیز و حرفهای داشته باشه، حتماً یه بار Wagtail رو امتحان کنین. هم از کار باهاش لذت میبرید، هم پروژهتون ساختارمندتر و حرفهایتر میشه. 👌
#cms #django #python
🔆 CHANNEL | GROUP
Forwarded from Go Casts 🚀
دو سال پیش در مورد design by contract صحبت کردم و سعی کردم در یک ویدیو توضیح بدم در موردش.
بنظرم اگه به این موضوع توجه کنیم، وسواس کمتری در مورد سیاست های کلی کد و معماری به خرج میدیم.
بهتره تلاش کنیم خودمون یه تعداد کمی اصول خوب رو که دست و پاگیر هم نباشن قرارداد کنیم، و طبق همون پیش بریم.
تاکید دارم روی تعداد کم، چون اگه زیاد باشه کار خراب میشه.
این لینک توضیحات و داکیومنت گوگل داک
https://t.iss.one/gocasts/116
اینم لینک ویدیو در یوتیوب
https://youtu.be/uibCosfk4-Y
@gocasts
بنظرم اگه به این موضوع توجه کنیم، وسواس کمتری در مورد سیاست های کلی کد و معماری به خرج میدیم.
بهتره تلاش کنیم خودمون یه تعداد کمی اصول خوب رو که دست و پاگیر هم نباشن قرارداد کنیم، و طبق همون پیش بریم.
تاکید دارم روی تعداد کم، چون اگه زیاد باشه کار خراب میشه.
این لینک توضیحات و داکیومنت گوگل داک
https://t.iss.one/gocasts/116
اینم لینک ویدیو در یوتیوب
https://youtu.be/uibCosfk4-Y
@gocasts
Telegram
Go Casts 🚀
Design by Contract
شیوه ای که golang بخش مهمی از simplicityش رو مدیونشه
همون اول کار بگم که این ادعا یک برداشت شخصیه که هیچ منبع و مرجع خارجی ای نداره. فعلا یه draft از مقاله آماده شده، اما چون ممکنه اصل تحقیقات طولانی تر بشه بهتر دیدم که نسخه draftش رو…
شیوه ای که golang بخش مهمی از simplicityش رو مدیونشه
همون اول کار بگم که این ادعا یک برداشت شخصیه که هیچ منبع و مرجع خارجی ای نداره. فعلا یه draft از مقاله آماده شده، اما چون ممکنه اصل تحقیقات طولانی تر بشه بهتر دیدم که نسخه draftش رو…
Forwarded from 🎄 یک برنامه نویس تنبل ( MΞ)
🔸IEEE 754
توضیح اینکه چرا
https://www.youtube.com/watch?v=zedgNuLM0Vo
@TheRaymondDev
توضیح اینکه چرا
9999999999999999.0 - 9999999999999998.0 = 2
https://www.youtube.com/watch?v=zedgNuLM0Vo
@TheRaymondDev
Forwarded from Python BackendHub (Mani)
سلام خدمت دوستان. حدودا ۱ سال از تاسیس کانال میگذره. برای همین این پستو میذارم که پین بمونه تا سال دیگه😁
اولا که من هیچ تبلیغی انجام نمیدم. لطفا برای این موضوع مراجعه نکنید.
دوما چند تا از دوستان این هفته لطف داشتن از من بخوان که منتورشون بشم و هزینه بدن. من منتورشیپ انجام نمیدم چون متاسفانه وقتشو ندارم, ولی هم سایت رایگان هست برای اینکار و هم اینکه من تو گروه و داخل پی وی جواب میدم و کمکی از دستم بیاد حتما انجام میدم.
سوما بهتره سوالتون رو تو گروه بپرسید چون اونجا افراد بیشتری هستن و نظرات من ممکنه bias باشه و یا اشتباه باشه. ولی باز اگه به هر دلیلی نمیخواستین داخل گروه بپرسید داخل پیوی هم پاسخ میدم.
داخل پست بعد گلچین پست ها و مطالب کانال رو میذارم. و اینو آپدیت میکنم هر از گاهی. فعالیت و تولید محتوا من همیشه به صورت رایگان بوده و خواهد ماند.
من مانی هستم. از سال ۲۰۲۰ برنامه نویسی رو به طور حرفه ای شروع کردم. قبلا پروداکت داشتم و به صورت تیمی روش کار میکردیم.البته الانم هستم ولی دیگه کاره تمام وقتم نیست. الان ۲ سالیه داخل یک استارت آپ آلمانی به عنوان مهندس نرم افزار کار میکنم و برلین زندگی میکنم. تجاربم بیشتر سمت بک اند, فرانت, تست نرم افزار (QA) و وب اسکرپ, و کمی آپریشن (ci/cd, observation, orchestration) هست. زبونی که باهاش کار میکنم پایتون و تایپ اسکریپت هست و در حال یادگیری rust هستم.
یوتیوب من:
https://www.youtube.com/@GitOverHere
لینکدین من:
https://www.linkedin.com/in/manimozaffar/
گیت هاب من:
https://github.com/manimozaffar
@PyBackendHub
اولا که من هیچ تبلیغی انجام نمیدم. لطفا برای این موضوع مراجعه نکنید.
دوما چند تا از دوستان این هفته لطف داشتن از من بخوان که منتورشون بشم و هزینه بدن. من منتورشیپ انجام نمیدم چون متاسفانه وقتشو ندارم, ولی هم سایت رایگان هست برای اینکار و هم اینکه من تو گروه و داخل پی وی جواب میدم و کمکی از دستم بیاد حتما انجام میدم.
سوما بهتره سوالتون رو تو گروه بپرسید چون اونجا افراد بیشتری هستن و نظرات من ممکنه bias باشه و یا اشتباه باشه. ولی باز اگه به هر دلیلی نمیخواستین داخل گروه بپرسید داخل پیوی هم پاسخ میدم.
داخل پست بعد گلچین پست ها و مطالب کانال رو میذارم. و اینو آپدیت میکنم هر از گاهی. فعالیت و تولید محتوا من همیشه به صورت رایگان بوده و خواهد ماند.
من مانی هستم. از سال ۲۰۲۰ برنامه نویسی رو به طور حرفه ای شروع کردم. قبلا پروداکت داشتم و به صورت تیمی روش کار میکردیم.البته الانم هستم ولی دیگه کاره تمام وقتم نیست. الان ۲ سالیه داخل یک استارت آپ آلمانی به عنوان مهندس نرم افزار کار میکنم و برلین زندگی میکنم. تجاربم بیشتر سمت بک اند, فرانت, تست نرم افزار (QA) و وب اسکرپ, و کمی آپریشن (ci/cd, observation, orchestration) هست. زبونی که باهاش کار میکنم پایتون و تایپ اسکریپت هست و در حال یادگیری rust هستم.
یوتیوب من:
https://www.youtube.com/@GitOverHere
لینکدین من:
https://www.linkedin.com/in/manimozaffar/
گیت هاب من:
https://github.com/manimozaffar
@PyBackendHub
Telegram
Python Backend Fellow
گروه رفع اشکال و بحث در مورد Backend Engineering و پایتون
Channel: @PyBackEndHub
Channel: @PyBackEndHub
Forwarded from Python BackendHub (Mani)
گلچین مطالب کانال.
۱. رزومه نویسی و کار یافتن
دوره رزومه نویسی و رشد در مسیر شغلی
چند درصد آگهی رو خوب بلدیم رزومه بفرستیم؟راهنما عملکرد بهتر در مصاحبه ها
قدم های مورد نیاز برای مهاجرت
ریپازیتوری آموزش رزومه نویسی با بیش از ۲۰۰ استار
معرفی ریسورس برای مصاحبه و بهتر کردن رزومه
۲. دوره های آموزشی در یوتیوب
دوره SQLAlchemy
دوره دیزاین پترن
دوره تست نویسی
این پست در آینده ادیت خواهد شد.
@PyBackendHub
۱. رزومه نویسی و کار یافتن
دوره رزومه نویسی و رشد در مسیر شغلی
چند درصد آگهی رو خوب بلدیم رزومه بفرستیم؟راهنما عملکرد بهتر در مصاحبه ها
قدم های مورد نیاز برای مهاجرت
ریپازیتوری آموزش رزومه نویسی با بیش از ۲۰۰ استار
معرفی ریسورس برای مصاحبه و بهتر کردن رزومه
۲. دوره های آموزشی در یوتیوب
دوره SQLAlchemy
دوره دیزاین پترن
دوره تست نویسی
این پست در آینده ادیت خواهد شد.
@PyBackendHub
Forwarded from Python BackendHub (Mani)
گلچین مطالب کانال.
۱. رزومه نویسی و کار یافتن
دوره رزومه نویسی و رشد در مسیر شغلی
چند درصد آگهی رو خوب بلدیم رزومه بفرستیم؟راهنما عملکرد بهتر در مصاحبه ها
قدم های مورد نیاز برای مهاجرت
ریپازیتوری آموزش رزومه نویسی با بیش از ۲۰۰ استار
معرفی ریسورس برای مصاحبه و بهتر کردن رزومه
۲. دوره های آموزشی در یوتیوب
دوره SQLAlchemy
دوره دیزاین پترن
دوره تست نویسی
@PyBackendHub
۱. رزومه نویسی و کار یافتن
دوره رزومه نویسی و رشد در مسیر شغلی
چند درصد آگهی رو خوب بلدیم رزومه بفرستیم؟راهنما عملکرد بهتر در مصاحبه ها
قدم های مورد نیاز برای مهاجرت
ریپازیتوری آموزش رزومه نویسی با بیش از ۲۰۰ استار
معرفی ریسورس برای مصاحبه و بهتر کردن رزومه
۲. دوره های آموزشی در یوتیوب
دوره SQLAlchemy
دوره دیزاین پترن
دوره تست نویسی
@PyBackendHub
Forwarded from Rust for Python developers
چندتا مقاله قدیمی دارم میخونم درمورد
ًRust in production at figma (2018)
دیسکورد هم یک پست درمورد اینکه چرا از
Why discord is switching from go to rust
نکته آخر اینکه؛
۱- توجه کنید به نیازمندیها و ساختار سیستمهاشون
۲- درمود بدیهایی که با
Rust خیلی جالب بود برام.ًRust in production at figma (2018)
دیسکورد هم یک پست درمورد اینکه چرا از
Go به Rust رفته منتشر کرده (همون سال ۲۰۲۰)Why discord is switching from go to rust
نکته آخر اینکه؛
۱- توجه کنید به نیازمندیها و ساختار سیستمهاشون
۲- درمود بدیهایی که با
Rust گفته شده بسیاریش توی این چندسال رفع شده و توی پرفورمنس حتی Rust سریعتر هم شده.Forwarded from Python BackendHub (Mani)
چون کانال رشد زیادی داشته این چند وقت, مجددا این پست هارو میفرستم که دوستان جدید هم با من آشنا شن و هم گلچین مطالبی که تا امروز معرفی شده داشته باشند.
لینک گروه کانال
@PyBackendHub
لینک گروه کانال
@PyBackendHub
Telegram
Python Backend Fellow
گروه رفع اشکال و بحث در مورد Backend Engineering و پایتون
Channel: @PyBackEndHub
Channel: @PyBackEndHub
Forwarded from LearnPOV | لرن پی او وی
💎 معماری MVC چیست ؟ 💎
معماری MVC یا مدل-ویو-کنترلر درواقع یک معماری برنامه نویسی که نرم افزار شما رو به سه بخش مستقل تقسیم میکنه که به وضوح تفکیک وظایف و مدیریت بهتر کدها کمک میکنه
هر کدوم از این بخش ها چی هستند ؟ 🚀
🗂️ Model (مدل)
مدل وظیفه مدیریت دیتا و منطق مرتبط با اونها رو بر عهده داره. این بخش با پایگاه داده ارتباط برقرار میکنه و شامل توابعی هست که دادهها رو ذخیره، بازیابی و ... میکند.
🖥️ View (ویو)
ویو یعنی بخش مربوط به نمایش رابط کاربری و در واقع این بخش میاد و دیتای پردازششده رو از کنترلر دریافت میکنه و اونها را به کاربر نمایش میده.
🎮 Controller (کنترلر)
این قسمت درواقع واسطه بین مدل و ویو هستش و درخواستهای کاربر رو دریافت میکنه، دیتای مورد نیاز رو از مدل درخواست میکنه و در نهایت دیتای پردازششده رو به ویو ارسال میکنه تا به کاربر نمایش داده شود.
مزایای استفاده از MVC چیه ؟ ✅
🛠️ تفکیک مسئولیتها : هر بخش مسئولیت مشخصی داره و مدیریت کدها ساده تر میشه.
⚡ قابلیت نگهداری بهتر : همه تغییرات تو یک بخش و بدون تاثیر در بخشهای دیگه انجام میشه.
📈 مقیاسپذیری : پروژهها با ساختار MVC به سادگی مقیاسپذیرن.
اینم یه نمونه کاربردی از استراکچر mvc 🔻
امیدوارم از این مطلب لذت برده باشید، با ریاکشنای خودتون بهمون انرژی بدید ❤️🔥
معماری MVC یا مدل-ویو-کنترلر درواقع یک معماری برنامه نویسی که نرم افزار شما رو به سه بخش مستقل تقسیم میکنه که به وضوح تفکیک وظایف و مدیریت بهتر کدها کمک میکنه
هر کدوم از این بخش ها چی هستند ؟ 🚀
🗂️ Model (مدل)
مدل وظیفه مدیریت دیتا و منطق مرتبط با اونها رو بر عهده داره. این بخش با پایگاه داده ارتباط برقرار میکنه و شامل توابعی هست که دادهها رو ذخیره، بازیابی و ... میکند.
خلاصش اینه که Model مدیریت و تعامل با دیتابیس رو بر عهده داره.
🖥️ View (ویو)
ویو یعنی بخش مربوط به نمایش رابط کاربری و در واقع این بخش میاد و دیتای پردازششده رو از کنترلر دریافت میکنه و اونها را به کاربر نمایش میده.
ویو معمولاً شامل قالبهای HTML یا موتورهای قالبسازی مثل EJS یا Pug هستش که بهمون کمک میکنن دیتامون رو به صورت داینامیک نشون بدیم.
🎮 Controller (کنترلر)
این قسمت درواقع واسطه بین مدل و ویو هستش و درخواستهای کاربر رو دریافت میکنه، دیتای مورد نیاز رو از مدل درخواست میکنه و در نهایت دیتای پردازششده رو به ویو ارسال میکنه تا به کاربر نمایش داده شود.
مزایای استفاده از MVC چیه ؟ ✅
🛠️ تفکیک مسئولیتها : هر بخش مسئولیت مشخصی داره و مدیریت کدها ساده تر میشه.
⚡ قابلیت نگهداری بهتر : همه تغییرات تو یک بخش و بدون تاثیر در بخشهای دیگه انجام میشه.
📈 مقیاسپذیری : پروژهها با ساختار MVC به سادگی مقیاسپذیرن.
اینم یه نمونه کاربردی از استراکچر mvc 🔻
mvc_project/
├── models/
│ └── userModel.js
├── views/
│ ├── users.ejs
│ ├── userDetail.ejs
│ └── error.ejs
├── controllers/
│ └── userController.js
├── routes/
│ └── userRoutes.js
├── public/
│ └── css/
│ └── style.css
├── server.js
└── app.js
#️⃣ #WhtsThat #MVC #structure
🫶 𝗖𝗛𝗔𝗡𝗡𝗘𝗟 | 𝗚𝗥𝗢𝗨𝗣
Forwarded from LearnPOV | لرن پی او وی
Forwarded from LearnPOV | لرن پی او وی
#WhatsThat #javascript #object
* متد Object.defineProperty در جاوااسکریپت چیست ؟ *
#part1
یکی از روشهای قدرتمند در جاوااسکریپت برای تعریف یا تغییر ویژگیهای یک شیء به صورت دقیق و کنترل شده Object.defineProperty است. با استفاده از این متد، میتوانید ویژگیهای جدیدی به یک آبجکت اضافه کنید یا ویژگیهای موجود را تغییر دهید و حتی رفتارهای سفارشی مدنظر خودتون رو برای آنها تعریف کنید.
ویژگی های کلیدی Object.defineProperty 🚀
➊ کنترل کامل بر روی ویژگیها : شما میتوانید مشخص کنید که آیا یک ویژگی قابل خواندن، نوشتن یا حذف شدن است یا خیر.
➋ تعریف getter و setter : میتوانید فانکشنالیتی کاستوم خودتون رو برای خواندن (getter) و نوشتن (setter) مقدار یک ویژگی تعریف کنید. این به شما اجازه میدهد تا عملیات پیچیدهتری را قبل یا بعد از تغییر مقدار یک ویژگی انجام دهید.
➌ ایجاد ویژگیهای غیر قابل تغییر : میتوانید ویژگیهایی ایجاد کنید که پس از مقداردهی اولیه قابل تغییر نباشند ( در چالش قبلی از این این ویژگی استفاده شده بود ).
➍ بهینه سازی عملکرد : در برخی موارد، استفاده از Object.defineProperty میتواند به بهبود عملکرد کد کمک کند.
✅ ساختار کلی Object.defineProperty
1️⃣ obj : آبجکتی که میخواهید ویژگی آن را تعریف یا تغییر دهید.
2️⃣ prop : نام ویژگیای که میخواهید تعریف کنید.
3️⃣ descriptor : یک آبجکت که ویژگیهای مورد نظر برای ویژگی جدید را توصیف میکند.
⚡ در کل Object.defineProperty یک ابزار قدرتمند برای کنترل دقیق پروپرتیها در جاوا اسکریپت است. با درک کامل این متد، میتوانید کدهای تمیزتر و انعطافپذیرتری بنویسید. هدف این پست صرفا معرفی این متد بود، توی پست های بعدی به صورت جزئی بخش های جزئی و حرفه ای تر این متد رو بررسی میکنیم ✅
⚠️ ( حتما به این نکته توجه کنید که استفاده بیش از حد از Object.defineProperty میتواند کد را پیچیدهتر کند. بنابراین، بهتر است از آن در مواردی استفاده کنید که واقعا نیاز به کنترل دقیق بر روی ویژگیهای یک شیء دارید )
Channel | YouTube | Instagram
* متد Object.defineProperty در جاوااسکریپت چیست ؟ *
#part1
یکی از روشهای قدرتمند در جاوااسکریپت برای تعریف یا تغییر ویژگیهای یک شیء به صورت دقیق و کنترل شده Object.defineProperty است. با استفاده از این متد، میتوانید ویژگیهای جدیدی به یک آبجکت اضافه کنید یا ویژگیهای موجود را تغییر دهید و حتی رفتارهای سفارشی مدنظر خودتون رو برای آنها تعریف کنید.
ویژگی های کلیدی Object.defineProperty 🚀
➊ کنترل کامل بر روی ویژگیها : شما میتوانید مشخص کنید که آیا یک ویژگی قابل خواندن، نوشتن یا حذف شدن است یا خیر.
➋ تعریف getter و setter : میتوانید فانکشنالیتی کاستوم خودتون رو برای خواندن (getter) و نوشتن (setter) مقدار یک ویژگی تعریف کنید. این به شما اجازه میدهد تا عملیات پیچیدهتری را قبل یا بعد از تغییر مقدار یک ویژگی انجام دهید.
➌ ایجاد ویژگیهای غیر قابل تغییر : میتوانید ویژگیهایی ایجاد کنید که پس از مقداردهی اولیه قابل تغییر نباشند ( در چالش قبلی از این این ویژگی استفاده شده بود ).
➍ بهینه سازی عملکرد : در برخی موارد، استفاده از Object.defineProperty میتواند به بهبود عملکرد کد کمک کند.
✅ ساختار کلی Object.defineProperty
Object.defineProperty(obj, prop, descriptor);
1️⃣ obj : آبجکتی که میخواهید ویژگی آن را تعریف یا تغییر دهید.
2️⃣ prop : نام ویژگیای که میخواهید تعریف کنید.
3️⃣ descriptor : یک آبجکت که ویژگیهای مورد نظر برای ویژگی جدید را توصیف میکند.
⚡ در کل Object.defineProperty یک ابزار قدرتمند برای کنترل دقیق پروپرتیها در جاوا اسکریپت است. با درک کامل این متد، میتوانید کدهای تمیزتر و انعطافپذیرتری بنویسید. هدف این پست صرفا معرفی این متد بود، توی پست های بعدی به صورت جزئی بخش های جزئی و حرفه ای تر این متد رو بررسی میکنیم ✅
⚠️ ( حتما به این نکته توجه کنید که استفاده بیش از حد از Object.defineProperty میتواند کد را پیچیدهتر کند. بنابراین، بهتر است از آن در مواردی استفاده کنید که واقعا نیاز به کنترل دقیق بر روی ویژگیهای یک شیء دارید )
Channel | YouTube | Instagram
Telegram
Cooly Code | کولی کد
#chalange #js_challenge
CHALLENGE ❓
const obj = { a: 1, b: 2 };
Object.defineProperty(obj, 'b', { value: 3, writable: false });
obj.b = 4;
console.log(obj.b);
CHALLENGE ❓
const obj = { a: 1, b: 2 };
Object.defineProperty(obj, 'b', { value: 3, writable: false });
obj.b = 4;
console.log(obj.b);
Forwarded from LearnPOV | لرن پی او وی
This media is not supported in your browser
VIEW IN TELEGRAM
این خیلی خوب بود 😍😂
ولی خب دور از شوخی حق میگه !
من خودم از اون کساییم که هیچوقت بحث نمیکنم در مورد اینکه دانشگاه رفتن درسته یا نه، فقط میخوام بگم صرفا با اتکا کردن به درس های دانشگاه یه حتی کلاس های حضوری و آنلاین برنامه نویسی به نقطه خفنی نمیرسید اگر میخواید پیشرفت کنید توی این حوزه باید خودتون برید دنبال چیزای جدید و از رو به رو شدن باهاشون نترسید و اجازه بدید به خودتون که خودتون تجربه کنید
ولی خب دور از شوخی حق میگه !
من خودم از اون کساییم که هیچوقت بحث نمیکنم در مورد اینکه دانشگاه رفتن درسته یا نه، فقط میخوام بگم صرفا با اتکا کردن به درس های دانشگاه یه حتی کلاس های حضوری و آنلاین برنامه نویسی به نقطه خفنی نمیرسید اگر میخواید پیشرفت کنید توی این حوزه باید خودتون برید دنبال چیزای جدید و از رو به رو شدن باهاشون نترسید و اجازه بدید به خودتون که خودتون تجربه کنید
#️⃣ #fun | #programming | #self_study
🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی
💎 بررسی tree shaking در جاوااسکریپت 💎
درواقع Tree Shaking در جاوااسکریپت یک تکنیک بهینهسازیه که کدهای استفاده نشده رو از باندل نهایی حذف میکنه و به طور خاص با ماژولهای ES6 کار میکنه که از دستورهای
چه مزایایی داره ؟ 🚀
با کاهش حجم باندل با حذف کدهای اضافی و استفادهنشده، حجم فایل نهایی کاهش پیدا میکنه و بارگذاری صفحات سریعتر میشه و همچنین باعث میشه تا منابع سیستم کمتر مصرف بشن.
نحوه کار Tree Shaking 📈
درواقع Tree shaking تنها با ماژولهای ES6 کار میکنه، چون این ماژولها به طور ایستا وابستگیهای خودشونو مشخص میکنن ( برای درک بهتر این مقاله رو بخونید )، حالا وقتی که از کدهای
نحوه فعال کردن tree shaking ✅
برای اطلاع از نحوه کارکرد tree-shaking در Webpack و Rollup میتونید از لینک های زیر استفاده کنید
توی این پست سعی کردم به طور کامل tree shaking رو بهتون توضیح بدم، اگر دوست داشتید با ریاکشناتون بهمون انرژی بدید ❤️
درواقع Tree Shaking در جاوااسکریپت یک تکنیک بهینهسازیه که کدهای استفاده نشده رو از باندل نهایی حذف میکنه و به طور خاص با ماژولهای ES6 کار میکنه که از دستورهای
import و export برای مدیریت وابستگیها استفاده میکنند.هدف اصلی tree shaking اینه که فقط کدی که واقعاً در برنامه استفاده میشود در باندل نهایی باقی بماند و کدهای اضافی حذف شوند 💥
چه مزایایی داره ؟ 🚀
با کاهش حجم باندل با حذف کدهای اضافی و استفادهنشده، حجم فایل نهایی کاهش پیدا میکنه و بارگذاری صفحات سریعتر میشه و همچنین باعث میشه تا منابع سیستم کمتر مصرف بشن.
نحوه کار Tree Shaking 📈
درواقع Tree shaking تنها با ماژولهای ES6 کار میکنه، چون این ماژولها به طور ایستا وابستگیهای خودشونو مشخص میکنن ( برای درک بهتر این مقاله رو بخونید )، حالا وقتی که از کدهای
import و export استفاده میکنیم، ابزارهایی مثل Webpack میتونن بفهمند کدوم بخش از کد ما مورد استفاده قرار نمیگیره و اونها را حذف کنند.نکته ای که وجود داره اینه که جاوااسکریپت به تنهایی نمیتونه tree shaking رو فعال کنه و توسط bundlerهایی مثل webpack و rollup انجام میشه !
نحوه فعال کردن tree shaking ✅
برای اطلاع از نحوه کارکرد tree-shaking در Webpack و Rollup میتونید از لینک های زیر استفاده کنید
🌐 Webpack
🌐 Rollup
#️⃣ #WhtsThat #javascript #bundlesize #tree_shaking #webpack #rollup
🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی
1000287019.jpg
119.9 KB
🔸 وبسایت Npmtrends براتون این امکان رو فراهم کرده تا محبوبیت و میزان استفاده از پکیجهای مختلف npm رو با نمودارهایی که داره باهم دیگه مقایسه کنید
درواقع این ابزار با اطلاعاتی که بهتون میده بهتون کمک میکنه تا پکیج مناسب رو برای پروژه خودتون پیدا کنید ✅
🌐 مشاهده وبسایت
درواقع این ابزار با اطلاعاتی که بهتون میده بهتون کمک میکنه تا پکیج مناسب رو برای پروژه خودتون پیدا کنید ✅
مثلا من توی این عکس پکیج react-hook-form رو با Formik مقایسه کردم و میتونید تمامی اطلاعاتشون رو ببینید مثل تعداد issueها، تعداد نصب بر اساس تاریخ و ...
🌐 مشاهده وبسایت
#️⃣ #website #npm #npmtrends
🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی
💎 معرفی کتابخانه Tailwind Variants 💎
کتابخانه Tailwind Variants یک ابزار جانبی برای Tailwind CSS هستش که به شما کمک میکنه تا مدیریت کلاسهای CSSای به شکل ساده تری انجام بشه و از شلوغی کد شما جلوگیری میکنه 💥
🌐 داکیومنت Tailwind Variants
کتابخانه Tailwind Variants یک ابزار جانبی برای Tailwind CSS هستش که به شما کمک میکنه تا مدیریت کلاسهای CSSای به شکل ساده تری انجام بشه و از شلوغی کد شما جلوگیری میکنه 💥
این کتابخانه به شما این امکان رو میده تا به آسانی حالتهای مختلفی مثل رنگ، سایز و ... رو در یک کامپوننت با استفاده از کلاسهای tailwind تعریف و مدیریت کنید.توی پست های بعدی به بررسی قابلیت های این کتابخانه جذاب میپردازیم ✅
🌐 داکیومنت Tailwind Variants
#️⃣ #WhatsThat | #libarary | #tailwind
🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی
This media is not supported in your browser
VIEW IN TELEGRAM
💎 جعبه ابزار جادویی Frontend دولوپرا 💎
یک ui kit خفن اوردم براتون که به ادعای خودش جادوییه، اسمش MagicUI هستش و بیش از ۵۰ کامپوننت animate ( انیمیشنی ) شده خفن داره که بهتون قول میدم اگر ببینیدش شما هم مجذوبشون میشید بس که جذابه.
حالا چرا میگم انقدر جذاب و خفنه ؟
به این دلیل که برای ایجاد انیمیشن ها از Framer Motion استفاده میکنه که واقعا بهش قدرت میبخشه و برای استایل دهی ام از tailwind استفاده میکنه.
🌐 مشاهده وبسایت
یک ui kit خفن اوردم براتون که به ادعای خودش جادوییه، اسمش MagicUI هستش و بیش از ۵۰ کامپوننت animate ( انیمیشنی ) شده خفن داره که بهتون قول میدم اگر ببینیدش شما هم مجذوبشون میشید بس که جذابه.
حالا چرا میگم انقدر جذاب و خفنه ؟
به این دلیل که برای ایجاد انیمیشن ها از Framer Motion استفاده میکنه که واقعا بهش قدرت میبخشه و برای استایل دهی ام از tailwind استفاده میکنه.
فیلم چند نمونه از کامپوننت هاش رو گذاشتم میتونید ببینید، لینک سایتشم میزارم براتون حتما یه سر بهش بزنید 🚀
🌐 مشاهده وبسایت
#️⃣ #libarary | #uikit | #tools
🚀 @coolycode