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

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

14
Должен ли я использовать скобки в логических утверждениях, даже если это не нужно?
Допустим, у меня есть логическое условие, a AND b OR c AND dи я использую язык, в котором ANDпрецедент операции выше, чем OR. Я мог бы написать эту строку кода: If (a AND b) OR (c AND d) Then ... Но на самом деле это эквивалентно: If a AND b …

4
почему базы данных noSQL более масштабируемы, чем SQL?
В последнее время я много читал о СУБД noSQL. Я понимаю теорему CAP , правила ACID, правила BASE и основную теорию. Но не нашли никаких ресурсов о том, почему noSQL масштабируется легче, чем RDBMS (например, в случае системы, которая требует много серверов БД)? Я предполагаю, что сохранение ограничений и внешних …
100 sql  nosql  scalability 

5
Почему стандартные и статические методы были добавлены к интерфейсам в Java 8, когда у нас уже были абстрактные классы?
В Java 8 интерфейсы могут содержать реализованные методы, статические методы и так называемые методы «по умолчанию» (которые классам реализации не нужно переопределять). На мой (возможно, наивный) взгляд, не было необходимости нарушать подобные интерфейсы. Интерфейсы всегда были контрактом, который вы должны выполнить, и это очень простая и чистая концепция. Теперь это …

7
Корабль Тесея применяется к GPL - Могу ли я повторно лицензировать свою программу, если я заменю все производные части?
Я перевелC программу на GPLv2 Python, но обнаружил, что ее сложно расширить, как задумано, и переписал ее значительную часть. Программа в настоящее время структурно совершенно другая, но в ней используется несколько дословно переведенных функций. Корабль Тесея Paradox (как указано в Википедии) «поднимает вопрос о том, остается ли объект , который …
99 licensing  gpl 

14
Плохо ли писать код, основанный на оптимизации компилятора?
Я изучал некоторый C ++, и мне часто приходилось возвращать большие объекты из функций, созданных внутри функции. Я знаю, что есть передача по ссылке, возвращаем указатель и возвращаем решения ссылочного типа, но я также читал, что компиляторы C ++ (и стандарт C ++) позволяют оптимизировать возвращаемое значение, что позволяет избежать …
99 c++  performance 

12
Мне сказали, что исключения должны использоваться только в исключительных случаях. Как я узнаю, является ли мой случай исключительным?
Мой конкретный случай здесь заключается в том, что пользователь может передать строку в приложение, приложение анализирует ее и назначает ее структурированным объектам. Иногда пользователь может ввести что-то недопустимое. Например, их вклад может описать человека, но они могут сказать, что их возраст - «яблоко». Правильное поведение в этом случае - откатить …

6
Стек и куча памяти в Java
Насколько я понимаю, в Java стековая память содержит примитивы и вызовы методов, а кучевая память используется для хранения объектов. Предположим, у меня есть класс class A { int a ; String b; //getters and setters } Где будет храниться примитив aв классе A? Почему куча памяти вообще существует? Почему мы …

19
Как Наставить Младшего Разработчика
Этот заголовок немного широк, но мне, возможно, придется немного рассказать, прежде чем я смогу правильно задать свой вопрос. Я знаю, что подобные вопросы уже задавались здесь . Но в моем случае я не спрашиваю, должен ли я наставлять кого-то или этот человек хорошо подходит для того, чтобы быть разработчиком программного …
99 culture  mentor 

8
Разница между '\ n' и '\ r \ n'
Да да, я знаю , что '\n'пишет перевод строки в UNIX в то время как для Windows , существует последовательность два символа: '\r\n'. Все это очень хорошо в теории, но мой вопрос почему ? Почему символ возврата каретки является дополнительным в Windows? Если UNIX может это сделать, \nпочему для этого …


11
Как вы обнаруживаете проблемы с зависимостями в модульных тестах, когда используете фиктивные объекты?
У вас есть класс X, и вы пишете несколько модульных тестов, которые проверяют поведение X1. Есть также класс A, который принимает X в качестве зависимости. Когда вы пишете модульные тесты для A, вы имитируете X. Другими словами, во время модульного тестирования A вы устанавливаете (постулируете) поведение макета X для X1. …

9
Какой смысл проводить модульные тесты на CI-сервере?
Зачем вам запускать модульные тесты на CI-сервере? Конечно, к тому времени, когда что-то будет передано мастеру, разработчик уже запустил все модульные тесты и исправил все ошибки, которые могли произойти с их новым кодом. Не в этом ли смысл юнит-тестов? В противном случае они только что совершили испорченный код.

6
Почему теги <b> и <i> устарели?
Этот вопрос возник в одном из моих занятий в колледже. Профессор только дал ответ , что он был более описательный характер, но это , кажется , как будто &lt;b&gt;и &lt;i&gt;довольно явно в их смысл и проще набрать , чем &lt;strong&gt;и &lt;em&gt;. Каковы были официальные аргументы за осуждение этих тегов?
98 html  deprecation 

9
Почему трудно заставить Java-программу выглядеть «родной»?
Большинство приложений Java не выглядят так же, как приложения C / C ++. Swing, возможно, был разработан специально для того, чтобы иметь необычный вид, но, основываясь на том, что я прочитал, SWT, например, пытался «выглядеть нативно», и не добился полного успеха. Мой вопрос: Почему разработчикам языка Java сложно разработать систему …
98 java  gui 

7
Почему Inversion of Control назван так?
Слова invertили controlвообще не используются для определения инверсии контроля в определениях, которые я видел. Определения Википедия инверсия управления (IoC) - это метод программирования, выраженный здесь в терминах объектно-ориентированного программирования, в котором связывание объектов во время выполнения связано с ассемблерным объектом и обычно не известно во время компиляции с использованием статического …

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