قوانین نرمافزار: قانون هایروم (Hyrum’s Law)
طی چند سال گذشته و به دلیل همکاریام برای انتقال (migration) زیرساختهای سطح پایین یکی از پیچیدهترین سیستمهای نرمافزاری روی کرهی خاکی به نکات مهمی دربارهی تفاوت بین رابط (interface) و پیادهسازی آن (implementation) برخورد کردهام. معمولن ما رابط (interface) را تجریدی (abstraction) برای ارتباط با سیستم میدانیم و پیادهسازی (implementation) را هم روشی میدانیم […]
چگونه برنامهنویس خوبی شوم
پرسش: چه چیزی از یک برنامهنویس، یک برنامهنویس «خوب» میسازه؟ کنت بک: پاسخ این پرسش راحته. «خودت باش» (Be Yourself). تنها یه بازی [چالش] در کل دنیا وجود داره و اون هم اینه:«تمام تلاشت رو بکن» (Do Your Best). ورزش، کار، روابط انسانی فقط سایههایی از همین «یه بازی»اند. برنامهنویسی هم همین طور. سوال اینه […]
برنامه نویس کاردرست
اگه از من بپرسید برنامهنویس کاردرست کیست خواهم گفت «برنامهنویس خوبی که عادتهای ممتازی دارد». این جمله برگرفته از سخن کنت بک (Kent Beck) دربارهی خودش است: «من برنامهنویس ممتازی نیستم. من برنامهنویس خوبی هستم که عادتهای ممتازی دارم» “I’m not a great programmer; I’m just a good programmer with great habits.” برای من این […]
پیشنهاد کتاب: معماری نرمافزار
پیشگفتار:زمانی که ما مدرسه میرفتیم منابع یادگیری که مهمترین آن کتاب بود بسیار محدود بود. یادم میآید مادرم از پسانداز خانواده مبلغی که در آن زمان و با آن شرایط، مبلغ واقعن زیادی بود به من داد تا با آن کتاب بخرم. من هم مجموعهی چند جلدی «به من بگو چرا« را از طریق پست […]
پوستهی بیشتر – تخممرغ کمتر
جان بنتلی (Jon Bentley) که ستونی با نام Programming Pearls در نشریه Communications of the ACM داشت در سال ۱۹۸۶ به برنامهنویسی ادیبانه (literate programming) علاقهمند شد و از دونالد کنوث (Donald Knuth) خواست تا به عنوان نویسندهی مهمان برنامهای با این شیوه بنویسد و از داگ مکلروی (Doug McIlroy) هم خواست نقدی بر برنامهنویسی […]
دنبال چه میگردی! (طراحی)
سخنران در ابتدای سخنرانیاش گفت: یکی از کارهای من انجام مصاحبهی فنی است. کاری که خیلی دوست دارم. …. و یکی از پرسشهای مورد علاقهام در جلسهی مصاحبه این است: در یک طراحی خوب، شما دنبال چه میگردید؟ [شما چه ویژگیها و معیارهایی را هنگام ارزیابی و سنجش کیفیت یک طراحی مد نظر قرار میدهید؟] […]
تیدیدی (TDD) عامل چنددستگی در جامعهی برنامهنویسان
در نوشتهای در لینکدین، نویسنده با اشاره به TDD نوشته بود که: تیدیدی (TDD) به صورت جدی، جامعهی برنامهنویسی را دچار دودستگی کرده است. گروهی عاشق آن هستند و گروهی هم از آن متنفرند. کنت بک(Kent Beck) طی یادداشتی، نظرش را در این مورد بیان کرد که برای من بسیار آموزنده بود. او در پاسخ […]