Facebook Pixel
Searching...
فارسی
EnglishEnglish
EspañolSpanish
简体中文Chinese
FrançaisFrench
DeutschGerman
日本語Japanese
PortuguêsPortuguese
ItalianoItalian
한국어Korean
РусскийRussian
NederlandsDutch
العربيةArabic
PolskiPolish
हिन्दीHindi
Tiếng ViệtVietnamese
SvenskaSwedish
ΕλληνικάGreek
TürkçeTurkish
ไทยThai
ČeštinaCzech
RomânăRomanian
MagyarHungarian
УкраїнськаUkrainian
Bahasa IndonesiaIndonesian
DanskDanish
SuomiFinnish
БългарскиBulgarian
עבריתHebrew
NorskNorwegian
HrvatskiCroatian
CatalàCatalan
SlovenčinaSlovak
LietuviųLithuanian
SlovenščinaSlovenian
СрпскиSerbian
EestiEstonian
LatviešuLatvian
فارسیPersian
മലയാളംMalayalam
தமிழ்Tamil
اردوUrdu
JavaScript

JavaScript

The Good Parts
توسط Douglas Crockford 1983 372 صفحات
4.23
8k+ امتیازها
گوش دادن

نکات کلیدی

1. بخش‌های خوب جاوااسکریپت: پذیرش سادگی و قدرت

جاوااسکریپت شامل مجموعه‌ای بزرگ از ویژگی‌های ضعیف یا مشکل‌ساز است که می‌تواند تلاش‌های ما برای نوشتن برنامه‌های خوب را تضعیف کند. ما باید به وضوح از بدترین ویژگی‌های جاوااسکریپت اجتناب کنیم.

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

بخش‌های خوب کلیدی شامل:

  • توابع به عنوان اشیاء درجه یک
  • تایپ ضعیف
  • اشیاء پویا
  • نشانه‌گذاری شیء بیانی

اجتناب از ویژگی‌های مشکل‌ساز مانند:

  • متغیرهای سراسری
  • تبدیل نوع ضمنی
  • دستور with
  • تابع eval

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

2. توابع به عنوان اشیاء درجه یک: قلب جاوااسکریپت

توابع جاوااسکریپت اشیاء درجه یک با (عمدتاً) دامنه لغوی هستند. جاوااسکریپت اولین زبان لامبدا است که به جریان اصلی وارد شده است.

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

جنبه‌های کلیدی توابع جاوااسکریپت:

  • دامنه لغوی (closures)
  • می‌توانند برای ایجاد ماژول‌ها استفاده شوند
  • پشتیبانی از الگوهای برنامه‌نویسی تابعی
  • توانایی ایجاد متدها برای اشیاء

این ویژگی امکان‌پذیر ساختن پارادایم‌های برنامه‌نویسی قدرتمند مانند برنامه‌نویسی تابعی، برنامه‌نویسی شیءگرا و طراحی ماژولار را فراهم می‌کند. تسلط بر استفاده از توابع برای نوشتن کد جاوااسکریپت کارآمد و زیبا ضروری است.

3. اشیاء و پروتوتایپ‌ها: وراثت انعطاف‌پذیر و کارآمد

جاوااسکریپت دارای یک سیستم شیء بدون کلاس است که در آن اشیاء مستقیماً از اشیاء دیگر ویژگی‌ها را به ارث می‌برند. این واقعاً قدرتمند است، اما برای برنامه‌نویسان کلاسیک ناآشنا است.

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

جنبه‌های کلیدی سیستم شیء جاوااسکریپت:

  • اشیاء می‌توانند مستقیماً از اشیاء دیگر به ارث ببرند
  • افزودن پویا ویژگی‌ها و متدها
  • نیازی به تعریف کلاس‌ها نیست
  • استفاده کارآمد از حافظه از طریق زنجیره پروتوتایپ

در حالی که در ابتدا برای توسعه‌دهندگان از زبان‌های مبتنی بر کلاس گیج‌کننده است، پذیرش وراثت پروتوتایپی می‌تواند به کدی انعطاف‌پذیرتر و کارآمدتر منجر شود. این امکان ایجاد آسان اشیاء، تغییر پویا و الگوهای قدرتمند مانند ترکیب شیء و تفویض را فراهم می‌کند.

