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

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

1
Файл с Apache 2.0 и моими модификациями
Я прочитал оригинальный текст Apache License, версия 2.0 и объяснение на простом английском языке. Хорошо, я копирую класс, распространяемый The Best Company в мире , их лицензию и немного изменяю код. Оригинальный файл с моими изменениями. /* * Copyright (C) 2011 The Best Company in the World * * Licensed …

8
Является ли хорошей практикой полагаться на транзитные заголовки?
Я очищаю включения в проекте C ++, над которым я работаю, и все время задаюсь вопросом, следует ли мне явно включать все заголовки, используемые непосредственно в конкретном файле, или же я должен включать только минимум. Вот пример Entity.hpp: #include "RenderObject.hpp" #include "Texture.hpp" struct Entity { Texture texture; RenderObject render(); } …
38 c++  c  headers  include 

5
Как называется операция, которая может применяться несколько раз и никогда не изменять состояние после первоначального применения?
Я пытаюсь вспомнить слово, я думаю , что оно связано с вычислительной теорией или теорией баз данных. Ближайший синоним есть, atomicно это не совсем так. По сути, это своего рода вычисления, которые должны давать один и тот же результат, даже если они запускаются несколько раз подряд, то есть не создают …


11
Является ли буква C в MVC действительно необходимой?
Я понимаю роль модели и представления в шаблоне Model-View-Controller, но мне трудно понять, зачем нужен контроллер. Давайте предположим, что мы создаем шахматную программу, используя подход MVC; игровое состояние должно быть моделью, а графический интерфейс должен быть представлением. Какой именно контроллер в этом случае? Это просто отдельный класс, в котором есть …

7
Имеет ли смысл стандартизировать включение поля даты создания и даты последнего обновления во все таблицы БД?
Мой босс в настоящее время пытается применить некоторые стандарты разработки к нашей команде, поэтому вчера у нас было совещание, чтобы обсудить стандарты, которые в основном шли хорошо, пока она не подняла вопрос: Все таблицы БД будут иметь столбцы CreatedDate и LastUpdatedDate, обновленные триггерами. В этот момент наша команда пережила раскол …

8
В чем разница между «уровнем абстракции» и «уровнем косвенности»?
Я не уверен, могут ли оба термина использоваться взаимозаменяемо. Может быть, есть какое-то академическое различие в информатике, которое не имеет отношения к повседневному программированию? Или я могу использовать оба термина взаимозаменяемо, не ошибаясь? Может быть, это зависит от контекста, в котором я использую оба термина? Редактировать: По той причине, что …

4
Использование утверждений против создания исключений?
Часто, когда я пишу функцию, я хочу убедиться, что входные данные для нее действительны, чтобы как можно раньше обнаружить такие ошибки (я считаю, что это называется предварительными условиями). Когда предварительное условие не выполняется, я всегда выбрасываю исключение. Но я начинаю сомневаться в том, что это лучшая практика, и если нет, …

5
Почему темные цветовые схемы в редакторах так популярны? [закрыто]
В настоящее время почти все используют темную цветовую схему в редакторе кода - темный фон со светлым текстом. Даже большинство веб-редакторов (например, на Github) имеют схемы темных цветов. Я, честно говоря, не вижу преимуществ. Человеческий глаз гораздо лучше читает темный текст на светлом фоне. Кроме того, черно-белые цветовые схемы работают …

7
Каков предпочтительный способ хранения конфигураций приложений?
Большую часть времени я храню конфигурацию приложения разработки в корневой директории проекта, например: app |-- config.json Но это, похоже, не лучший подход, так как этот конфиг в конечном итоге хранится в системе контроля версий - возможно, это приводит к утечке имен пользователей, паролей и других важных вещей. 12 Руководство по …

2
Как заставить обещание JavaScript вернуть что-то кроме обещания?
У меня есть спецификация от клиента для реализации метода в модуле: // getGenres(): // Returns a promise. When it resolves, it returns an array. Если дан массив жанров, ['comedy', 'drama', 'action'] Вот метод скелета с обещанием: MovieLibrary.getGenres = function() { var promise = new Promise(function(resolve, reject) { /* missing implementation …
38 javascript 

3
REST API - должен ли API возвращать вложенные объекты JSON?
Когда дело доходит до API JSON, рекомендуется ли выравнивать ответы и избегать вложенных объектов JSON? В качестве примера, скажем, у нас есть API, похожий на IMDb, но для видеоигр. Существует пара сущностей: Game, Platform, ESRBRating и GamePlatformMap, которые отображают игры и платформы. Допустим, вы запрашиваете / game / 1, который …
38 design  rest  api-design  json 

7
Нужно ли проводить юнит-тесты на известные дефекты?
Если мой код содержит известный дефект, который должен быть исправлен, но еще не исправлен, и не будет исправлен в текущем выпуске, и, возможно, не будет исправлен в обозримом будущем, в случае неудачного модульного теста для этой ошибки в тестовый набор? Если я добавлю модульное тестирование, оно (очевидно) не будет выполнено, …
37 unit-testing  tdd 


1
C ++ 11 включает в себя std :: stoi, почему бы не std :: itos?
Я заметил, что в C ++ 11 есть std::sto@семейство функций для простой распаковки ints / float / longs из строк. Однако я удивлен, что обратное не реализовано. Почему комитет по стандартам не включает std::itosсемейство функций для перехода от int / float / что угодно (назад) к строкам?
37 c++  parsing  strings  c++11 

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