- اطلب زيادة للحصول على دافع إضافي للعمل
- طلب إجازة لأخذ استراحة من المهام المملة واكتساب القوة.
- قم بتغيير الوظائف عن طريق نشر سيرتك الذاتية على أمل أن تتلقى عرضًا يرضيك.
إذا كنت لا تزال تختار الخيار الثالث ، فأنت فعلت ما فعلته. وقد تلقيت عرضًا رائعًا: مجموعتي الخاصة (مؤخرًا ، اضطررت لتغيير C # المفضل لدي ، إلى php ، وكذلك إطار عمل bitrix) ، fintech ، ومع زيادة في الراتب. بالطبع ، أولاً وقبل كل شيء ، قررت تحديث معلوماتي. هذا النص هو ، أولاً وقبل كل شيء ، ورقة الغش الخاصة بي ، وقد تم تجميعها من نص الوظيفة الشاغرة لمنصب مهندس .NET من أحلامي.
ORM - Entity Framework / NHibernate
إطار عمل Entity و NHibernate عبارة عن أطر عمل تستخدم تقنية ORM (التعيين الموجه للكائنات (التعيين) لتعيين الكائنات (الفئات) إلى الجداول في قاعدة البيانات. أي أن ORM ، بشكل مشروط ، عبارة عن طبقة بين الكود وقاعدة البيانات ، مما يسمح للكائنات التي تم إنشاؤها في البرنامج إضافة / استقبال إلى / من قاعدة البيانات.
إيجابيات EF
- يسمح لك بإنشاء جدول برمز أو باستخدام EF Designer وإنشاء قاعدة بيانات جديدة
- يمكنك "أتمتة" إنشاء الكائنات ، وكذلك تتبع التغييرات على هذه الكائنات ، وبالتالي تبسيط عملية تحديث قاعدة البيانات
- استخدام بناء جملة واحد (LINQ) لأي مجموعة من الكائنات ، سواء كانت بيانات من قاعدة بيانات ، أو مجرد قائمة ؛ إنه سريع بما فيه الكفاية ، إذا تم استخدامه بشكل صحيح ، كما أنه مقتضب بشكل معقول.
- يمكن لـ EF استبدال أجزاء كبيرة من التعليمات البرمجية التي ستكتبها بنفسك.
- يقلل وقت التطوير.
- يدعم عمليات قاعدة البيانات غير المتزامنة.
سلبيات EF
- استخدام نهج "غير تقليدي" لمعالجة البيانات غير متوفر مع كل قاعدة بيانات.
- لأي تغيير في مخطط قاعدة البيانات ، سوف ترفض EF العمل ؛ التغييرات على الرمز مطلوبة.
- يتم إنشاء كود SQL بطريقة غير خاضعة للرقابة ، يجب أن نثق في مطوري EF نفسها.
- .
NHibernate
- .
- .
- Unit Of Work.
- .
- .
- .
NHibernate
- .
- , , XML — .
- , .
Writing unit tests frameworks
تسمح لك اختبارات الوحدة باختبار المكونات الفردية للتطبيق بسرعة وتلقائية بشكل مستقل عن بقية التطبيق. قد لا تغطي اختبارات الوحدة دائمًا رمز التطبيق بالكامل ، ولكنها مع ذلك يمكن أن تقلل بشكل كبير من عدد الأخطاء الموجودة بالفعل في مرحلة التطوير.
الأطر الشعبية:
- xUnit.net
- اختبار MS
- لا
سأعتبر أن
اختبارات xUnit في xUnit محددة على أنها الأساليب التي تطبق عليها الصفات الواقعية والنظرية.
الحقيقة هي اختبار منفصل لا يحتوي على معلمات. النظرية - يمكن أن يكون للاختبار الذي يقبل المعلمات عدة سيناريوهات.
مثال
[Fact]
public void Should_do_somthing(){...}
[Theory]
[InlineData(20, 180, 80, ”good”)]
[InlineData(20, 180, 50, ”bad”)]
public void Should_measure_weight(int age, int height, decimal weight, string expected){...}
هناك نموذج كامل للاختبار الذي تقوم xUnit بتطبيقه بالكامل: Arrange-Act-Assert.
- ترتيب: يحدد الشروط الأولية لتنفيذ الاختبار
- Act: ينفذ اختبارًا (يمثل عادةً سطرًا واحدًا من التعليمات البرمجية)
- تأكيد: يتحقق من نتيجة الاختبار
الترتيب والتصرف هما كود C # عادي ، بينما Assert هو فئة منفصلة مع مجموعة من الطرق الثابتة للتحقق من النتائج.
الطرق الأساسية
- الكل (التجميع ، الإجراء): تؤكد هذه الطريقة أن جميع عناصر مجموعة المجموعة تتوافق مع إجراء الإجراء
- يحتوي على (متوقع سلسلة فرعية ، سلسلة فعلية): تؤكد الطريقة أن السلسلة الفعلية تحتوي على سلسلة فرعية متوقعة
- DoesNotContain(expectedSubString, actualString): , actualString expectedSubString
- DoesNotMatch(expectedRegexPattern, actualString): , actualString expectedRegexPattern
- Matches(expectedRegexPattern, actualString): , actualString expectedRegexPattern
- Equal(expected, result): result expected
- NotEqual(expected, result): result expected
- Empty(collection): , collection
- NotEmpty(collection): , collection
- True(result): , true
- False(result): , false
- IsType(expected, result): , expected
- IsNotType(expected, result): , expected
- IsNull(result): , null
- IsNotNull(result): , null
- InRange(result, low, high): , low high
- NotInRange(result, low, high): , low high
- Same(expected, actual): , expected actual
- NotSame(expected, actual): , expected actual
- Throws(exception, expression): , expression exception
وبالتالي ، فقد مررنا 2 من 7 نقاط من الملخص.
في الجزء التالي:
- أطر عمل DI
- فهم تصميمات التطبيق (الطبقة n ، البصل).
شكرًا على القراءة ، لذا فهمت أنني لست الوحيد الذي يستعد لشيء ما ؛)
المواد: واحد ، اثنان ، ثلاثة