دنبال چه می‌گردی! (طراحی)

  • یوسف مهرداد

سخنران در ابتدای سخنرانی‌اش گفت: یکی از کارهای من انجام مصاحبه‌ی فنی است. کاری که خیلی دوست دارم. …. و یکی از پرسش‌های مورد علاقه‌ام در جلسه‌ی مصاحبه این است: در یک طراحی خوب، شما دنبال چه می‌گردید؟ [شما چه ویژگی‌ها و معیارهایی را هنگام ارزیابی و سنجش کیفیت یک طراحی مد نظر قرار می‌دهید؟]

سپس از شرکت‌کنندگان خواست که به این پرسش پاسخ دهند و آنها پاسخ دادند:
– آزمون
– فهمیدن آسان
– یکپارچگی و یک‌دستی
– انگیزه (دلایل طراحی)
– ساده بودن
– اعتمادپذیری
– کامل بودن
– آسان یادگرفتن

و بعد ادامه داد:
ما موضوعات و ایده‌های بسیار خوبی داریم مانند SOLID وDRY وDesign by Contract وSmall Methods و … که کمک می‌کنند تا خوب طراحی کنیم. اما من دنبال یک موضوع پایه‌ای‌تر و بنیادی‌تر در طراحی نرم‌افزار هستم.
و بعد ادامه داد …

حالا این پرسش را از خود بپرسیم و به آن فکر کنیم: طراحی خوب از نظر ما چگونه است؟ و توجه داشته باشیم که پاسخ ما باید پایه‌ای و بنیادی باشد!

اگر علاقه‌مند بودید پاسخ خود را برای من بفرستید.

گزیده:
آیا شما هم از این نوع چابکی که کلا در مورد پذیرش و پیروی از یک‌سری واژگان مدشده، رسوم و تشریفات،‌ و پوسترهای انگیزشی است خسته شده‌اید؟
جیم وایریک (Jim Weirich)

https://bibalan.com/?p=4312
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

تی‌دی‌دی (TDD) عامل چنددستگی در جامعه‌ی برنامه‌نویسان

  • یوسف مهرداد

در نوشته‌ای در لینکدین، نویسنده با اشاره به TDD نوشته بود که:
تی‌دی‌دی (TDD) به صورت جدی، جامعه‌ی برنامه‌نویسی را دچار دودستگی کرده است. گروهی عاشق آن هستند و گروهی هم از آن متنفرند.

کنت بک(Kent Beck) طی یادداشتی، نظرش را در این مورد بیان کرد که برای من بسیار آموزنده بود.
او در پاسخ نوشت:
به نظر من این TDD نیست که جامعه‌ برنامه‌نویسان را به دو دسته تقسیم می‌کند. بلکه عامل چنددستگی پاسخ به این پرسش است که «آیا برنامه‌نویسان مسئول کیفیت کار خود هستند یا خیر؟ وقتی برنامه‌نویسی می‌گوید کار تمام شد آیا واقعا کار تمام شده یا نه.»

این موضوعی است که باعث چنددستگی در جامعه‌ی برنامه‌نویسان شده است. TDD تنها یکی از روش‌هایی است که پاسخ‌شان به این پرسش «بله و بله» است.
ما به عنوان یک صنعت کماکان در حال مبارزه با میراث تیلوریسم (Taylorist) هستیم که ادعا می‌کند «کیفیت مسئولیت واحد کیفیت است.»

گزیده:
یافتن خطا در کد به اندازه کافی دشوار است. اما وقتی دشوارتر می‌شود که فکر می کنید کدتان بدون خطاست.
استیو مک کانل، نویسنده، کد کامل

https://bibalan.com/?p=4309
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

خوشنویسی کد (۱)‌

  • یوسف مهرداد

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

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

بعدها به پیشنهاد همسرم در کلاس خوشنویسی با خودکار شرکت کردیم. خیلی آموزنده بود. فرصت با هم بودن (با آن همه مشغله‌ی کاری) در کنار آموزش درست خوشنویسی خاطره خوبی از آن کلاس برایم به یادگار گذاشته. آرزو می‌کردم موقعی که کم سن و سال‌تر بودم فرصت شرکت در چنین کلاسی را پیدا می‌کردم.

