مهندسی نرم‌افزار
برگردیم به طراحی!

پیش‌گفتار: مانند هر انسان دیگری، از دیرباز یک سری پرسش‌ در ذهن‌ام نقش بسته است، و از آنجا که پاسخ‌های یافته‌شده قانع‌ام نکرده، هر از گاهی دوباره فرصتی پیدا می‌کنند و خودشان به سر صف می‌رسانند و فرصتی پیدا می‌کنند تا بخشی از ظرفیت مغزم را به خود اختصاص دهند. من هم به مانند بسیاری […]

مهندسی نرم‌افزار
نمونه آموزنده‌ای از بازسازی کد

مقدمه: بازسازی کد بازسازی کد یا refactoring، یک واژه‌ی تخصصی است که معنی آن، بهبود کیفیت کد یک سیستم است بدون آن که تغییری در رفتار خارجی آن ایجاد شود. مشابه غیرافزاری بازسازی کد، بازسازی داخلی یک خانه است که بدون آن نمای خارجی خانه دچار تغییر شود، اجزای داخلی آن مانند تاسیسات و چیدمان […]

مهندسی نرم‌افزار
الگوی ایجاد نرم‌افزار: تجزیه – ترکیب!

پیش‌گفتار: مدتی است که با خود می‌اندیشم تجربیات‌م را در حوزه‌ی نرم‌افزار در اینجا بنویسم، هم ماندگار خواهد شد و هم شاید به دوستی کمک کند. نمی‌دانم “الگوی ایجاد نرم‌افزار” عبارت مناسبی هست یا نه، ولی تا یافتن عبارت مناسب‌تر از آن استفاده خواهم کرد. داستانی از عبید زاکانی: گویند؛ روزی “مطربی” نزد “مرحوم کرباسی” […]

مهندسی نرم‌افزار
الگوی ایجاد نرم‌افزار: هزار توی نرم‌افزاری!

پیش‌گفتار: مدتی است که با خود می‌اندیشم تجربیات‌م را در حوزه‌ی نرم‌افزار در اینجا بنویسم، هم ماندگار خواهد شد و هم شاید به دوستی کمک کند. نمی‌دانم “الگوی ایجاد نرم‌افزار” عبارت مناسبی هست یا نه، ولی تا یافتن عبارت مناسب‌تر از آن استفاده خواهم کرد. بازی هزار تو هزار تو یا به انگلیسی maze یکی […]

مهندسی نرم‌افزار
The SPACE of Developer Productivity

The SPACE of Developer Productivity (Link) Nicole Forsgren, Margaret-Anne Storey, Chandra Maddila, Thomas Zimmermann, Brian Houck, Jenna Butler, ACM Queue, 28 February 2021 Abstract: Developer productivity is about more than an individual’s activity levels or the efficiency of the engineering systems relied on to ship software, and it cannot be measured by a single metric […]

مهندسی نرم‌افزار
الگوی ایجاد نرم‌افزار: مار و پله!

پیش‌گفتار: مدتی است که با خود می‌اندیشم تجربیات‌م را در حوزه‌ی نرم‌افزار در اینجا بنویسم، هم ماندگار خواهد شد و هم شاید به دوستی کمک کند. نمی‌دانم “الگوی ایجاد نرم‌افزار” عبارت مناسبی هست یا نه، ولی تا یافتن عبارت مناسب‌تر از آن استفاده خواهم کرد. بازی مار و پله مار و پله، یک بازی کودکانه […]

مهندسی نرم‌افزار
beautiful code

function makeAdder(x) { return function(y) { return x + y; }; } var add5 = makeAdder(5); var add10 = makeAdder(10); console.log(add5(2)); // ? console.log(add10(2)); // ?