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

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

3
Дженерикс против общего интерфейса?
Я не помню, когда я писал общий класс в прошлый раз. Каждый раз, когда я думаю, что мне это нужно, после некоторого размышления я делаю вывод, что нет. Второй ответ на этот вопрос заставил меня попросить разъяснений (поскольку я пока не могу комментировать, я сделал новый вопрос). Итак, давайте возьмем …

5
Каковы преимущества внедрения зависимостей в тех случаях, когда почти всем нужен доступ к общей структуре данных?
Есть много причин, почему глобалы злы в ООП. Если число или размер объектов, нуждающихся в совместном использовании, слишком велик, чтобы их можно было эффективно передать в параметрах функции, обычно все рекомендуют внедрение зависимостей вместо глобального объекта. Однако в случае, когда почти каждый должен знать об определенной структуре данных, почему внедрение …

1
Различия между шлюзами API и ESB? [закрыто]
Закрыто. Этот вопрос не по теме . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения в стеке. Закрыто 5 лет назад . Компания, в которой я работаю, оценивает некоторые промежуточные решения для управления, учета и безопасности веб-сервисов. В настоящее …

7
Какова идея именования классов с суффиксом «Info», например: «SomeClass» и «SomeClassInfo»?
Я работаю в проекте, который имеет дело с физическими устройствами, и меня смутило, как правильно назвать некоторые классы в этом проекте. Учитывая фактические устройства (датчики и приемники) - это одно, а их представление в программном обеспечении - другое, я думаю о присвоении имен некоторым классам с помощью шаблона имени суффикса …

1
Почему .NET Framework не имеет понятия классов как первоклассных типов?
Тем, кто знаком с историей, хорошо известно, что C # и .NET Framework начинались как «Delphi, переписанный для ощущения Java», созданный главным разработчиком Delphi Андерсом Хейлсбергом. С тех пор все немного изменилось, но на самом деле сходство было настолько очевидным, что даже были серьезные предположения, что .NET изначально был продуктом …

2
Можно ли «запечь измерение в тип» в haskell?
Предположим, я хочу написать библиотеку, которая работает с векторами и матрицами. Можно ли объединить измерения в типы, чтобы операции несовместимых измерений вызывали ошибку во время компиляции? Например, я хотел бы, чтобы подпись точечного продукта была чем-то вроде dotprod :: Num a, VecDim d => Vector a d -> Vector a …

2
Нужно ли всегда знать, что делает API, просто взглянув на код?
Недавно я занимался разработкой своего собственного API, и с таким большим интересом к разработке API меня очень интересовало, как я могу улучшить свой дизайн API. Один аспект, который возник несколько раз: (не пользователями моего API, а в моем наблюдении за обсуждением этой темы): нужно просто взглянуть на код, вызывающий API, …

7
Опрос члена команды с VBA на C #
Фон В прошлом году меня попросили создать инструмент для бизнес-планирования примерно для 10 пользователей. Это было сделано от имени другой ИТ-команды, которая «заключила со мной контракт», и из-за того, что сроки выполнения проекта были немного незапланированными с их стороны, мне пришлось немного поторопиться с этим. В то время мы решили, …

6
«Отмена» целочисленного переноса
Я столкнулся с интересной теоретической проблемой несколько лет назад. Я никогда не нашел решения, и оно продолжает преследовать меня, когда я сплю. Предположим, у вас есть приложение (C #), которое содержит некоторое число в int, называемое x. (Значение х не является фиксированным). Когда программа запускается, x умножается на 33 и …
20 c# 

3
Разработка модульных тестов для системы с состоянием
Фон Разработка через тестирование стала популярной после того, как я уже закончил школу и в промышленности. Я пытаюсь научиться этому, но некоторые важные вещи все еще избегают меня. Сторонники TDD говорят много вещей, таких как (далее называемый «принцип единого утверждения» или SAP ): Некоторое время я думал о том, как …

4
Помогая тому, кто не является и никогда не будет профессиональным программистом, написать код, который будет более разборчивым и удобным для использования и интерпретации [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 4 года назад . Я Элвис, очень стараюсь научиться быть Эйнштейном. Я работаю на Морта. О …

10
Как моя команда может избежать частых ошибок после рефакторинга?
Чтобы дать вам небольшую предысторию: я работаю в компании с примерно двенадцатью разработчиками Ruby on Rails (+/- стажеры). Удаленная работа является распространенным явлением. Наш продукт состоит из двух частей: довольно толстое ядро ​​и рассчитано на крупные клиентские проекты, основанные на нем. Заказчики обычно расширяют ядро. Перезаписи ключевых функций не происходит. …

11
Когда вы хотите две ссылки на один и тот же объект?
В частности, в Java, но, вероятно, и в других языках: когда было бы полезно иметь две ссылки на один и тот же объект? Пример: Dog a = new Dog(); Dob b = a; Есть ли ситуация, когда это было бы полезно? Почему это предпочтительное решение для использования aвсякий раз, когда …

7
Есть ли более разумный способ сделать это, кроме длинной цепочки операторов if или switch?
Я внедряю бот IRC, который получает сообщение, и я проверяю это сообщение, чтобы определить, какие функции вызывать. Есть ли более умный способ сделать это? Кажется, что это быстро выйдет из-под контроля после того, как я наберу 20 команд. Возможно, есть лучший способ абстрагировать это? public void onMessage(String channel, String sender, …

2
Являются ли монады жизнеспособной (возможно, предпочтительной) альтернативой иерархии наследования?
Я собираюсь использовать описание монад, не зависящее от языка, например, сначала для описания моноидов: Моноид это (примерно) набор функций , которые принимают некоторый тип в качестве параметра и возвращают один и тот же тип. Монада есть (примерно) набор функций , которые принимают обертки типа в качестве параметра и возвращает один …

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