وقتی با افراد دیگر در مورد خوشنویسی صحبت می‌کردم نکته‌ای که می‌گفتند این بود که «اگه با حوصله و بدون عجله بنویسم خطم خوبه ولی اگه عجله کنم خطم خراب می‌شه». ولی من با خودم فکر می‌کردم که شما باید خط‌تان زیبا باشد چه عجله داشته باشید و چه نداشته باشید. شرایط ممکن است کمی از کیفیت خط‌تان بکاهد ولی نه آن قدر که به خط «خرچنگ قورباغه‌ای» تبدیل شود. ناگفته خود پیداست که تخصص من خطاطی نیست و این فقط برداشت و تجربه‌ی شخصی من است.

هر چند در دنیای مدرن امروزی، دیگر نیازی به نوشتن با خودکار نیست ولی آن نیم‌چه مهارت خوشنویسی هم به دلیل «تمرین» نکردن از دست رفت. با این وجود هم‌چنان با دیدن خط زیبا به هیجان می‌آیم و مانند یک اثر هنری مشغول ورانداز کردن آن می‌شوم.

وقتی بر می‌گردم و به گذشته نگاه می‌کنم، تجربه‌ی یادگیری خوشنویسی‌ام را می‌توانم این‌گونه بیان کنم :
– انگیزه‌‌ی یادگیری من در کنار این که خط زیبا را دوست داشتم، این بود که دلم نمی‌خواست خطم «خرچنگ و قورباغه‌ای» باشد.
– دیدن دست‌خط‌های زیبا و تلاش برای رونویسی و کپی برداری از آنها در یادگیری من بسیار موثر بود و در مورد من جواب می‌داد.
– وقتی خط زیبا می‌بینم با وجودی که نمی‌توانم آن‌گونه بنویسم، می‌فهمم که «زیبا» است، هیجان‌زده می‌شوم، مسحورم می‌کند.

حالا علاقه‌ام به خوشنویسی به گونه‌ای دیگر در من تبلور پیدا کرده است: علاقه به خوشنویسی کد!
این نوشته مقدمه‌ای است برای نوشتن برخی از تجربه‌هایم برای خوشنویسی در دنیای برنامه‌نویسی. امیدوارم در نوشته‌های بعدی از این پنجره به برنامه‌نویسی نگاه کنم و تجربه‌ام را بنویسم. چه خوب می‌شد که می‌توانستم از تجربه‌ی شما هم با خبر شوم.

گزیده:
ما در دنیا به سه نام معروف هستیم؛ ادبیات، فرش و خوشنویسی. خوشنویسی در هر دو هنر دیگر هم وجود دارد. فرق کوچک‌شان این است که تذهیب‌کار با قلم، مرکب و رنگ کار می‌کند و فرشباف با پشم و پنبه. تذهیب همان نقش فرش است.
محمد سلحشور، استاد خوشنویسی

https://bibalan.com/?p=4299
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

به نظرتون انتخابم درسته؟

  • یوسف مهرداد

پیش‌گفتار:
دوست عزیزمی دارم که چند وقت پیش پیامی فرستاد که موضوع‌اش ترک شرکت فعلی و قبول پیشنهاد شرکت دیگری بود. در پیام‌اش بعد از شرح ماجرا و بیان دلایل‌اش برای ترک شرکت فعلی و انتخاب شرکت بعدی، از من پرسیده بود که «به نظرتون انتخابم درسته؟»

من هم در پاسخ برایش نوشتم که پیشنهاد می‌کنم این سخنرانی را گوش کنید.

بعد برایم نوشت: دیشب ویدئویی که برام فرستادید رو دیدم، فکر میکنم باید دو سه بار دیگه ببینمش تا بهتر نکات مطرح شده رو درک کنم. …

یک روز بعد برایم نوشت: من ویدیو رو دو سه بار دیگه دیدم …

با خود فکر کردم بهتر هست این ویدویو را معرفی کنم شاید به شما در تصمیم‌گیری کمک کند.
https://youtu.be/j1X2hPcLga4


درباره‌ی سخنران:
دنیل کانمن، روان‌شناس آمریکایی-اسراییلی که به خاطر کار بر روی روان‌شناسی قضاوت و تصمیم‌گیری و نیز اقتصاد رفتاری (به خاطر آن جایزه نوبل اقتصاد ۲۰۰۲ را برد) مشهور است.
کانمن از اندیشمندان محبوب من است که هر گاه فرصتی دست دهد تلاش می‌کنم تا از او بیاموزم.