4. اجتناب از متغیرهای سراسری: بهبود کیفیت و امنیت کد

بدترین ویژگی‌های بد جاوااسکریپت وابستگی آن به متغیرهای سراسری است.

متغیرهای سراسری یک مشکل بزرگ هستند. استفاده از متغیرهای سراسری در جاوااسکریپت می‌تواند به مشکلات زیادی منجر شود، از جمله تضاد نام‌ها، آسیب‌پذیری‌های امنیتی و دشواری در نگهداری و اشکال‌زدایی کد. آن‌ها ایجاد کد ماژولار و قابل استفاده مجدد را چالش‌برانگیز می‌کنند.

استراتژی‌ها برای به حداقل رساندن متغیرهای سراسری:

  • استفاده از الگوی ماژول
  • استفاده از closures برای ایجاد دامنه‌های خصوصی
  • استفاده از IIFE (عبارات تابعی بلافاصله فراخوانی شده)
  • نام‌گذاری برنامه خود تحت یک شیء سراسری واحد

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

5. درک و استفاده از Closure برای برنامه‌نویسی قدرتمند

توابع در جاوااسکریپت closures را تشکیل می‌دهند. یک closure تابع داخلی به علاوه دسترسی به تمام متغیرها در دامنه‌های خارجی است.

Closures الگوهای قدرتمندی را ممکن می‌سازند. Closure یک مفهوم اساسی در جاوااسکریپت است که به توابع اجازه می‌دهد به متغیرهای دامنه بیرونی خود حتی پس از بازگشت تابع بیرونی دسترسی داشته باشند. این امکان الگوهای برنامه‌نویسی قدرتمند را فراهم می‌کند و کلید بسیاری از الگوهای طراحی جاوااسکریپت است.

کاربردهای closures:

  • ایجاد متغیرها و متدهای خصوصی
  • پیاده‌سازی الگوی ماژول
  • مدیریت callbacks و کد غیرهمزمان
  • ایجاد کارخانه‌های تابع

درک و استفاده از closures به توسعه‌دهندگان اجازه می‌دهد کدی کارآمدتر، امن‌تر و ماژولارتر بنویسند. این یک مفهوم کلیدی برای برنامه‌نویسی پیشرفته جاوااسکریپت است و برای ایجاد برنامه‌های پیچیده ضروری است.

6. پذیرش JSON برای تبادل داده و قابلیت حمل

JSON یک فرمت تبادل داده سبک است. بر اساس نشانه‌گذاری شیء بیانی جاوااسکریپت است، یکی از بهترین بخش‌های جاوااسکریپت.

JSON تبادل داده را ساده می‌کند. JSON (نشانه‌گذاری شیء جاوااسکریپت) به دلیل سادگی، خوانایی و سهولت استفاده به یک استاندارد برای تبادل داده تبدیل شده است. این زبان مستقل است اما به خصوص برای برنامه‌های جاوااسکریپت مناسب است.

مزایای کلیدی JSON:

  • سبک و آسان برای خواندن/نوشتن
  • زبان مستقل
  • آسان برای تجزیه و تولید
  • پشتیبانی از ساختارهای داده پیچیده

با استفاده از JSON برای تبادل داده، توسعه‌دهندگان می‌توانند ارتباط بین بخش‌های مختلف یک برنامه یا بین سیستم‌های مختلف را ساده کنند. این به خصوص در برنامه‌های وب برای ارتباط مشتری-سرور و برای ذخیره داده‌های پیکربندی مفید است.

7. استفاده از JSLint برای اجرای بهترین شیوه‌ها و کشف خطاها

JSLint یک بررسی‌کننده و تأییدکننده نحو جاوااسکریپت است. یک متن منبع را می‌گیرد و آن را اسکن می‌کند. اگر مشکلی پیدا کند، پیامی توصیف‌کننده مشکل و مکان تقریبی آن در منبع بازمی‌گرداند.

