نوشتن کتابی دربارهٔ مهندسی نرمافزار، بر اساس تجربهٔ من، تفاوت چندانی با خود این رشته ندارد. هر دو میتوانند خستهکننده و ناامیدکننده باشند — روشها همیشه آنطور که انتظار دارید جواب نمیدهند. هر دو فرصتهایی برای آزمایش و کشف فراهم میکنند، هرچند اغلب در چارچوب محدودیتهایی که شما را به مصالحه وادار میکنند.
هر دو نیازمند پیشبینی مشکلات، به چالش کشیدن فرضیات، و بازنگری اهداف در طول مسیر هستند. یک نویسندهٔ مسئول — که سعی کردهام چنین باشم — تلاش میکند پرسشهایی را که ممکن است برای خوانندگان پیش بیاید از قبل حدس بزند و پیش از مطرح شدن به آنها پاسخ دهد.
هدف من در این ویرایش دقیقاً همین بود: بازنگری محتوای ویرایش اول با نگاهی تازه و بر اساس تمام چیزهایی که از آن زمان آموختهام. گذار از سیستمهای مبتنی بر سرور به معماریهای ابریِ بومی و سرورلس، بهطور بنیادین نگاه من به نرمافزار را تغییر داد. تجربهٔ منتورینگ و آموزش مهندسان دیگر نیز همین اثر را داشت — آموزش، نقاط کور تفکر خودم را آشکار کرد. این تجربهها و موارد دیگر مرا واداشت نهفقط دربارهٔ چگونگی ساخت سیستمها، بلکه دربارهٔ چرایی تصمیمهایمان دوباره فکر کنم.
اگر قرار باشد یک ایدهٔ اصلی از کتاب Hands-On Software Engineering with Python در ذهن خواننده باقی بماند، آن این است که مهندسی خوب بر پایهٔ تصمیمهای آگاهانه و سنجیده است، نه تصمیمهای خودکار و عادتمحور. با اینکه «ذن پایتون» میگوید «باید یک — و ترجیحاً فقط یک — راهِ واضح برای انجام کار وجود داشته باشد»، طراحی سیستمها بهندرت چنین شفافیتی دارد. وقتی با چند مسیر قابل قبول روبهرو هستیم، معمولاً انتخاب بر اساس نیازهای واقعی و محدودیتها مهمتر از رفتن بهسمت سادهترین گزینهٔ ظاهری است.
این همان زاویهٔ دیدی است که در سراسر کتاب Hands-On Software Engineering with Python به کار گرفتهام: ارائهٔ گزینهها، بررسی بدهبستانها (trade-offها)، و توضیح منطق پشت انتخابهایی که در داستانِ پشت کد انجام شدهاند. ممکن است بخشی از کدهای کتاب Hands-On Software Engineering with Python دقیقاً مشکل فعلی شما را حل کنند — و امیدوارم چنین باشد. اما مهمتر از آن، امیدوارم با نگاهی انتقادی با آنها برخورد کنید: آنها را تطبیق دهید، گسترش دهید، یا حتی کنار بگذارید اگر با نیازهای شما همخوانی ندارند.
کتاب Hands-On Software Engineering with Python شبیه کتاب آشپزی نیست؛
بلکه یک راهنماست — برای نشان دادن مسیر، نه دادن یک دستور ثابت.
نوشتن کتاب Hands-On Software Engineering with Python، بهاحساس خودم، مرا به مهندس بهتری تبدیل کرده است. امیدوارم خواندن آن نیز همین تأثیر را بر شما بگذارد — نه به این دلیل که از هر الگو پیروی میکنید یا با هر انتخابی موافقید، بلکه چون در طول مسیر، پرسشهای بهتری خواهید پرسید.
کتاب Hands-On Software Engineering with Python برای چه کسانی نوشته شده است:
کتاب Hands-On Software Engineering with Python برای توسعهدهندگانی نوشته شده که با پایتون آشنایی دارند، اما میخواهند درک عمیقتری از مهندسی نرمافزار بهعنوان یک discipline به دست آورند. اگر با مفاهیم پایهٔ پایتون — مانند کار با توابع، ماژولها و پکیجها و ساختار پروژهها — راحت هستید، برای مطالب پیشِ رو آمادهاید. اگر در مسیر تبدیل شدن از یک مهندس میانی به ارشد هستید، یا میخواهید عادتها و دیدگاهی را بسازید که شما را به آنجا برساند، کتاب Hands-On Software Engineering with Python برای شماست.
برای اینکه بیشترین استفاده را از کتاب Hands-On Software Engineering with Python ببرید:
کتاب Hands-On Software Engineering with Python فرض را بر این میگذارد که شما با پایتون آشنا هستید و آمادهاید یک قدم جلوتر بروید — از صرفاً نوشتن کد، به درک اینکه سیستمهای نرمافزاری چگونه و چرا به این شکل ساخته میشوند. لازم نیست متخصص باشید، اما باید با مبانی پایتون و محیط توسعهٔ آن راحت باشید. بهطور مشخص، باید بتوانید:
-
پایتون را دانلود و نصب کنید (مثالها با پایتون 3.11 نوشته شدهاند، اما با نسخههای جدیدتر هم کار میکنند)
-
توابع پایتون را بنویسید و استفاده کنید
-
کلاسهای ساده تعریف کرده و با آنها کار کنید
-
با استفاده از pip پکیجها را نصب کنید و ماژولها را import کنید
-
کد را با استفاده از ماژولها و پکیجها در فایلها و پوشههای مختلف سازماندهی کنید
مثالهای کتاب Hands-On Software Engineering with Python وابسته به سیستمعامل خاصی نیستند و نیازی به IDE یا ویرایشگر مشخصی ندارید — میتوانید در هر محیطی که با آن راحت هستید کار کنید. برای شروع نیازی به داشتن حساب AWS نیست، اما فصلهای پایانی که به استقرار ابری و زیرساخت بهعنوان کد میپردازند، شما را گامبهگام راهنمایی میکنند و بهگونهای طراحی شدهاند که حتی با یک حساب موقت AWS نیز قابل اجرا باشند.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.