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

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

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

پیش‌گفتار: مدتی است که با خود می‌اندیشم تجربیات‌م را در حوزه‌ی نرم‌افزار در اینجا بنویسم، هم ماندگار خواهد شد و هم شاید به دوستی کمک کند. نمی‌دانم “الگوی ایجاد نرم‌افزار” عبارت مناسبی هست یا نه، ولی تا یافتن عبارت مناسب‌تر از آن استفاده خواهم کرد. بازی هزار تو هزار تو یا به انگلیسی 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 Design and Code ۳۰ اردیبهشت ۱۴۰۰
الگوی ایجاد نرم‌افزار: مار و پله!

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

Beautiful Design and Code ۲۹ اردیبهشت ۱۴۰۰
طبقه‌بندی مفاهیم (classification)

نوشته‌ای از دوست گرانقدرم، روح الله دلپاک که در اینجا (تلگرام: t.me/Break_Point) خواندم: … یوسف مهرداد، وقتی می‌خواست سختی و پیچیدگی طبقه‌بندی مفاهیم (classification) را توضیح دهد، شعری از «شل سیلوراستاین»، شاعر، داستان‌سرا و کارتونیست آمریکایی را مثال می‌زد: I asked the Zebra, are you black with white stripes? Or white with black stripes? And […]

Beautiful Design and Code ۲۱ فروردین ۱۴۰۰
beautiful code

function makeAdder(x) { return function(y) { return x + y; }; } var add5 = makeAdder(۵); var add10 = makeAdder(۱۰); console.log(add5(۲)); // ? console.log(add10(۲)); // ?

Beautiful Design and Code ۲۱ فروردین ۱۴۰۰
Understanding Coupling and Cohesion

I invited some of my friends to discuss the nebulous concepts of coupling and cohesion in software design. How do we think about these topics? How do we understand the terms? How do we use that in our work as programmers? How do we teach it to others? How much does any of it even […]