ΠΠ΅ΡƒΡΠΏΠ΅ΡˆΠ½Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° Π·Π° Π·Π°Π±Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π°

Π’Π΅Π΄Π½Π°Ρˆ ќС Π³ΠΎ објаснам насловот Π½Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π°. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΠΎΡ‚ ΠΏΠ»Π°Π½ бСшС Π΄Π° сС Π΄Π°Π΄Π΅ Π΄ΠΎΠ±Π°Ρ€, сигурСн совСт ΠΊΠ°ΠΊΠΎ Π΄Π° сС Π·Π°Π±Ρ€Π·Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅Ρ‚ΠΎ Π½Π° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅Ρ˜ΡœΠΈ СдноставСн, Π½ΠΎ Ρ€Π΅Π°Π»Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½ΠΎ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈΠ½Π³ΠΎΡ‚ сС ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π° Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΡƒ Π±Π°Π²Π½Π° ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ мислСв, LINQ Π΅ ΠΏΠΎΠ±Π°Π²Π΅Π½ ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ Π²ΠΎ ΠΌΠΎΠΈΡ‚Π΅ ΠΊΠΎΡˆΠΌΠ°Ρ€ΠΈ. Но, Π½Π° ΠΊΡ€Π°Ρ˜ΠΎΡ‚ испадна Π΄Π΅ΠΊΠ° ΠΈ јас Π·Π³Ρ€Π΅ΡˆΠΈΠ² Π²ΠΎ ΠΌΠ΅Ρ€Π΅ΡšΠ°Ρ‚Π°... Π”Π΅Ρ‚Π°Π»ΠΈ ΠΎΠ΄ ΠΎΠ²Π°Π° ΠΆΠΈΠ²ΠΎΡ‚Π½Π° ΠΏΡ€ΠΈΠΊΠ°Π·Π½Π° сС ΠΏΠΎΠ΄ Ρ€Π΅Π· ΠΈ Π²ΠΎ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€. Π‘ΠΈΠ΄Π΅Ρ˜ΡœΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΡ‚ Π΅ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ Π²ΠΎΠΎΠ±ΠΈΡ‡Π°Π΅Π½ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Π²ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ ΠΎΠ±ΠΈΡ‡Π½ΠΎ сС ΠΏΡ€Π°Π²ΠΈ Π²ΠΎ ΠΏΡ€Π΅Ρ‚ΠΏΡ€ΠΈΡ˜Π°Ρ‚ΠΈΠ΅Ρ‚ΠΎ, сС ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊΠΎ доста интСрСсна, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ ΠΌΠΈ сС Ρ‡ΠΈΠ½ΠΈ, Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΆΠΈΠ²ΠΎΡ‚ΠΎΡ‚: Π²Π»ΠΈΡ˜Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π²Ρ€Π· Π±Ρ€Π·ΠΈΠ½Π°Ρ‚Π° Π½Π° Π³Π»Π°Π²Π½Π°Ρ‚Π° Ρ‚Π΅ΠΌΠ° Π½Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π° бСшС Π½Π΅ сС Π·Π°Π±Π΅Π»Π΅ΠΆΡƒΠ²Π°Π°Ρ‚ ΠΏΠΎΡ€Π°Π΄ΠΈ Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½Π°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°: Moq, Autofac, EF Core ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ β€žΡ€Π΅ΠΌΠ΅Π½ΠΈβ€œ.

ΠŸΠΎΡ‡Π½Π°Π² Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°ΠΌ ΠΏΠΎΠ΄ Π²ΠΏΠ΅Ρ‡Π°Ρ‚ΠΎΠΊΠΎΡ‚ Π½Π° ΠΎΠ²Π°Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°: Π—ΠΎΡˆΡ‚ΠΎ Π Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π° Π΅ Π±Π°Π²Π½Π°

Како ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅, Π°Π²Ρ‚ΠΎΡ€ΠΎΡ‚ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½ΠΈ Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΈ намСсто Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° Ρ‚ΠΈΠΏ Π½Π° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π° ΠΊΠ°ΠΊΠΎ ΠΎΠ΄Π»ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½ Π·Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π·Π°Π±Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°. Π‘Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°, ΠΈΠΌΠ° Смисија Π½Π° IL, Π½ΠΎ Π±ΠΈ сакал Π΄Π° ја ΠΈΠ·Π±Π΅Π³Π½Π°ΠΌ, бидСјќи ΠΎΠ²Π° Π΅ Π½Π°Ρ˜Ρ‚Ρ€ΡƒΠ΄ΠΎΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π½ΠΈΠΎΡ‚ Π½Π°Ρ‡ΠΈΠ½ Π·Π° ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π°, ΠΏΠΎΠ»Π½ со Π³Ρ€Π΅ΡˆΠΊΠΈ.

Имајќи ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Π΄Π΅ΠΊΠ° ΠΎΡ‚ΡΠ΅ΠΊΠΎΠ³Π°Ρˆ сум ΠΈΠΌΠ°Π» слично мислСњС Π·Π° Π±Ρ€Π·ΠΈΠ½Π°Ρ‚Π° Π½Π° Ρ€Π°Π·ΠΌΠΈΡΠ»ΡƒΠ²Π°ΡšΠ΅, Π½Π΅ΠΌΠ°Π² особСно Π½Π°ΠΌΠ΅Ρ€Π° Π΄Π° Π³ΠΈ ставам Π²ΠΎ ΠΏΡ€Π°ΡˆΠ°ΡšΠ΅ Π·Π°ΠΊΠ»ΡƒΡ‡ΠΎΡ†ΠΈΡ‚Π΅ Π½Π° Π°Π²Ρ‚ΠΎΡ€ΠΎΡ‚.

