LEARNING_WITH_M Telegram 102
قانون هایروم (Hyrum’s Law)-بخش دوم

به عبارت دیگر، در صورتی که رابط (interface) به تعداد کافی استفاده‌کننده داشته باشد، مجموع استفاده‌کنندگان خواسته یا ناخواسته به بخش‌های مختلف پیاده‌سازی وابسته خواهند شد. نتیجه‌ی چنین اتفاقی، سخت‌تر شدن اعمال تغییرات در پیاده‌سازی رابط‌ها است زیرا از این نقطه به بعد، پیاده‌سازی نه تنها باید با بخش مستندشده و شفاف رابط‌ها (explicitly documented interface) تطبیق داشته باشد بلکه باید با بخش پنهان و غیرشفاف رابط‌ها (implicit interface) که ناشی از روش استفاده‌‌ از آنهاست نیز هم‌خوانی داشته باشد. ما معمولن این پدیده را «سازگاری با خطا برای خطا« (bug-for-bug compatibility) می‌نامیم [«سازگاری با خطا برای خطا» یا «سازگاری با خطا» تکنیکی است که در آن خطاها یا رفتارهای نادرست نسخه‌‌ی قبلی یک نرم‌افزار در نسخه‌ی جدید آن با آگاهی و خودخواسته باقی گذاشته می‌شوند. مترجم]

شکل‌گیری رابط پنهان (implicit interface) معمولن تدریجی است و استفاده‌کنندگان رابط عمومن از شکل‌گیری آن آگاهی ندارند. برای مثال، یک رابط ممکن است هیچ تضمین یا اطلاعاتی درباره‌ی کارایی و سرعت خود اعلام نکرده باشد، با این حال استفاده‌کنندگان بر اساس تجربه‌ی خود، کم‌کم به این جمع‌بندی می‌رسند که سطح سرعت و کارایی سیستم چقدر است و از آن به بعد انتظار دارند که کارایی سیستم دست‌ِکم در همان سطح باقی بماند یا بهبود پیدا کند. این گونه انتظارات به بخشی از رابط پنهان (implicit interface) سیستم تبدیل می‌گردد و از آن پس، تغییرات سیستم باید این سطح از کارایی را پوشش دهد تا کارهای استفاده‌کنندگان دچار اختلال نگردد.

همه‌ی استفاده‌کنندگان فقط به یک رابط پنهان یکسان وابسته نمی‌شوند. با فرض وجود تعداد کافی استفاده‌کنندگان، رابط پنهان در نهایت کاملن با پیاده‌سازی مطابقت خواهد داشت. در چنین شرایطی، رابط (interface) محو می‌شود و پیاده‌سازی (implementation) جای رابط را می‌گیرد و هر گونه تغییری در آن، انتظارات استفاده‌کنندگان را مختل می‌کند. اگر خوش شانس باشیم، آزمون‌‌های جامع و خودکار می‌توانند این گونه مغایرت با انتظارات استفاده‌کنندگان را پیدا کنند ولی نمی‌توانند آنها را رفع کنند.

رابط‌های پنهان (implicit interface) نتیجه‌ی رشد طبیعی و ارگانیک سیستم‌های بزرگ هستند. هرچند آرزو می‌کنیم که چنین مشکلی برای سیستم‌ها به وجود نیاید، اما عاقلانه است که موقع ساخت و نگهداری سیستم‌های پیچیده، مهندسان و طراحان رابط‌های پنهان را مد نظر داشته باشند و به آن توجه کنند. به یاد داشته باشید که رابط‌های پنهان چگونه طراحی و تکامل سیستم‌ها را محدود می‌کنند و دقت کنید که برای هر سیستم پراستفاده‌ای، رابط (interface) مفهومی بسیار پیچیده‌تر از چیزی است که فکر می‌کنید.

هویرام کیست؟

هویرام رایت (Hyrum Wright) دانشمند ارشد (Principal Scientist) ادوبی (Adobe) است و قبل از آن، مهندس نرم‌افزار در گوگل بود. او روی ابزارها و زیرساخت مدیریت تغییر کد در مقیاس بزرگ کار می‌کند و سال‌های زیادی را صرف بهبود کتابخانه‌های زیربنایی و مبتنی بر سی‌پلاس‌پلاس گوگل کرده است. او یکی از نویسندگان کتاب Software Engineering at Google نیز است.

منبع:
www.hyrumslaw.com

گزیده:
پسری از پدر برنامه‌نویس‌اش پرسید «بابا، واسه چی خورشید از شرق طلوع می‌کنه و در غرب غروب؟»
پدرش پاسخ داد:
پسرم داره کار می‌کنه کاری به کارش نداشته باش! 😀

