کتابهای دستهبندی: توسعهٔ نرمافزار · همهٔ کتابها
کتابخانهٔ شنیدنی شبگفتار
کتابهای توسعهٔ نرمافزار
خلاصههای صوتی فارسی کتابهای مرتبط با توسعهٔ نرمافزار؛ کتاب و فصل دلخواهتان را برای شنیدن انتخاب کنید.
این مجموعه خلاصهٔ کتابهاست؛ نسخهٔ کامل کتاب اصلی نیست.
3 عنوان · 37 قسمت منتشرشده
راه را پیدا کنید
مسیرهای مطالعاتی
قفسهٔ کتابها
از این کتابها شروع کنید
فصل اول: مشکل هفتاد درصدی در برنامهنویسی هوش مصنوعی
نمونهٔ رایگانتوضیح و منابع این قسمت
کتاب وایب کدینگ نوشته ادی عثمانی از انتشارات رادیو شبگفتار در فصل اول با عنوان مشکل هفتاد درصدی: جریانهای کاری مبتنی بر هوش مصنوعی که واقعاً کار میکنند، به بررسی تواناییها و محدودیتهای ابزارهای هوش مصنوعی در توسعه نرمافزار میپردازد. این خلاصه بخشی از پروژه خلاصهسازی ارزشمندترین کتابها برای اکوسیستم نوآوری فارسی است. نویسنده استدلال میکند که ابزارهای هوش مصنوعی میتوانند کارهای روتین و ساختارهای اولیه را به سرعت تولید کنند و حدود هفتاد درصد مسیر توسعه را پیش ببرند، اما سی درصد پایانی شامل جزئیات پیچیده، مدیریت خطاهای خاص و معماری سیستم همچنان به تخصص و قضاوت انسانی نیاز دارد.
به باور نویسنده، هوش مصنوعی در حل پیچیدگیهای تصادفی یا همان کارهای مکانیکی و تکراری فوقالعاده عمل میکند، اما پیچیدگی ذاتی و درک عمیق مسائل همچنان به عهده انسان است. این ابزارها مانند برنامهنویسان تازهکارِ بسیار پرانرژی اما مستعد خطا عمل میکنند و گاهی پاسخهایی میدهند که ظاهر درستی دارد اما ممکن است حاوی ایرادات پنهان و خطرناک باشد. از این رو، اتکای صرف به کدهای تولیدشده بدون بازبینی دقیق میتواند به بروز مشکلات پیچیده در مراحل بعدی پروژه منجر شود.
نویسنده الگوهای رایج در استفاده از هوش مصنوعی را به دو دسته بوتاسترپرها یا تازهکارانی که کل پروژه را از صفر میسازند و ایتریتورها یا توسعهگرانی که از ابزارها در جریان کار روزمره استفاده میکنند تقسیم میکند. برای موفقیت در این مسیر، راهکارهایی مانند استفاده از هوش مصنوعی به عنوان پیشنویسکننده، جفت برنامهنویس یا ابزار اعتبارسنجی پیشنهاد میشود. در این میان، رعایت اصول کنترل نسخه، بازبینی دقیق کدها پیش از ادغام، و نگهداری مستندات اهمیت کلیدی دارد.
برای نمونه کاربردی فرضی در یک تیم توسعه نرمافزار، میتوان تصور کرد که یک برنامهنویس بخش عمدهای از یک کامپوننت را با کمک ابزارهای هوش مصنوعی تولید کند، اما پیش از تایید نهایی، بخشهای مربوط به امنیت ورودیها و مدیریت خطاهای خاص را شخصاً بازنویسی کند تا از پایداری سیستم مطمئن شود.
به عنوان نکته پایانی و کاربردی برای تفکر بیشتر، هرگز کدی را که منطق آن را به طور کامل درک نکردهاید به پروژه نهایی اضافه نکنید؛ ابزار هوش مصنوعی قرار است تواناییهای شما را وسعت ببخشد، نه اینکه جایگزین تفکر و تصمیمگیری شما در مهندسی نرمافزار شود.
پیشگفتار ویرایش دوم
نمونهٔ رایگانتوضیح و منابع این قسمت
این خلاصه بخشی از پروژه «خلاصهسازی ارزشمندترین کتابها برای اکوسیستم نوآوری فارسی» است که توسط رادیو شبگفتار تهیه شده و به کتاب «برنامهنویس عملگرا» اثر دیو توماس و اندرو هانت اختصاص دارد. این بخش، پیشگفتار ویرایش دوم کتاب را پوشش میدهد.
نویسندگان توضیح میدهند که در دهه نود میلادی، زمانی که با شرکتهایی کار میکردند که پروژههایشان با مشکلات متعددی روبرو بود، بارها مجبور شدند توصیههای مشابهی را تکرار کنند؛ مثلاً اینکه چرا کد فقط روی یک سیستم خاص کار میکند، چرا قبل از انتشار محصول تست نمیشود، یا چرا کسی از کاربران نظر نپرسیده است. برای صرفهجویی در زمان، شروع به یادداشتبرداری از این نکات کردند و این یادداشتها به کتاب «برنامهنویس عملگرا» تبدیل شد. این کتاب به طرز شگفتانگیزی مورد استقبال قرار گرفت و برای بیست سال محبوبیت خود را حفظ کرد.
اما به گفته نویسندگان، بیست سال در دنیای نرمافزار معادل چندین عمر است. یک برنامهنویس از سال ۱۹۹۹ اگر به تیمهای امروزی منتقل شود، در این دنیای جدید و ناآشنا با چالشهای جدی روبرو خواهد شد. به همین ترتیب، دنیای دهه نود نیز برای برنامهنویسان امروز غریبه است. ارجاعات کتاب به فناوریهایی مانند CORBA یا ابزارهای CASE، اکنون در بهترین حالت قدیمی و در بدترین حالت گیجکننده به نظر میرسند.
با این حال، نویسندگان تأکید میکنند که در طول این بیست سال، عقل سلیم هیچ تغییری نکرده است. فناوریها ممکن است دگرگون شده باشند، اما ماهیت انسانها و اصول اساسی کار خیر، ثابت ماندهاند. بسیاری از شیوهها و رویکردهایی که در آن زمان ایدههای خوبی بودند، همچنان نیز کاربردی و ارزشمند هستند. این جنبهها از کتاب به خوبی در برابر گذر زمان مقاومت کردهاند.
بنابراین، برای تهیه ویرایش بیستمین سالگرد کتاب، نویسندگان با یک تصمیم مهم روبرو شدند: آیا فقط ارجاعات فناوری را بهروزرسانی کنند، یا فراتر رفته و مفروضات پشت شیوههای توصیهشده را با دو دهه تجربه بیشتر بازنگری کنند؟ در نهایت، آنها هر دو کار را انجام دادند. نتیجه این شد که این ویرایش جدید، مانند «کشتی تسئوس» است؛ تقریباً یکسوم موضوعات کاملاً جدید هستند و بخش عمدهای از بقیه نیز به طور جزئی یا کلی بازنویسی شدهاند تا واضحتر، مرتبطتر و تا حد امکان جاودانهتر باشند.
در این ویرایش، تصمیمات دشواری گرفته شد. مثلاً، پیوست منابع حذف شد، زیرا بهروز نگه داشتن آن غیرممکن بود و امروزه جستجوی آنلاین آسانتر است. موضوعات مربوط به همزمانی (concurrency) با توجه به فراوانی سختافزارهای موازی و کمبود راههای مؤثر برای مدیریت آنها، بازنویسی و سازماندهی شدند. همچنین، محتوای جدیدی برای بازتاب تغییر نگرشها و محیطها، از جمله جنبش چابک (agile) که نویسندگان در راهاندازی آن نقش داشتند، تا پذیرش فزاینده الگوهای برنامهنویسی تابعی و نیاز روزافزون به در نظر گرفتن حریم خصوصی و امنیت، اضافه شده است.
جالب اینجاست که به گفته نویسندگان، بحث و جدل کمتری بر سر محتوای این ویرایش نسبت به ویرایش اول وجود داشت، زیرا هر دو احساس میکردند که شناسایی نکات مهم آسانتر شده است. آنها خوانندگان را تشویق میکنند که از کتاب لذت ببرند، شاید برخی شیوههای جدید را به کار گیرند، یا حتی با برخی از پیشنهاداتشان مخالفت کنند. مهم این است که در کار خود مشارکت فعال داشته باشند، بازخورد دهند و از همه مهمتر، کار را سرگرمکننده نگه دارند.
کتاب به صورت مجموعهای از موضوعات کوتاه و مستقل سازماندهی شده است که هر کدام به یک مفهوم خاص میپردازند. ارجاعات متعددی برای قرار دادن هر موضوع در بستر مناسب وجود دارد و خوانندگان میتوانند موضوعات را به هر ترتیبی که میخواهند مطالعه کنند. همچنین، نکاتی در قالب «Tip» در سراسر کتاب گنجانده شدهاند که خلاصهای از آنها در کارت پشت جلد نیز موجود است. تمرینها و چالشهایی نیز برای تعمیق یادگیری ارائه شدهاند که پاسخ تمرینها در پیوست کتاب آمده است.
نویسندگان به نحوه برخورد با اصطلاحات تخصصی نیز اشاره میکنند. آنها سعی کردهاند هر اصطلاح جدید را تعریف کنند، اما گاهی اوقات اصطلاحات رایج را بدون تعریف رها کردهاند. همچنین، در مواردی که اصطلاحات موجود به یک حوزه خاص محدود میشدند، خودشان واژههای جدیدی ابداع کردهاند تا مفاهیم را در بستر وسیعتری به کار ببرند.
در پیشگفتار ویرایش اول، نویسندگان هدف اصلی کتاب را کمک به برنامهنویسان برای تبدیل شدن به افرادی مؤثرتر و مولدتر بیان میکنند. آنها تأکید دارند که برنامهنویسی یک «صنعتگری» است که در آن برنامهنویس هم شنونده، هم مشاور، هم مفسر و هم دیکتاتور است.