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

شاید مثال نه زیاد درست و نه زیاد غلط «عقل مردم به چشمشان است» را شنیده باشید. امروز به بررسی همین موضوع می‌پردازیم.

اثر کارایی زیبایی در واقع یکی از قوانین اصلی تجربه‌ی کاربری است که به طور صریح می‌گوید:
«کاربران غالباً طراحی زیبا و جذاب را به عنوان دیزاین کاراتر درک می‌کنند.»

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

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

در ۲ مقاله‌ی زیر به بررسی این موارد و نیز چگونگی تست کاربر هنگامی که قاضی او فقط چشمانش هستند می‌پردازیم.

https://bit.ly/dxgn619-1

https://bit.ly/dxgn619-2

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

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

#تجربه_کاربری #قانون_کارایی_زیبایی #زیبایی_بصری #کاربردپذیری

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

_____
Forwarded from Iran Agile
💪 استرس و فشار همیشه وجود دارد، چگونه یک تیم تاب آور درست کنیم؟

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

ادامه مقاله 👇👇👇

https://academy.nobl.io/team-resilience/

@iranagile
Forwarded from DotNetZoom (ALI_1992)
معرفی Design Pattern ها به همراه مثال در زبان های مختلف

یکی از بهترین سایت هایی که میشه به عنوان مرجع برای #DesignPattern ها بهش نگاه کرد سایت زیر هست.

این سایت خیلی روون و ساده الگو های برنامه نویسی رو توضیح داده، براشون مثال زده و توی زبان های مختلفی از جمله #C و JavaScript و Java و Python و ... پیاده سازیشون کرده

1️⃣ https://refactoring.guru/design-patterns/catalog
2️⃣ https://www.dofactory.com/net/design-patterns

🔰2تا ریپوی زیر هم پیاده سازی ایی از این دیزاین پترن ها در سی شارپ هست
1️⃣ https://github.com/exceptionnotfound/DesignPatterns
2️⃣ https://github.com/HamidMosalla/CSharpDesignPatterns
_____________________
@DotNetZoom
Forwarded from فلسفه دیزاین
قانون ۲۰-۸۰ یا اصل پارتو

«۸۰ درصد رخدادها از ۲۰ درصد دلایل به‌وجود می‌آید.»

ویلفردو پارتو اقتصاددان ایتالیایی در سال ۱۹۰۶ دریافت که ۸۰ درصد زمین‌های ایتالیا در دست ۲۰ درصد مردم آن کشور است؛ همچنین پارتو دریافته بود که ۸۰ درصد نخودفرنگی‌های باغچه‌اش در ۲۰ درصد غلاف‌های نخودفرنگی قرار دارند.

اصل ۲۰-۸۰ در تصمیم‌گیری‌های سریع مدیریتی و نیز تجربه‌ی کاربری بسیار کارساز است. شما باید بیشترین تلاش را روی مناطقی متمرکز کنید که بیشترین مزیت را برای اکثر کاربران به همراه داشته باشد.

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

https://bit.ly/dxgn620

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

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

#تجربه_کاربری #اصل_پارتو #قانون_۲۰_۸۰ #بهره_وری

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

_____
سی شارپ 9 و بهبود pattern matching:

یکی از برتری های ویژوال بیسک نسبت به سی شارپ, موضوع pattern matching بود (البته قبل از سی شارپ 8).
از سی شارپ 8 به بعد ماکروسافت تمهیدات خاصی در جهت بهبود pattern matching در سی شارپ در نظر گرفت.👇👇

یکی از جالب ترین (و جذاب ترین) این موارد, بهبود در جملات شرطی است که در سی شارپ 9 به آن پرداخته شده است.

if(s is not string)
// is way more easier to read than
if(!(s is string))

خواندن عبارت ابتدایی بسیار آسان تر از عبارت دوم است.

Person p = new Person();
var a = p.Weight switch
{
< 150 => "light"
>= 150 and < 200 => "normal"
not null => "unknown"
null => "error"
};

و هچنین نوشتن این عبارات باعث زیباتر و خواناتر شدن کد می‌شود.

برای اطلاع از دیگر ویژگی های سی شارپ 9 می توانید از این لینک استفاده کنید.

