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

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

1
решающая разница между LGPL и AGPL
Какая разница между LGPL (v3) и AGPL (v3)? Оба могут быть использованы в коммерческом производстве, оба также могут быть упакованы в оплаченный продукт. Пока я не изменяю их исходный код, я не обязан заключать исходный код в свой продукт. Так в чем же разница? (Об этом также спросили по адресу …
14 licensing  gpl  lgpl  agpl 


3
Историческое происхождение Scala
Многие мои коллеги назвали Scala сложной, с ее богатым набором функций, а некоторые даже обвинили все эти новые функции. В то время как большинство программистов знают о ОО-функциях, и, по крайней мере, приличные знают и о функциональном программировании, в Scala есть одна особенность, для которой я не знаю ее исторического …

5
Неопределенное поведение в Java
Я читал этот вопрос о SO, который обсуждает некоторые общие неопределенные поведения в C ++, и я задавался вопросом: есть ли у Java также неопределенное поведение? Если это так, то каковы некоторые распространенные причины неопределенного поведения в Java? Если нет, то какие функции Java делают его свободным от такого поведения …

2
Какой самый эффективный способ реализовать структуру данных графа?
Обычно я реализую графы в виде двусвязных списков, но в моем опыте это довольно неэффективно, поскольку мне нужно k указателей / ссылок для k соседей, поэтому для неориентированного графа в списках будет ~ 2k соседних ссылок, если моя математика верна. Есть ли лучший способ экономии места? Я знаю, что некоторые …

3
Когда использовать typedef?
Я немного запутался, если и когда я должен использовать typedef в C ++. Я чувствую, что это баланс между читабельностью и ясностью. Вот пример кода без каких-либо определений типов: int sum(std::vector<int>::const_iterator first, std::vector<int>::const_iterator last) { static std::map<std::tuple<std::vector<int>::const_iterator, std::vector<int>::const_iterator>, int> lookup_table; std::map<std::tuple<std::vector<int>::const_iterator, std::vector<int>::const_iterator>, int>::iterator lookup_it = lookup_table.find(lookup_key); if (lookup_it != lookup_table.end()) …
14 c++  coding-style 

9
TDD: я делаю это правильно?
Я новый программист (учусь только около года), и в своей цели стать лучше, я только недавно узнал о TDD. Я хотел привыкнуть к нему, потому что это кажется очень полезным. Я хотел проверить и убедиться, что я использую это правильно. Что я делаю: Подумайте о новом методе, который мне нужен. …
14 tdd 

7
Защита для шаблона?
Для меня шаблонный код явно плохой. Однако я встретил разработчика, который проявляет сопротивление при любой попытке уменьшить шаблон. Я понял, что у меня не было легко сформированного, хорошо продуманного аргумента после отвращения, которое я разработал для него с течением времени. Так что я могу сформировать убедительный аргумент в пользу менее …

3
Как я могу применить Six Sigma в среде разработки программного обеспечения?
Я разработчик Java, но меня попросили узнать о применении Six Sigma с целью увеличения прибыли нашей организации. Я читал, что Six Sigma может применяться во всех средах, но меня интересуют нюансы его применения при разработке программного обеспечения. Какие концепции Six Sigma могут быть применены к среде разработки программного обеспечения и …

3
ASP.NET MVC против WCF для REST API + использование веб-страницы
Я думаю, что дискуссия о программном использовании, ориентированном на обслуживание, против взаимодействия с человеком очевидна. Но если бы я создал приложение, которое использует как программный API, так и веб-сайт, который использует данные, связанные с одним и тем же API, то склоняется ли оно в пользу использования только ASP.NET? Насколько легко …

3
Безопасное приложение для iPhone ↔ общение с сервером
Каков наилучший подход для достижения личной связи между моим приложением iOS и его серверным компонентом? Достаточно ли запекания одного неизменного «секретного ключа» в исходный код приложения или мне нужно каким-то образом динамически настраивать поколения таких «рукопожатых» ключей? Сам по себе сервер не имеет доступа к каким-либо конфиденциальным данным, поэтому даже …

8
Найдите «дыру» в списке чисел
Какой самый быстрый способ найти первое (наименьшее) целое число, которого нет в данном списке несортированных целых чисел (и которое больше, чем наименьшее значение в списке)? Мой примитивный подход - сортировка и пошаговый просмотр списка, есть ли лучший способ?

4
Почему это называется «Здесь документ»?
(Дайте мне знать, если это не тот SE для этого) Почему документ здесь (или Heredoc) называется так? Википедии не было ничего, чтобы сказать по этому конкретному вопросу. Я нашел документацию Unix, описывающую «Вот документ», это оригинальная форма?

7
Что ответить клиенту, который спрашивает, какую из двух эквивалентных технологий следует использовать?
Как фрилансера, мои клиенты часто спрашивают меня, что они должны выбрать между похожими элементами, ни один из которых не лучше другого. Примеры: «Нужно ли, чтобы мой сайт электронной коммерции был на PHP или ASP.NET?» «Нужно ли размещать этот обычный веб-сервис в облаке или использовать обычный хостинг?» «Какой из них лучше …

2
Какие части Code Complete не выдержали испытание временем? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …
14 coding  resources 

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