یکی از تغییرات جالبی که با افزایش تجربه اتفاق میافتد این است که دیگر از کدهای قدیمی تعجب نمیکنی.
اوایل مسیر، وقتی با یک متد ۵۰۰ خطی یا یک کلاس عجیب روبهرو میشوی، سریع قضاوت میکنی.
با خودت میگویی:«چه کسی چنین چیزی نوشته؟» اما بعد از چند سال کار روی سیستمهای واقعی، نگاهت تغییر میکند.
میفهمی بیشتر کدهای بد، توسط توسعهدهندگان بد نوشته نشدهاند.توسط توسعهدهندگانی نوشته شدهاند که تحت فشار بودهاند.
فشار زمان.
فشار تحویل.
فشار تغییر مداوم نیازمندیها.
و گاهی فشار زنده نگه داشتن سیستمی که هر روز باید کار کند.
بیشتر سیستمهای پیچیده، یک روز با نیت خوب شروع شدهاند.اما هر تصمیم کوچک،
هر میانبر موقت، و هر «فعلاً همین را Deploy کنیم» لایهای جدید به پیچیدگی آن اضافه کرده است.
به همین دلیل است که قضاوت کردن کدهای قدیمی آسان است.اما نگهداری و بهبود آنها مهارت واقعی را نشان میدهد.
هر توسعهدهندهای میتواند درباره ساختن یک سیستم ایدهآل صحبت کند.
اما مهندس واقعی کسی است که بتواند با واقعیتهای یک سیستم غیرایدهآل کار کند و آن را قدمبهقدم بهتر کند.
چون در دنیای واقعی، بیشتر ما نرمافزار را از صفر نمیسازیم.ما وارث تصمیمهای دیروز هستیم.
Post #651
370