جزئیات بیشتر را می‌توانید در لینک زیر مطالعه کنید:

https://blog.miguelbernard.com/c-9-0-improved-pattern-matching/

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

#حامد_حاجیلو (http://bit.ly/2IVjfYD)

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

___
Forwarded from Iran Agile
✂️جنبش #NoEstimates هیاهویی برای هیچ

این روزها هیاهوی جنبش #NoEstimates بیشتر و بیشتر می شود. من می خواستم دلیل آن را بفهمم، بنابراین تیم من 3 ماه آن را آزمایش کرد. بعد از کار با آن به مدت یک فصل، من اعتقاد ندارم که تغییر بازی همانطور که طرفداران #NoEstimates سعی دارند ما باور کنیم، واقعا بوده است.

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

قبل از اینکه درباره مزایا و مضرات #NoEstimates بحث کنیم، اجازه دهید ابتدا استدلال مربوط به جنبش را مورد بحث قرار دهیم.

👈 چرا #NoEstimates؟

جنبش #NoEstimates ادعا می کند که ما بخاطر این سه دلیل نباید تخمین بزنیم:

💢 تخمین دقیق غیرممکن است.

💢 تخمین‌ها می‌ توانند فشار غیرضروری و غیرمولدی به تیم شما وارد کنند.

💢 اساسا فعالیتی با عنوان تخمین یک اتلاف است، بنابراین بهتر است تا آنجا که ممکن است وقت کمتری برای آن صرف کنید.


اما داستان واقعی چیست؟ ادامه در لینک زیر مطالعه کنید 👇👇👇

https://medium.com/serious-scrum/the-noestimates-movement-is-a-pointless-infatuation-c64d9329d39


@iranagile
Forwarded from کدهک
آشنایی با Docker

داکر ابزاری برای توزیع و اجرای نرم افزار است که مشکل سازگاری با سیستم عامل های مختلف را حل میکند. این ابزار امروزه همه جا مورد استفاده قرار میگیرد و خوب است به عنوان توسعه دهنده ی نرم افزار درباره آن بیشتر بدانید. در این ویدیو به معرفی داکر می پردازیم و در ادامه از Docker در یک پروژه ASP NET Core استفاده می کنیم.

https://cutt.ly/ortrfXx
Forwarded from کدهک
آشنایی با Docker - قسمت دوم

در این ویدیو با استفاده از Docker دیتابیس Redis رو نصب و اجرا می کنیم
سپس از پروژه ASP NET Core یک Image داکر تهیه می کنیم.

https://tinyurl.com/cdhk-docker2
Forwarded from DotNetZoom (ALI_1992)
❇️ ابزار های کاربردی برای یک Web Developer
#جعبه_ابزار

این ریپازیتوری، بهترین ابزار های کاربردی ایی که معمولا یه برنامه نویس وب لازمش میشه رو به همراه دسته بندی های زیر لیست کرده.

🔹Image Compressor
🔸Javanoscript Minifer
🔹CSS Minifier
🔸JavaScript Beautifier
🔹Unminify HTML, CSS and JS
🔸Unminify/Formating JSON - Check/Validating JSON
🔹Browse JSON in TreeView
🔸Regex (Regular Expression) Tester and Highlighting
🔹Unicode Converter
🔸Url Decoder/Encoder
🔹Converter Toolbox
🔸Hash Text and File
🔹Web Developer Toolbox
🔸Check Domain and Whois
🔹IP to Location
🔸Website Traffic Statistics
🔹SEO Checker
🔸Rank Checker
🔹Analytics & Tracking
🔸Speed Checker and Performance Optimization
🔹Webiste Monitoring / Uptime Checker
🔸Text Compare / Difference Checker
🔹Port Checker
🔸DNS Checker
🔹DNS Lookup
🔸SSL/TLS Checker
🔹Security Checker
🔰آدرس ریپازیتوری گیتهاب
https://github.com/mjebrahimi/Awesome-Tools-For-WebDevelopers
____________________
@DotNetZoom
👍1
Forwarded from فلسفه دیزاین
شرکت‌های مطرح از یک دیزاینر چه می‌خواهند؟

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

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

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

دیزاین خارج از بحث‌های رابط و تجربه کاربری زنده است و به هرگونه برنامه‌ریزی برای انجام کاری هم می‌توان آن را نسبت داد.

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

دقت به جزئیاتی که دیگران ممکن است آن‌ها را کوچک بشمارند، تفاوت شما نسبت به بقیه است.

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

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

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

https://bit.ly/dxgn622

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

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

#استخدام #دیزاین

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

_____
‏ریموت بودن برای ما یه انتخاب بوده نه یه اجبار!

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

instagram.com/mehrandvd


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

_____
Forwarded from Iran Agile
بیست سوالی که یک اسکرام مستر جدید از تیم خود باید بپرسد

https://age-of-product.com/20-questions-a-new-scrum-master-should-ask-her-team-to-get-up-to-speed/amp/

@iranagile
Forwarded from DotNetZoom (ALI_1992)
مدیریت دیتابیس های SQLite با SQLiteStudio

برنامه SQLiteStudio یکی از بهترین و محبوب ترین برنامه های مدیریت دیتابیس های SQLite هست که به صورت رایگان و Cross-Platform وجود داره.
https://github.com/pawelsalawa/sqlitestudio

🔸برنامه محبوب دیگر SQLiteBrowser نام داره که این هم رایگان و Cross-Platform هست
https://sqlitebrowser.org/
https://github.com/sqlitebrowser/sqlitebrowser

🔹اگرم خیلی کم سروکارتون به SQLite میافته و صرفا یه ابزار آنلاین خوب واسه کار باهاش نیاز دارین سایت SQLiteOnline بهترینشه
https://sqliteonline.com/
__________________
@DotNetZoom
Forwarded from فلسفه دیزاین
موفقیت در دیزاین به سبک اپل

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

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

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

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

https://bit.ly/dxgn625

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

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

#دیزاین #تفکر_طراحی #تجربه_کاربری
@Dexign فلسفه دیزاین

_
#پست_مجدد این پست تا به حال نزدیک به ۱۶۰۰ بار مشاهده شده و به نظر می‌رسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
هر موقع از ویژگی های جدید سی شارپ 8 صحبت می‌شه عمدتا Nullable Reference Type ها بیشتر خودش رو نشون می‌ده.

به همین دلیل احتمالا (به نظر من) بزرگترین چالش در ارتقاء C # 8.0 باید توی همین ویژگی باشه .

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

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

ولی این امر توی جنریک‌ها به این راحتی نیست؛ ما ورودی یا خروجیمون از نوع T ست که اصلا نمی‌دونیم چیه (حتی با اضافه کردن قیود به جنریک‌ها بازم دقیق متوجه نمی‌شیم!)

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

〰️〰️〰️〰️〰️〰️〰️

⁉️خب حالا باید چه کار کنیم ؟

ماکروسافت برای برطرف کردن این مشکل یکسری اتربیوت ارائه کرده که لیست اکثر اون‌ها رو توی پست‌های قبلی معرفی شده.
با استفاده از این اتربیوت‌ها و البته دقت در استفاده صحیح می‌تونیم این چالش رو بر طرف کنیم.

تعدادی اکسنشن متد برای برنامه نویسی asynchronous و استفاده از Taask ها

متد WhenAll :
کار آن ترکیب تعدادی Task و اجرای آن‌هاست. تنها زمانی خاتمه می‌یابد که کلیه‌ی Taskهای معرفی شده به آن خاتمه یافته باشند. در اینجا هر Task کاری به Task دیگر ندارد و جداگانه انجام می‌شود.
همچنین اگر خطایی برای هر کدام از Task ها رخ دهد , در آخر اجرای همه تسک‌ها آن خطا نمایش داده می‌شود که معمولا از نوع Aggregate Exception است.

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

var finishedTask = await Task.WhenAny(tasksList);
var result = await finishedTask;

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

متدهای Run و FromResult
زمانی استفاده می‌شود که می‌خواهم از Thread pool استفاده کنیم. Run وظیفه اختصاص Thread را دارد و از FromResult برای خروجی استفاده می شود.
همانند Thread.Sleep است با این تفاوت که در اینجا Thread جاری قفل می‌شود ولی در Task.Delay قفل نمی‌شود.

