Software Philosophy – Telegram
Software Philosophy
3.45K subscribers
160 photos
41 videos
1.54K links
چکیده‌ای از مفاهیم به روز مهندسی نرم افزار برای مهندسین نرم‌افزار.
معماری نوین نرم‌افزار، تکنولوژی‌های برنامه نویسی جدید
Download Telegram
Forwarded from فلسفه دیزاین
چرا از قبول و درک تغییر گریزانیم؟

چندوقت پیش بود قسمتی از پادکست Moniaz گوش می‌کردم که درباره ذهن انسان و علاقه‌اش به تغییر نکردن صحبت می‌کرد.

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

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

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

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

در این مقاله، Kushaan Shah به واکاوی دلایلی می‌پردازد که چرا مردم از ری‌برندها متنفرند؟

پیشنهاد می‌کنم این مقاله جذاب رو از دست ندهید.

http://bit.ly/dxgn746

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

نویسنده: آرش اصغری

#دیزاین #چالش

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

______
Forwarded from Iran Agile
تفکر سیستمی برای توسعه دهندگان نرم‌افزار

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

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

توصیه می‌شود با حوصله ببینید حتی اگر فنی نیستید، البته لازم نیست فنی باشید 👇👇👇

https://youtu.be/z8bL_V9in9o

@iranagile
Forwarded from فلسفه دیزاین
وارونگی؛ زاویه‌ی دیگر مسئله

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

بهترین سؤالی که می‌توانید از خود بپرسید تا بدانید که آیا این روش می‌تواند به شما کمک کند اینست: آیا به دنبال یک راه‌حل ایده‌آلی هستیم؟

حالا می‌توانید افکار خود را درباره‌ی مسئله و یا راه‌حل معکوس کنید.

۱. از خودتان بپرسید که بدترین تصمیم یا راه‌حل برای این مسئله چیست؟
۲. حال از خود بپرسید که چرا این بدترین تصمیم است؟ علت‌ها را یادداشت کنید.
۳. با توجه به علت‌ها و راه‌حل بدی که یادداشت کردید. تصمیم یا راه‌حل درست را ارائه بدهید. (از خود بپرسید که چطور می‌شود ازین راه‌حل بد جلوگیری کرد.)

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

سؤالاتی که می‌تواند شما را در این تکنیک کمک کند می‌تواند موارد زیر باشد:

- چطور می‌تواند این تصمیم غلط اتفاق بیافتد؟
- عکس این قضیه چه خواهد بود؟
- چه چیزهایی باعث بدترین راه‌حل برای این موضوع شده است؟

معمولا مدیران پروژه از روشی به نام Pre-mortem (پیش از مرگ) استفاده می‌کنند. افراد تیم را جمع می‌کنند و فرض می‌کنند به اتمام زمان پروژه رسیده‌اند و پروژه شکست خورده است. آن‌ها این سناریو را با سؤالاتی از قبیل «چه چیزی اشتباه پیش رفت؟»، «چه اشتباهاتی انجام دادیم؟» و «چطور شد که این پروژه شکست خورد» بررسی می‌کنند.
این کار باعث می‌شود که افراد تیم زودتر از موعد مشکلات احتمالی را ببینند و برای آن‌ها آماده شوند.

مقاله‌ی زیر را مطالعه کنید تا با دیگر مثال‌های این روش حل مسئله آشنا شوید:

http://bit.ly/dxgn748

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

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

#مدل_ذهنی #تعریف_مسئله #روش_حل_مشکل #وارونگی #معکوس_سازی

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

______
Forwarded from Iran Agile
داستان تحول چابک بوش آلمان

بوش با هر استانداردی شرکت عظیمی محسوب می شود. این شرکت مهندسی و فناوری آلمانی حدود 400000 کارمند دارد و محصولات آن - آگاهانه و ناآگاهانه - بخشی از زندگی روزمره ما هستند.

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