گزیده:
اهمیت هیچ چیز در زندگی به اندازه زمانی که ذهن تان درگیر آن است نیست.
“Nothing in life is as important as you think it is while you are thinking about it.”
دنیل کانمن

توضیح:‌ مادامی که به موضوعی فکر می‌کنید، احساس می‌کنید آن موضوع واقعا مهم است. اما وقتی دیگر به آن فکر نکنید یا بعداً برگردید و نگاهی به آن بیندازید، احتمالا به این نتیجه می‌رسید که آن موضوع آنقدرها هم که فکر می‌کردید مهم نبوده است. ذهن ما می‌تواند موضوعات را در لحظه بزرگ‌تر یا مهم‌تر جلوه دهد، اما در درازمدت نمی‌تواند چنین کاری انجام دهد. بنابراین، بهتر است به یاد داشته باشید که ذهن ما گاهی می‌تواند در اهمیت و بزرگی موضوعات اغراق کند.

https://bibalan.com/?p=4296
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

زندگی از نگاه خوزه موخیکا

  • یوسف مهرداد

چند ماه پیش ویدیویی دیدم. خیلی آموزنده بود. و تاثیر مثبتی بر من گذاشت. از آن موقع تاکنون، هر چند وقت یک بار آن را دوباره نگاه می‌کنم تا نکاتی که از آن آموخته‌ام را فراموش نکنم.
در این ویدیو، مصاحبه‌شونده «خوزه موخیکا» رییس جمهور سابق اروگوئه است. “فارغ از اینکه “سلیقه شخصی” شما در سیاست چه باشد، به سختی می‌توانید تحت تأثیر خوزه “پپه” موخیکا قرار نگیرید یا شیفته شخصیتش نشوید” [وایر دیویس]. ساده‌زیستی وی، و این‌که حدود ۹۰ درصد حقوق ماهیانه‌اش را صرف امور خیریه می‌کرد، باعث شد لقب فقیرترین و در عین‌حال بخشنده‌ترین رئیس جمهوری جهان به او داده شود. گفتنی است فساد اداری و مالی در دوران خوزه به پایین‌ترین سطح خود در تاریخ اروگوئه رسیده است [صدانت]

گزیده‌ای از یادداشت‌‌های من درباره‌ی این ویدیو:
– با خوش‌شانسی زیاد من هنوز زنده‌ام و بالاتر از همه چیز من عاشق زندگی‌ام.

– من در مورد همه‌ی این چیزا خیلی فکر کرده‌ام. تقریبا ده سال در انفرادی گذروندم، تو یه سوراخ. یه عالمه وقت برای فکر کردن، هفت سال بدون حتی یه کتاب. که به من وقت فکر کردن داد. و چیزی که من کشف کرده‌ام اینه:
یا شما با چیز خیلی کم شادید، آزاد از همه‌ی باروبنه‌های اضافی،‌ چون از درون شادید، یا اینکه اصلا به هیچ جایی نمی‌رسید. اشتباه نشه! من از فقر حمایت نمی‌کنم. من از اعتدال حمایت می‌کنم.

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

– طبیعت انسانی جوری ساخته شده که شما در نهایت از درد و رنج، خیلی بیشتر می‌آموزید تا از زندگی راحت. این به اون معنا نیست که من طلب رنج یا چیزی شبیه این رو توصیه می‌کنم. بلکه چیزی که می‌خوام به مردم بفهمونم اینه: شما همیشه می‌تونید دوباره بلند شید و رو پاهاتون بایستید. همیشه ارزش داره که از صفر شروع کنید. یه بار یا هزار بار. تا زمانی که هنوز زنده‌اید. این بزرگترین درس زندگی‌یه. به زبون دیگه شکست‌خورده نیستید تا زمانی که مبارزه رو ول نکنید.

– من می‌دونم آدمی‌زاد چیه! … هر نسل فقط از تجربیات خودش درس می‌گیره نه از تجارب بقیه‌ی نسل‌ها. من طبیعت بشری رو آرمانی تصور نمی‌کنم. آدمی از تجربه‌ی یه نفر دیگه چی می‌تونه یاد بگیره؟‌ متاسفانه ما فقط از اون‌چه خودمون تجربه می‌کنیم درس می‌گیریم.