ЧСсто сС ΡΡ€Π΅ΡœΠ°Π²Π°ΠΌ со Π½Π°ΠΈΠ²Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° Ρ€Π°Π·ΠΌΠΈΡΠ»ΡƒΠ²Π°ΡšΠ΅ Π²ΠΎ ΠΏΡ€Π΅Ρ‚ΠΏΡ€ΠΈΡ˜Π°Ρ‚ΠΈΠ΅Ρ‚ΠΎ. Π‘Π΅ Π·Π΅ΠΌΠ° Ρ‚ΠΈΠΏΠΎΡ‚. Π‘Π΅ Π·Π΅ΠΌΠ°Π°Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° ΠΈΠΌΠΎΡ‚ΠΎΡ‚. Π‘Π΅ ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΡ‚ SetValue ΠΈ ситС сС Ρ€Π°Π΄ΡƒΠ²Π°Π°Ρ‚. ВрСдноста пристигна Π²ΠΎ Ρ†Π΅Π»Π½ΠΎΡ‚ΠΎ ΠΏΠΎΠ»Π΅, ситС сС ΡΡ€Π΅ΡœΠ½ΠΈ. ΠœΠ½ΠΎΠ³Ρƒ ΠΏΠ°ΠΌΠ΅Ρ‚Π½ΠΈ Π»ΡƒΡ“Π΅ - постари Π»ΠΈΡ†Π° ΠΈ Ρ€Π°ΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Π½Π° Ρ‚ΠΈΠΌΠΎΡ‚ - Π³ΠΈ ΠΏΠΈΡˆΡƒΠ²Π°Π°Ρ‚ своитС СкстСнзии Π·Π° Π΄Π° ΠΏΡ€ΠΈΠ³ΠΎΠ²Π°Ρ€Π°Π°Ρ‚, засновајќи сС Π½Π° Ρ‚Π°ΠΊΠ²Π° Π½Π°ΠΈΠ²Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° β€žΡƒΠ½ΠΈΠ²Π΅Ρ€Π·Π°Π»Π½ΠΈβ€œ ΠΌΠ°ΠΏΠ΅Ρ€ΠΈ ΠΎΠ΄ Π΅Π΄Π΅Π½ Ρ‚ΠΈΠΏ Π²ΠΎ Π΄Ρ€ΡƒΠ³. Π‘ΡƒΡˆΡ‚ΠΈΠ½Π°Ρ‚Π° ΠΎΠ±ΠΈΡ‡Π½ΠΎ Π΅ слСдна: Π³ΠΈ Π·Π΅ΠΌΠ°ΠΌΠ΅ ситС полиња, Π³ΠΈ Π·Π΅ΠΌΠ°ΠΌΠ΅ ситС ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π°, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡƒΠ²Π°ΠΌΠ΅ Π½Π°Π΄ Π½ΠΈΠ²: Π°ΠΊΠΎ ΠΈΠΌΠΈΡšΠ°Ρ‚Π° Π½Π° Ρ‡Π»Π΅Π½ΠΎΠ²ΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΈΠΏΠΎΡ‚ сС совпаѓаат, ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΠΌΠ΅ SetValue. ΠžΠ΄Π²Ρ€Π΅ΠΌΠ΅-Π½Π°Π²Ρ€Π΅ΠΌΠ΅ Ρ„Π°ΡœΠ°ΠΌΠ΅ исклучоци ΠΏΠΎΡ€Π°Π΄ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Π½Π΅ најдовмС Π½Π΅ΠΊΠ°ΠΊΠ²Π° сопствСност Π²ΠΎ нСкој ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΠ²ΠΈΡ‚Π΅, Π½ΠΎ ΠΈ ΠΎΠ²Π΄Π΅ ΠΈΠΌΠ° ΠΈΠ·Π»Π΅Π· кој Π³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΡƒΠ²Π° пСрформанситС. ΠžΠ±ΠΈΠ΄Π΅Ρ‚Π΅ сС/Ρ„Π°Ρ‚Π΅Ρ‚Π΅.

Π‘ΡƒΠΌ Π²ΠΈΠ΄Π΅Π» Π»ΡƒΡ“Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π΄Π° измислуваат парсСри ΠΈ ΠΌΠ°ΠΏΠ΅Ρ€ΠΈ Π±Π΅Π· Π΄Π° Π±ΠΈΠ΄Π°Ρ‚ цСлосно Π²ΠΎΠΎΡ€ΡƒΠΆΠ΅Π½ΠΈ со ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Ρ‚ΠΎΠ° ΠΊΠ°ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ ΠΌΠ°ΡˆΠΈΠ½ΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ дошлС ΠΏΡ€Π΅Π΄ Π½ΠΈΠ². Π‘ΡƒΠΌ Π²ΠΈΠ΄Π΅Π» Π»ΡƒΡ“Π΅ ΠΊΠ°ΠΊΠΎ Π³ΠΈ ΠΊΡ€ΠΈΡ˜Π°Ρ‚ своитС Π½Π°ΠΈΠ²Π½ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π·Π°Π΄ стратСгии, Π·Π°Π΄ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅Ρ˜ΡΠΈ, Π·Π°Π΄ ΠΈΠ½Ρ˜Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΠ°ΠΊΠΎ Π΄Π° ΠΎΠ²Π° ќС ја ΠΎΠΏΡ€Π°Π²Π΄Π° послСдоватСлната Π±Π°Ρ…Π°Π½Π°Π»ΠΈΡ˜Π°. На Ρ‚Π°ΠΊΠ²ΠΈΡ‚Π΅ сознанија Π³ΠΎ ΠΊΡ€Π΅Π½Π°Π² носот. Π’ΡΡƒΡˆΠ½ΠΎΡΡ‚, Π½Π΅ Π³ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΠ² вистинското ΠΈΡΡ‚Π΅ΠΊΡƒΠ²Π°ΡšΠ΅ Π½Π° пСрформанситС ΠΈ, Π°ΠΊΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ, Сдноставно ја смСнив ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π²ΠΎ ΠΏΠΎ β€žΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½Π°β€œ Π΄ΠΎΠΊΠΎΠ»ΠΊΡƒ успСам Π΄Π° Π³ΠΎ Π΄ΠΎΡ„Π°Ρ‚Π°ΠΌ. Π—Π°Ρ‚ΠΎΠ°, ΠΏΡ€Π²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ€Π΅ΡšΠ° дискутирани ΠΏΠΎΠ΄ΠΎΠ»Ρƒ сСриозно ΠΌΠ΅ Π·Π±ΡƒΠ½ΠΈΡ˜Π°.

Мислам Π΄Π΅ΠΊΠ° ΠΌΠ½ΠΎΠ³ΡƒΠΌΠΈΠ½Π° ΠΎΠ΄ вас, Ρ‡ΠΈΡ‚Π°Ρ˜ΡœΠΈ Π³ΠΎ Π ΠΈΡ…Ρ‚Π΅Ρ€ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ ΠΈΠ΄Π΅ΠΎΠ»ΠΎΠ·ΠΈ, наишлС Π½Π° сосСма Ρ„Π΅Ρ€ изјава Π΄Π΅ΠΊΠ° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π° Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ Π΅ Ρ„Π΅Π½ΠΎΠΌΠ΅Π½ кој ΠΈΠΌΠ° исклучитСлно Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ влијаниС Π²Ρ€Π· пСрформанситС Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°.

