Розробка програмного забезпечення

Питання та відповіді для професіоналів, науковців та студентів, які працюють у життєвому циклі розвитку систем

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

2
Як створити новий агрегатний корінь у CQRS?
Як нам створити нові сукупні корені в архітектурі cqrs? У цьому прикладі я хочу створити новий сукупний корінь AR2, який має посилання на перший AR1. Я створюю AR2, використовуючи метод AR1 як вихідну точку. Поки що я бачу кілька варіантів: Метод всередині AR1 createAr2RootOpt1я міг викликати new AR2()та зберегти цей …

1
Чи існує ситуація, коли краще використовувати слабкі посилання замість простого складу?
Хоча документи Java вказують, що слабкі посилання в основному стосуються канонізації відображень, в Інтернеті ви знайдете багатьох , багатьох , багатьох людей, які стверджують, що WeakHashMap ідеально підходить для зберігання метаданих об’єктів протягом свого життя. Однак ніхто не заважає зробити зрозумілий І відповідний приклад. Використання WeakHashMap для додавання об'єкту якихось …

1
Хто може переглянути мій код, якщо я єдиний, хто знає технологію?
Зараз я працюю над впровадженням React у компанії, в якій працюю. Як єдиний, хто пройшов курси з цієї теми, хто можу попросити рецензію, щоб переконатися, що код дотримується "найкращих практик" та чи правильно його застосовується?

2
Що саме відбувається, коли потік очікує завдання всередині циклу?
Після деякого часу, маючи справу з асинхронною / очікуваною схемою C #, я раптом зрозумів, що я не знаю, як пояснити, що відбувається в наступному коді: async void MyThread() { while (!_quit) { await GetWorkAsync(); } } GetWorkAsync()передбачається повернути очікуване, Taskщо може або не спричинить перемикання потоку при виконанні продовження. …
10 c#  loops  async 

2
Межа стека
Нещодавно я перевіряв ліміт стека на трьох пристроях з різними ОС (за лімітом, маю на увазі максимальну кількість рівнів, які може мати стек), і я помітив, що кожного разу, коли я потрапляю на 2 ^ 16 рівнів, це дає мені помилка переповнення, і коли я кладу 2 ^ 16-1, вона …
10 stack 

3
Розподіл подій, одна подія, стан двох агрегатів змінилися
Я намагаюся вивчити способи DDD та суміжних предметів. Я придумав простий обмежений контекст для реалізації "банку": є рахунки, гроші можна здати на зберігання, зняти та перерахувати між ними. Також важливо зберігати історію змін. Я визначив організацію облікового запису, і джерело пошуку подій було б добре відстежувати зміни в ньому. Інші …

1
Чи є перевага в гетерогенних середовищах розвитку?
Я працюю з командою розробників, які мають вибір щодо того, яке апаратне та програмне забезпечення вони працюють. Наше відчуття полягає в тому, що цей сценарій дозволяє нам бачити найрізноманітніші цільові системи, перш ніж потрапити на тест. Наш досвід полягає в тому, що ми виявляємо ряд дивних проблем у різних браузерах …

2
Уникайте геттерів та сетерів, відображаючи інформацію про користувачів
Фон Я читаю "Книгу чистого коду", і паралельно я працюю над гігієнічними об'єктами Ката, як банківський рахунок, і я дотримуюся цього правила: Дев'яте правило калієстичних об'єктів - це те, що ми не використовуємо геттер або сеттер. Це здається досить веселим, і я згоден з цим принципом. Більше того, на сторінці …

2
Чи використовується структура стека для процесів асинхронізації?
На це запитання чудова відповідь Еріка Ліпперта описує, для чого використовується стек. Уже протягом року я знав - загалом кажучи - що таке стек і як він використовується, але частини його відповідей змушують мене замислитись, чи ця структура стека сьогодні менш використовується, де програмування асинхронізації є нормою. З його відповіді: …
10 stack 

3
TDD люблять підхід до алгоритмічних задач
Мені один не вдався в алгоритмічному тесті з Codility, тому що я намагався знайти краще рішення, і врешті-решт у мене нічого не було. Тож змусило мене задуматися, чи можу я використовувати підхід, подібний до TDD? Тобто якщо я зазвичай можу розробити рішення поступово подібним чином? Якби я писав алгоритм сортування, …

1
Структура бази даних для гри 2v2
Я регулярно граю у гру 2v2 з 12 друзями і хочу базу даних, щоб відслідковувати гравців, команд, рахунки та ігри, з метою створення системи ранжування. Оскільки ми регулярно міняємо команди, я складаю таблиці players, teamsі в gamesяких іграх є дві команди (team1 та team2), і команди складаються з двох гравців …

7
Чи повинні служби спілкуватися безпосередньо між собою в архітектурі мікросервісу?
У мене є ряд веб-служб, які формують веб-додаток. Клієнти можуть отримати доступ до цих послуг через дзвінки API REST. Чи повинні ці служби мати можливість спілкуватися безпосередньо між собою? Якщо так, чи не зробить їх пара, що суперечить концепції мікросервісів? Якщо клієнт повинен зателефонувати їм один за одним, щоб отримати …

3
Чи є створення ще однієї повторюваної системи забезпечення якості (QA) ще однією поганою практикою?
На роботі у нас досить складна система. Давайте назвемо цю систему, System_A. Наша команда з QA створила іншу систему, викликайте цю систему, System_B, щоб перевірити System_A. Спосіб використання System_B полягає в наступному. Ми генеруємо входи (використовуючи сам System_B), IN, обробляємо такі входи назад через System_B і генеруємо виходи, O_B. Отже, …

2
Чому директива "using" і "using" використовують одне і те ж ключове слово в C #?
usingДиректива дає нам доступ до типам , не використовуючи їх повністю кваліфіковані імена: using MyNamespace.Foo.Bar; usingЗаява діє як синтаксичний цукор для try/ finallyблоків , які забезпечують об'єкти утилізуються належним чином: using(var x = new MyDisposableClass()) { ... } Ці дві ситуації, схоже, не мають нічого спільного. Чому вони використовують одне …
10 c#  statement 

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