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

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

2
Проверка данных: отдельный класс или нет?
Когда у меня есть много данных, которые необходимо проверить, я должен создать новый класс с единственной целью проверки или я должен придерживаться проверки в методе? Мой конкретный пример рассматривает турнир и класс события / категории: Tournamentи Event, который моделирует спортивный турнир, и у каждого турнира есть одна или несколько категорий. …
16 java  design  data  validation 

2
** Кваргс - это антипаттерн?
У нас есть много кода в нашей внутренней кодовой базе, который вызывает наши библиотеки внутренне - у этих библиотек часто есть много аргументов (например, matplotlib), и наш код часто выполняет только определенную задачу и просто передает **kwargsследующую функцию, которая вызывается . Например: def our_method(dataframe, **kwargs): result = do_something_with_data(dataframe) external_module.draw(result, **kwargs) …
16 python 

2
В чем разница между инкрементным и итеративным подходом к разработке программного обеспечения?
Подход инкрементный представляет собой метод разработки программного обеспечения , где модель разработана, реализована и апробирована постепенно (чуть больше добавляются каждый раз) , пока продукт не будет закончен. Это включает в себя как разработку, так и сопровождение. Продукт определяется как законченный, когда он удовлетворяет всем его требованиям. Итерационный Design представляет собой …

6
Понимание статического ключевого слова
У меня есть некоторый опыт разработки с Java, Javascript и PHP. Я читаю Microsoft Visual C # 2010 «Step by Step», и я считаю, что это очень хорошая книга о том, как познакомить вас с языком C #. Кажется, у меня проблемы с пониманием статического ключевого слова. Из того, что …

3
Лицензия на бесплатное, но закрытое приложение
Я разработал простое приложение, которое хочу выпустить бесплатно, но не планирую выпускать исходный код. Я хочу, чтобы приложение было в свободном доступе, но я не хочу, чтобы кто-либо продавал его или перепроектировал. Лицензия MIT выглядит просто и красиво, но она также позволяет любому продавать ее. Есть ли какая-нибудь лицензия, подходящая …

2
Реализация DDD: пользователи и разрешения
Я работаю над небольшим приложением, пытаясь понять принципы доменного дизайна. В случае успеха это может быть пилот для более крупного проекта. Я пытаюсь следовать книге «Внедрение доменного дизайна» (Вон Вернон) и пытаюсь реализовать аналогичный простой дискуссионный форум. Я также проверил образцы IDDD на GitHub. У меня есть некоторые трудности с …

2
Разрушают ли запросы на извлечение данных алгоритм слияния git?
В настоящее время я работаю в компании, которая использует VSTS для управления git-кодом. «Рекомендованный» для Microsoft способ объединения веток - это «объединение в сквош», означающее, что все коммиты для этой ветки будут объединены в один новый коммит, включающий все изменения. Проблема в том, что если я сделаю некоторые изменения в …
16 git 

1
Должна ли ветвь релиза или основная ветвь быть помечена при использовании gitflow?
Эта проблема указывает на то, что: Насколько я понимаю, размещение тега в ветке релиза до слияния (а не в ветке master) на самом деле является правильным решением, так как его можно найти с помощью git description --tags из ветки Develop. Смотрите № 374 пока еще один пост : Я случайно …
16 gitflow 

3
Модульное тестирование без привязки к деталям реализации
В своем выступлении TDD, где все это пошло не так , Ян Купер выдвигает первоначальное намерение Кента Бека за модульное тестирование в TDD (для тестирования поведения, а не методов классов в частности) и высказывается за недопущение связи тестов с реализацией. В случае поведения, подобного save X to some data sourceсистеме …

2
Как представить набор в JSON?
JSON поддерживает следующие структуры данных (эквиваленты Java): Scalar, Array / List и Map. A Setне поддерживается "из коробки" в JSON. Я подумал о нескольких способах представления набора в JSON: [1] - в виде списка Тем не менее, список имеет свой собственный порядок, поэтому следующие два списка ["a", "b"]и ["b", "a"]не …

4
Методологии жизненного цикла программного обеспечения для команд One Man [закрыт]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

6
Как реализовать хеширование с плавающей точкой с приближенным равенством
Допустим, у нас есть следующий класс Python (проблема существует в Java точно так же с equalsи hashCode) class Temperature: def __init__(self, degrees): self.degrees = degrees где degreesтемпература в Кельвинах как поплавок. Теперь я хотел бы реализовать тестирование на равенство и хэширование Temperatureтаким образом, чтобы сравнивает поплавки с разницей в эпсилон …

2
Как вы справляетесь с пониманием абстракции в коде?
Когда я смотрю на новую кодовую базу, мне нравится начинать с восходящего подхода. Где я понимаю один файл, а затем перейти к следующей абстракции. Но часто я забываю, что делает абстракция нижнего уровня. Таким образом, я окажусь в этой точке, где я нахожусь в почти бесконечном цикле, возвращаясь к файлам, …

5
Передать объект дважды в один и тот же метод или объединить с объединенным интерфейсом?
У меня есть метод, который создает файл данных после разговора с цифровой платой: CreateDataFile(IFileAccess boardFileAccess, IMeasurer boardMeasurer) Здесь boardFileAccessи boardMeasurerтот же экземпляр Boardобъекта, который реализует оба IFileAccessи IMeasurer. IMeasurerиспользуется в этом случае для одного метода, который установит один вывод на плате активным, чтобы сделать простое измерение. Данные этого измерения затем …

6
Какова точная проблема с разрешением добытчиков?
Я не ищу мнение о семантике, а просто для случая, когда разумно использовать геттеры - это реальное препятствие. Может быть, это бросает меня в бесконечную спираль доверия к ним, может быть, альтернатива чище и автоматически обрабатывает добытчики, и т.д. Что-то конкретное. Я слышал все аргументы, я слышал, что они плохие, …

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