سماموس: نوشته‌های یوسف مهرداد بی‌بالان – Telegram
سماموس: نوشته‌های یوسف مهرداد بی‌بالان
287 subscribers
27 photos
6 videos
1 file
345 links
این کانال برای اطلاع‌رسانی نوشته‌های وبلاگ سماموس (bibalan.com) ایجاد شده است. مطالب پس از انتشار در وبلاگ، در این کانال نیز منتشر خواهد شد. امیدوارم که مطالب آن برای شما مفید باشد و خوشحال خواهم شد تا نظرات و بازخوردهای شما عزیزان را دریافت کنم.
Download Telegram
پیراهن تیم توسعه‌ی نرم‌افزار

https://bit.ly/3z6YFlG

لوچانو اسپالتی، سرمربی تیم ملی فوتبال ایتالیا در مصاحبه‌ی اخیر خود (اینجا) در پاسخ به پرسشی در مورد دلایل ناکامی تیم ایتالیا در مسابقات یورو ۲۰۲۴ و نقش بازیکنان در این ناکامی گفته بود: «هر اتفاقی که بیفتد صددرصد به عهده من است، در این صورت ممکن است یک درصد تقصیر را به گردن کادرم بیندازم، اما بازیکنان از این موضوع معاف هستند. احتمالاً فشار زیادی به آن‌ها وارد کردم و این فرصت را ندادم که از تجربه بازی با پیراهن ایتالیا لذت ببرند. »

جالب‌ترین بخش این مصاحبه برای من این جمله بود: «این فرصت را ندادم که از تجربه بازی با پیراهن ایتالیا لذت ببرند».

اوه! به این موضوع فکر کردم که ما هم به عنوان بازیکن یا مدیر یک تیم نرم‌افزاری فرصت لذت بردن از پیراهن تیم «توسعه‌ی نرم‌افزار» را نداریم یا به بازیکنان تیم‌مان نمی‌دهیم.
می‌دانم! می‌دانم! هزاران دلیل درست برای «نبودن»‌اش وجود دارد، ولی برای «بودن»‌اش لازم نیست دنبال دلیلی باشیم. همه‌ی ما می‌دانیم که «باید» باشد. پس بسم‌الله!

به یاد دارم که در کلاس‌ها در کنار محتوای دوره،‌ یک سری ویدیوی کوتاه و نامرتبط به دوره پخش می‌کردم و از دانشجویانم می‌خواستم آن را با هم ببینیم و بعد کمی درباره‌اش با هم گپ بزنیم. یکی از این ویدیوها، سخنرانی شان آکر با عنوان «The happy secret to better work» بود. پیشنهاد می‌کنم شما هم آن را ببینید. می‌توانید ویدیو را با زیرنویس فارسی هم ببینید.

The happy secret to better work, Shawn Achor, 26,363,163 views
https://bit.ly/4ghuXeA

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

پ.ن.
پیش‌نویس این نوشته را آماده کرده بودم و می‌خواستم بعدها منتشر کنم. ولی پیروزی ایتالیا بر فرانسه در بازی امروز،‌ انتشار آن را به جلو انداخت. 😃

منبع مصاحبه: ورزش ۳
https://bit.ly/3AV7Mq4

https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4618
👍16
آقای دکتر و انتخابات ریاست جمهوری آمریکا

پیش گفتار:
بخش بزرگی از یادگیری‌های ما از تجربه است. تجربه‌هایی که در هیچ کتاب یا منبعی پیدا نمی‌شود. آموخته‌هایی که وقتی آنها را تجربه می‌کنید تازه بخش عمده‌ای از آموخته‌های نظری و تئوری جایگاه خود در مغز شما پیدا می‌کنند. در این نوشته می‌خواهم یکی از این تجربه‌ها را بازگو کنم. تجربه‌ای که در هیچ کتاب و کلاسی نمی‌توانستم آن را یاد بگیرم و اگر هم یاد می‌گرفتم خیلی زود فراموش می‌کردم.

انتخابات ۲۰۱۶ آمریکا:

در چنین روزهایی در سال ۲۰۱۶ برابر با ۱۳۹۵ خورشیدی، انتخابات ریاست جمهوری آمریکا برگزار شد. دو نماینده، آقای دونالد ترامپ و خانم هیلاری کلینتون با هم رقابت می‌کردند. پیش‌بینی‌ها در ایران از این حکایت از پیروزی خانم کلینتون می‌کرد. ولی به هر حال در هفته‌های پایانی رقابت شدید‌تر شده بود.

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

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

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

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

پاسخی که انتظار داشتم این بود که «بله، من هم مثل بقیه دچار زیان شدم و اصلن فکر نمی‌کردم که هیلاری کلینتون بازنده‌ی انتخابات بشه».

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

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

برای استاد عزیزم، آقای دکتر نازنین، بهترین‌ها را آرزومندم و امیدوارم که هر جا که هستند تندرست، شاد و پیروز باشند.

گزیده:
برای پول درآوردن نیازی نیست بدانید که قرار است چه اتفاقی بیفتد.
ثباتی که شما به دنبال آن هستید در ذهن شماست، نه در بازار.
مایکل داگلاس،
از افراد مشهور در روان‌شناسی خرید و فروش (ترید)



https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4633
https://bit.ly/3CjjgEC
👍174
نرم‌افزار بی‌نقص و کامل

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

اندرو هانت نویسنده کتاب The Pragmatic Programmer


https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4593
👍14👏1🤔1
شوک‌های ذهنی! (بخش ۱)

پیش‌گفتار:

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

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

شوک ۱: افزایش قطعیت منجر به کاهش عدم قطعیت نمی‌شود!
وقتی با مفهوم قطعیت و عدم قطعیت آشنا شدم رابطه بین آن را همان رابطه‌ی بین گرما و سرما می‌دیدم. برای من بدیهی بود که قطعیت و عدم قطعیت (شرایط غیرقطعی) مثل رابطه سرما و گرما است. افزایش یکی یعنی کاهش دیگری! اگه می‌خواهید میزان عدم قطعیت را کاهش دهید باید میزان قطعیت را افزایش دهید.
مدتی طول کشید تا با یک شوک بنیان ‌کن به این نتیجه برسم که برداشت ذهنی من کاملن نادرست است. شما نمی‌توانید با افزایش قطعیت،‌ عدم قطعیت (شرایط غیرقطعی) موجود را کاهش بدهید! (فکر کنم شما هم دچار شوک ذهنی شدید 🙂 )
برای نمونه شما نمی‌توانید با افزایش قطعیت در برنامه‌ریزی میزان عدم قطعیت آن را کاهش دهید.

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

گزیده:
زهی دریای بی‌ساحل پر از ماهی درون دل
چنین دریا ندیدستم چنین ماهی نمی‌دانم

https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4644
👍6👏4🤔21
شوک‌های ذهنی! (بخش ۲)

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

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

پس گفتار:
به قول مولانا «چه دانم‌های بسیار است لیکن من نمی‌دانم»

https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4650
👍113👏1
شوک‌های ذهنی! (بخش ۳)

نمونه ۳:
در ریاضیات یک سری گزاره‌ها یا درست هستند یا نادرست. مثلا یک عدد نمی‌تواند هم از سه بزرگ‌تر باشد و هم کوچک‌تر! این گزاره‌ها با موضوعات آمار و احتمال و حتا منطق فازی هم متفاوت هستند. این گونه گزاره‌ها نمی‌توانند هم درست باشند و هم نادرست.

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

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

بعدها در جایی دیدم که اگر عدد ۶ انگلیسی را بین دو نفر بگذارید که یکی از راست و دیگری از چپ به آن نگاه کند،‌ یکی می‌گوید این عدد ۹ است و دیگری می‌گوید این عدد ۶ است. هر چند که عدد ۶ ثابت است ولی آن دو از دو منظر متفاوت به آن می‌نگرند و در نتیجه هر دو درست می‌گویند: یکی می‌گوید ۶ و دیگری می‌گوید ۹. نظر من می‌تواند کاملن مخالف نظر شما باشد ولی هر دو نظر و در یک زمان درست باشند!