در لینک زیر می‌توانید داستان این سفر پنج ساله بوش را مطالعه کنید 👇👇👇

https://corporate-rebels.com/transforming-bosch


@iranagile
Forwarded from کدهک
برنامه نویسی برداری در دات نت و آشنایی با SIMD

https://youtu.be/s9AKgcw6Gf0
1
بررسی خطاها و هشدارهای موجود در HTML سایت

زمانی که کد HTML ای نوشته می‌شود، خود برنامه‌نویس باید دقت کند که تمامی Best Practis های موجود را رعایت کرده باشد.
مثلا خطایی مبنی بر قرار دادن اتربیوت alt در تگ‌های img مشاهده نکنیم و این امر نیاز به دقت بالا در رعایت این موارد دارد.

یک راه حل استفاده از W3C Markap Validation Service است.

شما در این سایت می‌توانید فایل HTML خود را آپلود کنید یا لینک سایت را قرار دهید یا اینکه کد HTML خود را به صورت مستقیم در کادری قرار دهید. سپس این سایت بررسی‌های لازم را انجام داده و هشدار (warning) و خطاهای (error) لازم را به برنامه‌نویس نشان می‌دهد.

همینطور برای کد های CSS نیز سایت‌هایی برای Validation وجود دارند که از بین آنها می‌توان W3C Validation CSS را نام برد.

#HTML

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#حامد_حاجیلو (لینکدین)

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

________
Forwarded from فلسفه دیزاین
درخت موضوعی؛ مسائل ساختارمند و راه‌حل‌های اصولی

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

دو نوع درخت موضوعی وجود دارد:
۱- درخت مسئله: با جواب به پرسش «چرا» رشد می‌کند.
۲- درخت راه‌حل: با جواب به پرسش «چگونه» رشد می‌کند.

چگونه یک درخت موضوعی را رشد دهیم؟

- درخت مسئله
یک درخت مسئله‌ی خوب باید کل مشکل را پوشش دهد. باید دقیق باشد. در اینجا به برخی از اصول اساسی برای ایجاد یک درخت مسئله اشاره می‌کنیم:

۱- مسائل را به شاخه یا دسته‌بندی‌های جداگانه تقسیم کنید. (نکته‌ی مهم: این شاخه‌ها باید مقابل هم قرار بگیرند یعنی هم‌پوشانی‌ای با یکدیگر نداشته باشند و نیز همدیگر را تکمیل کنند)
۲- زیاد وارد جزئیات نشوید. روی شاخه‌های بزرگتر که مسئله را تشکیل می‌دهند تمرکز کنید.
۳- روی قسمت‌هایی از مسئله تمرکز کنید که بیشترین تأثیرگذاری را دارند. (مهم است که به جای فرضیه‌های شما، مبتنی بر داده‌ها باشد)

- درخت راه‌حل
هنگامی که برخی از قسمتهای خاص مشکل را که می‌خواهید روی آنها تمرکز کنید، جدا کردید؛ می‌توانید با ایجاد یک درخت راه‌حل، مسئله را جلو ببرید:

۱- قسمتی از مسئله را که می‌خواهید روی آن تمرکز کنید را جدا کنید و از خود بپرسید که چگونه می‌شود آن را حل کرد یا بهبود داد؟
۲- شاخه‌های بالقوه‌ی راه‌حل‌های خود را رشد بدهید.
۳- ایده‌های خود را در هر شاخه تولید کنید.

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

برای فهم بیشتر مطلب و همینطور بررسی نمونه‌های موردی این تکنیک حل مسئله، شما را به خواندن مقاله‌ی زیر دعوت می‌کنم. در نظر داشته باشید که، درخت موضوعی به طور خلاصه در بالا توضیح داده شد، مقاله‌ی پیش‌رو یک راهنمای جامع و کامل است. می‌توانید از فهرست آن در اول صفحه استفاده کنید یا اسکرول کنید و هر جا را که دوست داشتید مطالعه کنید، پیشنهاد من این است که فصل چهارم یعنی Issue Tree Examples را مطالعه کنید تا این روش برای شما بیشتر جا بیافتد:

http://bit.ly/dxgn752

(زمان حدودی مطالعه‌ کل راهنما‌‌: ۷۰ دقیقه)

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

#مدل_ذهنی #تعریف_مسئله #روش_حل_مشکل #درخت_موضوعی #نقشه_ذهنی #راه_حل

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

____
Forwarded from Iran Agile
✍️ مراقب تله واعظ شدن بعنوان یک اسکرام‌مستر باشید

یکی از وجوه لازم برای هر اسکرام‌مستر معلم بودم و توانایی انتقال مفاهیم و اصول اسکرام و چابک به تیم و سازمان است، اما در همان حال اسکرام‌مستر میتواند در تله واعظ بودن بیفتد. واعظی که فقط موعظه می‌کند.
در این وضعیت قوانین اسکرام را بدون در نظر گرفتن کانتکست تیم، ویژگی‌های منحصر به فرد محیط و دینامیک سازمان، شروع به تبلیغ می‌کند. قوانین اسکرام به عنوان حقایقی خشک ارائه می‌شوند که باید رعایت شوند.
تشخیص اسکرام مستر به عنوان واعظ بسیار آسان است زیرا هر مکالمه ای در مورد اسکرام در سطح تئوری و نظری باقی می‌ماند. اغلب اوقات حتی مکالمه طولانی هم نیست، زیرا تنها استدلال این است "زیرا در راهنمای اسکرام است ..."
چرا یک تیم باید از هدف محصول استفاده کند؟
زیرا اخیراً به راهنمای اسکرام اضافه شده است.
چرا دیگر نمی‌توانیم درباره تیم‌های توسعه صحبت کنیم؟ زیرا در نسخه جدید راهنمای اسکرام حذف شده است.
چرا باید "خود سازماندهی" را به "خودمدیریتی" در همه جا تغییر دهیم؟ زیرا Scrum Guide عبارت را تغییر داده است.

به نظر می رسد اسکرام مستر به عنوان واعظ دارای سه ویژگی مشخص است:

یک - عدم تجربه در دنیای واقعی
دو - اعتماد به نفس کاذب
سه - تنها ابزار موجود در جعبه ابزارش اسکرام است

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

بیشتر بخوانید 👇👇

https://medium.com/the-liberators/when-the-scrum-master-as-a-teacher-becomes-a-preacher-98810c545752

@iranagile
کنفرانس NET. Conf هر سال خبرهای هیجان‌انگیزی داره. امسال هم NET. خبر های خوب و جذابی داره که قراره ۱۸ تا ۲۰ آبان برگزار بشه.

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

این دورهمی به صورت Watch party و روی Microsoft Teams برگزار می‌شود. پس اگر شما هم دوست دارید این رویداد رو تنها نبینید خوشحال می‌شیم با ما همراه بشید.

برای شرکت در این Watch Party روی این لینک کلیک کنید تا وارد گروه تلگرامی که برای هماهنگی درست کردیم بشید.

من (مهران داودی) هم به همراه بچه‌های این کانال هم تو این دورهمی هستیم.
Forwarded from فلسفه دیزاین
چطور لندینگ پیج خود را خراب کنیم؟

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

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

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

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

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

http://bit.ly/dxgn757

(زمان حدودی مطالعه: ۷ دقیقه)

نویسنده: آرش اصغری

#تجربه_کاربری #لندینگ

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

______
همه چیز در مورد NET 6.

دیروز نسخه رسمی NET 6. به همراه نسخه رسمی Visual Studio 2022 ارائه شد.
در واقع شما می‌توانید با نصب ویژوال استودیو همزمان NET 6. را هم نصب کنید.

اما موضوع این پست و سوال اصلی اینجاست که چه اتفاقاتی در NET 6. افتاده و آپدیت ها چه چیز هایی هستند؟