A son asked his father (a #programmer) why the sun rises in the east, and sets in the west. His response? It works, don’t touch!

https://www.tgoop.com/bibalan_com
https://bibalan.com/?p=4652
👍4



tgoop.com/learning_with_m/102
Create:
Last Update:

قانون هایروم (Hyrum’s Law)-بخش دوم

به عبارت دیگر، در صورتی که رابط (interface) به تعداد کافی استفاده‌کننده داشته باشد، مجموع استفاده‌کنندگان خواسته یا ناخواسته به بخش‌های مختلف پیاده‌سازی وابسته خواهند شد. نتیجه‌ی چنین اتفاقی، سخت‌تر شدن اعمال تغییرات در پیاده‌سازی رابط‌ها است زیرا از این نقطه به بعد، پیاده‌سازی نه تنها باید با بخش مستندشده و شفاف رابط‌ها (explicitly documented interface) تطبیق داشته باشد بلکه باید با بخش پنهان و غیرشفاف رابط‌ها (implicit interface) که ناشی از روش استفاده‌‌ از آنهاست نیز هم‌خوانی داشته باشد. ما معمولن این پدیده را «سازگاری با خطا برای خطا« (bug-for-bug compatibility) می‌نامیم [«سازگاری با خطا برای خطا» یا «سازگاری با خطا» تکنیکی است که در آن خطاها یا رفتارهای نادرست نسخه‌‌ی قبلی یک نرم‌افزار در نسخه‌ی جدید آن با آگاهی و خودخواسته باقی گذاشته می‌شوند. مترجم]

شکل‌گیری رابط پنهان (implicit interface) معمولن تدریجی است و استفاده‌کنندگان رابط عمومن از شکل‌گیری آن آگاهی ندارند. برای مثال، یک رابط ممکن است هیچ تضمین یا اطلاعاتی درباره‌ی کارایی و سرعت خود اعلام نکرده باشد، با این حال استفاده‌کنندگان بر اساس تجربه‌ی خود، کم‌کم به این جمع‌بندی می‌رسند که سطح سرعت و کارایی سیستم چقدر است و از آن به بعد انتظار دارند که کارایی سیستم دست‌ِکم در همان سطح باقی بماند یا بهبود پیدا کند. این گونه انتظارات به بخشی از رابط پنهان (implicit interface) سیستم تبدیل می‌گردد و از آن پس، تغییرات سیستم باید این سطح از کارایی را پوشش دهد تا کارهای استفاده‌کنندگان دچار اختلال نگردد.

همه‌ی استفاده‌کنندگان فقط به یک رابط پنهان یکسان وابسته نمی‌شوند. با فرض وجود تعداد کافی استفاده‌کنندگان، رابط پنهان در نهایت کاملن با پیاده‌سازی مطابقت خواهد داشت. در چنین شرایطی، رابط (interface) محو می‌شود و پیاده‌سازی (implementation) جای رابط را می‌گیرد و هر گونه تغییری در آن، انتظارات استفاده‌کنندگان را مختل می‌کند. اگر خوش شانس باشیم، آزمون‌‌های جامع و خودکار می‌توانند این گونه مغایرت با انتظارات استفاده‌کنندگان را پیدا کنند ولی نمی‌توانند آنها را رفع کنند.

رابط‌های پنهان (implicit interface) نتیجه‌ی رشد طبیعی و ارگانیک سیستم‌های بزرگ هستند. هرچند آرزو می‌کنیم که چنین مشکلی برای سیستم‌ها به وجود نیاید، اما عاقلانه است که موقع ساخت و نگهداری سیستم‌های پیچیده، مهندسان و طراحان رابط‌های پنهان را مد نظر داشته باشند و به آن توجه کنند. به یاد داشته باشید که رابط‌های پنهان چگونه طراحی و تکامل سیستم‌ها را محدود می‌کنند و دقت کنید که برای هر سیستم پراستفاده‌ای، رابط (interface) مفهومی بسیار پیچیده‌تر از چیزی است که فکر می‌کنید.

هویرام کیست؟

هویرام رایت (Hyrum Wright) دانشمند ارشد (Principal Scientist) ادوبی (Adobe) است و قبل از آن، مهندس نرم‌افزار در گوگل بود. او روی ابزارها و زیرساخت مدیریت تغییر کد در مقیاس بزرگ کار می‌کند و سال‌های زیادی را صرف بهبود کتابخانه‌های زیربنایی و مبتنی بر سی‌پلاس‌پلاس گوگل کرده است. او یکی از نویسندگان کتاب Software Engineering at Google نیز است.

منبع:
www.hyrumslaw.com

گزیده:
پسری از پدر برنامه‌نویس‌اش پرسید «بابا، واسه چی خورشید از شرق طلوع می‌کنه و در غرب غروب؟»
پدرش پاسخ داد:
پسرم داره کار می‌کنه کاری به کارش نداشته باش! 😀

A son asked his father (a #programmer) why the sun rises in the east, and sets in the west. His response? It works, don’t touch!

https://www.tgoop.com/bibalan_com
https://bibalan.com/?p=4652

BY Learning With M




Share with your friend now:
tgoop.com/learning_with_m/102

View MORE
Open in Telegram


Telegram News

Date: |

The creator of the channel becomes its administrator by default. If you need help managing your channel, you can add more administrators from your subscriber base. You can provide each admin with limited or full rights to manage the channel. For example, you can allow an administrator to publish and edit content while withholding the right to add new subscribers. Polls You can invite up to 200 people from your contacts to join your channel as the next step. Select the users you want to add and click “Invite.” You can skip this step altogether. Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. The Standard Channel
from us


Telegram Learning With M
FROM American