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
Software Engineering for Data Scientists

Software Engineering for Data Scientists

From Notebooks to Scalable Systems
توسط Catherine Nelson 2024 257 صفحات
5.00
4 امتیازها
گوش دادن
Try Full Access for 7 Days
Unlock listening & more!
Continue

نکات کلیدی

۱. کدی ساده، مدولار، قابل‌فهم، کارآمد و مقاوم بنویسید

پیچیدگی به هر چیزی گفته می‌شود که ساختار یک سیستم را به‌گونه‌ای دشوار کند که فهمیدن و تغییر آن سخت شود.

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

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

۲. اصل «خودت را تکرار نکن» (DRY) را برای کاهش پیچیدگی به‌کار ببرید

هر دانش باید تنها یک بار و به‌صورت یکتا در کد نمایش داده شود.

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

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

۳. پروژه‌های بزرگ را به اجزای کوچک و مستقل تقسیم کنید

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

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

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

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

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

۴. خوانایی کد را با رعایت استانداردها، نام‌گذاری مناسب و مستندسازی اولویت دهید

نام متغیرها و توابع نباید خیلی کوتاه باشند، زیرا نام‌های کوتاه بار ذهنی خواننده کد را افزایش می‌دهند.

از استانداردهای کدنویسی پیروی کنید. رعایت استانداردهای شناخته‌شده مانند PEP8 در پایتون، انسجام و خوانایی کد را تضمین می‌کند. این شامل مواردی چون:

  • تورفتگی مناسب
  • فاصله‌گذاری یکنواخت
  • طول خطوط متناسب
  • قواعد نام‌گذاری متغیرها، توابع و کلاس‌ها

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

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

۵. کارایی کد را برای بهبود عملکرد و مقیاس‌پذیری بهینه کنید

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

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

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

  • استفاده از عملیات برداری در NumPy و Pandas به جای حلقه‌ها
  • بهره‌گیری از توابع و کتابخانه‌های بهینه‌شده
  • پیاده‌سازی مکانیزم‌های کش برای محاسبات پرهزینه
  • استفاده از پردازش موازی برای وظایف سنگین محاسباتی

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

۶. با مدیریت خطا و تست، کد خود را مقاوم کنید

تست‌ها ضروری‌اند زیرا حتی اگر کد شما روی سیستم خودتان بدون مشکل اجرا شود، تضمینی نیست که روی سیستم دیگران یا حتی خودتان در آینده نیز به‌درستی کار کند.

مدیریت جامع خطا را پیاده کنید. خطاهای احتمالی را پیش‌بینی کرده و به‌خوبی مدیریت کنید. از بلوک‌های try-except برای گرفتن و کنترل استثناها استفاده کنید و پیام‌های خطای مفید ارائه دهید. سناریوهای مختلف را در نظر بگیرید:

  • ورودی‌های نامعتبر
  • داده‌های ناقص
  • اختلالات شبکه
  • محدودیت منابع

استراتژی تست مناسبی توسعه دهید. سطوح مختلف تست را اجرا کنید:

  • تست واحد برای توابع جداگانه
  • تست یکپارچه‌سازی برای تعامل بین اجزا
  • تست انتها به انتها برای کل جریان کاری

تست خودکار به شناسایی زودهنگام مشکلات، تضمین قابلیت اطمینان کد و تسهیل بازسازی و نگهداری کمک می‌کند. در نظر داشته باشید برای بخش‌های حیاتی پروژه، توسعه مبتنی بر تست (TDD) را به‌کار بگیرید.

۷. مستندسازی جامع برای مراجعه و همکاری‌های آینده انجام دهید

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

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

  • اهداف و فرضیات پروژه
  • منابع داده و مراحل پیش‌پردازش
  • روش‌های تحلیل و دلایل انتخاب آن‌ها
  • محدودیت‌های شناخته‌شده و زمینه‌های بهبود آینده

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

از اشکال مختلف مستندسازی استفاده کنید:

  • فایل‌های README برای معرفی کلی پروژه
  • کامنت‌های درون‌خطی برای منطق پیچیده
  • docstringهای توابع و کلاس‌ها
  • دفترچه‌های Jupyter برای توضیحات تعاملی و نمونه‌ها
  • مستندات API برای ماژول‌های قابل استفاده مجدد
  • ویکی‌ها یا پایگاه‌های دانش پروژه برای زمینه‌های گسترده‌تر و فرآیندهای تصمیم‌گیری

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

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

نقد و بررسی

5.00 از 5
میانگین از 4 امتیازات از Goodreads و Amazon.

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

Your rating:
4.81
22 امتیازها

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

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

Listen
Now playing
Software Engineering for Data Scientists
0:00
-0:00
Now playing
Software Engineering for Data Scientists
0:00
-0:00
1x
Voice
Speed
Dan
Andrew
Michelle
Lauren
1.0×
+
200 words per minute
Queue
Home
Library
Get App
Create a free account to unlock:
Recommendations: Personalized for you
Requests: Request new book summaries
Bookmarks: Save your favorite books
History: Revisit books later
Ratings: Rate books & see your ratings
100,000+ readers
Try Full Access for 7 Days
Listen, bookmark, and more
Compare Features Free Pro
📖 Read Summaries
All summaries are free to read in 40 languages
🎧 Listen to Summaries
Listen to unlimited summaries in 40 languages
❤️ Unlimited Bookmarks
Free users are limited to 4
📜 Unlimited History
Free users are limited to 4
📥 Unlimited Downloads
Free users are limited to 1
Risk-Free Timeline
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 Jul 11,
cancel anytime before.
Consume 2.8x More Books
2.8x more books Listening Reading
Our users love us
100,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
Start a 7-Day Free Trial
7 days free, then $44.99/year. Cancel anytime.
Scanner
Find a barcode to scan

Settings
General
Widget
Loading...