Программная инженерия

Q & A для профессионалов, преподавателей и студентов, работающих в жизненном цикле разработки систем

6
Однострочники и читабельность: когда прекратить сокращать код? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос?Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 2 года назад . контекст Недавно я заинтересовался созданием лучшего отформатированного кода. И лучше я имею в виду …

1
Почему LLVM имеет IR в виде сборки, а не в виде дерева IR? Или: почему проекты нацелены на LLVM IR, а не на AST Clang?
Почему промежуточное представление LLVM (LLVM IR) похоже на сборку, а не на дерево? В качестве альтернативы, почему языковые реализации нацелены на IR LLVM, а не на AST Clang? Я не пытаюсь задавать два разных вопроса одновременно, если так кажется. Мне просто кажется, что и клиентские и библиотечные программисты пришли к …

7
Примитив против класса для представления простого объекта домена?
Каковы общие рекомендации или практические правила, когда следует использовать объект, специфичный для домена, против простой строки или числа? Примеры: Возрастной класс против Integer? FirstName класс против строки? UniqueID против строки Класс PhoneNumber vs String vs Long? Класс DomainName против строки? Я думаю, что большинство практиков ООП определенно сказали бы определенные …

3
Когда можно использовать параллельные массивы?
Я сталкивался с кодом (новым кодом), который использует то, что я называю 'Parallel Arrays' или Lists. Это означает, что есть 2 массива, которые содержат связанные данные и связаны их положением (индексом) в массиве. Я считаю это запутанным и подверженным всевозможным ошибкам. Решение, которое я обычно предлагаю, состоит в создании объекта …

2
Зачем использовать универсальный метод с ограничением типа вместо самого типа?
В другом вопросе StackExchange я заметил, что кто-то использует этот прототип: void DoSomething<T>(T arg) where T: SomeSpecificReferenceType { //Code.... } Принимая во внимание, что есть только один тип ограничений ( SomeSpecificReferenceType), в чем разница и преимущество такого написания, а не просто: void DoSomething(SomeSpecificReferenceType arg) { //Code.... } В обоих случаях …
14 c#  .net  generics 

3
Многие строят одну реализацию. Я безнадежен? Использовать сервисный локатор?
Скажем, у нас есть 1001 клиент, который строит свои зависимости напрямую, а не принимает инъекции. Рефакторинг 1001 не вариант по мнению нашего босса. На самом деле нам даже не разрешен доступ к их источнику, только к файлам классов. Мы должны «модернизировать» систему, через которую проходят эти 1001 клиент. Мы можем …

1
Как не допустить, чтобы коллега вводил крайнюю сложность и абстракцию?
У меня очень трудное время, потому что мой коллега, кажется, показывает Преждевременные / ненужные усилия по оптимизации Преждевременная дедупликация с сомнительными абстракциями. Например, мы используем модифицированную архитектуру VIPER. Он представил базовый класс для компонента Router (с использованием обобщений) как часть реализации первого стека Viper, фактически не зная, что именно будет …

2
Реальный мир - принцип замещения Лискова
Справочная информация: я разрабатываю систему обмена сообщениями. Эта структура позволит: отправка сообщений через сервисную шину подписка на очереди в шине сообщений подписка на темы в шине сообщений В настоящее время мы используем RabbitMQ, но я знаю, что мы перейдем на Microsoft Service Bus (в Premise) в самое ближайшее время. Я …

3
Я теряю поток моего веб-приложения на PHP, с ним становится трудно работать
Я программировал несколько лет и со временем стал очень хорошо знаком с C # и JavaScript. У меня есть несколько больших проектов на C # и JavaScript, по которым я без проблем ориентируюсь. Недавно я начал проект PHP & AngularJS для работы без предварительного опыта работы с PHP. Поток стороны …

5
ООП Стиль кодирования: инициализировать все на конструкторе?
Я все еще считаю себя учеником-программистом, поэтому я всегда стремлюсь найти «лучший» способ для типичного программирования. Сегодня мой коллега утверждал, что мой стиль кодирования выполняет какую-то ненужную работу, и я хочу услышать мнения других. Как правило, когда я проектирую класс на языке ООП (обычно C ++ или Python), я делю …

6
Является ли Reflection недостатком, поскольку частные переменные не могут быть ограничены?
privateМодификатор используется для ограничения доступа извне класса, но с помощью отражения других классов может получить доступ частного метода и поля. Поэтому мне интересно, как мы можем ограничить доступность, если это является частью требования.

2
Как реализовать менеджер процессов в источнике событий
Я работаю над небольшим примером приложения, чтобы изучить концепции CQRS и источников событий. У меня есть Basketагрегат и Productагрегат, которые должны работать независимо друг от друга. Вот некоторый псевдокод, чтобы показать реализацию Basket { BasketId; OrderLines; Address; } // basket events BasketCreated { BasketId; } ItemAdded { BasketId; ProductId; Quantity …

2
Теперь, когда не все объявления методов в интерфейсе Java являются публичными абстрактными, следует ли объявлять методы с этими модификаторами?
Начиная с Java 8, defaultметоды были введены в интерфейсы. Фактически, это означает , что не все методы в interfaceэто abstract. Начиная с Java 9 (возможно), privateметоды будут разрешены. Это означает , что не все методы в interfaceэто public abstract. Вопрос "Должны ли методы в интерфейсе Java быть объявлены с publicмодификатором …

5
Как организовать локализацию строковых ресурсов?
Мы разрабатываем большое приложение, состоящее из множества маленьких пакетов. Каждый пакет имеет свой собственный набор файлов ресурсов для локализации. Каков наилучший подход к организации и именованию строк локализации? Вот мои мысли до сих пор: Обработка дубликатов Один и тот же текст (скажем, «почтовый индекс») может встречаться несколько раз в пределах …

7
Как создать аутентификацию пользователя из клиентских приложений?
Я разрабатывал приложение, которое будет поддерживать многих пользователей. Дело в том, что я не могу понять, как аутентифицировать клиента / пользователя. Я создаю приложение, такое как http://quickblox.com/, где я предоставляю учетные данные своим пользователям, и они будут использовать их для создания N приложений, в которых они не смогут ввести свое …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.