Π Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ Π³ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΡƒΠ²Π° CLR Π΄Π° ΠΏΠΎΠΌΠΈΠ½Π΅ Π½ΠΈΠ· склопови Π·Π° Π΄Π° Π³ΠΎ најдС оној ΡˆΡ‚ΠΎ ΠΈΠΌ Ρ‚Ρ€Π΅Π±Π°, Π΄Π° Π³ΠΈ ΠΏΠΎΠ²Π»Π΅Ρ‡Π΅ Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ ΠΌΠ΅Ρ‚Π°ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ, Π΄Π° Π³ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΈΡ‚Π½. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ, Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΈΠ½ΡƒΠ²Π°ΡšΠ΅ Π½ΠΈΠ· сСквСнцитС Π΄ΠΎΠ²Π΅Π΄ΡƒΠ²Π° Π΄ΠΎ распрСдСлба Π½Π° Π³ΠΎΠ»Π΅ΠΌΠ° ΠΊΠΎΠ»ΠΈΡ‡ΠΈΠ½Π° Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°. Ја Ρ‚Ρ€ΠΎΡˆΠΈΠΌΠ΅ ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π°, CLR Π³ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π° GC ΠΈ ΠΏΠΎΡ‡Π½ΡƒΠ²Π°Π°Ρ‚ Ρ„Ρ€ΠΈΠ·ΠΎΠ²ΠΈΡ‚Π΅. Π’Ρ€Π΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ²ΠΎ Π±Π°Π²Π½ΠΎ, Π²Π΅Ρ€ΡƒΠ²Π°Ρ˜Ρ‚Π΅ ΠΌΠΈ. ΠžΠ³Ρ€ΠΎΠΌΠ½ΠΎΡ‚ΠΎ количСство ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π° Π½Π° соврСмСнитС производствСни сСрвСри ΠΈΠ»ΠΈ ΠΎΠ±Π»Π°ΠΊ ΠΌΠ°ΡˆΠΈΠ½ΠΈΡ‚Π΅ Π½Π΅ спрСчуваат Π³ΠΎΠ»Π΅ΠΌΠΈ Π΄ΠΎΡ†Π½Π΅ΡšΠ° Π²ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π°. Π’ΡΡƒΡˆΠ½ΠΎΡΡ‚, ΠΊΠΎΠ»ΠΊΡƒ повСќС ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°, Ρ‚ΠΎΠ»ΠΊΡƒ Π΅ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠ° Π²Π΅Ρ€ΠΎΡ˜Π°Ρ‚Π½ΠΎΡΡ‚Π° Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° GC. Π Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π° Π΅, тСорСтски, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½Π° Ρ†Ρ€Π²Π΅Π½Π° ΠΊΡ€ΠΏΠ° Π·Π° Π½Π΅Π³ΠΎ.

Π‘Π΅ΠΏΠ°ΠΊ, ситС Π½ΠΈΠ΅ користимС IoC ΠΊΠΎΠ½Ρ‚Π΅Ρ˜Π½Π΅Ρ€ΠΈ ΠΈ ΠΌΠ°ΠΏΠ΅Ρ€ΠΈ Π·Π° Π΄Π°Ρ‚ΡƒΠΌΠΈ, Ρ‡ΠΈΡ˜ΡˆΡ‚ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° исто Ρ‚Π°ΠΊΠ° сС заснова Π½Π° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°, Π½ΠΎ ΠΎΠ±ΠΈΡ‡Π½ΠΎ Π½Π΅ΠΌΠ° ΠΏΡ€Π°ΡˆΠ°ΡšΠ° Π·Π° Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ пСрформанси. НС, Π½Π΅ Π·Π°Ρ‚ΠΎΠ° ΡˆΡ‚ΠΎ Π²ΠΎΠ²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° зависности ΠΈ Π°ΠΏΡΡ‚Ρ€Π°ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° ΠΎΠ΄ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ со Π½Π°Π΄Π²ΠΎΡ€Π΅ΡˆΠ½ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ контСкст сС Ρ‚ΠΎΠ»ΠΊΡƒ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΈ ΡˆΡ‚ΠΎ ΠΌΠΎΡ€Π°ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΆΡ€Ρ‚Π²ΡƒΠ²Π°ΠΌΠ΅ пСрформанситС Π²ΠΎ сСкој ΡΠ»ΡƒΡ‡Π°Ρ˜. Π‘Γ¨ Π΅ поСдноставно - Ρ‚ΠΎΠ° навистина Π½Π΅ влијаС ΠΌΠ½ΠΎΠ³Ρƒ Π½Π° пСрформанситС.

Π€Π°ΠΊΡ‚ Π΅ Π΄Π΅ΠΊΠ° Π½Π°Ρ˜Ρ‡Π΅ΡΡ‚ΠΈΡ‚Π΅ Ρ€Π°ΠΌΠΊΠΈ ΠΊΠΎΠΈ сС засноваат Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡ˜Π°Ρ‚Π° Π½Π° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π° користат сСкакви Ρ‚Ρ€ΠΈΠΊΠΎΠ²ΠΈ Π·Π° ΠΏΠΎΠΎΠΏΡ‚ΠΈΠΌΠ°Π»Π½ΠΎ Π΄Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ со Π½Π΅Π°. ΠžΠ±ΠΈΡ‡Π½ΠΎ ΠΎΠ²Π° Π΅ кСш. ΠžΠ±ΠΈΡ‡Π½ΠΎ ΠΎΠ²Π° сС ΠΈΠ·Ρ€Π°Π·ΠΈ ΠΈ Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΈ составСни ΠΎΠ΄ Π΄Ρ€Π²ΠΎΡ‚ΠΎ Π½Π° ΠΈΠ·Ρ€Π°Π·ΡƒΠ²Π°ΡšΠ΅. Π˜ΡΡ‚ΠΈΠΎΡ‚ автоматски ΠΌΠ°ΠΏΠ΅Ρ€ ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π° ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π΅Π½ Ρ€Π΅Ρ‡Π½ΠΈΠΊ ΡˆΡ‚ΠΎ Π³ΠΈ совпаѓа Ρ‚ΠΈΠΏΠΎΠ²ΠΈΡ‚Π΅ со Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ‚ Π΄Π° сС ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€Π°Ρ‚ Π΅Π΄Π΅Π½ Π²ΠΎ Π΄Ρ€ΡƒΠ³ Π±Π΅Π· ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°.

