Code Module | کد ماژول
1.91K subscribers
357 photos
42 videos
6 files
355 links
Hello World 🌎

<> Earth is programmable if you code it </>

Group 👇🏻
@CodeModuleGap

Contact Us 👇🏻
@MrShahiin
@neoMahan
Download Telegram
تو روزمت که خوب تعریف کرده بودی بلدی 😂

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁26
با Moment.js هر تاریخی که میخوای به نمایش بزار 😊

‏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
🔥102
پروتکل 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103
در هر صورت یه مشکلی هست 😂😂

#fun
@CodeModule
😁264
رسپانسیو پروژت رو چک کن! 🦦

‏LambdaTest یک پلتفرم ابریه که به شما کمک می‌کنه، تا پروژه هاتون رو در بیش از 2000 مرورگر، سیستم عامل و دستگاه مختلف آزمایش کنید. با استفاده از این ابزار، می‌تونید سازگاری بین مرورگرها رو به صورت دستی یا اتوماتیک آزمایش کنید.

🔗Website

#responsive
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥173👌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
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥3
سوالات مصاحبه ای شرکت های بزرگ 🦦

استخدام شدن در یک شرکت بزرگ برنامه نویسی کار بسیار پر چالش و سختیه. دلیلش هم اینه که اونا به دنبال کسی هستن که بتونه، الگوریتم‌ها و سوالات پیچیده‌ای که مفاهیم عمیق برنامه نویسی رو هدف قرار میده، به خوبی پاسخ بده.

در ریپازیتوری ‏Coding Interview University، شما می‌تونید مجموعه عظیمی از سوالات و منابع آموزشی رو پیدا کنید که در هنگام مواجه با استخدام در یک شرکت بزرگ مانند گوگل، فیسبوک و مایکروسافت درگیر اونها خواهید شد.

تمام موضوعاتی که در این ریپازیتوری مطرح شده، به صورت قدم به قدم بوده و بهتره که به صورت مرتب منابع اون رو مطالعه کرده و شاخه به شاخه نشید.


🌪 Repository

#work
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥102
رم مارو جوییدی آقا بسه ! 😂😂

پ.ن : بنظر شما بهترین بروزر چیه و چرا ؟

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁18
با این پترن پل درست کنید! 🦦

پترن 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 هم جایگزین کنید.

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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥65
اگه برای تمرین و کدنویسی دنبال ui خاصی میگردید، این طرح فیگما رو به هیچ وجه از دست ندید 💀

🔵 Link

#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
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3
موقعیت های شغلی لینکدین رو دریاب! 💀

همون‌طور که تو میتینگ امشبمون مطرح شد، همکار عزیزمون جناب آقای صالح میرباقری، یک چنل داره که میاد آخرین پوزیشن و موقعیت‌های شغلی برنامه نویسی(حوزه های مختلف) رو جمع، و در اون منتشر می‌کنه.

با عضویت در این چنل، خیلی راحت میتونید از آخرین موقعیت های شغلی لینکدین مطلع باشید و در صورت داشتن توانایی، اپلای کنید 🍻

🔗 Channel

#linkedin
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥5
این چرخه دائم ادامه داره 😔

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23💔4👌3
‏Data Lakes چیه و چه کاربردی داره؟😄

دیتا لیک (دریاچه داده) یک مخزن متمرکز هست برای ذخیره انواع داده ها به شکل خام و پردازش نشده. بر خلاف دیتابیس های سنتی، که نیاز به تمیز کردن و سازمان‌دهی داده‌ها قبل از ذخیره‌سازی دارن، دیتا لیک ها میتونن داده‌ها رو همونطور که هستن ذخیره کنن و به انعطاف‌پذیری و مقیاس‌پذیری بیشتری اجازه بدن. این باعث میشه که دیتا لیک برای ذخیره حجم زیادی از داده های متنوع از چندین منبع ایده آل باشن.

انواع داده های ذخیره شده در دیتا لیک ها🦦

- داده های ساختاریافته: داده هایی که در ردیف ها و ستون ها سازماندهی میشن، معمولاً در دیتابیس های رابطه ای (مثل دیتابیس های SQL) یافت میشن. به عنوان مثال میشه به سوابق مشتری، گزارش تراکنش ها و... اشاره کرد.
- داده های نیمه ساختاریافته: داده هایی که با یک طرح دقیق مطابقت ندارن اما دارای برخی ویژگی های سازمانی هستند. به عنوان مثال میشه به فایل های CSV، لاگ فایل ها، XML و JSON اشاره کرد.
- داده های بدون ساختار: داده هایی که فاقد قالب یا ساختار از پیش تعریف شده هستند. به عنوان مثال میشه به ایمیل ها، دایکومنت های Word، فایل های PDF اشاره کرد.
- داده های باینری: داده هایی که در فرمت باینری ذخیره میشن مانند تصاویر، فایل های صوتی و ویدئو.

برای درک بهترش به مثال زیر توجه کنید:

یک شرکت بزرگ مثل آمازون رو تصور کنید. آمازون هر روز حجم عظیمی از داده ها رو از منابع مختلف جمع آوری و تولید میکنه، از جمله:

1⃣داده های مشتری: داده های ساختاریافته از پروفایل های مشتری، تاریخچه خرید و اطلاعات پرداخت ذخیره شده در دیتابیس (فرض بر اینکه از دیتابیس های SQL استفاده میکنه)

2⃣گزارش های وب: داده های نیمه ساختار یافته از گزارش های سرور که رفتار کاربر در وب سایت رو ردیابی میکنه، مانند صفحات بازدید شده، زمان صرف شده در هر صفحه، و عبارت های جستجو.

3⃣کامنت در مورد محصول: داده های بدون ساختار از نظرات مشتریان و بازخورد ارسال شده در صفحات محصول، که ممکنه شامل متن، تصاویر و ویدئو باشه.

4⃣داده های حسگر: داده های دستگاه های IoT(اینترنت اشیا) که در انبارها برای ردیابی سطوح موجودی و حرکت استفاده میشه، و ممکنه در قالب JSON باشن.

5⃣فایل های چند رسانه ای: داده های باینری از جمله تصاویر محصول، فیلم های تبلیغاتی، و ضبط های صوتی برای تماس های خدمات مشتری.

به طور خلاصه دیتالیک راه‌حلی انعطاف‌پذیر و مقیاس‌پذیر برای ذخیره‌سازی و تجزیه و تحلیل حجم زیادی از داده‌های متنوع ارائه میکنن، که اون ها رو به ابزاری ارزشمند برای سازمان‌های مبتنی بر داده‌های مدرن تبدیل میکنه. برای کسب اطلاعات بیشتر، پیشنهاد میکنم مطالب زیر رو بخونید:

- Data Swamp
- Data Lakehouse
- Data warehouse

#data_lake
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3
با قانون dry بیشتر آشنا بشید 🙃

🔵قانون DRY (Don't Repeat Yourself) یکی از اصول مهم در برنامه‌نویسی و توسعه نرم‌افزاره که به معنای "تکرارش نکن" هست.

این اصل بر این باور استواره که هر قطعه اطلاعات یا منطق باید تنها یک بار در کد وجود داشته باشه و در صورت نیاز به استفاده مجدد، باید به اون ارجاع داده بشه. در ادامه به توضیح بیشتر این قانون و مزایاش می‌پردازیم:

مزایای رعایت کردن قانون DRY:

1️⃣کاهش خطا: با کاهش روند تکرار کد، احتمال بروز خطا کمتر میشه. اگر یک منطق یا تابع در چندین جا تکرار بشه و نیاز به تغییر داشته باشه، ممکنه بر اثر فراموشی تغییرات در همه قسمت‌ها اعمال نشه و این باعث بروز باگ‌هایی در پروژه بشه.

2️⃣کد هایی با قابلیت نگهداری بیشتر: کدهای غیر تکراری، برای نگهداری و به‌روزرسانی مناسب تر هستن. اگر نیاز به تغییر یک بخش از کد باشه، تنها کافیه اون رو فقط در یک جا تغییر بدید.

3️⃣بهبود خوانایی: کدهای تمیز و غیر تکراری معمولاً خواناتر هستن و برای سایر دولوپرا یا حتی خود شما در آینده، فهمیدن و درکشون آسون تره.

4️⃣استفاده مجدد از کد: با پیروی از قانون DRY می‌تونید از توابع، کلاس‌ها یا ماژول‌های مشترک استفاده کنید که باعث صرفه‌جویی در زمان و تلاش میشه.

نحوه پیاده‌سازی و پیروی از قانون DRY :

◀️استفاده از توابع و متدها: منطق مشترک رو در توابع یا متدها قرار بدید و به جای تکرار آن در کد، از اونا استفاده کنید.

◀️استفاده از کلاس‌ها و ارث بری: در زبان‌های شیءگرا، می‌تونید از وراثت برای ایجاد کلاس‌های فرزند استفاده کنید تا کدهای تکراری رو کاهش بدید.

◀️ماژولار کردن کد: کد رو به ماژول‌ها یا بسته‌های کوچک تقسیم کنید که هر کدوم وظیفه خاصی رو انجام میدن. این کار باعث میشه که هر ماژول بتونه به‌طور مستقل مورد استفاده قرار بگیره.

◀️استفاده از دیزاین پترن ها: الگوهای طراحی یا Design Patterns می‌تونن به شما کمک کنن، تا بهترین شیوه‌ها رو در ساختاردهی کد خود پیاده‌سازی کنید و از تکرار جلوگیری کنید.

قانون DRY یکی از اصول بنیادین برنامه‌نویسیه که به کاهش تکرار و افزایش کیفیت کد کمک میکنه. با پیروی از این اصل، می‌تونید نرم‌افزار و پروژه‌هایی با کیفیت بالاتر و قابلیت نگهداری بیشتر ایجاد کنید 🏖️


#programming #dry
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥3