Upload
serhiy-kalinets
View
446
Download
1
Embed Size (px)
Citation preview
Руйнуємо .NET МіфиСергій КалінецьSigma Software
[email protected]@skalinets
15 років у грі
Тренер з інженерних практик
Архітектор у 2
Міфи
Міф про проекти
• Успіх – это коли багато проектів у солюшені
Аргументи
• Солідність
• Розподіл відповідальності
• Можливість часткового деплойменту
Насправді
• Довше збирається
• Складніший деплоймент
• Збірка – це одиниця деплойменту
• Аналогічно і про папки/неймспейси
Міф про бази даних
• Зовнішні ключі
Аргументи
• Цілісність даних
Проблеми
• Повільні запити
• Deadlocks
• Більше церемоній для вставки даних
• Менший потенціал для масштабування
Системи без зовнішніх ключів
• NoSQL (Document, Table, Key-Value, etc.)
• NoDB (files, blobs, ect.)
Насправді
• Клієнтська система сама може контролювати цілісність
• БД краще використовувати лише як сховище
• Це саме стосується і інших БД артифактів (тригери, процедури та ін.)
Міф про properties
• public fields
Аргументи
• Так про це ж у всіх книжках пишуть
• Інкапсуляція
• Проблеми зворотньої сумісності
Проблеми
• Більше коду (хоча з кожною версією все менше)
• Швидкісь роботи (незначне просідання)
Насправді
• Для POCO можна використовувати філди
Міф про аргументи
• Треба завжди їх перевіряти
Аргументи
• Захист інвариантів
• Джуни усюди
• Страховка від помилок
Проблеми
• Більше коду
• Швидкість роботи
• Перевірка не вирішує проблеми
public int GetLength(string text){ return text.Length;}
public int GetLength(string text){ if (text == null) { throw new WtfException("text is null!!!"); } return text.Length;}
Насправді
• Більшість перевірок бахне під час розробки
• На проді ці перевірки не врятують
• Подібні перевірки корисні лише для публічних API
Vendor lock
• В .NET лише Microsoft
А именно
• ADO.NET, LINQ 2 SQL, EF
• ASP.NET, Web API, WCF
• Windows, MS SQL Server, IIS
• MSBuild
Насправді
• EF -> NHibernate, Micro ORMs (dapper, petapoco, massive)
• ASP.NET, Web API -> NancyFX, Service Stack, Suave (F#)
• MS SQL Server -> MySQL, SQLite, Raven, Mongo
• MSBuild -> rake, fake, nake, …ake
Останній Міф
• .NET вже не той і взагалі, треба валити
Чого так?
• Дорогий та закритий стек
• Закритий source code
• Дорогі засоби розробки
Насправді
• VS Community Edition, BizSpark
• Open Source
• ASP.NET vNext (5, Core 1)
• .NET Core, .NET Native
І про мертвих
Дякую!