خروجی را بر می‌گرداند با این تفاوت که ادامه کار متوقف نمی‌شود.

برای ایجاد یک اکستنشن متد دلخواه میتوانید از این (https://stackoverflow.com/questions/55594672/how-to-create-a-generic-extension-method-for-async-methods) آموزش استفاده کنید.

https://docs.microsoft.com/en-us/dotnet/csharp/nullable-attributes#specify-post-conditions-maybenull-and-notnull

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

#حامد_حاجیلو (http://bit.ly/2IVjfYD)

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

___
Forwarded from Iran Agile
دو اشتباهی که مدیر محصول‌ها انجام می‌دهند

شماره 1: مدیران محصول به جای اینکه به فکر مشکل/نیاز باشند، به راه حل فکر می‌کنند. وظیفه اصلی مدیر محصول کشف مشکلی است که ارزش حل شدن دارد.

شماره 2: عدم تعیین نتیجه و برآیند، قبل از انجام کار

متن کامل 👇👇👇
https://medium.com/@productmind/two-common-mistakes-product-managers-make-and-how-to-avoid-them-f3aef0bb4da5

@iranagile
Forwarded from DotNetZoom (محمد جواد ابراهیمی)
❇️ کج فهمی های yield در سی شارپ❗️

کلمه کلیدی yield معمولا به اشتباه توی برنامه نویسای سی شارپ جا افتاده
اکثرا فکر میکنن که صرفا یه سینتکس راحت تر به جای پر کردن یه List و return کردن اون هست در صورتی که اصل ماجرا چیز دیگس!

🔸شاید تعجب کنین از شنیدن اینکه متدی که داخلش از yield return استفاده شده باشه مادامی که به دستورات اجرا کننده مانند foreach یا ToList یا FirstOrDefault و... نرسه، بدنه اش اجرا نمیشه (مشابه IQuerable) زمانی هم که اجرا میشه فقط به تعداد لازم گردش میکنه.
تصویر زیر پست رو ببینین تا کامل متوجه بشین

🔹در واقع قابلیت yield return به شما امکان به تعویق انداختن (deferred execution) کد های Iteration رو میده تا به جای اینکه Iteration در لحظه فراخوانی متد و به تعداد کامل انجام بشه در "زمان لازم" و به "تعداد لازم" گردش انجام بشه.
این کار باعث میشه Memory Allocation کمتری داشته باشین چرا که تعداد کمتری Iteration انجام میشه و زمانش هم به تعویق میافته.

🔰جهت مطالعه بیشتر لینک های زیر رو دنبال کنین
https://www.dotnettips.info/post/984
https://www.dotnettips.info/post/985
https://www.kenneth-truyers.net/2016/05/12/yield-return-in-c/
https://docs.microsoft.com/en-us/dotnet/csharp/iterators
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield
_______________
@DotNetZoom
Forwarded from فلسفه دیزاین
راهنمای دم‌دستی طراحی UI برای غیر دیزاینرها

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

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

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

https://bit.ly/dxgn626

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

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

#دیزاین #رابط_کاربری

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

_____
Forwarded from Iran Agile
👈 چرا باید ستون "تست" را در برد تیم های چابک حذف کنیم؟

🎯 اکثر تیم های چابک از بردهای فیزیکی/دیجیتال برای حداکثری سازی شفافیت استفاده می کنند. معمولا در این تابلو ستون های متفاوتی وجود دارد، که یکی از آنها ستون مربوط به "تست" است، که اقلامی که باید تست شوند، را نشان میدهد.
اما چرا اساسا این ایده اضافه کردن ستون تست میتواند به یک معضل خطرناک تبدیل شود؟ و حذف این ستون آیا این به معنی بی ارزش بودن، جایگاه تست در تیم های چابک است؟

متن کامل را در لینک زیر مطالعه کنید
👇👇👇

https://www.jitgo.uk/in-test-column/

@iranagile
Forwarded from کدهک
آشنایی با قابلیت های Blazor

در این ویدیو یک اپ CRUD پیاده شده با Blazor در حالت Server-side را بررسی می کنیم.

https://youtu.be/Px9WedDTjQg