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

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

4
Таблица истории базы данных / таблица отслеживания
В настоящее время я хочу структурировать таблицу отслеживания / истории следующим образом: PrimaryKey - ID OtherTableId - fk fieldName - имя поля его отслеживания OldValue NewValue UserName CreateDateTime Поэтому в основном я хочу иметь таблицу, которая будет отслеживать историю других таблиц, хранить имя столбца измененного поля с новым и старым …
13 database  sql  tracking 

2
Могу ли я использовать лицензированный по GPL фрагмент JavaScript на коммерческом веб-сайте?
Я смотрю на plupload для некоторых функций загрузки на веб-сайте, который я разрабатываю. Теперь plupload лицензируется по GNU GPLv2, и это означает, что все производное программное обеспечение также должно иметь лицензию GPL (верно?). Поэтому я запускаю plupload через мой минификатор, один минимизированный js-файл нарушит лицензию, и по запросу я должен …
13 licensing 

3
Как я могу скрыть конфиденциальные данные в моем проекте с открытым исходным кодом?
У меня есть проект с открытым исходным кодом, который загружает файлы в DropBox среди нескольких файловых хостов. Прямо сейчас я делаю скриншот для DropBox. Чтобы использовать их API, я должен жестко закодировать СЕКРЕТНЫЙ КЛЮЧ, предоставленный мне для аутентификации OAuth. Но я боюсь, что ключ не будет секретным, если он будет …

7
Все ли угрозы безопасности вызваны программными ошибками?
Большинство угроз безопасности, о которых я слышал, возникли из-за ошибки в программном обеспечении (например, все входные данные не проверены должным образом, переполнения стека и т. Д.). Итак, если мы исключим все социальные взломы, все ли угрозы безопасности связаны с ошибками? Другими словами, если бы не было ошибок, не было бы …
13 security  bug  hacking 

3
Был ли синтаксис любого языка программирования проверен на удобство использования?
Хотите улучшить этот пост? Предоставьте подробные ответы на этот вопрос, включая цитаты и объяснение того, почему ваш ответ правильный. Ответы без достаточной детализации могут быть отредактированы или удалены. Перед тем, как опубликовать для общественности, прошел ли синтаксис какого-либо языка программирования юзабилити-тестирование? Если да, то какие виды тестирования были проведены, каковы …

2
Преимущества и недостатки структурирования всего кода с помощью классов и компиляции в классы (например, Java)
Изменить: мой язык допускает множественное наследование, в отличие от Java. Я начал проектировать и разрабатывать свой собственный язык программирования для образовательных, развлекательных и потенциально полезных целей. Сначала я решил основать его на Java. Это подразумевает, что весь код будет написан в форме классов, и этот код компилируется в классы, которые …

4
Хорошие стратегии реализации для инкапсуляции общих данных в программный конвейер
Я работаю над перефакторингом определенных аспектов существующего веб-сервиса. Реализация сервисных API-интерфейсов осуществляется с помощью своего рода «конвейера обработки», в котором есть задачи, которые выполняются последовательно. Неудивительно, что более поздним задачам может потребоваться информация, вычисленная предыдущими задачами, и в настоящее время способ сделать это - добавить поля в класс «состояние конвейера». …

3
Как вы справляетесь со все более длительным временем компиляции при работе с шаблонами?
Я использую Visual Studio 2012, и у него есть случаи, когда мы добавляли параметры шаблонов в класс «просто», чтобы ввести «точку шва», чтобы в модульном тесте мы могли заменить эти части на фиктивные объекты. Как вы обычно вводите точки стыка в C ++: используя интерфейсы и / или смешивание на …
13 c++  tdd  templates 

1
Скала как язык для общего программирования
В работе Garcia et al. «Расширенное сравнительное исследование языковой поддержки родового программирования». Дается интересное сравнение возможностей языков программирования для общего программирования: с кратким объяснением терминологии: Может ли кто-нибудь протестировать поддержку Scala для общего программирования в этой среде? Т.е. добавить столбец в первой таблице с пояснениями, если это возможно.

2
Как я могу проверить свой алгоритм шифрования?
Я только что разработал алгоритм симметричного ключа блочного шифра и использую его в некоторых своих продуктах. Я хочу поставить это на реальный тест. Как можно было бы ввести свой алгоритм шифрования в международный конкурс шифрования?
13 encryption 

2
Каков наилучший подход для комментариев встроенного кода?
Мы проводим рефакторинг 20-летней устаревшей кодовой базы, и я обсуждаю с моим коллегой формат комментариев в коде (plsql, java). Для комментариев нет формата по умолчанию, но в большинстве случаев люди делают что-то подобное в комментарии: // date (year, year-month, yyyy-mm-dd, dd/mm/yyyy), (author id, author name, author nickname) and comment Предлагаемый …

1
Является ли упаковка стороннего кода единственным решением для модульного тестирования своих потребителей?
Я делаю модульное тестирование, и в одном из моих классов мне нужно отправить письмо от одного из методов, поэтому, используя инъекцию конструктора, я внедряю экземпляр Zend_Mailкласса, который находится в среде Zend. Теперь некоторые люди утверждают, что если библиотека достаточно стабильна и не будет часто меняться, то нет необходимости ее оборачивать. …

5
Как мне лучше всего управлять выпуском открытого исходного кода из конфиденциального исследовательского кода моей компании?
Моя компания (назовем их Acme Technology) имеет библиотеку из примерно тысячи исходных файлов, которые первоначально были получены от исследовательской группы Acme Labs, инкубированы в группе разработчиков в течение пары лет и совсем недавно были предоставлены нескольким клиентам в не разглашать. Acme готовится выпустить, возможно, 75% кода для сообщества с открытым …

6
Переписывание программного обеспечения с использованием гибких методологий
Предположим, вам нужно переписать все приложение, используя методологии Agile, как бы вы это сделали? Я думаю, вы могли бы написать большую кучу пользовательских историй, основанных на поведении вашей текущей системы. А затем реализуйте их небольшими итерациями. Но это не значит, что у нас есть требования UP FRONT ?? Кроме того, …

1
Поддержка C ++ 11 для функций списка высшего порядка
Большинство функциональных языков программирования (например , Common Lisp, Scheme / ракетки, Clojure, Haskell, Scala, Ocaml, SML) поддерживают некоторые общие функции высшего порядка в списках, такие как map, filter, takeWhile, dropWhile, foldl, foldr(см , например , Common Lisp, Scheme / Ракетка, Clojure бок о бок справочный лист , Haskell , Scala …

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