JSLint کیفیت کد را بهبود می‌بخشد. استفاده از ابزارهایی مانند JSLint می‌تواند به طور قابل توجهی کیفیت و سازگاری کد جاوااسکریپت را بهبود بخشد. این ابزار به اجرای بهترین شیوه‌ها، کشف خطاهای احتمالی در اوایل و حفظ استاندارد بالای کد در سراسر پروژه یا تیم کمک می‌کند.

مزایای استفاده از JSLint:

  • کشف خطاهای برنامه‌نویسی رایج
  • اجرای استانداردهای کدنویسی
  • بهبود خوانایی و نگهداری کد
  • کمک به یادگیری و پذیرش بهترین شیوه‌ها

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

8. مراقب بخش‌های بد جاوااسکریپت باشید: به طور هوشمندانه از مشکلات عبور کنید

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

اجتناب از ویژگی‌های مشکل‌ساز. در حالی که جاوااسکریپت دارای ویژگی‌های قدرتمند زیادی است، همچنین شامل چندین ویژگی مشکل‌ساز است که می‌تواند به باگ‌ها، مسائل امنیتی یا کدی سخت برای نگهداری منجر شود. دانستن و اجتناب از این "بخش‌های بد" برای نوشتن برنامه‌های جاوااسکریپت قوی ضروری است.

بخش‌های بد کلیدی برای اجتناب:

  • دستور with
  • تابع eval
  • درج خودکار نقطه‌ویرگول
  • ناسازگاری‌های عملگر typeof
  • عملگرهای == و != (به جای آن از === و !== استفاده کنید)

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

آخرین به‌روزرسانی::

نقد و بررسی

4.23 از 5
میانگین از 8k+ امتیازات از Goodreads و Amazon.

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

درباره نویسنده

داگلاس کراکفورد چهره‌ای برجسته در دنیای برنامه‌نویسی جاوااسکریپت است. او بیشتر به خاطر کارش بر روی جاوااسکریپت: بخش‌های خوب شناخته می‌شود که به یک اثر کلاسیک در این حوزه تبدیل شده است. کراکفورد به خاطر محبوب‌سازی JSON (نشانه‌گذاری شیء جاوااسکریپت) و توسعه ابزارهایی مانند JSLint شناخته می‌شود. نظرات قوی او درباره بهترین شیوه‌های جاوااسکریپت تأثیر قابل‌توجهی بر توسعه و استفاده از این زبان داشته است. تخصص کراکفورد از سال‌ها تجربه کار با جاوااسکریپت ناشی می‌شود و او به خاطر رویکرد مستقیم و اغلب انتقادی‌اش به این زبان شناخته می‌شود. مشارکت‌های او به مشروعیت بخشیدن به جاوااسکریپت به عنوان یک زبان برنامه‌نویسی جدی کمک کرده و نحوه‌ی استفاده توسعه‌دهندگان از آن در توسعه وب مدرن را شکل داده است.

0:00
-0:00
1x
Dan
Andrew
Michelle
Lauren
Select Speed
1.0×
+
200 words per minute
Create a free account to unlock:
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
Unlock Unlimited Listening
🎧 Listen while you drive, walk, run errands, or do other activities
2.8x more books Listening Reading
Today: Get Instant Access
Listen to full summaries of 73,530 books. That's 12,000+ hours of audio!
Day 4: Trial Reminder
We'll send you a notification that your trial is ending soon.
Day 7: Your subscription begins
You'll be charged on Jan 25,
cancel anytime before.
Compare Features Free Pro
Read full text summaries
Summaries are free to read for everyone
Listen to summaries
12,000+ hours of audio
Unlimited Bookmarks
Free users are limited to 10
Unlimited History
Free users are limited to 10
What our users say
30,000+ readers
"...I can 10x the number of books I can read..."
"...exceptionally accurate, engaging, and beautifully presented..."
"...better than any amazon review when I'm making a book-buying decision..."
Save 62%
Yearly
$119.88 $44.99/year
$3.75/mo
Monthly
$9.99/mo
Try Free & Unlock
7 days free, then $44.99/year. Cancel anytime.
Settings
Appearance
Black Friday Sale 🎉
$20 off Lifetime Access
$79.99 $59.99
Upgrade Now →