- Minta kenaikan gaji untuk mendapatkan motivasi tambahan untuk bekerja
- Mengharuskan liburan untuk beristirahat dari tugas yang membosankan dan mendapatkan kekuatan.
- Ubah pekerjaan dengan memposting resume Anda dengan harapan Anda akan menerima tawaran yang akan memuaskan Anda.
Jika Anda masih memilih opsi ketiga, maka Anda melakukan apa yang saya lakukan. Dan saya menerima tawaran impian: tumpukan saya sendiri (akhir-akhir ini, saya terpaksa mengubah C # favorit saya, ke php, dan juga kerangka kerja bitrix), tekfin, dan dengan kenaikan gaji. Tentu saja, pertama-tama, saya memutuskan untuk memperbarui pengetahuan saya. Teks ini, pertama-tama, lembar contekan saya, disusun dari teks lowongan untuk posisi Middle .NET Engineer impian saya.
ORM - Entity Framework / NHibernate
Framework entitas dan NHibernate adalah framework yang menggunakan teknologi ORM (pemetaan berorientasi objek (pemetaan) untuk memetakan objek (kelas) dengan tabel dalam database. Artinya, ORM, secara kondisional, adalah lapisan antara kode dan database, yang memungkinkan objek dibuat dalam program tambahkan / terima ke / dari database.
Keunggulan EF
- Memungkinkan Anda membuat tabel dengan kode atau menggunakan EF Designer dan menghasilkan database baru
- Anda dapat "mengotomatiskan" pembuatan objek, serta melacak perubahan pada objek ini, sehingga menyederhanakan proses pembaruan database
- Menggunakan sintaks tunggal (LINQ) untuk koleksi objek apa pun, baik itu data dari database, atau hanya daftar; cukup cepat, jika digunakan dengan benar, dan juga cukup singkat.
- EF dapat menggantikan potongan besar kode yang akan Anda tulis sendiri.
- Mengurangi waktu pengembangan.
- Mendukung operasi database asynchronous.
Kontra EF
- Menggunakan pendekatan "tidak konvensional" untuk pemrosesan data yang tidak tersedia di setiap database.
- Untuk setiap perubahan dalam skema database, EF akan menolak untuk bekerja; perubahan kode diperlukan.
- Kode SQL dibuat dengan cara yang tidak terkontrol, kita harus mempercayai pengembang EF itu sendiri.
- .
NHibernate
- .
- .
- Unit Of Work.
- .
- .
- .
NHibernate
- .
- , , XML — .
- , .
Writing unit tests frameworks
Pengujian unit memungkinkan Anda dengan cepat dan otomatis menguji setiap komponen aplikasi secara independen dari aplikasi lainnya. Pengujian unit mungkin tidak selalu mencakup seluruh kode aplikasi, namun demikian, pengujian tersebut dapat secara signifikan mengurangi jumlah error yang sudah ada di tahap pengembangan.
Kerangka populer:
- xUnit.net
- Tes MS
- NUnit
Saya akan mempertimbangkan
Pengujian xUnit di xUnit didefinisikan sebagai metode di mana atribut Fakta, Teori diterapkan.
Fakta adalah tes terpisah yang tidak memiliki parameter. Teori - pengujian yang menerima parameter dapat memiliki beberapa skenario.
Contoh
[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){...}
Ada seluruh paradigma pengujian yang diimplementasikan xUnit sepenuhnya: Arrange-Act-Assert.
- Atur: menetapkan kondisi awal untuk eksekusi uji
- Tindakan: menjalankan tes (biasanya mewakili satu baris kode)
- Assert: memverifikasi hasil tes
Arrange and Act adalah kode C # biasa, sedangkan Assert adalah kelas terpisah dengan sekumpulan metode statis untuk memeriksa hasilnya.
Metode dasar
- Semua (koleksi, tindakan): Metode ini mengonfirmasi bahwa semua elemen koleksi koleksi sesuai dengan tindakan tindakan
- Berisi (expectedSubString, actualString): metode mengonfirmasi bahwa actualString berisi expectedSubString
- 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
Jadi, kami telah melewati 2 dari 7 poin ringkasan.
Di bagian selanjutnya:
- Kerangka DI
- Pemahaman desain aplikasi (n-Tier, Onion).
Terima kasih telah membaca, jadi saya mengerti bahwa saya bukan satu-satunya yang mempersiapkan sesuatu;)
Bahan: satu , dua , tiga