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

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

1
Лицензия MIT об авторских правах на производные работы
Мы думаем об использовании некоторого программного обеспечения с открытым исходным кодом MIT в одном из наших веб-проектов ( плагин jQuery datetime ). Первая строка лицензии MIT: Авторское право (c) [год] [правообладатели] Если мы включим плагин «как есть» (без внесения каких-либо изменений), я понимаю, что нам нужно включать лицензию только с …

2
Действительно ли Haskell / Clojure не подходит для динамических систем, таких как моделирование частиц?
В предыдущих вопросах мне говорили, что функциональные языки программирования не подходят для динамических систем, таких как физический движок, главным образом потому, что мутация объектов обходится дорого. Насколько реалистично это утверждение и почему?

2
Как инкапсулировать «глобальные» переменные в C #? / лучшая практика
Хотите улучшить этот пост? Предоставьте подробные ответы на этот вопрос, включая цитаты и объяснение того, почему ваш ответ правильный. Ответы без достаточной детализации могут быть отредактированы или удалены. В C #, что является лучшим методом для инкапсуляции переменных, которые мне нужно использовать в нескольких методах? Можно ли просто объявить их …

6
Есть ли разница между интерфейсами и абстрактными классами, которые имеют только абстрактные методы?
Допустим, у нас есть абстрактный класс, и пусть этот класс имеет только абстрактные методы. Отличается ли этот абстрактный класс от интерфейса, который имеет только те же методы? Я хочу знать, есть ли какие-либо различия как в философском, объективном, так и в базовой реализации языка программирования между абстрактным классом только с …

1
Возможно ли улучшение Дамерау-Левенштейна?
Недавно я реализовал алгоритм расстояния Дамерау-Левенштейна из псевдокода в Википедии. Я не мог найти никакого объяснения того , как именно она работает и псевдокод использует имена полностью неинформативные переменные , как DA, DB, i1, и j1что оставил меня почесал голову. Вот моя реализация в Python: https://gist.github.com/badocelot/5327337 Реализация Python помогла мне …

4
Весна - путаница по поводу конфигурации?
Где-то я читал Spring предлагает удобство по настройке. Но пользователи Spring вносят так много изменений в конфигурацию, что теперь я действительно запутался в использовании конфигурации xml или аннотации. Я хотел бы, чтобы кто-нибудь предложил надежную методологию или практическое правило использования XML и аннотаций. Примеры в SO показывают, что многие новички, …
9 java  spring 

2
Почему у Go есть особый случай для abs (0)
Я играл с Go и нашел этот интересный код для функции abs в пакете математики: http://golang.org/src/pkg/math/abs.go 14 func abs(x float64) float64 { 15 switch { 16 case x < 0: 17 return -x 18 case x == 0: 19 return 0 // return correctly abs(-0) 20 } 21 return x …
9 go 

5
Может ли когда-либо подавать запрос на извлечение информации принятие лицензионного соглашения участника? [закрыто]
Закрыто. Этот вопрос не по теме . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения в стеке. Закрыто 4 года назад . Некоторые программные проекты имеют лицензионное соглашение . Соглашение может, например, передавать авторские права на сторонние вклады …

4
Почему следует избегать наследования форм?
Я помню изучение VB4 и перетаскивание кнопки на форму, двойной щелчок по этой кнопке и ввод кода в тот обработчик событий, которым я только что получил магическое благословение. Придя из QBASIC, я был в восторге от «V» в «VB», визуальный дизайнер был буквально лучшей вещью со времен нарезанного хлеба. Конечно, …

4
Стиль программирования на Perl
Я работаю на Java, поэтому в основном я использую парадигму ООП во время кодирования. Я собираюсь начать работать в Perl, и мне было интересно, какова парадигма, которой следуют разработчики Perl. В вики упоминается, что он поддерживает много парадигм, но я не уверен, что понимаю это, поскольку это язык сценариев. Итак, …

4
Является ли недетерминированное управление ресурсами утечкой?
Из того, что я вижу, есть две распространенные формы управления ресурсами: детерминированное уничтожение и явное. Примерами первых могут быть деструкторы и интеллектуальные указатели C ++ или подпрограмма DESTROY в Perl, а вторым примером может служить парадигма Ruby «блоки для управления ресурсами» или интерфейс IDispose .NET. Более новые языки, кажется, выбирают …

1
Доступ к истории `ref` в Clojure
Документация реф показывает: вариант макс-истории и состояний , которые «рефов накапливать историю динамически по мере необходимости для сделки с считанных требований.» Я вижу, что в REPL есть история, но я не вижу, как найти предыдущие значения ссылки: user=> (def the-world (ref "hello" :min-history 10)) #'user/the-world user=> (do (dosync (ref-set the-world …
9 clojure  stm 

3
Хороший пример массива переменной длины C [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 4 года назад . Этот вопрос получил довольно замораживающий прием в SO, поэтому я решил …
9 c++  c  stack  heap 

9
Почему (позиция <размер) такой распространенный паттерн в условных выражениях?
В выражении условия (IF) все используют (position &lt; size), но почему? Только конвенция или есть веская причина для этого? Найдено в дикой природе: if (pos &lt; array.length) { // do some with array[pos]; } Редко встречается: if (array.length &gt; pos) { // do some with array[pos]; }

3
Правила о конкретности типов параметров метода, возвращаемых типов и типов свойств
Некоторое время назад я читал своего рода «практическое правило» о конкретности типов параметров метода, типов возвращаемых данных и типов свойств, но я просто не помню его. В нем говорилось о том, что ваши типы возвращаемых данных должны быть как можно более конкретными, а типы параметров - как можно более абстрактными …

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