زندگی سخت‌تر از گذشته شد و شاید هم راحت‌تر! سخت‌تر شد چون باید به جایی که از آن زندگی را نگاه می‌کردم توجه می‌کردم و به یاد می‌آوردم که اگر جایم تغییر می‌کرد همه چیز می‌توانست متفاوت باشد. راحت‌تر شد چون کمتر درگیر درست/نادرست بودم و بیشتر به این نتیجه می‌رسیدم که همه درست می‌گویند حتا شما دوست عزیز!

گزیده:
رها کن حرف هندو را ببین ترکان معنی را
من آن ترکم که هندو را نمی‌دانم نمی‌دانم


https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4648
👍8
قانون هایروم (Hyrum’s Law)-بخش اول

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

تعریف سطح درستِ تجرید (abstraction)، موضوع کاملن جداگانه‌ای است که در اینجا به آن نمی‌پردازیم (کتاب نفر ماه افسانه‌ای -Mythical Man-Month- را ببینید). نکته مهم این است که وقتی یک تجرید (abstraction) تعریف شد ما دوست داریم آن را غیرقابل تغییر، شفاف و تفسیرناپذیر بدانیم. به عبارت دیگر، هر رابط (interface) از دیدگاه نظری باید مرز شفافی بین استفاده‌کنندگان یک سیستم و پیاده‌سازی داخلی سیستم ترسیم کند. اما از دیدگاه عملی، با رشد تعداد استفاده‌کنندگان و استفاده از سیستم، این نظریه نقض می‌شود و استفاده‌کنندگان شروع به اعتماد و اتکا به جزییات پیاده‌سازی می‌کنند. این جزییات یا دانسته از طریق رابط (interface) به بیرون درز کرده یا خود استفاده‌کنندگان موقع استفاده از سیستم آنها را کشف کرده و فهمیده‌اند. «قانون تجریدهای دارای نشتی اسپولسکی» (Spolsky’s Law of Leaky Abstractions) توضیح می‌دهد که چگونه استفاده‌کنندگان به جزییات پیاده‌سازی اعتماد و اتکا می‌کنند.

نهایت چنین اتفاقی ما را به سوی مفهومی هدایت می‌کند که در محاوره به آن «قانون رابط‌های ضمنی یا غیرشفاف» (The Law of Implicit Interfaces)‌ گفته می‌شود: با فرض وجود تعداد کافی از استفاده‌کنندگان، چیزی به نام پیاده‌سازی خصوصی (private implementation) وجود ندارد [پیاده‌سازی خصوصی به این معناست که استفاده‌کننده هیچ اطلاعی از نحوه و روش پیاده‌سازی داخلی سیستم ندارند].

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