Како сС постигнува ΠΎΠ²Π°? Π’ΠΎ ΡΡƒΡˆΡ‚ΠΈΠ½Π°, ΠΎΠ²Π° Π½Π΅ сС Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π° ΠΎΠ΄ Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° ΡˆΡ‚ΠΎ самата ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ја користи Π·Π° Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° JIT ΠΊΠΎΠ΄. Кога ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΡ‚ сС ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π° Π·Π° ΠΏΡ€Π² ΠΏΠ°Ρ‚, Ρ‚ΠΎΡ˜ сС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π° (ΠΈ, Π΄Π°, овој процСс Π½Π΅ Π΅ Π±Ρ€Π·); Π½Π° слСднитС ΠΏΠΎΠ²ΠΈΡ†ΠΈ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π°Ρ‚Π° сС прСнСсува Π½Π° вСќС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½ΠΈΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ Π½Π΅ΠΌΠ° Π΄Π° ΠΈΠΌΠ° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΈ Π½Π°ΠΌΠ°Π»ΡƒΠ²Π°ΡšΠ° Π½Π° пСрформанситС.

Π’ΠΎ Π½Π°ΡˆΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ исто Ρ‚Π°ΠΊΠ° Π΄Π° користитС JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Π° ΠΈ ΠΏΠΎΡ‚ΠΎΠ° Π΄Π° Π³ΠΎ користитС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½ΠΎΡ‚ΠΎ ΠΎΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅ со иститС пСрформанси ΠΊΠ°ΠΊΠΎ ΠΈ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠ»Π΅Π³ΠΈ AOT. Π’ΠΎ овој ΡΠ»ΡƒΡ‡Π°Ρ˜ ќС Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ‚ ΠΈΠ·Ρ€Π°Π·ΠΈ.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΡ‚ Π·Π° кој станува Π·Π±ΠΎΡ€ ΠΌΠΎΠΆΠ΅ Π½Π°ΠΊΡ€Π°Ρ‚ΠΊΠΎ Π΄Π° сС Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€Π° Π½Π° слСдниов Π½Π°Ρ‡ΠΈΠ½:
Π’Ρ€Π΅Π±Π° Π΄Π° Π³ΠΎ ΠΊΠ΅ΡˆΠΈΡ€Π°Ρ‚Π΅ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΈΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΎΠ΄ Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π° ΠΊΠ°ΠΊΠΎ Π΄Π΅Π»Π΅Π³Π°Ρ‚ ΡˆΡ‚ΠΎ ја содрТи ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½Π°Ρ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°. Π˜ΡΡ‚ΠΎ Ρ‚Π°ΠΊΠ°, ΠΈΠΌΠ° смисла Π΄Π° Π³ΠΈ ΠΊΠ΅ΡˆΠΈΡ€Π°Ρ‚Π΅ ситС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΈ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈ со ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Ρ‚ΠΈΠΏΠΎΡ‚ Π²ΠΎ ΠΏΠΎΠ»ΠΈΡšΠ°Ρ‚Π° ΠΎΠ΄ Π²Π°ΡˆΠΈΠΎΡ‚ Ρ‚ΠΈΠΏ, Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊ, ΠΊΠΎΠΈ сС складирани Π½Π°Π΄Π²ΠΎΡ€ ΠΎΠ΄ ΠΎΠ±Ρ˜Π΅ΠΊΡ‚ΠΈΡ‚Π΅.

Има Π»ΠΎΠ³ΠΈΠΊΠ° Π²ΠΎ ΠΎΠ²Π°. Π—Π΄Ρ€Π°Π²ΠΈΠΎΡ‚ Ρ€Π°Π·ΡƒΠΌ Π½ΠΈ ΠΊΠ°ΠΆΡƒΠ²Π° Π΄Π΅ΠΊΠ° Π°ΠΊΠΎ Π½Π΅ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π° ΠΈ ΠΊΠ΅ΡˆΠΈΡ€Π°, Ρ‚ΠΎΠ³Π°Ρˆ Ρ‚ΠΎΠ° Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС Π½Π°ΠΏΡ€Π°Π²ΠΈ.

Π“Π»Π΅Π΄Π°Ρ˜ΡœΠΈ Π½Π°ΠΏΡ€Π΅Π΄, Ρ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΊΠ°ΠΆΠ΅ Π΄Π΅ΠΊΠ° ΠΊΠ΅ΡˆΠΎΡ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° со Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π° ΠΈΠΌΠ° свои прСдности, Π΄ΡƒΡ€ΠΈ ΠΈ Π°ΠΊΠΎ Π½Π΅ Π³ΠΎ користитС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° ΡΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ ΠΈΠ·Ρ€Π°Π·ΠΈ. Π’ΡΡƒΡˆΠ½ΠΎΡΡ‚, ΠΎΠ²Π΄Π΅ Сдноставно Π³ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡƒΠ²Π°ΠΌ Ρ‚Π΅Π·ΠΈΡ‚Π΅ Π½Π° Π°Π²Ρ‚ΠΎΡ€ΠΎΡ‚ Π½Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π° Π½Π° која сС ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΠΌ ΠΏΠΎΠ³ΠΎΡ€Π΅.

Π‘Π΅Π³Π° Π·Π° ΠΊΠΎΠ΄ΠΎΡ‚. АјдС Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ кој сС Π±Π°Π·ΠΈΡ€Π° Π½Π° ΠΌΠΎΡ˜Π°Ρ‚Π° нСодамнСшна Π±ΠΎΠ»ΠΊΠ° со која ΠΌΠΎΡ€Π°Π² Π΄Π° сС соочам Π²ΠΎ сСриозна ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ˜Π° Π½Π° сСриозна ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Π° ΠΈΠ½ΡΡ‚ΠΈΡ‚ΡƒΡ†ΠΈΡ˜Π°. Π‘ΠΈΡ‚Π΅ Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΈ сС Ρ„ΠΈΠΊΡ‚ΠΈΠ²Π½ΠΈ, Ρ‚Π°ΠΊΠ° ΡˆΡ‚ΠΎ никој Π½Π΅ Π±ΠΈ ΠΏΠΎΠ³ΠΎΠ΄ΠΈΠ».

