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

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

2
Почему программное обеспечение использует имя Win32?
Если у программного обеспечения / библиотеки есть некоторая поддержка для платформы Windows, они почти всегда называют свои каталоги и переменные как win32. Это наиболее распространено в проектах C / C ++. Даже целевое тройное использование проекта MinGWwin32 . Есть причина для этого? Почему бы не использовать собственное имя, например, Windows …

8
Может ли сравнение равенства чисел с плавающей точкой вводить в заблуждение младших разработчиков, даже если в моем случае ошибки округления не происходит?
Например, я хочу показать список кнопок с 0,0,5, ... 5, которые переходят на каждые 0,5. Для этого я использую цикл for, и у кнопки STANDARD_LINE другой цвет: var MAX=5.0; var DIFF=0.5 var STANDARD_LINE=1.5; for(var i=0;i<=MAX;i=i+DIFF){ button.text=i+''; if(i==STANDARD_LINE){ button.color='red'; } } В этом случае не должно быть ошибок округления, поскольку каждое …


9
Зачем нам нужен класс Builder при реализации шаблона Builder?
Я видел много реализаций шаблона Builder (в основном на Java). Все они имеют класс сущности (скажем, Personкласс) и класс строителя PersonBuilder. Конструктор "складывает" различные поля и возвращает a new Personс переданными аргументами. Зачем нам явно нужен класс построителя вместо того, чтобы помещать все методы построителя в сам Personкласс? Например: class …

1
Является ли «StringBuilder» приложением шаблона проектирования Builder?
Ограничен ли шаблон «Строитель» обращением к анти-шаблону «телескопический конструктор», или можно сказать, что он также решает более общую проблему сложного создания неизменяемых объектов? У StringBuilderкласса есть слово «строитель» в его имени, но он не имеет ничего общего с телескопическими конструкторами, он просто помогает нам собрать все данные, которые нам нужно …

7
Как работал контроль версий на микрокомпьютерах дня в 80-х и 90-х годах?
Мне любопытно узнать, как команды программистов обычно управляли разработкой программного обеспечения в 80-х и начале 90-х годов. Был ли весь исходный код просто храниться на одной машине, на которой все работали, или же источник передавался и копировался вручную с дискеты и сливался вручную, или они действительно использовали системы контроля версий …

2
Методы разделения передней и задней части с полным стеком JavaScript?
Предположим, у меня есть интерфейс, который в основном представляет собой одностраничное приложение, написанное с использованием angular, grunt и bower. И предположим, у меня есть бэкэнд, который в основном представляет собой просто REST API, расположенный поверх ORM, который хранит / извлекает объекты из базы данных, используя такие вещи, как grunt, express …

6
Ввод пароля в вызове REST API
Предположим, у меня есть REST API, который также используется для установки / сброса паролей. Давайте также предположим, что это работает через соединения HTTPS. Есть ли веская причина не вводить этот пароль в путь вызова, скажем, я закодирую его в BASE64? Примером может быть сброс пароля таким образом: http://www.example.com/user/joe/resetpassword/OLDPASSWD/NEWPASSWD Я понимаю, …
31 rest  passwords 


5
Нет центральной базы данных
У меня есть клиент, который хочет создать веб-сайт / мобильные приложения / настольные приложения, работающие с очень конфиденциальными данными (более чувствительными, чем данные банка / карты). Из-за деликатного характера данных они не хотят сохранять их в центральной базе данных, но все же хотят, чтобы их приложения синхронизировались (скажем, я добавляю …

5
Как обычно анализируются комментарии?
Как обычно обрабатываются комментарии в языках программирования и разметке? Я пишу парсер для некоторого пользовательского языка разметки и хочу следовать принципу наименьшего удивления , поэтому я пытаюсь определить общее соглашение. Например, должен ли комментарий, встроенный в токен, «мешать» токену или нет? Как правило, это что-то вроде: Sys/* comment */tem.out.println() действует? …
31 parsing  comments 

6
Почему Python делает копию отдельного элемента только при итерации списка?
Я только что понял, что в Python, если кто-то пишет for i in a: i += 1 Элементы исходного списка aфактически не будут затронуты вообще, поскольку переменная iоказывается просто копией исходного элемента в a. Для того, чтобы изменить оригинальный элемент, for index, i in enumerate(a): a[index] += 1 будет необходимо. …
31 python  list  iterator 

6
Нужно ли тестировать 32-битное программное обеспечение в 64-битной Windows?
Я работаю в команде разработчиков программного обеспечения в качестве разработчика программного обеспечения. Я работаю над тем же проектом уже три года. Это 32-битное приложение на C # для настольных компьютеров в .NET 4. Наша целевая платформа в Windows 7 (до прошлого года мы должны были поддерживать Windows XP). Программное обеспечение …

3
Вопросы обработки ошибок
Проблема: В течение долгого времени я беспокоился о exceptionsмеханизме, потому что я чувствую, что он действительно не решает, что он должен. ПРЕТЕНЗИЯ: Есть долгие дебаты по этой теме, и большинство из них пытаются сравнить с exceptionsвозвратом кода ошибки. Это определенно не тема здесь. Пытаясь определить ошибку, я бы согласился с …

4
Как предотвратить гонки в веб-приложении?
Рассмотрим сайт электронной коммерции, где Алиса и Боб редактируют списки продуктов. Алиса улучшает описания, а Боб обновляет цены. Они начинают редактировать Acme Wonder Widget одновременно. Боб заканчивает первым и сохраняет товар по новой цене. Алисе требуется немного больше времени, чтобы обновить описание, и когда она заканчивает, она сохраняет продукт со …

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