https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4652
👍104🤔3
قانون هایروم (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://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4652
5👍4
قوانین نرم‌افزار: قانون کانینگهم (Cunningham’s Law)

بهترین راه برای دریافت پاسخ درست در اینترنت، پرسیدن پرسش درست نیست! بهترین راه، نوشتن پاسخ نادرست است. 😁

ورد کانینگهم (Ward Cunningham)

https://bit.ly/3VXpvoC

https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4699
👍62
نمونه کاربردهای هوش مصنوعی


به تازگی گوگل در یک وب‌نوشت، مجموعه‌ای از نمونه کاربردهای هوش مصنوعی را معرفی کرده است. این نوشته شامل ۳۲۱ نمونه‌ی کاربردی از حوزه‌های مختلفی مانند خرده‌فروشی و کالاهای مصرفی، خودرو و لجستیک، سلامت است. مرور این نوشته برای آشنایی با کابردهای هوش مصنوعی و هم‌چنین ایده گرفتن برای شناسایی کاربردهای مشابه در حوزه‌ی تخصصی می‌تواند مفید باشد.


https://cloud.google.com/transform/101-real-world-generative-ai-use-cases-from-industry-leaders


https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4709
👍14
مهم نیست که چه می‌خواهیم!

صحنه‌ای از مجموعه تلویزیونی “بازی تاج و تخت” (Game of Thrones) است که توی اون «لیتل فینگر» (شخصیت مرموز،‌ حیله‌گر و تشنه‌ی قدرت این سریال) رو به «سانسا استارک» می‌کنه و می‌گه:
«همیشه دلم می‌خواست یه کشتی داشته باشم. ولی الان [که یه کشتی دارم] دلم می‌خواد چند تا کشتی داشته باشم. عجیبه! مگه نه؟!»
و سانسا ازش می‌پرسه: «چی عجیبه؟»
و بعد لیتل فینگر ادامه می‌ده:‌ «مهم نیست که چی می‌خوایم. مهم اینه که وقتی به دست‌اش می‌آریم یه چیز دیگه می‌خوایم.»

https://bit.ly/3BP3a5L

https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4712
5👍3
روان‌شناسی پول


کتاب روان‌شناسی پول: درس‌های ابدی درباره‌ی ثروت، طمع و خوشحالی (The Psychology of Money: Timeless lessons on wealth, greed, and happiness) را به همراه چند تن از دوستان عزیزم خواندم.

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

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

اجازه دهید بدون لو دادن مطالب کتاب،‌ چند نمونه را با هم بررسی کنیم.
– در این کتاب توضیح می‌دهد که پول‌داری (rich) با ثروت‌مندی (wealthy) تفاوت دارد و آن چه باید به دنبال آن بود ثروتمندی است!

– جای دیگر کتاب درباره‌ی مفهومی به نام «کافی بودن» (enough) توضیح می‌دهد و تاکید می‌کند که «مقدار کافی بودن» موضوعی است شخصی و بعد توضیح می‌دهد که چگونه می‌توان از این مفهوم برای «آزادی مالی» استفاده کرد.

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

کتاب روان‌شناسی پول از آن دسته کتاب‌هایی است که هر چند وقت یک بار باید دوباره آن را خواند. مهم‌تر این که می‌توان برای هر فصل کتاب جلسه‌های بحث و هم‌اندیشی گذاشت که بی‌شک به چالش ختم خواهد شد ;).

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

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

https://bit.ly/4h3fpdL

https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4719
👍6👏3🤔1🎉1
برنامه‌نویسی دلی! – بخش یک

پیش‌گفتار یک: نگاه ریاضی‌گونه و نگاه مهندسی‌گونه به برنامه‌نویسی

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

برای نمونه در نگاه ریاضی‌گونه به برنامه‌نویسی شما ابتدا باید ساختار داده‌ها (data structure) را تعیین کنید و بعد با نگاه رویه‌گونه و الگوریتمی به کمک تابع یا رویه (procedure or function) راه‌حل‌تان را به گام‌هایی بشکنید و همین گام‌ها را تکرار کنید. روی کاغذ، در کامپیوتر یا در ذهن‌تان،‌ ابتدا باید این اجزا فکر کنید و بعد کدنویسی رو شروع کنید. البته می‌توانید کمی فکر کنید و بعد کد بنویسید و بعد باز هم فکر کنید و کد بنویسید و …

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

از این منظر،‌ نگرش روش‌های تکراری-تدریجی (iterative-incremental) نیز همین گونه است فقط «به همه چیز فکر کن بعد کد بنویس» به «یک کم فکر کن یک کم کد بنویس بعد دوباره فکر کن …». تلاش بر این است که اندازه و مدت آماده کردن طراحی و سپس پیاده‌سازی آن کاهش پیدا کند.

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

برداشت من این است که اگر از این منظر به روش‌های توسعه‌ی نرم‌افزار نگاه کنیم همه‌ی آنها بر این بنیان استوارند که «اول فکر کن بعد کد بنویس»!

در یکی دو نوشته‌ی بعدی در نظر دارم کمی در این باره بنویسم و ایده‌ای را با شما مطرح کنم.

گزیده:
برنامه‌نویس کیه؟
برنامه‌نویس، ماشینی یه که قهوه [ یا چایی] رو به کد تبدیل می‌کنه!

https://bit.ly/4g1BmsJ

https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4706
👍15
برنامه‌نویسی دلی! – بخش دو

فیلم «پیدا کردن فارستر» (Finding Forrester) به داستان آشنایی یک رمان‌نویس معروف، برنده‌ی جایزه پولیتزر و البته منزوی به نام ویلیام فارستر (با بازی شان کانری)‌ و یک نوجوان دبیرستانی به نام جمال می‌پردازد. فارستر پس از آن که پی‌ می‌برد جمال برای پذیرفته شدن در کالج نیاز دارد متنی ادبی بنویسد، تصمیم می‌گیرد به او کمک کند. متن زیر گفتگوی فارستر و جمال است در اولین تلاش فارستر برای کمک به جمال. در این صحنه، فارستر پشت یک ماشین تحریر می‌نشیند و جمال هم رو به روی او و جلوی یک ماشین تحریر دیگر ایستاده است.

