Запитання з тегом «patterns-and-practices»

Шаблони проектування (повторювані рішення часто зустрічаються проблем) та кращі практики в інженерії програмного забезпечення

1
Як вибрати між використанням події домену або дозволити шару додатків оркеструвати все
Я встановлюю свої перші кроки в розробці доменного дизайну, купую блакитну книгу і все, і я бачу три способи втілення певного рішення. Для запису: я не використовую CQRS або Sourcing подій. Скажімо, запит користувача надходить у рівень обслуговування додатків. Бізнес-логіка для цього запиту (з будь-якої причини) розділена на метод на …

7
Переваги та недоліки використання бітових масок у базі даних
Не так давно я говорив зі своїм колегою, і він напевно був проти використання бітових масок, тому що важко зрозуміти всі значення, які зберігаються в базі даних. На мою думку, не завжди є поганою ідеєю їх використовувати, наприклад, для визначення ролі поточного користувача. Інакше вам потрібно зберігати його в окремій …

4
Як називається ідіома, що використовує метод ланцюжка для побудови об'єкта?
Я часто використовую шаблон, коли я використовую метод ланцюга для установки об'єкта, подібного до Builderабо Prototypeшаблону, але не створюю нових об'єктів при кожному виклику методу, замість того, щоб змінювати вихідний об'єкт. Приклад: new Menu().withItem("Eggs").withItem("Hash Browns").withStyle("Diner"); Цікаво, чи існує назва цього шаблону і чи вважається він антидіаграмою, адже він може читати …

4
Які практики ви дотримуєтесь, щоб уникнути неправильних оновлень даних у великих базах даних?
Типовою порадою перед будь-яким виробничим розгортанням є резервне копіювання БД спочатку. Таким чином, якщо нове оновлення має певну проблему, яка може призвести до потенційної втрати даних або пошкодження логічних даних, у вас все ще є резервна копія для порівняння та виправлення старих записів. Однак це може працювати добре, поки розмір …

2
Використовує новий клас System.Tuple поганий дизайн?
Мені подобається концепція System.Tuple в тому, що вона дозволяє мені повертати декілька параметрів в одному виклику функції без ініціалізації нового класу, однак це не піддається будь-яким хорошим практикам програмування, таким як Microsoft Patterns & Practices, SOLID Principles тощо. Я просто намагаюся оцінити, наскільки вільно я повинен використовувати цю функцію або …

9
Що робити, як нова команда веде проект над проблемами ремонту?
Мені щойно відповідали за проект коду з проблемами ремонту. Що я можу зробити, щоб проект стабільно працював? Я опиняюся в місці, де ми працюємо з дуже великою багаторівневою системою .NET, в якій не вистачає багатьох важливих речей, таких як тести одиниць, IOC, MEF, занадто багато статичних класів, чисті набори даних …

6
Спробуйте / Ловити / Вхід / Знову - Анти шаблон?
Я бачу декілька постів, де важливість обробки винятку в центральному місці чи на межі процесу підкреслювалася як хороша практика, а не засмічення кожного блоку коду навколо try / catch. Я твердо переконаний, що більшість з нас розуміє важливість цього, проте я бачу, що люди все ще закінчуються анти-схемою catch-log-rethrow, головним …

4
Чи погана практика дозволити визначені користувачем поля?
Взагалі кажучи, чи вважається поганою практикою допускати створені користувачем поля в базі даних для веб-сайту? Наприклад, я роблю домашню інвентаризацію для своєї дружини, і вона хоче визначити свої власні поля для різних предметів. Я планував дозволити їй створити категорії предметів і додати "функції" до цих категорій. Особливості просто ключ / …


5
Поєднання геттерів та сетерів
Бібліотеки JavaScript, такі як jQuery, комбінують 'getters' та 'setters' в інтерфейсі програмування, наприклад: $('element').css({'color','blue'}); встановить колір або $('element').css(); отримає css для елемента. Чи є назва такого шаблону і чи вдалу практику використовувати в додатках?

4
Чи слід робити ін'єкційні залежності в ctor чи методі?
Поміркуйте: public class CtorInjectionExample { public CtorInjectionExample(ISomeRepository SomeRepositoryIn, IOtherRepository OtherRepositoryIn) { this._someRepository = SomeRepositoryIn; this._otherRepository = OtherRepositoryIn; } public void SomeMethod() { //use this._someRepository } public void OtherMethod() { //use this._otherRepository } } проти: public class MethodInjectionExample { public MethodInjectionExample() { } public void SomeMethod(ISomeRepository SomeRepositoryIn) { //use SomeRepositoryIn } …

6
Переваги стратегії
Чому вигідно використовувати шаблон стратегії, якщо ви можете просто написати свій код у випадках, якщо / тоді? Наприклад: у мене є клас TaxPayer, і один із його методів обчислює податки за допомогою різних алгоритмів. То чому б вона не могла мати, якщо / тоді випадки і зрозуміти, який алгоритм використовувати …

12
Чи використання цього умовного режиму є антидіаграмою?
Я багато чого бачив у нашій застарілій системі на роботі - функції, які мають щось подібне: bool todo = false; if(cond1) { ... // lots of code here if(cond2) todo = true; ... // some other code here } if(todo) { ... } Іншими словами, функція має дві частини. Перша …

6
У якому порядку визначати геттерів та сетерів? [зачинено]
Наразі це запитання не підходить для нашого формату запитань. Ми очікуємо, що відповіді будуть підкріплені фактами, посиланнями або експертними знаннями, але це питання, ймовірно, вимагатиме дискусій, аргументів, опитувань чи розширеної дискусії. Якщо ви вважаєте, що це питання можна вдосконалити та, можливо, знову відкрити, відвідайте довідковий центр для ознайомлення . Закрито …

5
Як перенести моє мислення з C ++ на C #
Я досвідчений розробник C ++, знаю мову докладно і інтенсивно використовую деякі її особливості. Також я знаю принципи OOD та схеми дизайну. Зараз я вивчаю C #, але не можу зупинити відчуття, що не зможу позбутися розуму C ++. Я так сильно прив’язав себе до сильних сторін C ++, що …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.