بررسی فیچر های جدیدی که با NET 6. ارائه شده:

1 - Looking inside ConfigurationManager in .NET 6
2 - Comparing WebApplicationBuilder to the Generic Host
3 - Exploring the code behind WebApplicationBuilder
4 - Building a middleware pipeline with WebApplication
5 - Supporting EF Core migrations with WebApplicationBuilder
6 - Supporting integration tests with WebApplicationFactory in .NET 6
7 - Analyzers for ASP.NET Core in .NET 6
8 - Improving logging performance with source generators
9 - Source generator updates: incremental generators

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#حامد_حاجیلو (لینکدین)

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

________
1
Media is too big
VIEW IN TELEGRAM
حضور Scott Hunter و Jeff Frtiz از مایکروسافت در دورهمی بچه‌های ایرانی NET Conf 2021

تصمیم جذابی بود...
امسال بچه‌هایی از تیم‌های MelkRadar و CS Internship و کانال Software Philosophy تصمیم گرفتند این کنفرانس رو با هم ببینند.

و نتیجه هیجان‌انگیز بود.

توییت‌ها و سوالات بچه‌ها که با هشتگ #cs_internship پرسیده می‌شد مدام روی بورد کنفرانس می‌رفت که توجه برگزار کنندگان رو جلب کرد. در نهایت بچه‌ها از Jeff Frtiz خواستند یه سلفی با هم بگیرند. جف هم پیام داد که لینک جلسه تیمزتون رو برام بفرستید و اومد.

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

در نهایت عکس سلفی گرفته شده توی توییتر رفت و تو خود کنفرانس NET Conf بچه‌ها رو نشون دادن :)

#مهران_داودی (http://ow.ly/GwIl309lFEm)

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


___
کتابخانه RXJS (Reactive Extensions for JavaScript)

کتابخانه RXJS کتابخانه‌ای برای ایجاد برنامه‌های event-based و asynchronous با استفاده از دنباله های observable است.

توضیح observable با استفاده از مثال :

[فرض کنید انواعی از خبرها وجود داره که چاپخانه‌ها باید در قالب روزنامه برای شما ارسال کنند و شما فقط روزنامه‌هایی را دریافت می‌کنید که درخواست کرده باشید.
خبرها همان دیتا هستند و انواع دیتا با استفاده از observable مدیریت می‌شود، تنها دیتا بخش‌هایی را دریافت خواهید کرد که subscribe کرده باشید.
برای مدیریت یک پاسخ HTTP از promise و برای مدیریت چند پاسخ طی زمان از observable استفاده می‌شود.]

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

اطلاعات بیشتر و نحوه استفاده از این کتابخانه :

https://angular.io/guide/rx-library



⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#حسن_یوسفی (لینکدین)

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

________
👍2
Forwarded from Iran Agile
🎛️ متریک‌های چابک و اشتباهات رایج

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

https://zenexmachina.com/agile-project-management-metrics-and-why-team-surveys-fail/
Forwarded from فلسفه دیزاین
ریشه‌یابی؛ ابزاری برای حل مسئله

این ابزار قدرتمند حل مسئله را گاهی اوقات "استدلال از اصول اولیه" نیز می‌نامند. شناسایی ریشه‌های پایه‌ای یک مسئله به شما این امکان را می‌دهد که راه‌‌حل‌های ابتکاری ارائه دهید.

اصول اولیه، حقایقی است که دیگر نمی‌تواند به جزءهای کوچکتری شکسته شود. تفکر ریشه‌ای این است که باید انقدر بِکَنید تا به پایه‌های یک مسئله برسید.

چگونه از این ابزار استفاده کنیم؟

با مسئله شروع می‌کنیم و این دو مرحله را انجام می‌دهیم:
۱. شکستن و تجزیه‌ی مشکل به اساسی ترین حقایق موجود (اصول اولیه)
۲. ساختن راه‌حل از این اصول اولیه‌