فارستر: پس بیا به اون [یکی از استادهای دانشگاه و عضو کمیته ارزشیابی] نشون بدیم که تو چه کاری می‌تونی انجام بدی.

جمال: چرا چیزهایی که برای خودمون می‌نویسیم … همیشه خیلی بهتر از چیزهایی‌اند که برای دیگران می‌نویسیم؟

فارستر: زود باش.
– بشین.
– شروع کن.

جمال: چی رو شروع کنم؟

فارستر: نوشتن رو

در این لحظه، فارستر شروع به تایپ می‌کنه.

جمال: داری چه کار می‌کنی؟

فارستر: دارم می‌نویسم، همون کاری که تو قراره بکنی… وقتی که شروع کنی به فشردن اون کلیدها [ی ماشین تحریر].

در اینجا، جمال که پشت ماشین تحریر نشسته، بدون اینکه چیزی تایپ کنه مشغول فکر کردن می‌شه.

فارستر: چیزی شده؟

جمال: نه. فقط دارم فکر می‌کنم.

فارستر: نه. فکر کردن ممنوعه. فکر کردن برای بعدنه.
– پیش‌نویس اولت رو با قلبت می‌نویسی…
– و بعد با عقلت بازنویسی می‌کنی
– اولین اصل نوشتن … نوشتنه، نه فکر کردن

جمال: خدایا.

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

https://bit.ly/4g1BmsJ

https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4738
7👍3
سال نو

چو فردا روز نوروز است و نوروز جهان آید
رود این سال فرتوت و یکی سال جوان آید

از این خوابم چنین یابم که سالی خوش روان آید
که آن نامهربان یارم، به خوابم مهربان آید
«میرزاده عشقی»




نوروزتان فرخنده.
بهترین‌ها را برای‌تان آرزومندم.



24👍2👏1
بختک!

تو شبِ سیا
تو شبِ تاریک
از چپ و از راست
از دور و نزدیک
یه نفر داره
جار می‌زنه، جار:
آهای غمی که
مثلِ یه بختک
رو سینه‌ی من
شده‌ای آوار
از گلوی من
دستاتو، وردار


شعر خاله یادگار از حسین منزوی
با صدای شاعر

https://youtu.be/UfkoIF6I-Og?si=UhUaJ9f-GQs_XxM_



https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4763
5😢5
کتاب «چگونه تصمیم بگیریم»

https://bit.ly/3YRBK7u

همان طور که قبلن نوشتم، در یک گروه کوچک و دوستانه کتاب‌هایی را به شیوه‌ی «آهسته و پیوسته» می‌خوانیم و با هم در مورد آنها گفتگو می‌کنیم. این بار نوبت به کتاب «چگونه تصمیم بگیریم: ابزارهای ساده برای انتخاب‌های بهتر» (How to Decide: Simple Tools for Making Better Choices) اثر آنی دوک (Annie Duke) رسید.

نویسنده کتاب هم یک پوکرباز حرفه‌ای و هم یک پژوهشگر و دانش‌آموخته‌ی حوزه‌ی تصمیم‌گیری است و با تکیه بر دانش و تجربه‌ی خود تلاش می‌کند تا به بهبود مهارت تصمیم‌گیری خوانندگان کمک کند. کتاب با ارائه تمرین‌ها و پرسش‌های عملی، به خواننده کمک می‌کند تا خطاهای شناختی و سوگیری‌های ذهنی خود را شناسایی و اصلاح کند. نویسنده مفاهیمی مانند نقش شانس در نتایج، اهمیت بازخورد باکیفیت و تمایز بین کیفیت تصمیم و نتیجه را به زبانی ساده و قابل فهم شرح می‌دهد.
این کتاب برای من که علاقه‌ی فراوانی به حوزه‌ی تصمیم‌گیری و خطاهای شناختی دارم، کتابی بسیار آموزنده بود. هر چند جاهایی خواندنش برای من خسته‌کننده می‌شد، با این حال از آن دست کتاب‌هایی است که باید دوباره نگاهی به آن بیندازم یا دست کم باید بخش‌ خلاصه‌ی پایان هر فصل آن را برای یادآوری دوباره بخوانم. اگر فرصت نمی‌کنید کتاب را بخوانید پیشنهاد می‌کنم نگاهی به بخش خطای شناختی «نتیجه‌گرایی» (resulting) بیندازید.