ضمن تشکر از همه‌ی عزیزانی که در تهیه و ترجمه این ویدیو مشارکت داشتند،‌ آن را می‌توانید در صفحه‌ی صدانت در آپارات [اینجاکانال تلگرامی وبلاگ سماموس [اینجا] یا یوتیوب [اینجا] ببینید.

مرجع عکس: ویکی‌پدیا

گزیده:
به من می‌گویند «فقیرترین رئیس جمهور دنیا»، اما من احساس فقر نمی‌کنم. فقرا کسانی‌اند که تلاش می‌کنند تا سبک زندگی پرهزینه و گرانی داشته باشند و خواسته‌های آنان هر روز بیشتر و بیشتر می‌شود. موضوع اصلی، موضوع آزادی است. اگر دارایی‌های زیادی ندارید، لازم نیست تمام زندگی خود را مانند یک برده کار کنید تا از آنها نگهداری کنید، و بنابراین زمان بیشتری برای خود دارید.
خوزه موخیکا

 

https://bibalan.com/?p=4282
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

زندگی: نمای دور – نمای نزدیک

  • یوسف مهرداد

 

زندگی از نمای نزدیک، یک تراژدی (نمایش غم‌انگیز) و از نمای دور، یک کمدی (نمایش خنده‌دار) است.
چارلی چاپلین

https://bibalan.com/?p=4024
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

بازسازی کد: بار دوم یا بار سوم

  • یوسف مهرداد

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

در اینجا بد نیست پیشنهادهای مارتین فاولر و رابرت سی مارتین را با هم مرور کنیم!

مارتین فاولر به راهنمایی از دان رابرتز اشاره می‌کند به نام : “قاعده‌ی بار سوم”: “اولین باری که کاری را انجام می‌دهید، فقط خود آن کار را انجام دهید. بار دوم که کار مشابهی را شروع کردید، با وجودی که ممکن است از انجام کار تکراری احساس شرمندگی کنید، کار را با تکرار و دوباره‌کاری انجام دهید. برای بار سوم که خواستید کار مشابه را شروع کنید، وقت آن است که کدهای قبلی را بازسازی (ریفکتور) کنید.”

از سوی دیگر، رابرت سی مارتین با اشاره به این ضرب المثل معروف «اگر اولین بار مرا فریب دادی شرم بر تو، اگر دومین بار مرا فریب دادی شرم بر من» پیشنهاد می‌کند “به هیچ عنوان OCP را موقعی که برای اولین بار با کاری رو به رو می‌شوید اعمال نکنید. بار اول خود کار را انجام دهید. اگر برای دومین بار با کار مشابهی در ماژول رو به رو شدید، کدها را با هدف دست‌یابی به OCP بازسازی (ریفکتور) کنید.”

حالا تصور کنید که شما در موقعی که می‌خواهید کاری را انجام دهید متوجه می‌شوید کار مشابهی را قبلا انجام دادید. خوب حالا شما دست کم با دو گزینه رو به رو هستید. یا بر اساس راهنمایی فاولر فقط خود کار را انجام دهید و به فکر بازسازی کد نباشید. یا بر اساس راهنمایی رابرت مارتین دست به بازسازی کد بزنید.

سوالی که مطرح می‌شود این است که شما کدام گزینه را انتخاب می‌کنید و چرا؟
اگر علاقه‌مند هستید لطفا نظرات خود را مطرح کنید تا از دانش و تجربه‌ی شما بهره‌مند شویم و یاد بگیریم.

پ.ن.
این نوشته در لینکدین هم منتشر شده است و یک سری نظرات جالب و خواندنی هم در آنجا مطرح شده است. برای دیدن آنها می‌توانید به اینجا مراجعه کنید.

گزیده:
شهرها بزرگ می‌شوند، شهرها پیشرفت می‌کنند، بخش‌هایی از شهرها به سادگی از بین می‌روند، در حالی که بخش‌های دیگر آن توسعه پیدا می‌کنند و شکوفا می‌شوند. هر شهر باید بازسازی و نوسازی شود تا پاسخ‌گوی نیازهای ساکنین خود باشد … سیستم‌های نرم‌افزاری نیز درست مثل شهرها هستند. گریدی بوچ

https://bibalan.com/?p=4164
یوسف مهرداد

یوسف مهرداد


کانال تلگرام

برای خروج از جستجو کلید ESC را بفشارید