Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
Forwarded from Software Philosophy
اگر شما دولوپرید و درون تیمی مشغول به کارید که همکار دیتا ساینتیست دارید، به احتمال زیاد در هنگام ریفکتور کد یا کد ریویو، با نام گذاری متغیرها توسط همکار دیتا ساینتیست خودتان به مشکل برخورده اید و یا شاید به ستوه آمده باشید!

مقاله زیر به صورت مفصل، راهنمایی‌هایی جامع در مورد نام گذاری Variableها و Constantها در زبان پایتون به شما ارائه می‌دهد که با اشتراک گذاری آن‌ها با هم تیمی‌هایتان به عنوان یک قرارداد، می‌توانید در زمان و انرژی مورد استفاده برای توسعه نرم افزارها صرفه جویی بسیاری داشته باشید.

https://bit.ly/2G31PZ3

#محمدرضا_حاج_بابایی (https://bit.ly/2ThD3YO)

کانال تلگرام:
@SoftwarePhilosophy

ـــــــــ
#پست_مجدد این پست تا به حال بیش از ۴۷۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
دیباگ کردن به سبک جغد‌ها

حتما تا به حال برنامه‌نویسی را دیده‌اید که ساعت‌ها «مانند جغد» به مانیتور زل زده و حتی به به کیبورد و ماوس دست نمی‌زند، ولی ادعا می‌کند در حال دیباگ کردن (پیدا کردن خطا) برنامه است!
در حقیقت او در حال انجام نوع خاصی از دیباگ به نام Owlly Debugging یا دیباگ کردن به سبک جغدها است.

حقیقت این است که زبان‌های برنامه‌نویسی، تکنولوژی‌ها و پلتفرم‌هایی وجود دارند که به شما امکانات زیادی برای دیباگ کردن نمی‌دهند و برنامه نویس برای پیدا کردن خطا چاره‌ای به جز خواندن و حدس خطا ندارد. زبان‌های Declarative مانند SQL، تکنیک‌هایی مانند AOP و مفاهیمی مانند MVVM همگی از این نوع هستند.

https://mehrandvd.me/2016/08/30/owlly-debugging-debugging-like-owl/

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy

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

در لینک زیر توضیحات بیشتری در این مورد وجود داد :

https://www.edureka.co/blog/what-is-jenkins/

#شهریار_انتظام (https://ow.ly/qDN430nPiCg)

کانال تلگرام:
@SoftwarePhilosophy

___
Forwarded from فلسفه دیزاین
نوسترآداموس‌های دیزاین

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

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

دیزاین پیشگویانه (Predictive Design) چیست؟

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

برای روشن‌تر شدن این موضوع به مثالی می‌پردازیم:

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

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

این ابزار، با این روش علاوه بر اینکه متون شما را اصلاح می‌کند، شما را مانند یک ورزشکار حرفه‌ای تمرین داده تا در تولید محتوا بهتر و هدفمندتر عمل کنید.

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

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

شما چطور در طراحی محصولتان به صورت پیش‌گویانه عمل کرده‌اید؟ با فشردن دکمه‌ی «مشاهده نظرات» آن‌را با ما در اشتراک بگذارید.

https://bit.ly/dxgn530


نویسنده: حسین میرزاده

(زمان حدودی مطالعه، ۹ دقیقه)

#دیزاین #تجربه_کاربری #هوش_مصنوعی

@Dexign فلسفه دیزاین

___
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
آیا شما با Git کار می‌کنید؟

آیا کد شما Commit شده اما Push نشده است؟

آیا کد در یک Branch مشترک Push شده است؟

آیا یک Merge اشتباها Push شده است؟

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

https://dev.to/vorahsa/fixing-mistakes-with-git-27a5


#شهریار_انتظام (https://ow.ly/qDN430nPiCg)

کانال تلگرام:
@SoftwarePhilosophy

___
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
نگارش نهایی NET Core 3.0. منتشر شد
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-0/

تغییرات ASP.NET Core و Blazor در نگارش نهایی NET Core 3.0.
https://devblogs.microsoft.com/aspnet/asp-net-core-and-blazor-updates-in-net-core-3-0/

نگارش نهایی EF Core 3.0 و EF 6.3 منتشر شد
https://devblogs.microsoft.com/dotnet/announcing-ef-core-3-0-and-ef-6-3-general-availability/