گزیده:
کیفیت نتایج یک تصمیم مانعی است در برابر توانایی درک ما از کیفیت آن تصمیم‌. آنی دوک

The quality of the outcome casts a shadow over our ability to see the quality of the decision.


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



https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4766
👍11
هوش مصنوعی:‌ با هم یاد بگیریم (۱)

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

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



درس ۱: پرامپت‌نویسی
منبع:‌ Master the Perfect ChatGPT Prompt Formula

آدرس:
https://www.youtube.com/watch?v=jC4v5AS4RIM

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



https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4771
👍15
هوش مصنوعی:‌ با هم یاد بگیریم (۲)

https://bit.ly/43dytki


در این بخش می‌خواهیم با هم یاد بگیریم که چگونه یک متن به یک بردار تبدیل می‌شود. تبدیل متن به بردار یکی از پایه‌ای ترین و مهم‌ترین کارها در پردازش زبان طبیعی و یادگیری ماشین است.
با تبدیل متن به بردار می‌توان بخش عمده‌ای از عملیات مورد نیاز برای پردازش زبان طبیعی به عملیات روی بردارها تبدیل می‌شود. برای درک این موضوع اجازه دهید مثالی از درس فیزیک را با هم مرور کنیم.

در مبحث حرکت در درس فیزیک،‌ نقطه‌ای را به عنوان مبدا در نظر می‌گرفتیم. موقعیت متحرک را هم روی محور افقی (محور ایکس) نشان می‌دادیم. مثلن اگر متحرک در سمت راست مبدا مختصات و به فاصله ۵ متری آن بود آن را به صورت بردار مثبت ۵ (+۵) نشان می‌دادیم. اگر متحرک به اندازه ۷ متر به سمت چپ حرکت می‌کرد، میزان جابه‌جایی آن را به صورت بردار منفی ۷ (-۷) نشان می‌دادیم. برای پیدا کردن مقصد متحرک کافی است که دو بردار +۵ و -۷ یعنی مبدای حرکت و میزان جا به جایی متحرک را با هم جمع کنیم تا به مقصد یعنی منفی ۲ (-۲) برسیم. در اینجا اگر سه متحرک الف،‌ ب، پ داشته باشیم که بردار مکان آنها +۴ و +۱۳ و +۱۵ باشد می‌توانیم نتیجه بگیریم که دو متحرک ب و پ که فاصله‌ی بردار آنها ۲ است به هم نزدیک‌ترند تا دو متحرک الف و ب که فاصله‌ی دو بردار آنها ۱۱ است.

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

بردارسازی که به آن دگرنمایی یا جاسازی (embedding) هم گفته می‌شود [به معنای جا دادن کلمات در یک فضای چند بعدی یا نمایش کلمات در یک فضای چند بعدی] کمک می‌کند تا کلمات در یک فضا (مشابه با محورهای مختصات در درس فیزیک) جاسازی شوند. در پایان جاسازی واژگان، هر واژه در نقطه‌ای از این فضا قرار می‌گیرد که شبیه به نمایش مکان متحرک در مثال قبلی است. هر چه دقت این بردارها بیشتر باشد عملیات بعدی دقیق‌تر و درست‌تر خواهد بود.

حالا با در نظر گرفتن آموخته‌های درس فیزیک بیایید مثالی از بردارهای کلمات را با هم مرور کنیم. برای سادگی فرض می‌کنیم که دستگاه مختصات یک بعدی است و فقط محور ایکس وجود دارد. در نظر بگیرید که در پایان بردارسازی کلمات، کلمه‌ی «برادر» در نقطه‌ی ۱۱ و کلمه‌ی «مرد» در نقطه‌ی ۶ و کلمه‌ی «زن» در نقطه‌ی +۷ قرار گرفته باشند. حدس بزنید اگر بردارهای «مرد»، «زن» و «برادر» را به شکل زیر جمع و تفریق کنیم نتیجه‌ چه خواهد شد؟

