با فریمورک Hapi بیشتر آشنا بشید 💀
Hapi یک فریمورک قدرتمند و انعطاف پذیر Node.js هست، که برای ساخت برنامه ها و سرویس های وب قوی و مقیاس پذیر طراحی شده. Hapi به دلیل تاکید بر توسعه مبتنی بر configuration-driven، محبوبیت خودش رو افزایش داد. معماری Hapi حول یک طرح ماژولار ساخته شده که به دولوپر ها اجازه میده تا با ترکیب اجزای کوچکتر و قابل استفاده مجدد، برنامه های پیچیده بسازن.
برخی از کاربرد های Hapi⬇️
🔢 توسعه API: یک جعبه ابزار جامع برای ساخت API های RESTful ارائه میده. سیستم routing اون بسیار قابل تنظیمه و به دولوپر ها این امکان رو میده تا مسیرهایی رو با کنترل دقیق بر رسیدگی به درخواست ها تعریف کنن.
🔢 رویکرد مبتنی بر پیکربندی: رویکرد پیکربندی محور Hapi، مقدار کد مورد نیاز رو کاهش میده و مدیریت پروژه های بزرگ رو آسون تر میکنه. این رویکرد همچنین خوانایی و قابلیت نگهداری کد ها رو افزایش میده.
🔢 سیستم پلاگین: یکی از ویژگی های برجسته Hapi، معماری قدرتمند پلاگین اون هست. این ماژولار بودن استفاده مجدد از کد رو ترویج می کنه و ادغام فیچر های جدید رو ساده میکنه.
به طور کلی Hapi یک انتخاب عالی برای دولوپر هایی هست که به دنبال ساخت برنامه ها و سرویس های وب مقیاس پذیر و قابل نگهداری، با Node.js هستن. برای کسب اطلاعات بیشتر به داکیومنت خود فریمورک مراجعه کنید.
#hapi #nodejs
@CodeModule
Hapi یک فریمورک قدرتمند و انعطاف پذیر Node.js هست، که برای ساخت برنامه ها و سرویس های وب قوی و مقیاس پذیر طراحی شده. Hapi به دلیل تاکید بر توسعه مبتنی بر configuration-driven، محبوبیت خودش رو افزایش داد. معماری Hapi حول یک طرح ماژولار ساخته شده که به دولوپر ها اجازه میده تا با ترکیب اجزای کوچکتر و قابل استفاده مجدد، برنامه های پیچیده بسازن.
برخی از کاربرد های Hapi
به طور کلی Hapi یک انتخاب عالی برای دولوپر هایی هست که به دنبال ساخت برنامه ها و سرویس های وب مقیاس پذیر و قابل نگهداری، با Node.js هستن. برای کسب اطلاعات بیشتر به داکیومنت خود فریمورک مراجعه کنید.
#hapi #nodejs
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10⚡3
اشکال svg حرفه ای طراحی کن 😄
وبسایت Blobmaker یک ابزار کاربردی برای طراحی اشکال SVG منحصر به فرد و حرفه ای هست. شما میتونید پیچیدگی و کنتراست این اشکال رو تنظیم و به سرعت اکسپورت بگیرید، و در نهایت به پروژه هاتون با این اشکال، رنگ و لعاب بدید.
🌐 Website
#svg
@CodeModule
وبسایت Blobmaker یک ابزار کاربردی برای طراحی اشکال SVG منحصر به فرد و حرفه ای هست. شما میتونید پیچیدگی و کنتراست این اشکال رو تنظیم و به سرعت اکسپورت بگیرید، و در نهایت به پروژه هاتون با این اشکال، رنگ و لعاب بدید.
#svg
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡11👌4🔥3
۶ پروژه خفن و حرفه ای Next.js 👩💻
تو این پست میخوام یه مقاله بهتون معرفی کنم که ۶ پروژه کامل Next.js رو معرفی، و گیتهابشون رو قرار داده. اگه به دنبال ایده برای پروژه زدن هستید، یا دوست دارید ساز و کار پروژه های نکستی رو ببینید، یه سر بزنید.
✍️ Article
#article
@CodeModule
تو این پست میخوام یه مقاله بهتون معرفی کنم که ۶ پروژه کامل Next.js رو معرفی، و گیتهابشون رو قرار داده. اگه به دنبال ایده برای پروژه زدن هستید، یا دوست دارید ساز و کار پروژه های نکستی رو ببینید، یه سر بزنید.
#article
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡16🔥2
با Moment.js هر تاریخی که میخوای به نمایش بزار 😊
Moment.js یک کتابخانه محبوب جاوا اسکریپت برای تجزیه، اعتبارسنجی، دستکاری و نمایش تاریخ و زمان هست. این کتابخانه به یک ابزار ضروری برای دولوپر هایی تبدیل شده، که به قابلیت های دستکاری تاریخ در برنامه های خود نیاز دارن.
این کتابخانه چه کاربرد هایی داره؟🦦
1. تجزیه و قالببندی: Moment.js به شما امکان میده تاریخها رو از فرمتهای مختلف تجزیه کرده و اون رو در فرمتهای مختلف خروجی بگیرید.
2. دستکاری: این کتابخونه متد های ساده ای رو برای جمع، تفریق و دستکاری تاریخ ها ارائه میده. این برای محاسبه تاریخ های آینده یا گذشته نسبت به تاریخ فعلی مفید هست.
3. محلی سازی: Moment.js از چندین منطقه پشتیبانی میکنه و برنامه ها رو قادر میسازه، تا تاریخ و زمان ها رو در قالب ترجیحی کاربران از مناطق مختلف به نمایش بزارن.
به طور کلی Moment.js یک کتابخانه قدرتمند و منعطفه که به طور قابل توجهی، دستکاری تاریخ و زمان رو در برنامه های JavaScript و Node.js ساده کرده. API جامع اون تقریباً تمام وظایف مربوط به تاریخ رو که ممکنه دولوپر با اون ها مواجه بشن، از تجزیه و قالببندی اولیه تا مدیریت منطقه زمانی پیشرفته و محاسبات مدت زمان پوشش میده.
برای کسب اطلاعات بیشتر به وبسایت رسمی Moment.js مراجعه کنید.
#moment
@CodeModule
Moment.js یک کتابخانه محبوب جاوا اسکریپت برای تجزیه، اعتبارسنجی، دستکاری و نمایش تاریخ و زمان هست. این کتابخانه به یک ابزار ضروری برای دولوپر هایی تبدیل شده، که به قابلیت های دستکاری تاریخ در برنامه های خود نیاز دارن.
این کتابخانه چه کاربرد هایی داره؟
1. تجزیه و قالببندی: Moment.js به شما امکان میده تاریخها رو از فرمتهای مختلف تجزیه کرده و اون رو در فرمتهای مختلف خروجی بگیرید.
2. دستکاری: این کتابخونه متد های ساده ای رو برای جمع، تفریق و دستکاری تاریخ ها ارائه میده. این برای محاسبه تاریخ های آینده یا گذشته نسبت به تاریخ فعلی مفید هست.
3. محلی سازی: Moment.js از چندین منطقه پشتیبانی میکنه و برنامه ها رو قادر میسازه، تا تاریخ و زمان ها رو در قالب ترجیحی کاربران از مناطق مختلف به نمایش بزارن.
به طور کلی Moment.js یک کتابخانه قدرتمند و منعطفه که به طور قابل توجهی، دستکاری تاریخ و زمان رو در برنامه های JavaScript و Node.js ساده کرده. API جامع اون تقریباً تمام وظایف مربوط به تاریخ رو که ممکنه دولوپر با اون ها مواجه بشن، از تجزیه و قالببندی اولیه تا مدیریت منطقه زمانی پیشرفته و محاسبات مدت زمان پوشش میده.
برای کسب اطلاعات بیشتر به وبسایت رسمی Moment.js مراجعه کنید.
#moment
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10⚡2
پروتکل SSH چیه و چه کاربردی داره 🧠
پروتکل SSH یک روش ارتباطی امن برای برقراری اتصال بین کلاینت یا کاربر با سرور از راه دور هست. از طریق این پروتکل میتونیم به ترمینال لینوکس متصل، و کد های سمت سروری رو اجرا کنیم.
SSH مخفف عبارت Secure Socket Shell هست و همچنین به Source Shell هم شناخته میشه و به منظور برقراری ارتباط امن بین دو دستگاه، دو کامپیوتر یا کامپیوتر و سرور، بر روی شبکه ارائه شده. این پروتکل، در واقع جایگزینی برای پروتکل هایی مثل FTP و Telnet هست که قدیمی ترن و نسبتاً امنیت پایین تری دارن.
پایین بودن امنیت در پروتکل های FTP و Telnet امکان دسترسی هکر ها به اطلاعات در حال انتقال در شبکه وجود داشت. بنابراین این نیاز به شدت وجود داشت که پروتکلی با امنیت بالا به منظور حفظ اطلاعات مهم در دسترس افراد قرار بگیره😈
✅ مزایای استفاده از SSH چیه ؟
1️⃣ ارتباط ایمن : دلیل اصلی ابداع پروتکل SSH، ارتقای امنیت در ارتباطات اینترنتی بین دو کامپیوتر بود.که SSH با رمزگذاری تمامی دادههای منتقلشده در شبکه، یک کانال امن در شبکههایی با امنیت نامشخص ایجاد میکنه.
2️⃣ روشهای احراز هویت قدرتمند : پروتکل SSH این امکان رو داره که از سیستمهای پیشرفتهای مثلِ کلید عمومی برای احراز هویت کلاینت استفاده کنه. این سیستم احراز هویت بسیار قدرتمندتر از انواع دیگه، مثل نام کاربری و رمز عبور هست و به همین دلیل میتونه به شما سطح بسیار بالاتری از امنیت رو ارائه بده.
3️⃣ امکان استفاده از تونلزنی (Tunneling Capability) : یکی دیگه از امکانات SSH که میشه ازش بهعنوانِ یکی از ویژگیهای این پروتکل نام برد، امکان تونلزنی هست. با این قابلیت، مثلاً میتونیم اطلاعات دیتابیس رو از طریق یک سیستم تونلزنی پیشرفته منتقل کرد و دیگه نگران sniff یا شنود شدن غیرقانونی اطلاعات هم نبود.
4️⃣ انعطافپذیری بالا : پروتکل SSH کاملاً انعطافپذیره؛ این یعنی شما میتونید از این پروتکل برای کارهای مختلفی استفاده کنید. مثلاً میتونید ازش برای انتقال امن فایلها با استفاده از SCP یا SFTP، مدیریت سرور و هاست از راه دور و همچنین مدیریت سیستمهای شبکه استفاده کنید.
❌ معایب استفاده از SSH چیه ؟
1️⃣ پیکربندی پیچیده : اگر پیکربندی SSH رو بهصورت صحیح و ایمن انجام ندید، نه تنها امنیت بالایی بهدست نمیارید، بلکه حتی ممکنه با چالش جدی هم مواجه بشید. بنابراین بهتره این کار رو به دست کسی بسپارید که هم با این پروتکل آشنایی کاملی داشته باشه و هم تجربهی بالایی در استفاده ازش داشته باشه.
2️⃣ تاثیر احتمالی روی سرعت سیستم : فرایندهای رمزگذاری و رمزگشایی میتونه سربارهای اضافی روی سیستم ایجاد کنه. اگر چه این سربارها برای کارهای معمول و حتی پیشرفته، مشکل چندانی ایجاد نمیکنه، اما برای کارهایی که نیاز به کانکشنهای پرسرعت دارن و یا بار روی سرور به اندازهی کافی زیاده، اضافه شدن این بار ممکنه به کاهش عملکرد سرور منجر بشه.
به طور کلی با SSH میتونید یک راه امن برای ارسال و دریافت اطلاعات داشته باشید. SSH در شبکه و سرویس اینترنتی (technical ability afforded by the Internet) بسیار پرکاربرده و تقریباً همه سرور های میزبان از این فناوری استفاده میکنن.
#ssh #protocol
@CodeModule
پروتکل SSH یک روش ارتباطی امن برای برقراری اتصال بین کلاینت یا کاربر با سرور از راه دور هست. از طریق این پروتکل میتونیم به ترمینال لینوکس متصل، و کد های سمت سروری رو اجرا کنیم.
SSH مخفف عبارت Secure Socket Shell هست و همچنین به Source Shell هم شناخته میشه و به منظور برقراری ارتباط امن بین دو دستگاه، دو کامپیوتر یا کامپیوتر و سرور، بر روی شبکه ارائه شده. این پروتکل، در واقع جایگزینی برای پروتکل هایی مثل FTP و Telnet هست که قدیمی ترن و نسبتاً امنیت پایین تری دارن.
پایین بودن امنیت در پروتکل های FTP و Telnet امکان دسترسی هکر ها به اطلاعات در حال انتقال در شبکه وجود داشت. بنابراین این نیاز به شدت وجود داشت که پروتکلی با امنیت بالا به منظور حفظ اطلاعات مهم در دسترس افراد قرار بگیره
به طور کلی با SSH میتونید یک راه امن برای ارسال و دریافت اطلاعات داشته باشید. SSH در شبکه و سرویس اینترنتی (technical ability afforded by the Internet) بسیار پرکاربرده و تقریباً همه سرور های میزبان از این فناوری استفاده میکنن.
#ssh #protocol
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10⚡3
رسپانسیو پروژت رو چک کن! 🦦
LambdaTest یک پلتفرم ابریه که به شما کمک میکنه، تا پروژه هاتون رو در بیش از 2000 مرورگر، سیستم عامل و دستگاه مختلف آزمایش کنید. با استفاده از این ابزار، میتونید سازگاری بین مرورگرها رو به صورت دستی یا اتوماتیک آزمایش کنید.
🔗 Website
#responsive
@CodeModule
LambdaTest یک پلتفرم ابریه که به شما کمک میکنه، تا پروژه هاتون رو در بیش از 2000 مرورگر، سیستم عامل و دستگاه مختلف آزمایش کنید. با استفاده از این ابزار، میتونید سازگاری بین مرورگرها رو به صورت دستی یا اتوماتیک آزمایش کنید.
#responsive
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17⚡3👌1
با Adonis.js بیشتر آشنا بشید! 🕸
Adonis.js یک فریمورک با امکانات کامل برای Node.js هست که بر ثبات و اطمینان دولوپر ها تمرکز داره. این فریمورک با الهام از اصول طراحی لاراول، مجموعه ای غنی از فیچر ها رو ارائه میده که اون رو به گزینه ای عالی برای ساخت اپ های کاربردی وب و API های مقیاس پذیر و قابل نگهداری، تبدیل میکنه.
Adonis.js چه کاربردهایی داره؟🤔
1⃣ Routing: یک سیستم routing قدرتمند رو ارائه میده که از گروه بندی مسیرها، پارامترهای مسیر و اعتبارسنجی مسیر پشتیبانی میکنه و تعریف endpoint واضح و قابل نگهداری رو برای برنامه شما آسون میکنه.
2⃣ ORM: یک ORM داخلی به نام Lucid که یک API ساده و شهودی برای تعامل با دیتابیس ها ارائه میده، از دیتابیس های مختلفی مانند MySQL، PostgreSQL و SQLite پشتیبانی میکنه.
3⃣ احراز هویت: Adonis.js دارای مکانیزم های احراز هویت قوی هست که از استراتژی های احراز هویت مبتنی بر session و توکن پشتیبانی میکنه.
Adonis.js به عنوان یک فریمورک جامع برای برنامههای Node.js، نسبت به بقیه متمایز هست. طراحی الهام گرفته اون از لاراول همراه با قدرت TypeScript، پایه ای قوی و مقیاس پذیر برای ساخت برنامه های کاربردی وب مدرن فراهم میکنه.
برای کسب اطلاعات بیشتر به داکیومنتش مراجعه کنید.
#adonis
@CodeModule
Adonis.js یک فریمورک با امکانات کامل برای Node.js هست که بر ثبات و اطمینان دولوپر ها تمرکز داره. این فریمورک با الهام از اصول طراحی لاراول، مجموعه ای غنی از فیچر ها رو ارائه میده که اون رو به گزینه ای عالی برای ساخت اپ های کاربردی وب و API های مقیاس پذیر و قابل نگهداری، تبدیل میکنه.
Adonis.js چه کاربردهایی داره؟
Adonis.js به عنوان یک فریمورک جامع برای برنامههای Node.js، نسبت به بقیه متمایز هست. طراحی الهام گرفته اون از لاراول همراه با قدرت TypeScript، پایه ای قوی و مقیاس پذیر برای ساخت برنامه های کاربردی وب مدرن فراهم میکنه.
برای کسب اطلاعات بیشتر به داکیومنتش مراجعه کنید.
#adonis
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡10🔥3
سوالات مصاحبه ای شرکت های بزرگ 🦦
استخدام شدن در یک شرکت بزرگ برنامه نویسی کار بسیار پر چالش و سختیه. دلیلش هم اینه که اونا به دنبال کسی هستن که بتونه، الگوریتمها و سوالات پیچیدهای که مفاهیم عمیق برنامه نویسی رو هدف قرار میده، به خوبی پاسخ بده.
در ریپازیتوری Coding Interview University، شما میتونید مجموعه عظیمی از سوالات و منابع آموزشی رو پیدا کنید که در هنگام مواجه با استخدام در یک شرکت بزرگ مانند گوگل، فیسبوک و مایکروسافت درگیر اونها خواهید شد.
🌪 Repository
#work
@CodeModule
استخدام شدن در یک شرکت بزرگ برنامه نویسی کار بسیار پر چالش و سختیه. دلیلش هم اینه که اونا به دنبال کسی هستن که بتونه، الگوریتمها و سوالات پیچیدهای که مفاهیم عمیق برنامه نویسی رو هدف قرار میده، به خوبی پاسخ بده.
در ریپازیتوری Coding Interview University، شما میتونید مجموعه عظیمی از سوالات و منابع آموزشی رو پیدا کنید که در هنگام مواجه با استخدام در یک شرکت بزرگ مانند گوگل، فیسبوک و مایکروسافت درگیر اونها خواهید شد.
تمام موضوعاتی که در این ریپازیتوری مطرح شده، به صورت قدم به قدم بوده و بهتره که به صورت مرتب منابع اون رو مطالعه کرده و شاخه به شاخه نشید.
#work
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10⚡2
با این پترن پل درست کنید! 🦦
پترن Bridge یک دیزاین پترن Structural و جزو 23 الگو GoF هست، که در مهندسی نرمافزار استفاده میشه و به معنای جدا کردن یک انتزاع از اجرای اون میباشد به طوری که این دو میتونن به طور مستقل، متفاوت باشن. به عبارت دیگه الگوی Bridge یک انتزاع (what) را از اجرای اون (how) جدا میکنه.
این جدا سازی باعث ترویج:
🟠 انعطاف پذیری: به راحتی با افزودن پیاده سازی های جدید سازگار میشه.
🟠 قابلیت نگهداری: انتزاع یا پیاده سازی ها رو به طور مستقل تغییر میده.
🟠 قابلیت استفاده مجدد: انتزاعات به خوبی تعریف شده استفاده مجدد از کد رو ترویج میکنن.
🟠 تست پذیری: تمرکز بر رفتار انتزاعی، تست رو ساده میکنه.
برای اینکه بهتر این پترن رو درک کنید، مثال زیر رو بخونید:
به کلید و پریز تو اتاقتون نگاه کنید. خود کلید (انتزاع) یک راه استاندارد برای روشن یا خاموش کردن لامپ (operations) ارائه میده. با این حال، سیم کشی برق و نوع لامپ (implementation) میتونه بسته به محل (location) و محل نصب متفاوت باشه. شما میتونید یک لامپ (implementation) رو بدون تأثیر بر نحوه استفاده از کلید (انتزاع) تعویض کنید. به طور مشابه، انواع مختلف کلید ها (اجرا با مکانیزم های مختلف) رو میشه با یک لامپ ثابت (انتزاعی) استفاده کرد.
این پترن چه مشکلاتی رو حل کنه؟ منبع
فرض کنید یک کلاس Shape با دو کلاسی که از اون ارث میبرن به اسم های Circle و Square دارید. شما میخواید این سلسله مراتب کلاس رو برای ترکیب رنگ ها گسترش بدین، بنابراین قصد دارید ساب کلاس های شکل قرمز و آبی بسازین. با این حال، از اونجایی که شما در حال حاضر دو کلاس فرعی دارید، باید چند کلاس مانند BlueCircle و RedSquare نیز بسازید.(خسته کننده هست😶🌫️)
افزودن انواع شکل ها و رنگ های جدید سلسله مراتب اون رو به صورت تصاعدی رشد میده. به عنوان مثال، برای اضافه کردن یک شکل مثلث، باید دو زیر کلاس جدید معرفی کنین، و هر چه جلوتر میریم بدتر میشه. اینجا هست که پترن Bridge به کمکون میاد.
پترن Bridge چجوری کمک میکنه؟
الگوی Bridge سعی میکنه این مشکل رو با تغییر از وراثت به composition حل کنه. به این معنی هست که به جای اینکه تمامی ابعاد و رفتارها در یک سلسله مراتب کلاس واحد نگهداری بشن، این الگو میاد یکی از ابعاد رو به صورت جداگانه در یک سلسله مراتب کلاس مستقل استخراج میکنه. به این ترتیب، کلاسهای اصلی به جای اینکه تمام وضعیتها و رفتارها رو در خود داشته باشن، به یک شی از سلسله مراتب جدید ارجاع میدن.
به صورت کلی پترن Bridge به شما این امکان رو میده که بتونید تغییرات رو به راحتی مدیریت کرده و از کد خود به طور مؤثری استفاده مجدد کنید. برای کسب اطلاعات بیشتر در مورد این پترن، به مقالات زیر مراجعه کنید.
- Article
- Article
- Article
#design_pattern
@CodeModule
پترن Bridge یک دیزاین پترن Structural و جزو 23 الگو GoF هست، که در مهندسی نرمافزار استفاده میشه و به معنای جدا کردن یک انتزاع از اجرای اون میباشد به طوری که این دو میتونن به طور مستقل، متفاوت باشن. به عبارت دیگه الگوی Bridge یک انتزاع (what) را از اجرای اون (how) جدا میکنه.
این جدا سازی باعث ترویج:
برای اینکه بهتر این پترن رو درک کنید، مثال زیر رو بخونید:
به کلید و پریز تو اتاقتون نگاه کنید. خود کلید (انتزاع) یک راه استاندارد برای روشن یا خاموش کردن لامپ (operations) ارائه میده. با این حال، سیم کشی برق و نوع لامپ (implementation) میتونه بسته به محل (location) و محل نصب متفاوت باشه. شما میتونید یک لامپ (implementation) رو بدون تأثیر بر نحوه استفاده از کلید (انتزاع) تعویض کنید. به طور مشابه، انواع مختلف کلید ها (اجرا با مکانیزم های مختلف) رو میشه با یک لامپ ثابت (انتزاعی) استفاده کرد.
این پترن چه مشکلاتی رو حل کنه؟ منبع
فرض کنید یک کلاس Shape با دو کلاسی که از اون ارث میبرن به اسم های Circle و Square دارید. شما میخواید این سلسله مراتب کلاس رو برای ترکیب رنگ ها گسترش بدین، بنابراین قصد دارید ساب کلاس های شکل قرمز و آبی بسازین. با این حال، از اونجایی که شما در حال حاضر دو کلاس فرعی دارید، باید چند کلاس مانند BlueCircle و RedSquare نیز بسازید.
افزودن انواع شکل ها و رنگ های جدید سلسله مراتب اون رو به صورت تصاعدی رشد میده. به عنوان مثال، برای اضافه کردن یک شکل مثلث، باید دو زیر کلاس جدید معرفی کنین، و هر چه جلوتر میریم بدتر میشه. اینجا هست که پترن Bridge به کمکون میاد.
پترن Bridge چجوری کمک میکنه؟
الگوی Bridge سعی میکنه این مشکل رو با تغییر از وراثت به composition حل کنه. به این معنی هست که به جای اینکه تمامی ابعاد و رفتارها در یک سلسله مراتب کلاس واحد نگهداری بشن، این الگو میاد یکی از ابعاد رو به صورت جداگانه در یک سلسله مراتب کلاس مستقل استخراج میکنه. به این ترتیب، کلاسهای اصلی به جای اینکه تمام وضعیتها و رفتارها رو در خود داشته باشن، به یک شی از سلسله مراتب جدید ارجاع میدن.
به صورت کلی پترن Bridge به شما این امکان رو میده که بتونید تغییرات رو به راحتی مدیریت کرده و از کد خود به طور مؤثری استفاده مجدد کنید. برای کسب اطلاعات بیشتر در مورد این پترن، به مقالات زیر مراجعه کنید.
- Article
- Article
- Article
#design_pattern
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡6🔥3
با Reflect در جاوااسکریپت بیشتر آشنا بشید ✌️
آبجکت یا شئ Reflect، شامل متدهای استاتیک برای فراخوانی متدهای داخلی interceptable اشیاء جاوااسکریپته. برخلاف اکثر گلوبال آبجکت ها، Reflect یک constructor نیست، یعنی شما نمیتونید از اون با اوپراتور new استفاده کنید یا شیء Reflect رو به عنوان یک تابع کال کنید. تمام ویژگیها و متدهای Reflect استاتیک هستن (مثل آبجکت Math).
✅ آبجکت Reflect مجموعهای از توابع استاتیک رو فراهم میکنه که نامهای مشابهی با متدهای هندلر پروکسی دارن.
مهم ترین استفاده ای که از Reflect میتونیم کنیم، اینه که default behavior رو در traps های (تابعی که رفتار متد داخلی مربوط به شیء یا آبجکتو تعریف میکنه) هندلر پروکسی مشخص کنیم.
یک trap برای متوقف کردن یک عملیات بر روی یک آبجکت استفاده میشه. برای مثال کدی که در خط های پایین تر میبینید، یک پروکسی با trap یک deleteProperty ایجاد میکنه که متد داخلی [[Delete]] رو متوقف میکنه. ()Reflect.deleteProperty برای فراخوانی رفتار پیشفرض [[Delete]] بر روی targetObject بهطور مستقیم استفاده میشه، که میتونید اونو با delete هم جایگزین کنید.
🚀 متدهای
اگر از اپراتور
تقریباً رفتار هر متد
برای کسب اطلاعات بیشتر و درک عمیق تر Reflect و static method هاش، میتونید به منبع زیر مراجعه کنید🏖️
Document🌕
#javascript #reflect
@CodeModule
آبجکت یا شئ Reflect، شامل متدهای استاتیک برای فراخوانی متدهای داخلی interceptable اشیاء جاوااسکریپته. برخلاف اکثر گلوبال آبجکت ها، Reflect یک constructor نیست، یعنی شما نمیتونید از اون با اوپراتور new استفاده کنید یا شیء Reflect رو به عنوان یک تابع کال کنید. تمام ویژگیها و متدهای Reflect استاتیک هستن (مثل آبجکت Math).
مهم ترین استفاده ای که از Reflect میتونیم کنیم، اینه که default behavior رو در traps های (تابعی که رفتار متد داخلی مربوط به شیء یا آبجکتو تعریف میکنه) هندلر پروکسی مشخص کنیم.
یک trap برای متوقف کردن یک عملیات بر روی یک آبجکت استفاده میشه. برای مثال کدی که در خط های پایین تر میبینید، یک پروکسی با trap یک deleteProperty ایجاد میکنه که متد داخلی [[Delete]] رو متوقف میکنه. ()Reflect.deleteProperty برای فراخوانی رفتار پیشفرض [[Delete]] بر روی targetObject بهطور مستقیم استفاده میشه، که میتونید اونو با delete هم جایگزین کنید.
const p = new Proxy({}, {
deleteProperty(targetObject, property) {
// Custom functionality: log the deletion
console.log("Deleting property:", property);
// Execute the default introspection behavior
return Reflect.deleteProperty(targetObject, property);
},
},
);
Reflect
کنترل بیشتری بر نحوه فراخوانی متدهای داخلی فراهم میکنن. برای مثال، ()Reflect.construct
تنها راهیه که میتونید یک تابع تارگت رو با یک مقدار خاص برای new.target
بسازید. اگر از اپراتور
new
برای فراخوانی یک تابع استفاده کنید، مقدار new.target
همیشه خود تابع خواهد بود. این موضوع تأثیرات مهمی بر روی subClass ها داره. برای مثال، ()Reflect.get
به شما اجازه میده تا یک getter رو با یک مقدار this
کاستوم اجرا کنید، در حالی که دسترسی به ویژگیها، همیشه از شیء فعلی به عنوان مقدار this
استفاده میکنه.تقریباً رفتار هر متد
Reflect
رو میشه با بعضی دیگه از سینتکسها یا متدها انجام داد. بعضی از این متدها، متدهای استاتیک هم اسم تو کلاس Object
دارن، هرچند که تفاوتهای ظریفی وجود داره.برای کسب اطلاعات بیشتر و درک عمیق تر Reflect و static method هاش، میتونید به منبع زیر مراجعه کنید
Document
#javascript #reflect
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡6🔥3
دورهمی های کدماژول، قسمت سوم
موضوع: همه چیز راجب لینکدین🌐
امشب ساعت 10 این گفتگو و دورهمی رو از دست ندید😄
@CodeModule
موضوع: همه چیز راجب لینکدین
به جرات میتونیم بگیم که «ارتباط» یکی از مهمترین فاکتورهای موفقیت در دنیای امروز و برنامه نویسی هست. شما هرچقدر هم که متخصص و حرفهای باشید، تا کسی از وجود شما خبر نداشته باشه و کانکشن های خوب نداشته باشید، نمیتونید به موفقیت برسید. بنابراین نیاز دارید که برای شناخته شدن در عرصه کاری (نه فقط ایران بلکه در سطح جهان) و برقراری ارتباط با حرفهایها تلاش کنید؛ و کجا بهتر از لینکدین؟!
امشب ساعت 10 این گفتگو و دورهمی رو از دست ندید
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6⚡5
اگه برای تمرین و کدنویسی دنبال ui خاصی میگردید، این طرح فیگما رو به هیچ وجه از دست ندید 💀
🔵 Link
#figma
@CodeModule
#figma
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡13🔥5
با ماژول async_hooks آشنا بشید! 🪐
ماژول async_hooks در Node.js، ابزار قدرتمندیه که برای کمک به دولوپر ها در ردیابی عملیات ناهمزمان در طول lifecycle یک برنامه طراحی شده. Asynchronous operations ها در Node.js بسیار مهم هستن، و عملیات و I/O کارآمد، ریکوست ها و موارد دیگه رو ممکن میسازن. با این حال، مدیریت و ردیابی این عملیات میتونه چالش برانگیز باشه. ماژول «async_hooks» چارچوبی رو برای ردیابی منابع ناهمزمان فراهم میکنه و بینشهایی رو درباره lifecycle و تعاملات اون ها ارائه میده.
از این ماژول چه زمانی استفاده میشه؟🤔
ماژول «async_hooks» به دولوپر ها اجازه میده تا هوکهای سفارشی بسازن که در طول lifecycle عملیات ناهمزمان فراخوانی میشن. این شامل زمانی هست که اون ها ساخته، اجرا و نابود میشن. با استفاده از این هوک ها، دولوپر ها میتونن درک عمیق تری از نحوه تعامل عملیات ناهمزمان در برنامه های خود به دست بیارن، که میتونه برای دیباگ، نظارت بر عملکرد و context propagation بسیار ارزشمند باشه.
این ماژول چه ویژگی هایی داره؟
1⃣ ردیابی منابع ناهمزمان: دولوپر ها میتونن زمان ساخت، نابودی منابع ناهمگام (مانند تایمرها، پرامیس ها و عملیات I/O) وضعیت فعلی اون ها رو نظارت کنن.
2⃣ مدیریت زمینه: با «async_hooks»، میتونید اطلاعات propagate context رو در سراسر boundaries ناهمزمان منتشر کنین.
3⃣ دیباگ: با اتصال هوک ها به ایونت های ناهمزمان مختلف، میتونید اطلاعات دقیقی در مورد رفتار برنامه خود جمعآوری کنید که برای شناسایی باگ ها، میتونه مفید باشه.
به صورت کلی ماژول async_hooks، به دولوپر ها توانایی ردیابی و مدیریت عملیات ناهمزمان رو با دقت بیشتری ارائه میده. برای کسب اطلاعات بیشتر به داکیومنت اصلی ماژول مراجعه کنید.
#nodejs
@CodeModule
ماژول async_hooks در Node.js، ابزار قدرتمندیه که برای کمک به دولوپر ها در ردیابی عملیات ناهمزمان در طول lifecycle یک برنامه طراحی شده. Asynchronous operations ها در Node.js بسیار مهم هستن، و عملیات و I/O کارآمد، ریکوست ها و موارد دیگه رو ممکن میسازن. با این حال، مدیریت و ردیابی این عملیات میتونه چالش برانگیز باشه. ماژول «async_hooks» چارچوبی رو برای ردیابی منابع ناهمزمان فراهم میکنه و بینشهایی رو درباره lifecycle و تعاملات اون ها ارائه میده.
از این ماژول چه زمانی استفاده میشه؟
ماژول «async_hooks» به دولوپر ها اجازه میده تا هوکهای سفارشی بسازن که در طول lifecycle عملیات ناهمزمان فراخوانی میشن. این شامل زمانی هست که اون ها ساخته، اجرا و نابود میشن. با استفاده از این هوک ها، دولوپر ها میتونن درک عمیق تری از نحوه تعامل عملیات ناهمزمان در برنامه های خود به دست بیارن، که میتونه برای دیباگ، نظارت بر عملکرد و context propagation بسیار ارزشمند باشه.
این ماژول چه ویژگی هایی داره؟
به صورت کلی ماژول async_hooks، به دولوپر ها توانایی ردیابی و مدیریت عملیات ناهمزمان رو با دقت بیشتری ارائه میده. برای کسب اطلاعات بیشتر به داکیومنت اصلی ماژول مراجعه کنید.
#nodejs
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡8🔥3
موقعیت های شغلی لینکدین رو دریاب! 💀
همونطور که تو میتینگ امشبمون مطرح شد، همکار عزیزمون جناب آقای صالح میرباقری، یک چنل داره که میاد آخرین پوزیشن و موقعیتهای شغلی برنامه نویسی(حوزه های مختلف) رو جمع، و در اون منتشر میکنه.
با عضویت در این چنل، خیلی راحت میتونید از آخرین موقعیت های شغلی لینکدین مطلع باشید و در صورت داشتن توانایی، اپلای کنید 🍻
🔗 Channel
#linkedin
@CodeModule
همونطور که تو میتینگ امشبمون مطرح شد، همکار عزیزمون جناب آقای صالح میرباقری، یک چنل داره که میاد آخرین پوزیشن و موقعیتهای شغلی برنامه نویسی(حوزه های مختلف) رو جمع، و در اون منتشر میکنه.
با عضویت در این چنل، خیلی راحت میتونید از آخرین موقعیت های شغلی لینکدین مطلع باشید و در صورت داشتن توانایی، اپلای کنید 🍻
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9🔥5
موضوع دورهمی بعدی؟ 👆
Anonymous Poll
50%
سفر در رودمپ فرانتاند
22%
بررسی توزیعهای لینوکسی
22%
بلاکچین
6%
موضوعهای بهتری هست، تو کامنتا مطرح میکنم 🦦
🔥7😁1