کتاب Bad Programming Practices 101 2nd Edition (اصول بد برنامه نویسی ۱۰۱: با یادگیری روش (نکردنِ) برنامه نویسی، برنامه نویس بهتری شوید، ویرایش دوم) با رویکردی معکوس و طنزآمیز، به برنامهنویسان میآموزد که چگونه با شناخت الگوهای بد و اشتباهات رایج در کدنویسی — از جمله نامگذاریهای گمراهکننده، ساختارهای پیچیده و غیرضروری، استفاده نابجا از میانافزارها و کوپلینگ شدید — مهارتهای خود را بهبود بخشند.
در ادامه مقدمهای از کتاب Bad Programming Practices 101 را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Bad Programming Practices 101:
پس، شما یک برنامهنویس هستید، یا دستکم یک برنامهنویس در حال آموزش.
میخواهید مهارتهای برنامهنویسی خود را بهبود ببخشید. میخواهید هرچه سریعتر بازدهی بیشتری داشته باشید.
شما با همکارانی کار خواهید کرد که میخواهند پروژهشان موفق باشد و کدشان بدون اشکال. آنها کدی که شما مینویسید را بررسی میکنند و نقش دروازهبان را دارند، یا مشارکتهای شما را میپذیرند یا رد میکنند. همکارانتان انتظار دارند کدی بنویسید که استانداردهای لازم را داشته باشد.
سؤال این است: چگونه باید یاد بگیرید که همهٔ این کارها را انجام دهید؟ یک ایده این است که بهترین روشهای برنامهنویسی را مطالعه کنید و سپس آنها را در کارتان به کار ببرید. با این حال، مسئلهٔ بهترین روش برنامهنویسی، موضوعی حساس و بحثبرانگیز است.
یکی از سادهترین راهها در جهان برای شروع یک جر و بحث، این است که از یک گروه برنامهنویس دربارهٔ روشهای خوب سؤال کنید. مانند آن طنز قدیمی دربارهٔ اقتصاددانان، اگر از سه برنامهنویس بپرسید بهترین روش در یک موضوع خاص چیست، سه جواب متفاوت خواهید گرفت (و چندین صدای بلند شده). سؤالات معمولی میتوانند این باشند:
- آیا استفاده از `goto` باید مجاز باشد؟
- بهترین خطمشی برای نامگذاری متغیرها چیست؟
- سطح قابل قبولی از پیچیدگی برای یک زیربرنامه چقدر است؟
- حداکثر اندازه برای یک کلاس چقدر است؟
- چه مقدار از کد باید تحت پوشش تستها باشد؟
در دنیای ایدهآل، پاسخهای سادهای برای این سؤالات داشتیم، اما دنیایی که به ما پنج فیلم دزدان دریایی کارائیب میدهد، کاملاً از ایدهآل فاصله دارد. حقیقت این است که سؤالاتی مانند این اغلب پاسخهای پیچیدهای دارند که به عوامل متعددی بستگی دارد. در هر موقعیتی، راهحلهای قابل قبول زیادی میتواند وجود داشته باشد. یک روش خوب به ندرت در همه زمینهها کاربرد دارد.
کتاب Bad Programming Practices 101 با رویکردی متفاوت به شما کمک میکند.
بر اساس تجربه من، برنامهنویسان بسیار راحتتر بر سر مسائل مربوط به اینکه چگونه برنامهنویسی “نکنیم” به توافق میرسند. مثلاً از آنها بپرسید:
- آیا باید کدی بنویسم که مطلقاً هیچ توضیحی (کامنتی) نداشته باشد؟
- آیا باید متغیرهای سراسری (global) را به متغیرهای محلی (local) ترجیح دهم؟
- اگر یک اشارهگر (pointer) احتمال دارد تهی (null) باشد، آیا باید از بررسی مقدار آن اجتناب کنم؟
برای این سه سؤال، توافق بسیار قویتری در میان پاسخها پیدا میکنید: نه، نه، و نهی لعنتی!
بسیاری از روشهای بد برنامهنویسی وجود دارند، روشهایی که باعث میشوند برنامهنویسان باتجربه از خشم صورتشان قرمز شود یا از ترسِ عرق سرد کنند. حقیقت این است که شما گاهی اوقات کدی مینویسید که چنین واکنشهایی را برمیانگیزد، به خصوص در مراحل اولیهٔ حرفهتان. کلید تسریع پیشرفت شما به عنوان یک برنامهنویس این خواهد بود که یاد بگیرید کدام روشها بد هستند و سپس از آنها اجتناب کنید.
کتاب Bad Programming Practices 101 بر روی این موضوع تمرکز ندارد که شما چگونه *باید* برنامهنویسی کنید. به هر حال، روشهای خوب رقیب یکدیگر وجود دارند و انتخاب بین آنها میتواند به زمینه بستگی داشته باشد. علاوه بر این، حوزهٔ برنامهنویسی پیوسته در حال تحول است. رویکردهای جدید پیدا میشوند و تکنیکهای موجود همیشه در حال بهبود هستند. یک فهرست از روشهای خوب برای مدت طولانی بهروز نخواهد ماند.
در عوض، کتاب Bad Programming Practices 101 به شما توصیه میکند که چگونه برنامهنویسی *نکنید*. این کتاب از این واقعیت بهره میبرد که حجم انبوهی از کد در دهههای اخیر نوشته شده و چیزهای زیادی قبلاً امتحان شدهاند. ترکیبی از تجربه و پژوهش وجود دارد که نشان میدهد کدام چیزها بد کار میکنند و عموماً باید از آنها اجتناب کرد.
پرهیز از روشهای بدی که در کتاب Bad Programming Practices 101 فهرست شده است، شروعی برای تبدیل شدن به برنامهنویسی بهتر و پربازدهتر به شما خواهد داد. پس از آن، میتوانید به هر اندازه که دلتان میخواهد به بحث و جدل بر سر مسئلهٔ روشهای خوب بپردازید.
یک نکته دربارهٔ سبک کتاب Bad Programming Practices 101
ممکن است قبلاً متوجه شده باشید که سبک این کتاب نسبتاً طنزآمیز و کنایهآمیز است. کتاب Bad Programming Practices 101 طوری توصیه میکند که گویی خواننده به دنبال تبدیل شدن به یک شکستخورده است: برنامهنویسی که قوانین را نادیده میگیرد و از بدترین روشها پیروی میکند، برنامهنویسی که مشارکتهایش مرتباً رد میشود یا (در موارد نادری که از بازبینی عبور میکند) اشکالات وحشتناکی در نرمافزاری که زمانی کار میکرده ایجاد میکند. من فکر میکنم این موضوع کتاب Bad Programming Practices 101 را به یک خواندنی سرگرمکننده و لذتبخش تبدیل میکند.
گاهی اوقات، یک صدای منطقی صحبت میکند و توضیح میدهد که چرا برنامهنویسان یک روش خاص را بد میدانند. این میتواند به دلیل اجماع میان برنامهنویسان حرفهای باشد یا به دلیل برخی تحقیقات تجربی. در هر صورت، آن صدای منطقی در بخشهایی ظاهر میشود که عنوان «انگشتِ پایین» (Thumbs Down)! را دارند.
منظور من از «برنامهنویسی» چیست؟
یک راه بد برای شروع یادگیری برنامهنویسی، این است که در معنای واقعی برنامهنویسی دچار اشتباه شوید. بنابراین اجازه دهید مشخص کنم که من از این اصطلاح چه معنایی را مد نظر دارم.
پس از دو دهه کار با نرمافزار (و یک جوانیِ تلفشده در حال یادگیری کدنویسی)، من برنامهنویسی را به عنوان حل مسئله میبینم. به طور خلاصه، یک برنامهنویس کار خود را از نقطه شروع A، با یک صورتمسئله (problem statement) آغاز میکند. وظیفهٔ برنامهنویس ترسیم مسیری به سوی هدف B است، که در نهایت به سیستمی مبتنی بر نرمافزار میانجامد که مسئلهٔ اولیه را به طور قابل قبولی حل میکند.
سفر از A به B میتواند طولانی باشد و شامل گامهای پیچیدهٔ زیادی در مسیر باشد. بحث دربارهٔ آن گامها بستگی به این دارد که شما تعریف برنامهنویسی را چقدر گسترده در نظر بگیرید. برای هدف کتاب Bad Programming Practices 101، دو نوع برنامهنویسی را از هم تفکیک میکنم:
۱. برنامهنویسی به معنای محدود: منظور من از این، همان چیزی است که بسیاری دیگر آن را کدنویسی (coding) مینامند. مسائل در این معنا، مسائل نرمافزاریِ گمشده یا معیوب هستند و راهحل آنها نوشتن کدی است که آنها را برطرف کند.
۲. برنامهنویسی به معنای گستردهتر: درک کاملتری از برنامهنویسی اذعان میکند که کدنویسی فقط بخشی از کار است. کار بزرگتر ارائهٔ راهحلی است که کامل، با کیفیت بالا و برای کاربر قابل قبول باشد. این خیلی بیشتر از کدنویسی است. این شامل فعالیتهای دیگری مانند تحلیل نیازمندیها، طراحی سیستم، یا تست پذیرش (acceptability testing) میشود، فقط برای نام بردن از چند مورد. همچنین شامل ارتباطات و همکاری زیاد است، نه فقط در میان تیم برنامهنویسی، بلکه با کاربران نیز. طبیعتاً این امر به مهارتهایی فراتر از نوشتن کد خوب نیاز دارد.
کتاب Bad Programming Practices 101 بر برنامهنویسی به معنای محدود تمرکز دارد. این مسائل مربوط به معنای گستردهتر کماهمیتتر هستند – به هیچ وجه. من انتخاب کردهام که تمرکز را محدود نگه دارم به دلیل اینکه کتاب برای چه کسانی هدف گذاری شده است. مخاطب هدف – دانشجویان، کارآموزان و توسعهدهندگان تازهکار – معمولاً روی فعالیتهای مرتبط با کدنویسی متمرکز است و باید قبل از اینکه توجه خود را به مسائل گستردهتر معطوف کنند، بر آنها مسلط شوند.
با این حال، مطالبی از معنای گستردهتر در طول کتاب Bad Programming Practices 101 گهگاه دیده میشوند. علاوه بر این، یکی از فصلهای بعدی بر روی تستکردن تمرکز دارد، موضوعی که بحث را از صرفاً کدنویسی به سمت ایجاد راهحلی که برای کاربر قابل قبول باشد، حرکت میدهد.
با این وجود، این کتاب را با کتابی که به مسائل گستردهتر مهندسی نرمافزار میپردازد اشتباه نگیرید.
استفاده از هوش مصنوعی
از زمانی که چاپ اول کتاب Bad Programming Practices 101 در سال ۲۰۱۸ منتشر شد، هوش مصنوعی همه گیر شده است. ما اکنون از ابزارهای هوش مصنوعی و چتباتها میخواهیم که به جای ما فکر کنند و از آنها برای کارهایی از توسعهٔ استراتژیهای سئو (SEO) گرفته تا پیشنهاد دستور پخت برای باقیماندهٔ سیبزمینی کمک میگیریم. هوش مصنوعی مولد به طرز شگفتآوری خلاق است – گاهی به طرز تکاندهندهای – که این امر باعث میشود بسیاری از توسعهدهندگان نرمافزار بپرسند: آیا میتوانم از آن برای نوشتن کد به جای خودم استفاده کنم؟
نسخهٔ دوم یک فصل جدید را معرفی میکند تا به پاسخ به همین سؤال کمک کند. پاسخ کوتاه این است (افشای اسپویلر): بله، تا حدودی، اما باید احتیاط کنید. مانند سایر فصلها، فصل جدید آنقدر بر روی گفتن این که چگونه کارها را انجام دهید تمرکز ندارد، بلکه به شما توصیه میکند که از انجام چه کارهایی باید اجتناب کنید. راههای متعددی وجود دارد که هنگام کمک گرفتن از هوش مصنوعی به خودتان گلوله بزنید، که همگی خطر به خطر انداختن برنامهٔ شما را دارند.
این، بدون شک، برای برنامهنویسانی که میخواهند هرج و مرج را بر پروژههایشان تحمیل کنند، موسیقی گوشنواز است، اما نکتهٔ دیگری هم وجود دارد. سرعت سرسامآوری که یک بات میتواند کد دردسرساز تولید کند، به این معنی است که قدرت شما برای ایجاد خطا و روشهای بد به شدت افزایش مییابد. همانقدر که هوش مصنوعی به توسعهدهندگان باوجدان برای انجام کارِ خوب قدرت میبخشد، توسعهدهندگان ضعیف را نیز برای ایجاد آسیب توانمند میسازد.
در زمان نگارش این متن، هوش مصنوعی مولد هنوز جوان است، اما در حال حاضر روشهای متعددی در مورد استفاده از آن در برنامهنویسی پدیدار شدهاند، چه خوب و چه بد. فصل جدید مهمترین آنها را پوشش میدهد و توضیح میدهد – به سبک خاص کتاب Bad Programming Practices 101 – که چگونه از روشهای بد اجتناب کنید.
سرفصلهای کتاب Bad Programming Practices 101:
- Table of Contents
- About the Author
- About the Technical Reviewer
- Acknowledgments
- Introduction
- Chapter 1: Learning to Program
- Chapter 2: Layout and Structure
- Chapter 3: Variables
- Chapter 4: Conditionals
- Chapter 5: Loops
- Chapter 6: Subroutines
- Chapter 7: Error-Handling
- Chapter 8: Modules
- Chapter 9: Classes and Objects
- Chapter 10: Testing
- Chapter 11: Debugging
- Chapter 12: Artificial Intelligence
- Bibliography
- Index
جهت دانلود کتاب Bad Programming Practices 101 میتوانید پس از پرداخت، دریافت کنید.

دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.