به نظر ساده می‌رسد اما نیاز به تفکر متمرکز دارد تا واقعاً در مسئله عمیق شوید و اصول اولیه‌ی آن را کشف کنید.

چند روش برای کمک به شما وجود دارد:

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

پرسش سقراطی
شکلی از پرسیدن منظم است که تفکر انتقادی را امکان پذیر می‌کند. شش نوع سؤال وجود دارد که می توانید برای درک عمیق‌تر حقیقت اصلی مسئله بپرسید:

۱. شفاف سازی: منظورتان از فلان چیز چیست؟
۲. فرضیات احتمالی: به جای آن چه چیزی را می‌توانیم فرض کنیم؟
۳. دلایل و شواهد احتمالی: چرا فکر می‌کنید که این درست است؟
۴. مفاهیم و پیامدها: چه تاثیری می‌تواند داشته باشد؟
۵. دیدگاه‌های مختلف: گزینه‌ی جایگزین چیست؟
۶. زیر سؤال بردن سؤال اصلی: نکته‌ی این سؤال چه بود؟

در بالا به خلاصه‌ای از این روش اشاره کردیم که نیازمند مطالعه‌ی بیشتر به همراه مثال است. شما را به خواندن آن از طریق لینک زیر دعوت می‌کنم:

http://bit.ly/dxgn762

(زمان حدودی مطالعه‌ مقاله: ۲۰ دقیقه)

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

#مدل_ذهنی #تعریف_مسئله #روش_حل_مشکل #ریشه_یابی #پنج_چرا #پرسش_سقراطی

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

______
فریم ورک Blazor

اگر تیم برنامه‌نویسی C# دارید و یا برنامه‌نویس C# هستید و می‌خواهید برنامه‌نویسی سمت کلاینت انجام دهید، فریم ورک Blazor را حتما بررسی کنید. Blazor یک فریم ورک اپن سورس برای نوشتن اپلیکیشن‌های SPA است که توسط مایکروسافت ارایه شده است.

با این فریم ورک میتوانید از C# برای برنامه نویسی استفاده کنید. اگر با Razor آشنایی داشته باشید حتما می‌دانید که در این فریم ورک ویوها سمت سرور ساخته می‌شوند.

هدف اصلی Blazor این است که علاوه بر این ویژگی بتواند ویوها را سمت بروزر بسازد. جالب است بدانید که کلمه Blazor از ترکیب Razor و Browser ساخته شده 😊. Blazor با استفاده از WebAssembly (WASM) به شما این امکان را می‌دهد که بدون هیچ add-on یا plugin، اپ را روی هر بروزری اجرا کنید.

پیشنهاد می‌کنم لینک زیر را مطالعه کنید:

https://www.ifourtechnolab.com/blog/is-blazor-the-future-in-web-app-development

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#مریم_داودی (لینکدین)

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

_______
👍1
Forwarded from فلسفه دیزاین
مدل تفکر سازنده

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

نحوه استفاده از آن
این ابزار یک چارچوب ۶ مرحله‌ای برای حل مسئله به شما می‌دهد. شش مرحله عبارتند از:

۱. بپرسید «چه خبره؟»
۲. بپرسید «موفقیت چیست؟»
۳. بپرسید «سؤال چیه؟»
۴. پاسخ‌ پرسش‌ها را بدهید.
۵. راه‌حل را بسازید.
۶. منابع را تراز کنید.

بیایید هر مرحله را با جزئیات بیشتری بررسی کنیم.

۱. بپرسید «چه خبره؟»
اولین قدم در مورد درک بهتر مسئله است. می‌توانید از این سؤالات راهنما برای کمک به خود استفاده کنید:

- مشکل دقیقاً چیست؟
- تأثیر این مشکل چیست؟
- من از قبل چه می‌دانم؟ چه اطلاعاتی دارم؟
- چه کسی در این ماجرا دخیل است؟
- با حل این مشکل چشم انداز آینده چیست؟ (این همان چیزی است که هرسون آن را "آینده هدف" می‌نامد)

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

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