🔰 هم اکنون میتونین نسخه جدید رو از لینک زیر دانلود و نصب کنین
حداقل نسخه مورد نیاز Visual Studio 2019 ورژن (v16.3) می باشد
https://dotnet.microsoft.com/download/dotnet-core/3.0
_________________
@DotNetZoom
#پست_مجدد این پست تا به حال بیش از ۴۳۰۰ بار مشاهده شده و به نظر می رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یک تصمیم «به اندازه کافی خوب» به سوی «بهترین تصمیم»

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

فرض کنید می‌خواهید شغل بعدی خود را انتخاب کنید و تصمیم به رفتن به یک شرکت جدید دارید. واقعا آیا این بهترین تصمیم است؟
• این تصمیم می‌تواند در حال حاضر (سال ۲۰۱۵) بهترین تصمیم شما باشد.
• در انتهای ماه ممکن است به این نتیجه برسید که این تصمیم، نسبتا خوب بوده‌است زیرا شغل پر استرسی است.
• در سال ۲۰۱۶ ممکن است به این نتیجه برسید که تصمیم بدی گرفته‌اید چون شغل بسیار سختی است.
• در سال ۲۰۱۷ ممکن است به این نتیجه برسید که بدترین تصمیم ممکن را گرفته‌اید زیرا علی‌رقم تمام زحماتتان شرکت ورشکست شده!
• و در نهایت در سال ۲۰۲۰ به این نتیجه برسید که بهترین تصمیم تمام عمرتان را گرفته‌اید، زیرا با استفاده از تجربه‌ای که از آن شرکت به دست آورده‌اید حالا مدیرعامل شرکت مایکروسافت شده‌اید!

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

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

https://mehrandvd.me/2016/12/12/good-enough-decision-towards-best-decision/

#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd

کانال تلگرام:
@SoftwarePhilosophy

___

Good Enough Decisio
تجربه کار در یک تیم remote تجربه جذابی است. خیلی‌ها بر این باورند که راندمانشان هنگام کار از راه دور بیشتر از زمانی است که در دفتر کار می‌کنند.
همچنین کار تیمی با یک تیم از راه دور گاهی جذاب‌تر است، اما گاهی پیچیدگی‌های دارد که با کار در کنار هم در محیط فیزیکی ایجاد نمی‌شود.
در این مقاله برخی از این چالش‌ها به همراه نکاتی برای کار در تیم‌های remote مطرح شده است.

https://leanstartup.co/12-tips-for-managing-a-remote-team-and-loving-it/

#مریم_کمالی (https://ow.ly/9Wa430mFGeK)

کانال تلگرام:
@SoftwarePhilosophy

___
Forwarded from فلسفه دیزاین
بازی‌نمایی: اکسیر انگیزه در محصول

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

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

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

https://bit.ly/dxgn531

نویسنده: محمدرضا پناهی

(زمان حدودی مطالعه، ۱۰ دقیقه)

#بازی #گیمیفیکیشن #تجربه_کاربری

@Dexign فلسفه دیزاین

___
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از معظلات سازمان‌ها جلسات طولانی است. یکی از دلایل این جلسات پی در پی، موثر نبودن جلسات است که باعث می‌شود دوباره آن موضوع در جلسه دیگر پیگیری شود.

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

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

لینک زیر این مسئله را شرح می‌دهد :

https://medium.com/swlh/the-silent-meeting-manifesto-v1-189e9e3487eb

#شهریار_انتظام (https://ow.ly/qDN430nPiCg)

کانال تلگرام:
@SoftwarePhilosophy

___
نوشتن تست یکی از دوست نداشتنی‌ترین! کارهایی است که یک برنامه نویس باید انجام دهد.

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

این مقاله و منابعی که در انتهای آن معرفی شده است راهنمای بسیار جامعی درباره تست در جاوااسکریپت هستند.

https://medium.com/welldone-software/an-overview-of-javascript-testing-in-2019-264e19514d0a

#مریم_کمالی (https://ow.ly/9Wa430mFGeK)

کانال تلگرام:
@SoftwarePhilosophy

