Forwarded from PhiloLearn | فیلولرن
This media is not supported in your browser
VIEW IN TELEGRAM
خبر اومده که بعضی از دوستان این نکته رو رعایت نمیکنن
لطفا حواستون رو جمع کنید عزیزان😂😂😂
#fun
@PhiloLearn
لطفا حواستون رو جمع کنید عزیزان😂😂😂
#fun
@PhiloLearn
Forwarded from Linuxor ?
من همیشه برای اینکه کل کدهام رو به شکل قابل فهمی به ChatGPT یا Claude بدم مشکل داشتم. برای این موضوع یه اسکریپت نوشته بودم و روزی نبوده ازش استفاده نکنم! امروز تصمیم گرفتم یه دستی روش بکشم و به صورت متن باز منتشرش کنم تا شما هم استفاده کنید:
https://github.com/mimalef70/CodeTree
🐧 @Linuxor ~ Mostafa Alahyari
https://github.com/mimalef70/CodeTree
🐧 @Linuxor ~ Mostafa Alahyari
Forwarded from Codino School (ایمان غفوری)
Environment manipulation via query string · Advisory · laravel/framework · GitHub
https://github.com/laravel/framework/security/advisories/GHSA-gv7v-rgg6-548h
https://github.com/laravel/framework/security/advisories/GHSA-gv7v-rgg6-548h
GitHub
Environment manipulation via query string
## Description
When the `register_argc_argv php` directive is set to `on` , and users call any URL with a special crafted query string, they are able to change the environment used by the framew...
When the `register_argc_argv php` directive is set to `on` , and users call any URL with a special crafted query string, they are able to change the environment used by the framew...
Forwarded from Ninja Learn | نینجا لرن
دوستان نظرتون چیه که هر هفته یه نظر سنجی بزاریم و پستایی که شما میخواید رو در طول اون هفته درست کنیم؟ 🤔
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);