- می‌خواهید که راه‌حل شما چه کار بکند؟
- محدودیت‌ها چیست؟ چه کاری نباید انجام شود؟
- چه منابعی را می‌توانیم در این امر سرمایه‌گذاری کنیم؟
- راه حل باید چه ارزش‌هایی داشته باشد؟
- نتایج اصلی و ضروری چیست؟

تا زمانی که چشم‌انداز روشنی از موفقیت در پیش روی خود به دست نیاورده‌اید، این سؤالات را مدام از خود بپرسید.

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

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

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

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

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

کتاب Think Better:

http://bit.ly/dxgn766-Book

خلاصه‌ی کتاب و توضیحات این روش:

http://bit.ly/dxgn766-Summary

ویدئو او در TEDxMaastricht با عنوان The shock of the possible:

http://bit.ly/dxgn766-Video

(زمان حدودی مطالعه‌ خلاصه‌ی کتاب: ۱۳ دقیقه
زمان ویدئو: ۱۸:۱۱)

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

#مدل_ذهنی #تعریف_مسئله #روش_حل_مشکل #مدل_تفکر_سازنده #تیم_هرسون #پرسش

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

______
اضافه شدن قابلیت Temporal Table به EF Core 6

مایکروسافت در سال 2016 قابلیت Temporal Table که با نام System-Versioned نیز شناخته می‌شود را به SQL Server اضافه کرد.

این قابلیت امکان این را فراهم می‌کند که تغییرات مربوط به دیتا‌های هر جدول را ذخیره سازی کنیم.

این امکان برای مانیتورینگ و همچنین برگرداندن داده‌های حذف شده مفید است ولی باید در نظر داشت که این امکان باعث بالارفتن سریع حافظه دیتابیس می‌شود.

مایکروسافت در آخرین ورژن EF Core یعنی EF Core 6 این قابلیت را فراهم کرده‌است که به واسطه EF هم بتوانیم از این قابلیت SQL استفاده کنیم.

برای این که جدول مورد نظر از این ویژگی برخوردار باشد باید توسط Fluent Api این کار را انجام دهیم:

    modelBuilder
.Entity<Product>()
.ToTable("Products", b => b.IsTemporal());

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

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#حامد_حاجیلو (لینکدین)

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

________
قابلیت Layout در فریم‌ورک Blazor

اگر از فریم‌ورک Blazor استفاده می‌کنید از قابلیت تعریف Layout غافل نشوید. Layout در Blazor مثل Component با دو ویژگی بیشتر است. layout مانند کامپوننت‌های data binding , dependency injeciton و غیره را دارد و علاوه بر آن از BlazorLayoutComponent به ارث رفته و با @body مشخص می‌کند content باید کجا render شود.

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

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

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

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

https://blazor-tutorial.net/layout

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#مریم_داودی (لینکدین)

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

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

این فریم‌وُرک اولویت‌بندی که به نام ۳۴مین رئیس‌جمهور ایالات متحده آمریکا Dwight D. Eisenhower نامگذاری شده است، به شما کمک می‌کند تا وظایف و فعالیت های خود را با توجه به اهمیت و ضرورت آن‌ها سازماندهی کنید. این به ویژه هنگامی مفید است که سرتان بسیار شلوغ است، اما احساس نمی‌کنید کاری که انجام می‌دهید تأثیر زیادی دارد.

نحوه استفاده از آن
ماتریس آیزنهاور دارای چهار ربع در دو محور اهمیت و ضرورت است.
برای هر فعالیت یا کاری از خود بپرسید: آیا این مهم است یا نه؟ آیا ضروری است یا خیر؟

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

۱. اگر مهم و ضرویست ← آن را انجام دهید
۰ اینها کارهایی هستند که شما می‌خواهید آن‌ها را در اسرع وقت انجام دهید.
۰ بحران‌ها، مشکلاتی که در حال حاضر به شما فشار می‌آورند و سایر مواردی که اگر اکنون به آن رسیدگی نکنید، عواقب بدی خواهند داشت.