Има нСкоја ΡΡƒΡˆΡ‚ΠΈΠ½Π°. НСка ΠΈΠΌΠ° ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚. ΠŸΠΎΡΡ‚ΠΎΡ˜Π°Ρ‚ Π±ΡƒΠΊΠ²ΠΈ со стандардизирано Ρ‚Π΅Π»ΠΎ, ΠΎΠ΄ ΠΊΠΎΠΈ парсСрот ΠΈ Ρ…ΠΈΠ΄Ρ€Π°Ρ‚Π°Π½Ρ‚ΠΎΡ‚ Π³ΠΈ создаваат иститС ΠΎΠ²ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈ. ΠŸΡ€ΠΈΡΡ‚ΠΈΠ³Π½Π° писмо, Π³ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π²ΠΌΠ΅, Π³ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π²ΠΌΠ΅ Π²ΠΎ ΠΏΠ°Ρ€ΠΎΠ²ΠΈ со ΠΊΠ»ΡƒΡ‡-врСдност, создадовмС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ ΠΈ Π³ΠΎ Π·Π°Ρ‡ΡƒΠ²Π°Π²ΠΌΠ΅ Π²ΠΎ Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ.

Π•Π»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΎ Π΅. Π”Π° Ρ€Π΅Ρ‡Π΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΡ‚ Π³ΠΈ ΠΈΠΌΠ° ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π°Ρ‚Π° Полно ΠΈΠΌΠ΅, возраст ΠΈ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ Π·Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚. ОвиС ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ сС прСнСсуваат Π²ΠΎ писмото. Бизнисот исто Ρ‚Π°ΠΊΠ° сака ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π±Ρ€Π·ΠΎ Π΄Π° Π΄ΠΎΠ΄Π°Π²Π° Π½ΠΎΠ²ΠΈ ΠΊΠ»ΡƒΡ‡Π΅Π²ΠΈ Π·Π° ΠΌΠ°ΠΏΠΈΡ€Π°ΡšΠ΅ Π½Π° ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π°Ρ‚Π° Π½Π° Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΈΡ‚Π΅ Π²ΠΎ ΠΏΠ°Ρ€ΠΎΠ²ΠΈ Π²ΠΎ Ρ‚Π΅Π»ΠΎΡ‚ΠΎ Π½Π° Π±ΡƒΠΊΠ²Π°Ρ‚Π°. Π’ΠΎ ΡΠ»ΡƒΡ‡Π°Ρ˜ нСкој Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ° Π²ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½ΠΎΡ‚ ΠΈΠ»ΠΈ Π°ΠΊΠΎ ΠΏΡ€Π΅Π΄ ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π΅ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΎ ΠΈΡ‚Π½ΠΎ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅ ΠΌΠ°ΠΏΠΈΡ€Π°ΡšΠ΅ ΠΎΠ΄ Π½ΠΎΠ² ΠΏΠ°Ρ€Ρ‚Π½Π΅Ρ€, ΠΏΡ€ΠΈΠ»Π°Π³ΠΎΠ΄ΡƒΠ²Π°Ρ˜ΡœΠΈ сС Π½Π° Π½ΠΎΠ²ΠΈΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. ΠŸΠΎΡ‚ΠΎΠ° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ Π½ΠΎΠ²Π° ΠΊΠΎΡ€Π΅Π»Π°Ρ†ΠΈΡ˜Π° Π·Π° ΠΌΠ°ΠΏΠΈΡ€Π°ΡšΠ΅ ΠΊΠ°ΠΊΠΎ Π΅Π²Ρ‚ΠΈΠ½Π° ΠΏΠΎΠΏΡ€Π°Π²ΠΊΠ° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Односно ΠΆΠΈΠ²ΠΎΡ‚Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€.

НиС спровСдувамС, создавамС тСстови. Π Π°Π±ΠΎΡ‚ΠΈ.

НСма Π΄Π° Π³ΠΎ Π΄Π°Π΄Π°ΠΌ ΠΊΠΎΠ΄ΠΎΡ‚: ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρƒ ΠΈΠ·Π²ΠΎΡ€ΠΈ ΠΈ Ρ‚ΠΈΠ΅ сС достапни Π½Π° GitHub ΠΏΡ€Π΅ΠΊΡƒ врската Π½Π° ΠΊΡ€Π°Ρ˜ΠΎΡ‚ ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΠΈΡ˜Π°Ρ‚Π°. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π³ΠΈ Π²Ρ‡ΠΈΡ‚Π°Ρ‚Π΅, Π΄Π° Π³ΠΈ ΠΌΠ°Ρ‡ΠΈΡ‚Π΅ Π½Π΅ΠΏΡ€Π΅ΠΏΠΎΠ·Π½Π°Ρ‚Π»ΠΈΠ²ΠΎ ΠΈ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ Ρ‚ΠΎΠ° Π±ΠΈ влијаСло Π²ΠΎ Π²Π°ΡˆΠΈΠΎΡ‚ ΡΠ»ΡƒΡ‡Π°Ρ˜. ЌС Π³ΠΎ Π΄Π°Π΄Π°ΠΌ само ΠΊΠΎΠ΄ΠΎΡ‚ Π½Π° Π΄Π²Π° шаблонски ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ ΠΊΠΎΠΈ Π³ΠΎ Ρ€Π°Π·Π»ΠΈΠΊΡƒΠ²Π°Π°Ρ‚ Ρ…ΠΈΠ΄Ρ€Π°Ρ‚Π°Π½Ρ‚ΠΎΡ‚, кој Ρ‚Ρ€Π΅Π±Π°ΡˆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π±Ρ€Π·, ΠΎΠ΄ Ρ…ΠΈΠ΄Ρ€Π°Ρ‚Π°Π½Ρ‚ΠΎΡ‚, кој Ρ‚Ρ€Π΅Π±Π°ΡˆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π±Π°Π²Π΅Π½.

