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

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

3
Необязательные параметры или перегруженные конструкторы
Я реализую DelegateCommand, и когда я собирался реализовать конструктор (ы), я предложил следующие два варианта дизайна: 1: Наличие нескольких перегруженных конструкторов public DelegateCommand(Action<T> execute) : this(execute, null) { } public DelegateCommand(Action<T> execute, Func<T, bool> canExecute) { this.execute = execute; this.canExecute = canExecute; } 2: Наличие только одного конструктора с необязательным …

8
Методология: Написание юнит-тестов для другого разработчика
Я думал о разработке программного обеспечения и написании юнит-тестов. Я получил следующую идею: Предположим, у нас есть пары разработчиков. Каждая пара отвечает за часть кода. Один из пары реализует функцию (написание кода), а второй пишет для нее модульные тесты. Тесты написаны после кода. По моей идее они помогают друг другу, …

4
Использование #ifdef для переключения между различными типами поведения во время разработки
Является ли хорошей практикой использование #ifdef во время разработки для переключения между различными типами поведения? Например, я хочу изменить поведение существующего кода, у меня есть несколько идей, как изменить поведение, и необходимо переключаться между различными реализациями, чтобы тестировать и сравнивать разные подходы. Обычно изменения в коде сложны и влияют на …

7
Моя компания объединяет филиалы неправильно?
Недавно я наткнулся на статью MSDN о ветвлении и слиянии и SCM: Учебник по ветвлению и слиянию - Крис Бирмеле . В статье говорится, что «слияние большого взрыва» - это антипаттерн слияния: Big Bang Merge - отложенная ветвь, сливающаяся до конца разработки и пытающаяся объединить все ветви одновременно. Я понял, …

6
Превращение личного проекта Python в освобождаемую библиотеку
Я академик, а не программист, и у меня есть многолетний опыт написания программ на Python для собственного использования, чтобы поддержать мои исследования. Мой последний проект, вероятно, будет полезен многим другим, а также мне, и я думаю выпустить его как библиотеку Python с открытым исходным кодом. Однако при переходе от работающего …

6
Почему я не могу проверить, заблокирован ли мьютекс?
В C ++ 14, похоже, пропущен механизм проверки, std::mutexзаблокирован ли объект или нет. Посмотрите этот ТАК вопрос: /programming/21892934/how-to-assert-if-a-stdmutex-is-locked Есть несколько способов обойти это, например, используя; std::mutex::try_lock() std::unique_lock::owns_lock() Но ни один из них не является особенно удовлетворительным решением. try_lock()разрешено возвращать ложный минус и имеет неопределенное поведение, если текущий поток заблокировал мьютекс. …
28 c++ 

7
Может ли значение постоянной меняться со временем?
На этапе разработки существуют определенные переменные, которые должны быть зафиксированы в одном и том же прогоне, но, возможно, потребуется изменить их с течением времени. Например, booleanчтобы сигнализировать режим отладки, поэтому мы делаем вещи в программе, которую обычно не делаем. Это плохой стиль, чтобы содержать эти значения в константе, то есть …
28 const  constants 

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

2
NoSQL в SQL Server
Этот вопрос не о разнице между SQL и NoSQL. Я ищу какое-то обоснование для чего-то, что действительно не имеет смысла для меня в данный момент (возможно, из-за моего отсутствия понимания или оценки). Мы начали новый проект с нуля, используя сначала MVC5, код Entity Framework 6 и SQL Server 2008. Когда …
28 sql  sql-server  nosql 

3
Веб-серверы в режиме ядра: умная оптимизация или кошмар безопасности?
Я читал ветку Hacker News, где один пользователь публикует ссылку с 2011 года, объясняющую, что IIS намного быстрее, чем большинство других (* nix) веб-серверов. Другой пользователь отвечает, объясняя, что IIS получает это преимущество, имея модуль ядра с именем HTTP.sys . Насколько мне известно, большинство других популярных веб-серверов в 2015 году …

1
Как бороться с ошибочно названной функцией в производственном коде?
Я недавно натолкнулся на библиотеку Python на GitHub. Библиотека отличная, но содержит одно явное опечатка в имени функции. Давайте назовем это, dummy_fuction()пока это должно быть dummy_function(). Эта функция определенно «в дикой природе» и, скорее всего, используется во встроенных системах. Первое, что приходит на ум, - это добавить вторую версию функции …

3
Должен ли я создавать отдельные рабочие и личные учетные записи GitHub? [закрыто]
Закрыто. Этот вопрос не по теме . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения в стеке. Закрыто 5 лет назад . Я довольно новичок в программировании, и я работал над многими личными проектами, которые, как мне кажется, могут …
28 github 

6
Почему мы должны ждать ввода / вывода?
Всегда было известно, что дисковые операции медленные, и мы знаем причины, по которым они медленные. Итак, вопрос здесь в том, почему мы должны ждать ввода-вывода или почему существует такая вещь, как IOWait и т. Д.? Я имею в виду, что я заметил, что когда вы выполняете некоторые задачи ввода-вывода в …
28 cpu  io  operations 

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

6
Смысл юнит-тестов без TDD
У нас стартовал новый (довольно большой) проект, который мы планировали развивать с использованием TDD. Идея TDD провалилась (по многим деловым и некоммерческим причинам), но сейчас у нас есть разговор - должны ли мы в любом случае писать модульные тесты или нет. Мой друг говорит, что нет смысла (или близок к …
28 unit-testing  tdd 

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