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

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

1
Почему Решарпер предпочитает «как» вместо «есть»?
Когда я пишу такой код, где obj является локальной переменной: if (obj is IMyInterface) { var result = (IMyInterface)obj; // .... } Решарпер предлагает преобразовать его в код, подобный следующему: var result = obj as IMyInterface; if (result != null) { // ... } Я предпочитаю первое, поскольку оно не …
13 c#  resharper 

3
Что на самом деле означает «сублицензия»?
Во-первых, ясно, что право на сублицензию не дает вам права на повторную лицензию. Допустим, у нас есть библиотека с лицензией MIT (1 файл), кто-то добавляет некоторые функции в библиотеку, но помещает их под лицензию GPL (в тот же 1 файл). Или, если кто-то хочет сублицензировать, он должен отделить код? Если …

1
Лучшие практики при разветвлении кодовой базы
У меня есть вопрос о том, как правильно использовать код для разветвления. Я взял кодовую базу, лицензированную по лицензии Creative Commons Attribution-NonCommercial-ShareAlike 3.0, и внес в нее значительные изменения в соответствии со своими потребностями. Мне кажется, что моя версия может принести пользу другим, и я хочу ее перераспределить. Я не …

7
Есть ли способ поддержать разные стили кодирования в команде разработчиков
Проблема: два разработчика => три мнения об отступе, скобки на новой строке или нет и т. Д. Мы обычно работаем с тремя или четырьмя людьми над нашими проектами, и каждый из них имеет свой собственный стиль кода. Я знаю, что общее решение состоит в том, чтобы договориться о стиле кода, …

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

4
Исправление программного обеспечения с открытым исходным кодом при обновлении не вариант?
Недавно я столкнулся с довольно раздражающей (подтвержденной) ошибкой в ​​программном пакете с открытым исходным кодом, который я интегрировал в свое приложение. Согласно общедоступному трекеру, эта ошибка была исправлена ​​в последней версии программного обеспечения. Иногда вам НУЖНО это исправление ошибки, чтобы избежать дорогостоящего рефакторинга конкретного модуля, однако по техническим и / …

2
Должна ли моя небольшая библиотека программного обеспечения избегать использования других библиотек?
Я только что выпустил небольшую библиотеку Java, которая предлагает только несколько классов и методов. Поскольку я создавал проект с Maven, я сразу использовал несколько сторонних библиотек для достижения своих целей, а именно: commons-lang3 (для некоторых общих вещей Java) slf4j-api (для регистрации) commons-io (для небольшого количества файлового материала - я думаю, …
13 java  libraries  maven 

4
Фернандо Дж. Корбато «Ограниченные языки»
В своей речи на премию Тьюринга 1990 года Фернандо Дж. Корбато перечислил причины, по которым сложные системы неизбежно выходят из строя. В своем заключении он дает несколько предложений по снижению вероятности отказа. Он перечисляет одну идею следующим образом: Использование ограниченных языков для проектирования или синтеза является мощной методологией. Не позволяя …

2
Как C ++ обрабатывает множественное наследование с общим общим предком?
Я не парень C ++, но я вынужден думать об этом. Почему множественное наследование возможно в C ++, но не в C #? (Я знаю о проблеме алмазов , но я не об этом здесь спрашиваю). Как C ++ разрешает неоднозначность идентичных сигнатур методов, унаследованных от нескольких базовых классов? И …

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

3
Является ли использование юнит-тестов хорошей историей?
Итак, у меня есть модуль аутентификации, который я написал некоторое время назад. Теперь я вижу ошибки моего пути и пишу для него юнит-тесты. При написании юнит-тестов мне трудно придумывать хорошие имена и хорошие области для тестирования. Например, у меня есть такие вещи, как RequiresLogin_should_redirect_when_not_logged_in RequiresLogin_should_pass_through_when_logged_in Login_should_work_when_given_proper_credentials Лично я думаю, что …

4
Подчеркните отрицание
Я просто писал оператор if с довольно длинными именами свойств и столкнулся с этой проблемой. Допустим, у нас есть выражение if, подобное этому: if(_someViewModelNameThatIsLong.AnotherPropertyINeedToCheck == someValue && !_someViewModelNameThatIsLong.ThisIsABooleanPropertyThatIsImportant) { //Do something } Второе свойство имеет логический тип, и нет смысла иметь такой тип if(boleanValue == true) Есть ли лучший способ …

2
Откуда взялся термин «ползучесть»?
Есть достойная статья в Википедии о «Ползучести по функциям», но в ней не указано происхождение. Google поиск приводит только к какой - то смутной статье утверждая «Earl Rich» придуман термин, но не так много резервное копирования для этого требования. Есть комикс Дилберта от 2001 года на эту тему, но тон, …

4
Каковы преимущества клиент-серверной архитектуры в веб-приложениях по сравнению с созданным сервером веб-приложением
В нашей компании нам нужно встроить веб-интерфейс на встроенную платформу Linux. Я вроде вижу 2 варианта: вы используете технологию, в которой HTML и JavaScript генерируются на стороне сервера (подумайте, JSP, Grails, но это то, что использует C ++ и генерирует HTML / JavaScript), или вы создаете HTML5-клиент приложение, которое общается …

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

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