برادر – مرد + زن = ؟

احتمالن درست حدس زدید! نتیجه‌ی این عملیات ریاضی که بردار +۱۲ خواهد بود باید محل قرار گرفتن کلمه‌ی «خواهر» در دستگاه مختصات باشد.
حالا به این پرسش پاسخ دهید:
گیلان – رشت + کردستان = ؟

بله! پاسخ باید برابر با سنندج باشد اگر مکانیزم بردارسازی ما به اندازه کافی دقیق و درست باشد.

با این مقدمه نگاهی بندازیم به ویدیوهای زیر که تلاش دارد نشان دهد چگونه می‌توان کلمات را در نقاط مختلف یک فضا جاسازی کرد.
ویدیوی یک: از ابتدا تا دقیقه ۶
https://bit.ly/44Ffth8


ویدیوی دو: از دقیقه ۶:۳۰ تا دقیقه ۱۰:۳۰
https://bit.ly/3ETN10x


https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4780
👍5👏2
مدل شما چه ساعتی را نشان می‌دهد؟


پیش‌گفتار: فرضیه‌ی پیچیدگی متناسب تورنگیت
(Thorngate’s postulate of commensurate complexity)
فرضیه‌ی پیچیدگی متناسب، توصیفی از یک پدیده در نظریه‌پردازی علوم اجتماعی است. کارل ای. ویک (Karl E. Weick) ادعا می‌کند که تحقیقات در زمینه روانشناسی اجتماعی همواره می‌تواند فقط دو ویژگی از سه ویژگی متا-نظری ‘عمومیت’ (Generality)، ‘دقت’ (Accuracy) و ‘سادگی’ (Simplicity) را داشته باشد. بنابراین، یکی از این سه ویژگی‌ همیشه باید تابع دو ویژگی دیگر باشد.به عبارت ساده‌تر یک مدل تنها دو ویژگی از سه ویژگی عام بودن، دقیق بودن و ساده بودن را داشته باشد و نه هر سه‌ی آنها را.
این فرضیه به نام روانشناس اجتماعی کانادایی وارن تورنگیت (Warren Thorngate) از دانشگاه آلبرتا نامگذاری شده است. وی در توصیف مساله می‌گوید: «برای افزایش عمومیت دقت نظریه‌ها به ناچار باید پیچیدگی آنها افزایش یابد».

کارل ویک برای نمایش این مفهوم از تصویر ساعت زیر استفاده کرد. در این ساعت روی ساعت ۱۲، ۴ و ۸ سه عبارت عمومیت، دقت و ساده نوشته شده است. حالا به مفهوم ساعت ۲ و ۶ و ۱۰ دقت کنید
– ساعت ۲: تحقیقات برای همه جا قابل استفاده‌اند و جزئیات زیادی هم دارند، اما پیچیده می‌شوند و سادگی خود را از دست می‌دهند.
– ساعت ۶: تحقیقات برای یک زمینه خاص مفیداند، اما نتایج‌شان به طور کلی قابل اعمال به دیگر زمینه‌ها و تعمیم‌پذیر نیستند.
ساعت ۱۰: تحقیقات برای همه جا قابل استفاده‌‌اند و به آسانی قابل درک‌اند، اما جزئیات کافی و خیلی دقیقی ندارند.

https://bit.ly/43qYZXF

کارل ویک ادعا می‌کند که شما باید یک تصمیم بینابینی (tradeoff) برای انتخاب این سه ویژگی بگیرید زیرا در هر زمان تنها دو تای آنها قابل دست‌یابی هستند.

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

اکنون وقت آن است که چند راه حل قبلی خودتان را مرور کنید و ببینید در دنیای راهکارهای شما ساعت چند است.

منبع:
– ایده‌ی این نوشته از کتاب Mastering DDD نوشته‌ی Annegret Junker آمده است.


https://news.1rj.ru/str/bibalan_com
https://bibalan.com/?p=4785
👍94🤔3🤩1