Π›ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π΅ слСдна: ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΡ‚ шаблон ΠΏΡ€ΠΈΠΌΠ° ΠΏΠ°Ρ€ΠΎΠ²ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ ΠΎΠ΄ основната Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° парсСр. Π‘Π»ΠΎΡ˜ΠΎΡ‚ LINQ Π΅ парсСрот ΠΈ основната Π»ΠΎΠ³ΠΈΠΊΠ° Π½Π° Ρ…ΠΈΠ΄Ρ€Π°Ρ‚Π°Π½Ρ‚ΠΎΡ‚, кој ΠΏΡ€Π°Π²ΠΈ Π±Π°Ρ€Π°ΡšΠ΅ Π΄ΠΎ контСкстот Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ ΠΈ спорСдува ΠΊΠ»ΡƒΡ‡Π΅Π²ΠΈ со ΠΏΠ°Ρ€ΠΎΠ²ΠΈ ΠΎΠ΄ парсСрот (Π·Π° ΠΎΠ²ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠΌΠ° ΠΊΠΎΠ΄ Π±Π΅Π· LINQ Π·Π° спорСдба). Π‘Π»Π΅Π΄Π½ΠΎ, ΠΏΠ°Ρ€ΠΎΠ²ΠΈΡ‚Π΅ сС прСнСсуваат Π½Π° Π³Π»Π°Π²Π½ΠΈΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π° Ρ…ΠΈΠ΄Ρ€Π°Ρ‚Π°Ρ†ΠΈΡ˜Π° ΠΈ врСдноститС Π½Π° ΠΏΠ°Ρ€ΠΎΠ²ΠΈΡ‚Π΅ сС поставуваат Π½Π° соодвСтнитС ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π° Π½Π° Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΎΡ‚.

β€žΠ‘Ρ€Π·ΠΎβ€œ (прСфикс Π‘Ρ€Π·ΠΎ Π²ΠΎ ΠΎΠ΄Ρ€Π΅Π΄Π½ΠΈΡ†ΠΈΡ‚Π΅):

 protected override Contact GetContact(PropertyToValueCorrelation[] correlations)
        {
            var contact = new Contact();
            foreach (var setterMapItem in _proprtySettersMap)
            {
                var correlation = correlations.FirstOrDefault(x => x.PropertyName == setterMapItem.Key);
                setterMapItem.Value(contact, correlation?.Value);
            }
            return contact;
        }

Како ΡˆΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌΠ΅, сС користи статична ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΡ˜Π° со ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π° Π½Π° сСтСр - ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π°Π½ΠΈ Π»Π°ΠΌΠ±Π΄ΠΈ ΠΊΠΎΠΈ Π³ΠΎ Π½Π°Ρ€Π΅ΠΊΡƒΠ²Π°Π°Ρ‚ Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ Π½Π° сСтСр. Π‘ΠΎΠ·Π΄Π°Π΄Π΅Π½ ΠΎΠ΄ слСдниов ΠΊΠΎΠ΄:

        static FastContactHydrator()
        {
            var type = typeof(Contact);
            foreach (var property in type.GetProperties())
            {
                _proprtySettersMap[property.Name] = GetSetterAction(property);
            }
        }

        private static Action<Contact, string> GetSetterAction(PropertyInfo property)
        {
            var setterInfo = property.GetSetMethod();
            var paramValueOriginal = Expression.Parameter(property.PropertyType, "value");
            var paramEntity = Expression.Parameter(typeof(Contact), "entity");
            var setterExp = Expression.Call(paramEntity, setterInfo, paramValueOriginal).Reduce();
            
            var lambda = (Expression<Action<Contact, string>>)Expression.Lambda(setterExp, paramEntity, paramValueOriginal);

            return lambda.Compile();
        }

Π’ΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ, јасно Π΅. Π“ΠΈ ΠΏΠΎΠΌΠΈΠ½ΡƒΠ²Π°ΠΌΠ΅ ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π°Ρ‚Π°, создавамС Π΄Π΅Π»Π΅Π³Π°Ρ‚ΠΈ Π·Π° Π½ΠΈΠ² ΡˆΡ‚ΠΎ ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°Π°Ρ‚ поставувачи ΠΈ Π³ΠΈ Π·Π°Ρ‡ΡƒΠ²ΡƒΠ²Π°ΠΌΠ΅. ΠŸΠΎΡ‚ΠΎΠ° сС Ρ˜Π°Π²ΡƒΠ²Π°ΠΌΠ΅ ΠΊΠΎΠ³Π° Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎ.

β€žΠ‘Π°Π²Π½ΠΎβ€œ (прСфикс Π‘Π°Π²Π½ΠΎ Π²ΠΎ ΠΎΠ΄Ρ€Π΅Π΄Π½ΠΈΡ†ΠΈΡ‚Π΅):

        protected override Contact GetContact(PropertyToValueCorrelation[] correlations)
        {
            var contact = new Contact();
            foreach (var property in _properties)
            {
                var correlation = correlations.FirstOrDefault(x => x.PropertyName == property.Name);
                if (correlation?.Value == null)
                    continue;

                property.SetValue(contact, correlation.Value);
            }
            return contact;
        }

ОвдС вСднаш Π³ΠΈ Π·Π°ΠΎΠ±ΠΈΠΊΠΎΠ»ΡƒΠ²Π°ΠΌΠ΅ ΡΠ²ΠΎΡ˜ΡΡ‚Π²Π°Ρ‚Π° ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π³ΠΎ ΠΏΠΎΠ²ΠΈΠΊΡƒΠ²Π°ΠΌΠ΅ SetValue.

Π—Π° Ρ˜Π°ΡΠ½ΠΎΡΡ‚ ΠΈ ΠΊΠ°ΠΊΠΎ Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†Π°, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π² Π½Π°ΠΈΠ²Π΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ кој Π³ΠΈ Π·Π°ΠΏΠΈΡˆΡƒΠ²Π° врСдноститС Π½Π° Π½ΠΈΠ²Π½ΠΈΡ‚Π΅ корСлациски ΠΏΠ°Ρ€ΠΎΠ²ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π²ΠΎ ΠΏΠΎΠ»ΠΈΡšΠ°Ρ‚Π° Π½Π° Π΅Π½Ρ‚ΠΈΡ‚Π΅Ρ‚ΠΈΡ‚Π΅. ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ - ΠŸΡ€ΠΈΡ€Π°Ρ‡Π½ΠΈΠΊ.

