Deep Devs | فرانت اند | بک اند | جاوااسکریپت | برنامه نویسی | برنامه نویسی وب
9.31K subscribers
643 photos
353 videos
88 files
793 links
اگر با جاوااسکریپت مشکل داری، این چنل مخصوص خودته 🤝

دوبله بهترین دوره های جاوااسکریپت و ریکت دنیا رایگان:
https://t.me/DeepDevs/2166

پشتیبانی
@softwareenginer_developer
تبلیغات❌️

گروه اصلی برای پرسش و پاسخ:
@DeepDevsGpOriginal

گروه چت:
@InstaDevsGp
Download Telegram
#هشتگ

هشتگ های چنل که باهاشون میتونید راحت مطالب مورد نظرتون رو پیدا کنید:

چالش های چنل:
#js_challenge
#your_challenge
#quick_challenge

حتما توی یوتیوب هم مارو دنبال کنید:
YouTube

لینک شبکه هایی که داخلشون اپیزودهای پادکست #برنامه_نویس_آگاه منتشر میشه:
CastBox
Google Podcasts
Spotify

هشتگ های مربوط به دوره های دوبله شده:
#Course
#JavaScript
#Jonas_Schmedtmann
#S01 #S02 ....
#E01 #E02 ....

اگر هم میخواید که به فایل زیپ دوبله فصل های مختلف دسترسی داشته باشید میتونید از ربات استفاده کنید:
@jschallenges_chat

جواب چالش ها:
#answer

آموزش های کوتاه (عموما کمتر از ده دقیقه):
#js_nuggets

سطوح چالش های چنل:
#easy
#easy_to_medium
#medium
#medium_to_hard
#hard


تیپ و تیریک ها:
#Tips_N_Tricks
#VSCode_Extension
#Around_JS
#VsCode

موضوع های مختلف جاوااسکریپت (به این هشتگ ها به مرور اضافه میشه):
#arrays
#objects
#function
#async_await
#loops
#parsing_data
#short_circuiting
#object_destructuring
#promises
#error_handling
#fetch
#api
#NPM
#dates
#Clean_Code
#GitHub
#Git
#Design_Patterns
#DOM
#oop
#Package_Managers
#Timing

مطالب خارج از محیط IDE:
#Out_Of_IDE
#Music
#Fun

آیدی چنل:
@js_challenges
آیدی گروه چنل:
@js_masters_gp
👍13
#Clean_Code
این دو تابع توضیح می‌دهند که چگونه از توابع Arrow Functions در جاوااسکریپت استفاده کنید. این نوع از توابع کمک می‌کنند که کدهای شما کوتاه‌تر و خواناتر باشند و همچنین با توجه به خصوصیت‌های خودکار بازگشتی آنها، کد را ساده‌تر می‌کنند.
تابع اول getName(p) یک تابع اساسی است که دو رشته firstName و lastName را با هم ادغام می‌کند. این تابع تا دو خط دارد که در نهایت به return منجر می‌شود.
تابع دوم، getName = p => '${p.firstName} ${p.lastName}'، از تابع Arrow استفاده می‌کند. این نوع از توابع کوتاه‌تر هستند و در یک خط نوشته می‌شوند. در اینجا، تابع تنها یک عبارت دارد و آن عبارت به صورت خودکار برگشتی می‌باشد. این به معنای این است که با استفاده از تابع Arrow، اگر تنها یک خط کد دارید که به صورت عبارتی است، می‌توانید return را حذف کنید و مقدار مورد نظر به صورت خودکار برگشت داده می‌شود.
در مثال دوم، تابع getName با استفاده از تابع Arrow تعریف شده است و فقط یک عبارت دارد که دو رشته firstName و lastName را با هم ادغام می‌کند.
@js_challenges
@js_masters_gp
👍162
#Clean_Code

در این مثال‌ها، از اپراتور یکانی (+) برای تبدیل یک متغیر رشته‌ای به عدد استفاده شده است.

اپراتور + وقتی قبل از یک رشته قرار می‌گیرد، عمل تبدیل رشته به عدد را انجام می‌دهد. این کار راهی سریع و زیبا برای تبدیل یک متغیر رشته‌ای به عدد است. در مثال اول و دوم، از توابع parseInt و Number استفاده شده است که به دقت عدد مورد نظر را از رشته استخراج می‌کنند.

در مثال سوم، اپراتور یکانی (+) به تنهایی استفاده شده است برای تبدیل e.target.value که یک رشته است، به عدد. این نوع استفاده از اپراتور یکانی (+) نیز یک روش کمتر دیده شده اما همانند استفاده از parseInt و Number، به روشی ساده و زیبا ارائه تبدیل رشته به عدد می‌پردازد.

@js_challenges
@js_masters_gp
❤‍🔥11👍1🔥1
#Clean_Code
اینجا از عملگر ترنری شرطی استفاده شده است. این روش به شما این امکان را می‌دهد که کد کمتری بنویسید. در این مثال، تابع hasFlags بررسی می‌کند که آیا p دارای وارنینگ یا ارور است یا خیر.
در روش اول، از یک if/else ساده استفاده شده که اگر p.warnings یا p.errors داشته باشد، true را برمی‌گرداند. در غیر این صورت false را برمی‌گرداند.

در روش دوم، از عملگر ترنری شرطی استفاده شده است. به جای استفاده از if/else، با استفاده از ? و : کد کمتری نوشته شده است. این کد به این صورت کار می‌کند: اگر p.warnings یا p.errors داشته باشد، true را برمی‌گرداند و در غیر این صورت false را برمی‌گرداند.

این روش از if/else کوتاه‌تر است و باعث ساده‌تر شدن کد می‌شود، به خصوص در مواردی که شرط بسیار ساده و یک‌خطی باشد. همچنین این قابلیت را دارد که شرایط تو در تو (nested) نیز داشته باشد.

@js_challenges
@js_masters_gp
🔥9👍3
#Clean_Code

اگر بخشی از کد شما دارای ویژگی های زیر است، یک کد تمیز محسوب نمی شود:

⛔️ توابع یا متدهایی که خیلی طولانی هستند، درک و نگهداری آنها را دشوار می کنند.

⛔️ کلاس های بزرگ: کلاس هایی با مسئولیت ها یا متدهای زیاد که اصل مسئولیت واحد (Single Responsibility Principle) را نقض می کنند.

⛔️ کد تکراری: بخش های تکراری کد در سراسر کد پروژه، که منجر به مشکلات نگهداری و ناسازگاری می شود.

⛔️ جراحی با تفنگ ساچمه ای (Shotgun Surgery): تغییر در یک بخش از کد، نیازمند تغییرات در چندین بخش دیگر از کد است که ارتباطی با آن بخش ندارند.

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

⛔️ کد مرده (Dead Code): کدی که دیگر استفاده نمی شود یا قابل دسترسی نیست، باعث بهم ریختگی کد پروژه و سردرگمی توسعه دهندگان می شود.

⛔️ لیست بلند پارامترها: متدها یا توابعی با پارامترهای زیاد، که می تواند درک و تست کد را دشوار کند.

⛔️ نامگذاری نامنظم: استفاده از قراردادهای نامگذاری نامنظم در سراسر کد پروژه، درک و نگهداری آن را دشوار می کند.

این داستان ادامه دارد.
Channel | Group | YouTube
👍16🔥32