3 New C# 8 Features We Are Excited About
Increasing Pace of C# Releases
1. Non-Nullable & Nullable Reference Types
String s = null;
Console.Write(s);
C# 8
String? s = null;
Console.Write(s);
2. New Lightweight Classes: Records
class BankAccount(Guid Id, string Name, decimal Balance)
Solving Object Equality with Records
int I = 1;
int j = 1;
i == j //yields true
C# 8
Object I = new Object();
Object j = new Object();
i == j //yields false
3. Default Interface Implementations
public interface IBankAccountManager{
void PerformTransaction(decimal amount, string reason);
}
C# 8
public interface IBankAccountManager{
void PerformTransaction(decimal amount, string reason);
void PerformDebit(decimal amount, string reason){
PerformTransaction(-1 * amount, $”Debit: {reason}”);
}
void PerformCredit(decimal amount, string reason){
PerformTransaction(amount, $”Credit: {reason}”);
}
}
Other New C# 8 Features
▪Improved Extension Support – Ability to use more than just extension methods. Adding support for properties, static methods and much more.
▪Async Streams – Ability to have enumerators that
support async operations. Including new IAsyncEnumerable<T> and
▪IAsyncEnumerator<T> interfaces.
Async Disposable – IAsyncDisposable would allow objects to have an async Dispose method.
BY @ProgrammingLanguagesBot
🆔 @ProgramingLanguages
Increasing Pace of C# Releases
1. Non-Nullable & Nullable Reference Types
String s = null;
Console.Write(s);
C# 8
String? s = null;
Console.Write(s);
2. New Lightweight Classes: Records
class BankAccount(Guid Id, string Name, decimal Balance)
Solving Object Equality with Records
int I = 1;
int j = 1;
i == j //yields true
C# 8
Object I = new Object();
Object j = new Object();
i == j //yields false
3. Default Interface Implementations
public interface IBankAccountManager{
void PerformTransaction(decimal amount, string reason);
}
C# 8
public interface IBankAccountManager{
void PerformTransaction(decimal amount, string reason);
void PerformDebit(decimal amount, string reason){
PerformTransaction(-1 * amount, $”Debit: {reason}”);
}
void PerformCredit(decimal amount, string reason){
PerformTransaction(amount, $”Credit: {reason}”);
}
}
Other New C# 8 Features
▪Improved Extension Support – Ability to use more than just extension methods. Adding support for properties, static methods and much more.
▪Async Streams – Ability to have enumerators that
support async operations. Including new IAsyncEnumerable<T> and
▪IAsyncEnumerator<T> interfaces.
Async Disposable – IAsyncDisposable would allow objects to have an async Dispose method.
BY @ProgrammingLanguagesBot
🆔 @ProgramingLanguages
دقت و معماری در برنامه نویسی مخصوصا در برنامه نویسی Back-End خیلی مهمه اگر برنامه ای نوشتید که با درست کردن بخشی از اون برنامه بخش دیگری خراب میشه و این روند همینطور ادامه داره بی تردید یه جای کار میلنگه و اون کم تجربگی برنامه نویس رو میرسونه.
یه برنامه نویس حرفه ای کاملا میدونه که چطوری بخش ها رو از همدیگه جداسازی کنه و مخلوط کردن لایه ها چه پیامد های بدی داره. ممکنه گاهی اوقات پیش خودمون یه سری مقایسه هایی کنیم مثلا بین برنامه های بزرگ و برنامه های کوچیکی که مینویسیم و برای برنامه های کوچیک توی معماری ها اهمیتی قائل نشیم بگیم مثلا اینو دو روزه تمومش میکنم نیازی نیست الکی معماری بچینم و لایه ها رو از هم جدا کنم.این کار اشتباه هست و اگر عادت کنید که برنامه های کوچیک رو درست لایه بندی کنید برنامه های بزرگ رو همیشه لایه بندی خواهید کرد.برنامه نویسی کاری هست که مو لای درزش نمیره یعنی اگر یه جا مشکلی باشه هرگز مشکل غیر منطقی نیست و قابل رفعه پس نظم توی این سیستم بسیار بسیار مهمه هرچند کار کوچیک و ناچیز باشه.
لایه های مدل و منطق رو از دیتابیس جدا کنید.لایه های سرویس رو لایه های اجرایی، به صورت Cross Platform به لایه ها نگاه کنید.یعنی حتی بخش هایی که فکر میکنید فقط مخصوص ویندوز هست رو از بخش هایی که فکر میکنید توی لینوکس و ویندوز جواب میده جدا کنید.جداسازی لایه ها پیچیدگی و به وجود اومدن باگ ها رو کم میکنه و هرچی مخلوط بودن و وابستگی ها کمتر پیچیده باشه در نتیجه با رفع مشکل در یک قسمت مشکل جدیدی در قسمت دیگه بوجود نخواهد اومد.
منبع CsharpTips
یه برنامه نویس حرفه ای کاملا میدونه که چطوری بخش ها رو از همدیگه جداسازی کنه و مخلوط کردن لایه ها چه پیامد های بدی داره. ممکنه گاهی اوقات پیش خودمون یه سری مقایسه هایی کنیم مثلا بین برنامه های بزرگ و برنامه های کوچیکی که مینویسیم و برای برنامه های کوچیک توی معماری ها اهمیتی قائل نشیم بگیم مثلا اینو دو روزه تمومش میکنم نیازی نیست الکی معماری بچینم و لایه ها رو از هم جدا کنم.این کار اشتباه هست و اگر عادت کنید که برنامه های کوچیک رو درست لایه بندی کنید برنامه های بزرگ رو همیشه لایه بندی خواهید کرد.برنامه نویسی کاری هست که مو لای درزش نمیره یعنی اگر یه جا مشکلی باشه هرگز مشکل غیر منطقی نیست و قابل رفعه پس نظم توی این سیستم بسیار بسیار مهمه هرچند کار کوچیک و ناچیز باشه.
لایه های مدل و منطق رو از دیتابیس جدا کنید.لایه های سرویس رو لایه های اجرایی، به صورت Cross Platform به لایه ها نگاه کنید.یعنی حتی بخش هایی که فکر میکنید فقط مخصوص ویندوز هست رو از بخش هایی که فکر میکنید توی لینوکس و ویندوز جواب میده جدا کنید.جداسازی لایه ها پیچیدگی و به وجود اومدن باگ ها رو کم میکنه و هرچی مخلوط بودن و وابستگی ها کمتر پیچیده باشه در نتیجه با رفع مشکل در یک قسمت مشکل جدیدی در قسمت دیگه بوجود نخواهد اومد.
منبع CsharpTips
Forwarded from BPM - BPMS - BPMN
Mashhad BPM Science Talk
30 Ordibehesht 1397
13 Khordad 1397
27 Khordad 1397
4 Tir 1397
دانشگاه فردوسی مشهد - دانشکده علوم اداری
—---------------—
@businessprocessmanagement
30 Ordibehesht 1397
13 Khordad 1397
27 Khordad 1397
4 Tir 1397
دانشگاه فردوسی مشهد - دانشکده علوم اداری
—---------------—
@businessprocessmanagement
Forwarded from sciencetalks گفتگوی علمی
گفتگوی علمی یا Science Talk یک متد آموزش، تحقیق و پژوهش مبتنی بر کار تیمی و هم آموزی می باشد.
—
@sciencetalks
www.sciencetalk.ir
—
@sciencetalks
www.sciencetalk.ir
Forwarded from sciencetalks گفتگوی علمی
#level1
#strategicplanning
لینک عضویت در گروه st - Java - mashhad - Level1
https://t.iss.one/joinchat/BfG3lETX_PxD30jKoVnhGw
—
عنوان: برنامه نویسی جاوا
کد گفتگوی علمی: st3
تاریخ تأسیس: 5/3/1397 یا 26/5/2018
سرپرست اول: مهدی اکبری زرکش (از تاریخ 5/3/1397 تا کنون)
محل برگزاری جلسات گفتگوی علمی: دانشگاه فردوسی مشهد
—
صفحه اختصاصی در www.sciencetalk.ir:
https://sciencetalk.ir/doku.php?id=sciencetalks:java:java-mashhad:about
#strategicplanning
لینک عضویت در گروه st - Java - mashhad - Level1
https://t.iss.one/joinchat/BfG3lETX_PxD30jKoVnhGw
—
عنوان: برنامه نویسی جاوا
کد گفتگوی علمی: st3
تاریخ تأسیس: 5/3/1397 یا 26/5/2018
سرپرست اول: مهدی اکبری زرکش (از تاریخ 5/3/1397 تا کنون)
محل برگزاری جلسات گفتگوی علمی: دانشگاه فردوسی مشهد
—
صفحه اختصاصی در www.sciencetalk.ir:
https://sciencetalk.ir/doku.php?id=sciencetalks:java:java-mashhad:about
Telegram
st - java - mashhad
گروه علمی برنامه نویسی Java مشهد
لینک گروه در وبسایت www.sciencetalk.ir:
https://sciencetalk.ir/doku.php?id=sciencetalks:java:java-mashhad:about
لینک کانال ScienceTalk:
@sciencetalks
لینک گروه در وبسایت www.sciencetalk.ir:
https://sciencetalk.ir/doku.php?id=sciencetalks:java:java-mashhad:about
لینک کانال ScienceTalk:
@sciencetalks
Forwarded from sciencetalks گفتگوی علمی
جلسه سطح دو گروه bpmn، پنجشنبه 31 خرداد از ساعت 16:00 الی 18:30 برگزار خواهد شد؛
—
@sciencetalks
www.sciencetalk.ir
—
@sciencetalks
www.sciencetalk.ir
Forwarded from کانون فناوری اطلاعات استان قم
#گپ_مجازی_آی_تی
#هر_یکشنبه_ساعت_۲۲
#کانون_فن_آوری_اطلاعات
۴۰ امین گپ مجازی با موضوع آشنایی با چارچوب COBIT
https://t.iss.one/joinchat/BP0_2TwE4dqaM5X-j9Vgww
#هر_یکشنبه_ساعت_۲۲
#کانون_فن_آوری_اطلاعات
۴۰ امین گپ مجازی با موضوع آشنایی با چارچوب COBIT
https://t.iss.one/joinchat/BP0_2TwE4dqaM5X-j9Vgww