Π‘Π΅Π³Π° Π΄Π° Π³ΠΎ Π·Π΅ΠΌΠ΅ΠΌΠ΅ BenchmarkDotNet ΠΈ Π΄Π° Π³ΠΈ испитамС пСрформанситС. И одСднаш... (ΡΠΏΠΎΡ˜Π»Π΅Ρ€ - ΠΎΠ²Π° Π½Π΅ Π΅ Ρ‚ΠΎΡ‡Π½ΠΈΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚, Π΄Π΅Ρ‚Π°Π»ΠΈ сС ΠΏΠΎΠ΄ΠΎΠ»Ρƒ)

ΠΠ΅ΡƒΡΠΏΠ΅ΡˆΠ½Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° Π·Π° Π·Π°Π±Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π°

Π¨Ρ‚ΠΎ Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΠ²Π΄Π΅? ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊΠΎΠΈ Ρ‚Ρ€ΠΈΡƒΠΌΡ„Π°Π»Π½ΠΎ Π³ΠΎ носат прСфиксот Fast сС ΠΏΠΎΠ±Π°Π²Π½ΠΈ Π²ΠΎ скоро ситС ΠΏΠΎΠΌΠΈΠ½ΡƒΠ²Π°ΡšΠ° ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ со прСфиксот Slow. Ова Π²Π°ΠΆΠΈ ΠΈ Π·Π° распрСдСлбата ΠΈ Π·Π° Π±Ρ€Π·ΠΈΠ½Π°Ρ‚Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°. Од Π΄Ρ€ΡƒΠ³Π° страна, ΡƒΠ±Π°Π²Π°Ρ‚Π° ΠΈ Π΅Π»Π΅Π³Π°Π½Ρ‚Π½Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π½Π° ΠΌΠ°ΠΏΠΈΡ€Π°ΡšΠ΅ со помош Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ LINQ Π½Π°ΠΌΠ΅Π½Π΅Ρ‚ΠΈ Π·Π° ΠΎΠ²Π° сСкадС ΠΊΠ°Π΄Π΅ ΡˆΡ‚ΠΎ Π΅ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΌΠ΅Ρ€Π° ја Π½Π°ΠΌΠ°Π»ΡƒΠ²Π° продуктивноста. Π Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π΅ ΠΏΠΎ Ρ€Π΅Π΄. Π’Ρ€Π΅Π½Π΄ΠΎΡ‚ Π½Π΅ сС ΠΌΠ΅Π½ΡƒΠ²Π° со Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π±Ρ€ΠΎΡ˜ Π½Π° додавања. Π Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π΅ само Π²ΠΎ ΠΎΠ±Π΅ΠΌΠΎΡ‚. Π‘ΠΎ LINQ Π΅ 4 - 200 ΠΏΠ°Ρ‚ΠΈ ΠΏΠΎΠ±Π°Π²Π½ΠΎ, ΠΈΠΌΠ° повСќС Ρ“ΡƒΠ±Ρ€Π΅ Π½Π° ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ½ΠΎ иста скала.

АТурирани

НС ΠΈΠΌ Π²Π΅Ρ€ΡƒΠ²Π°Π² Π½Π° своитС ΠΎΡ‡ΠΈ, Π½ΠΎ ΡƒΡˆΡ‚Π΅ ΠΏΠΎΠ²Π°ΠΆΠ½ΠΎ, Π½Π°ΡˆΠΈΠΎΡ‚ ΠΊΠΎΠ»Π΅Π³Π° Π½Π΅ ΠΈΠΌ Π²Π΅Ρ€ΡƒΠ²Π°ΡˆΠ΅ Π½ΠΈΡ‚Ρƒ Π½Π° ΠΌΠΎΠΈΡ‚Π΅ ΠΎΡ‡ΠΈ Π½ΠΈΡ‚Ρƒ Π½Π° ΠΌΠΎΡ˜ΠΎΡ‚ ΠΊΠΎΠ΄ - Π”ΠΌΠΈΡ‚Ρ€ΠΈΡ˜ Π’ΠΈΡ…ΠΎΠ½ΠΎΠ² 0x1000000. ΠžΡ‚ΠΊΠ°ΠΊΠΎ Π΄Π²Π°ΠΏΠ°Ρ‚ΠΈ Π³ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ ΠΌΠΎΠ΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‚ΠΎΡ˜ Π±Ρ€ΠΈΠ»ΠΈΡ˜Π°Π½Ρ‚Π½ΠΎ ΠΎΡ‚ΠΊΡ€ΠΈ ΠΈ посочи Π³Ρ€Π΅ΡˆΠΊΠ° ΡˆΡ‚ΠΎ ја ΠΏΡ€ΠΎΠΏΡƒΡˆΡ‚ΠΈΠ² ΠΏΠΎΡ€Π°Π΄ΠΈ Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π°, ΠΎΠ΄ ΠΏΠΎΡ‡Π΅Ρ‚Π½Π° Π΄ΠΎ Ρ„ΠΈΠ½Π°Π»Π½Π°. По ΠΏΠΎΠΏΡ€Π°Π²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ½Π°Ρ˜Π΄Π΅Π½Π°Ρ‚Π° Π³Ρ€Π΅ΡˆΠΊΠ° Π²ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Moq, ситС Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ дојдоа Π½Π° своС мСсто. Π‘ΠΏΠΎΡ€Π΅Π΄ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΎΠ΄ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅, Π³Π»Π°Π²Π½ΠΈΠΎΡ‚ Ρ‚Ρ€Π΅Π½Π΄ Π½Π΅ сС ΠΌΠ΅Π½ΡƒΠ²Π° - LINQ сè ΡƒΡˆΡ‚Π΅ влијаС Π½Π° пСрформанситС повСќС ΠΎΡ‚ΠΊΠΎΠ»ΠΊΡƒ Π½Π° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π°. Π‘Π΅ΠΏΠ°ΠΊ, ΡƒΠ±Π°Π²ΠΎ Π΅ ΡˆΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° со ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Expression Π½Π΅ Π΅ Π·Π°Π»ΡƒΠ΄Π½Π°, Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ Π΅ Π²ΠΈΠ΄Π»ΠΈΠ² ΠΈ Π²ΠΎ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° распрСдСлба ΠΈ Π²ΠΎ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅. ΠŸΡ€Π²ΠΎΡ‚ΠΎ Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅, ΠΊΠΎΠ³Π° сС ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·ΠΈΡ€Π°Π°Ρ‚ статичкитС полиња, Π΅ ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ±Π°Π²Π½ΠΎ Π·Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΡ‚ β€žΠ±Ρ€Π·β€œ, Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠ° ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π° сС ΠΌΠ΅Π½ΡƒΠ²Π°.

