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

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

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

6
DDD відповідає OOP: Як реалізувати об'єктно-орієнтований сховище?
Типова реалізація сховища DDD не виглядає дуже OO, наприклад save()метод: package com.example.domain; public class Product { /* public attributes for brevity */ public String name; public Double price; } public interface ProductRepo { void save(Product product); } Інфраструктурна частина: package com.example.infrastructure; // imports... public class JdbcProductRepo implements ProductRepo { private …

1
Використання друзів класів для інкапсуляції функцій приватних членів на C ++ - хороша практика чи зловживання?
Тому я помітив, що можна уникнути введення приватних функцій у заголовки, роблячи щось подібне: // In file pred_list.h: class PredicateList { int somePrivateField; friend class PredicateList_HelperFunctions; public: bool match(); } // In file pred_list.cpp: class PredicateList_HelperFunctions { static bool fullMatch(PredicateList& p) { return p.somePrivateField == 5; // or whatever } …

5
Чи є сенс визначати інтерфейс, якщо у мене вже є абстрактний клас?
У мене є клас з деякою функцією за замовчуванням / спільним функціонуванням. Я використовую abstract classдля цього: public interface ITypeNameMapper { string Map(TypeDefinition typeDefinition); } public abstract class TypeNameMapper : ITypeNameMapper { public virtual string Map(TypeDefinition typeDefinition) { if (typeDefinition is ClassDefinition classDefinition) { return Map(classDefinition); } ... throw new …

4
структура з безглуздим значенням за замовчуванням
У моїй системі я часто працюю з кодами аеропортів ( "YYZ", "LAX", "SFO"і т.д.), вони завжди знаходяться в тому ж форматі (3 листи, представлений в верхньому регістрі). Зазвичай система займається 25-50 цими (різними) кодами на запит API, загалом - понад тисяча виділень, вони передаються через багато шарів нашої програми, і …

5
Якщо служба скидає винятки або повертається, коли для видалення не вказано жодних елементів
У мене є фрагмент коду, який можна представити як: public class ItemService { public void DeleteItems(IEnumerable<Item> items) { // Save us from possible NullReferenceException below. if(items == null) return; foreach(var item in items) { // For the purpose of this example, lets say I have to iterate over them. // …

1
Чи є спосіб створити .Net-бібліотеку для Windows та Mac, залежно від платформи?
Ми намагаємось розробити міжплатформенний додаток для настільних ПК (Windows та Mac) за допомогою C #. Додаток містить велику кількість матеріалів, що залежать від платформи, і наша команда хоче, щоб ми написали весь цей код на C #. Найпростішим способом зробити це було б писати обгортки в C ++ і просто …

5
В яких умовах (якщо такі є), є хорошою практикою запитувати два сервери та споживати лише найшвидший відповідь?
Я запитав, що зараз є питанням видаленої спільноти щодо SO про те, чому хтось використовує JavaScript Promise.race, і користувач з високою репутацією прокоментував це: Якщо у вас є два сервіси, які обчислюють якесь значення, ви можете запитувати їх як паралельно, так і використовувати яке коли-небудь значення повертається першим, а не …

2
Як уникнути дублювання структур даних, коли частини програми написані різними мовами?
Наприклад, скажіть, що ви пишете додаток на Java . Ваш додаток спілкується з сервером API, написаним на Python . Сервер Python спілкується з базою даних SQL . У вас також є веб-сайт для вашої програми, написаний на JavaScript . З 4 різними мовами легко в кінцевому підсумку повторювати по суті …

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

3
Коли нові проекти C повинні націлюватись на дуже старі стандарти C (> 20 років, тобто C89)?
Інколи я бачу великі, відносно нові проекти з відкритим кодом з відкритим кодом, орієнтовані на дуже старі стандарти С, як правило, C89. Приклад - системний. Ці проекти мають кмітливих людей на чолі, тому вони, ймовірно, мають гарне обгрунтування цього рішення, про яке я не знаю. Отримавши користь від сумнівів убік, …
12 c  standards 

4
Як клас повинен повідомляти своїм користувачам про те, який підмножина методів він реалізує?
Сценарій Веб-додаток визначає користувацький інтерфейс користувача IUserBackendіз методами getUser (uid) createUser (uid) deleteUser (uid) setPassword (uid, пароль) ... Різні програмні засоби користувача (наприклад, LDAP, SQL, ...) реалізують цей інтерфейс, але не кожен сервер може зробити все. Наприклад, конкретний сервер LDAP не дозволяє цій веб-програмі видаляти користувачів. Тож LdapUserBackendклас, який реалізує …


1
Чому семафор називають семафором?
Мені не здається, що залізничний семафор описує семафор краще, ніж будь-який інший об'єкт загальної сигналізації, як прапор чи крапку. Навіть щось подібне до брелока (люди знімають ключі з кільця для доступу до заблокованих ресурсів, а потім повертають їх, коли вони закінчили) є більш описовим. То чому семафор називають семафором?
12 semaphore 

1
Що означає «синтаксичний оцет»
Я читав « Groovy in Action», друге видання і в виносці знайшов наступний текст Java розливає синтаксисний оцет над такою конструкцією, щоб відмовити програмістів від його використання. Що тут означає цей термін syntax vinegar? Я ніколи раніше не чув про цей термін і шукав DuckDuckGo та Google, але не зміг …
12 java  syntax  groovy 

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