#هشتگ
هشتگ های چنل که باهاشون میتونید راحت مطالب مورد نظرتون رو پیدا کنید:
چالش های چنل:
#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
هشتگ های چنل که باهاشون میتونید راحت مطالب مورد نظرتون رو پیدا کنید:
چالش های چنل:
#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
✅ این دو تابع توضیح میدهند که چگونه از توابع 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
👍16❤2
#Clean_Code
✅ در این مثالها، از اپراتور یکانی (+) برای تبدیل یک متغیر رشتهای به عدد استفاده شده است.
✅ اپراتور + وقتی قبل از یک رشته قرار میگیرد، عمل تبدیل رشته به عدد را انجام میدهد. این کار راهی سریع و زیبا برای تبدیل یک متغیر رشتهای به عدد است. در مثال اول و دوم، از توابع parseInt و Number استفاده شده است که به دقت عدد مورد نظر را از رشته استخراج میکنند.
✅ در مثال سوم، اپراتور یکانی (+) به تنهایی استفاده شده است برای تبدیل e.target.value که یک رشته است، به عدد. این نوع استفاده از اپراتور یکانی (+) نیز یک روش کمتر دیده شده اما همانند استفاده از parseInt و Number، به روشی ساده و زیبا ارائه تبدیل رشته به عدد میپردازد.
@js_challenges
@js_masters_gp
✅ در این مثالها، از اپراتور یکانی (+) برای تبدیل یک متغیر رشتهای به عدد استفاده شده است.
✅ اپراتور + وقتی قبل از یک رشته قرار میگیرد، عمل تبدیل رشته به عدد را انجام میدهد. این کار راهی سریع و زیبا برای تبدیل یک متغیر رشتهای به عدد است. در مثال اول و دوم، از توابع 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
✅ اینجا از عملگر ترنری شرطی استفاده شده است. این روش به شما این امکان را میدهد که کد کمتری بنویسید. در این مثال، تابع 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
اگر بخشی از کد شما دارای ویژگی های زیر است، یک کد تمیز محسوب نمی شود:
⛔️ توابع یا متدهایی که خیلی طولانی هستند، درک و نگهداری آنها را دشوار می کنند.
⛔️ کلاس های بزرگ: کلاس هایی با مسئولیت ها یا متدهای زیاد که اصل مسئولیت واحد (Single Responsibility Principle) را نقض می کنند.
⛔️ کد تکراری: بخش های تکراری کد در سراسر کد پروژه، که منجر به مشکلات نگهداری و ناسازگاری می شود.
⛔️ جراحی با تفنگ ساچمه ای (Shotgun Surgery): تغییر در یک بخش از کد، نیازمند تغییرات در چندین بخش دیگر از کد است که ارتباطی با آن بخش ندارند.
⛔️ کامنت ها: استفاده بیش از حد از کامنت برای جبران کدی که به طور ضعیف نوشته شده یا قابل درک نیست.
⛔️ کد مرده (Dead Code): کدی که دیگر استفاده نمی شود یا قابل دسترسی نیست، باعث بهم ریختگی کد پروژه و سردرگمی توسعه دهندگان می شود.
⛔️ لیست بلند پارامترها: متدها یا توابعی با پارامترهای زیاد، که می تواند درک و تست کد را دشوار کند.
⛔️ نامگذاری نامنظم: استفاده از قراردادهای نامگذاری نامنظم در سراسر کد پروژه، درک و نگهداری آن را دشوار می کند.
✅این داستان ادامه دارد.
Channel | Group | YouTube
👍16🔥3⚡2