___
#پست_مجدد این پست تا به حال بیش از ۴۴۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از ارکان مهم هر تیم رهبری تیم است. منظور از رهبر، یک نفر خاص نیست. بلکه رهبری یک ویژگی شخصیتی است که وجود آن در تک تک افراد تیم باعث پیشرفت تیم می‌شود.
در یک تیم فوتبال، دربازه‌بان شخصیتی است که وظیفه بسیار سختی دارد. برعکس مهاجمان که از بین تمام حرکاتشان فقط آنهایی که منجر به گل زدن می‌شود شمرده می‌شوند و مستحق تشویقند، دربازه‌بان‌ها بین تمام حرکاتشان فقط اشتباهاتشان شمرده می‌شود که منجر به شکست تیم می‌شود.
در یک تیم شخصیت رهبری تشابهات زیادی با ویژگی‌های شخصیتی یک دربازه‌بان دارد. در لینک زیر توضیح داده شده است که چگونه خصلت‌های دربازه‌بان‌ها می‌تواند الگویی برای تقویت روحیه رهبری باشد.


https://mehrandvd.me/2015/07/16/goalkeepers-vs-leaders-2/

#مهران_داودی
لینکداین:
https://ir.linkedin.com/in/mehrandvd


کانال تلگرام:
@SoftwarePhilosophy


___
Forwarded from فلسفه دیزاین
عادت؛ خوب یا بد!

بهترین و بدترین ویژگی انسان‌ها، "عادت کردن" آن‌هاست. حالتی که باعث می‌شود به‌واسطه‌ی آن چیزهای جدید یاد بگیریم و همینطور از برخی از مشکلات اساسی‌ چشم‌پوشی کنیم.

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

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

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

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

امروز با Tony Fadell که یک دیزاینر و مهندسی آمریکایی است و خیلی‌ها او را با Google Nest و iPod می‌شناسند، آشنا می‌شویم. او در این ویدئوی Ted به معرفی راه‌حل‌هایی می‌پردازد که شما بتوانید این پرده‌ی عادت را از جلوی چشمانتان بردارید و عمیق‌تر و با چشمانی بازتر دنیا را دیزاین کنید.

https://www.ted.com/talks/tony_fadell_the_first_secret_of_design_is_noticing?utm_campaign=tedspread&utm_medium=referral&utm_source=tedcomshare

پ.ن: قبل‌تر نیز مثالی از دیزاین خارج از عادت را در پست زیر واکاوی کرده‌ایم:

https://t.iss.one/Dexign/428

به نظر من، چون برای انسان‌ها طراحی می‌کنیم و همه چیز بستگی به رفتارهای او دارد. باید با تمام زوایای پنهان و آشکار این موجود عجیب آشنا بشویم. مشاهده ویدئو، خواندن پست اشاره شده و همچنین کتاب بسیار عالی Nir Eyal به نام Hooked را که درباره‌ی همین ویژگی انسان‌ است را پیشنهاد می‌کنم.
و همینطور بسیار خوشحال می‌شوم که دیدگاهتان را در بخش نظرات با استودیو دیزاین در میان بگذارید.

نویسنده: حسین میرزاده

#عادت #رفتارشناسی #دیزاین_محصول

@Dexign فلسفه دیزاین

___
#پست_مجدد این پست تا به حال بیش از ۳۸۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
یکی از مهمترین کارهایی که یک معمار نرم‌افزار انجام می‌‌دهد تشخیص و خلق مفهومی به نام «فضا» است. اگر در نرم‌افزاری فضاها به درستی ساخته نشوند، برنامه نویسان دچار سردرگمی می‌شوند و عمدتا کدهای تکراری خواهند نوشت. ساخت فضاهای درست توسط معمار نرم‌افزار احتمال نوشته شدن کدهای تکراری یا اضافی را کم می‌کند.

در لینک زیر مفهوم فضا در معماری نرم‌افزار توضیح داده شده
https://mehrandvd.me/2015/09/16/software-architect-its-all-about-spaces/
Forwarded from tehran marketing school
وظیفه و خروجی نهایی یک تیم استارتاپ تولید محصولی است که در نهایت به نیاز «بازار» نزدیکتر باشد.
برنامه نویس ها برای کمک به بقای تیم استارتاپ به زبان مارکتینگ نیاز دارند و دلیل آن در دو بُعد قابل بررسی است:

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

آشنایی با جزئیات دوره ی "زبان مارکتینگ برای تیم فنی"
https://bit.ly/35xB75I