Π•Π²Π΅ Π³ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ ΠΎΠ΄ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅:

ΠΠ΅ΡƒΡΠΏΠ΅ΡˆΠ½Π° ΡΡ‚Π°Ρ‚ΠΈΡ˜Π° Π·Π° Π·Π°Π±Ρ€Π·ΡƒΠ²Π°ΡšΠ΅ Π½Π° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π°

Π—Π°ΠΊΠ»ΡƒΡ‡ΠΎΠΊ: ΠΊΠΎΠ³Π° користитС Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π° Π²ΠΎ ΠΏΡ€Π΅Ρ‚ΠΏΡ€ΠΈΡ˜Π°Ρ‚ΠΈΠ΅, Π½Π΅ΠΌΠ° посСбна ΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΏΡ€ΠΈΠ±Π΅Π³Π½ΡƒΠ²Π°Ρ‚Π΅ ΠΊΠΎΠ½ Ρ‚Ρ€ΠΈΠΊΠΎΠ²ΠΈ - LINQ повСќС ќС ја ΠΈΠ·Π΅Π΄Π΅ продуктивноста. ΠœΠ΅Ρ“ΡƒΡ‚ΠΎΠ°, Π²ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ со Π³ΠΎΠ»Π΅ΠΌΠΎ ΠΎΠΏΡ‚ΠΎΠ²Π°Ρ€ΡƒΠ²Π°ΡšΠ΅ ΠΊΠΎΠΈ Π±Π°Ρ€Π°Π°Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ˜Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Ρ‡ΡƒΠ²Π°Ρ‚Π΅ Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π° Π²ΠΎ Ρ„ΠΎΡ€ΠΌΠ° Π½Π° ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ ΠΈ Π΄Π° Π΄Π΅Π»Π΅Π³ΠΈΡ€Π°Ρ‚Π΅ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΈ, ΠΊΠΎΠΈ ΠΏΠΎΡ‚ΠΎΠ° ќС ΠΎΠ±Π΅Π·Π±Π΅Π΄Π°Ρ‚ β€žΠ±Ρ€Π·Π°β€œ Π»ΠΎΠ³ΠΈΠΊΠ°. На овој Π½Π°Ρ‡ΠΈΠ½ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° ја ΠΎΠ΄Ρ€ΠΆΠΈΡ‚Π΅ ΠΈ флСксибилноста Π½Π° Ρ€Π΅Ρ„Π»Π΅ΠΊΡΠΈΡ˜Π°Ρ‚Π° ΠΈ Π±Ρ€Π·ΠΈΠ½Π°Ρ‚Π° Π½Π° Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°Ρ‚Π°.

Π Π΅ΠΏΠ΅Ρ€ ΠΊΠΎΠ΄ΠΎΡ‚ Π΅ достапСн ΠΎΠ²Π΄Π΅. БСкој ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ ΠΌΠΎΠΈΡ‚Π΅ Π·Π±ΠΎΡ€ΠΎΠ²ΠΈ:
HabraReflectionTests

PS: ΠΊΠΎΠ΄ΠΎΡ‚ Π²ΠΎ тСстовитС користи IoC, Π° Π²ΠΎ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΎΠ²ΠΈΡ‚Π΅ користи Сксплицитна ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ˜Π°. Π€Π°ΠΊΡ‚ Π΅ Π΄Π΅ΠΊΠ° Π²ΠΎ Ρ„ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π³ΠΈ отсСков ситС Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈ ΠΊΠΎΠΈ Π±ΠΈ ΠΌΠΎΠΆΠ΅Π»Π΅ Π΄Π° Π²Π»ΠΈΡ˜Π°Π°Ρ‚ Π½Π° пСрформанситС ΠΈ Π΄Π° Π³ΠΎ Π½Π°ΠΏΡ€Π°Π²Π°Ρ‚ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΎΡ‚ Π±ΡƒΡ‡Π΅Π½.

PPS: Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° корисникот Π”ΠΌΠΈΡ‚Ρ€ΠΈΡ˜ Π’ΠΈΡ…ΠΎΠ½ΠΎΠ² @0x1000000 Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°ΡšΠ΅ Π½Π° ΠΌΠΎΡ˜Π°Ρ‚Π° Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Moq, ΡˆΡ‚ΠΎ влијаСшС Π½Π° ΠΏΡ€Π²ΠΈΡ‚Π΅ ΠΌΠ΅Ρ€Π΅ΡšΠ°. Ако нСкој ΠΎΠ΄ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈΡ‚Π΅ ΠΈΠΌΠ° Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ ΠΊΠ°Ρ€ΠΌΠ°, Π²Π΅ ΠΌΠΎΠ»ΠΈΠΌΠ΅ лајк. Π§ΠΎΠ²Π΅ΠΊΠΎΡ‚ застанал, Ρ‡ΠΎΠ²Π΅ΠΊΠΎΡ‚ Ρ‡ΠΈΡ‚Π°Π», Ρ‡ΠΎΠ²Π΅ΠΊΠΎΡ‚ Π΄Π²Π°ΠΏΠ°Ρ‚ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠ» ΠΈ ΡƒΠΊΠ°ΠΆΠ°Π» Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π°. Мислам Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ Π΄ΠΎΡΡ‚ΠΎΡ˜Π½ΠΎ Π·Π° ΠΏΠΎΡ‡ΠΈΡ‚ ΠΈ сочувство.

PPPS: Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€Π΅Ρ†ΠΈΠ·Π½ΠΈΠΎΡ‚ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π» кој стигна Π΄ΠΎ Π΄Π½ΠΎΡ‚ΠΎ Π½Π° стилот ΠΈ Π΄ΠΈΠ·Π°Ρ˜Π½ΠΎΡ‚. Јас сум Π·Π° униформност ΠΈ удобност. Π”ΠΈΠΏΠ»ΠΎΠΌΠ°Ρ‚ΠΈΡ˜Π°Ρ‚Π° Π½Π° ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° остава ΠΌΠ½ΠΎΠ³Ρƒ Π΄Π° сС посакува, Π½ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΠΊΠΈΡ‚Π΅ Π³ΠΈ Π·Π΅Π΄ΠΎΠ² Π²ΠΎ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄. Π“ΠΎ Π±Π°Ρ€Π°ΠΌ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΠ»ΠΎΡ‚.

Π˜Π·Π²ΠΎΡ€: www.habr.com

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€