۲. اگر مهم است و ضروری نیست ← آن را برنامه‌ریزی کنید
۰ زمانی را برای این کارها پیدا کنید و آنها را بعداً انجام دهید.
۰ این ربع نمودار معمولاً محلی است که در آن کارهای عمیق اتفاق می‌افتد - وظایفی که به پروژه‌ها یا اهداف بلند مدت شما کمک می‌کنند.

۳. اگر ضروری است ولی مهم نیست ← آن را محول کنید (به دیگری واگذار کنید)
۰ اگر می‌توانید، شخصی را پیدا کنید که بتواند این کارها را برای شما انجام دهد.
۰ اگر نمی‌توانید آن را به شخص دیگری محول کنید، آن را برنامه‌ریزی کنید اما همیشه سعی کنید کارهای مهم و غیرضروری را اول انجام دهید.
۰ اینها اغلب کارهای اداری یا مواردی هستند که مهلت دارند، اما حیاتی نیستند.

۴. اگر ضروری و مهم نیست ← آن را انجام ندهید (قیدش را بزنید)
۰ این کارها ارزش وقت شما را ندارند و به هیچ وجه نباید آنها را انجام دهید.
۰ فعالیت‌هایی که می‌توانید آن‌ها را نادیده بگیرید، کارهای بیهوده شلوغ روزانه و سرگرمی‌های شما در این ربع نمودار قرار می‌گیرد.

در بالا ترتیب اولویت وظایف را فهمیدید. بله وظایف مهم و غیرضروری قبل از بی‌اهمیت و ضروری قرار می‌گیرند.

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

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

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

تعیین ضرورت و اهمیت همیشه به زمینه و توانایی شما در تشخیص آنچه که واقعاً فوری و واقعاً مهم است بستگی دارد.

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

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

http://bit.ly/dxgn769-1

http://bit.ly/dxgn769-2

(زمان حدودی مطالعه‌‌ی مقاله‌ی اول: ۵ دقیقه
و مقاله‌ی دوم: ۱۵ دقیقه)

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

#ماتریس_آیزنهاور #مدیریت_کارها #اولویت_بندی_کارها #مهم #ضروری

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

______
👍1
انتقال داده ها به واسطه Azure Service Bus

امروزه سرعت انتقال داده‌ها از اهمیت بالایی برخوردار است. برای مثال فرض کنید پروژه شما شامل ۲ اپلیکیشن مجزا از هم است که هر دوی آنها از یک دیتابیس مشترک برای داده‌های خود استفاده می‌کنند. اپلیکیشن ۱ بر روی داده‌ها تغییراتی انجام می‌دهد و اپلیکیشن ۲ از این تغییرات استفاده می‌کند.

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

یک راه حل بهتر استفاده از message broker ها است. تعریف خیلی ساده آن هم مفهوم صف است. یک صف (Queue) که خارج از اپلیکیشن‌های ما قرار دارد.

برای مثال Apache Kafka٬RabbitMQ٬Google Cloud Pub/Sub و ... از جمله معروف‌ترین message broker موجود هستند.

یکی از بهترین message broker های موجود٬ Azure Service Bus است.

این سرویس قابلیت‌هایی فراتر از یک صف معمولی دارد، که از جمله مهمترین آنها می‌توانیم به قابلیت جلوگیری از ارسال داده‌های تکراری و استفاده چندین subnoscriptions از یک topic را نام ببریم.

البته به صورت پیشفرض (پلن رایگان) از Topic نمیتوانیم استفاده کنیم و صرفا از همان مفهوم Queue می‌شود استفاده کرد.

در این ویدیو نحوه استفاده از Azure Service Bus آموزش داده شده است.

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، برروی دکمه «نظرت را بگو» کلیک کنید.

#حامد_حاجیلو (لینکدین)

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

________