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

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

5
Почему инварианты важны в информатике
Я понимаю «инвариант» в его буквальном смысле. Я также узнаю их, когда набираю код. Но я не думаю, что понимаю значение этого термина в контексте информатики. Всякий раз, когда я читаю разговоры \ официальные документы о языковом дизайне от известных программистов \ компьютерных ученых, термин «инвариант» появляется как жаргон; и …

3
Является ли обзор кода, который использует только комментарии кода хорошей идеей?
Предпосылками Команда использует DVCS IDE поддерживает анализ комментариев (например, TODO и т. Д.) Такие инструменты, как CodeCollaborator, дороги для бюджета Инструменты типа gerrit слишком сложны для установки или не пригодны для использования Workflow Автор публикует где-то в центральной ветке репо Рецензент получить его и начать обзор В случае возникновения какого-либо …

2
Есть ли прецедент для лицензии на компилятор, ограничивающий вид разработки, для которого вы можете его использовать?
Недавно было упущено, что новое лицензионное соглашение для Delphi XE3 будет запрещать разработку Client Server с версией Professional без дополнительной покупки пакета лицензий Client Server. Это не означает, что в Профессиональной версии будут отсутствовать функции, но лицензия будет специально запрещать разработчику использовать компилятор для определенного класса разработки, даже с решениями …
16 licensing  delphi  eula 

6
Как сборщик мусора предотвращает сканирование всей памяти при каждом сборе?
Некоторые (по крайней мере, Mono и .NET) сборщики мусора имеют область кратковременной памяти, которую они часто сканируют, и область вторичной памяти, которую они сканируют реже. Моно называет это детской. Чтобы выяснить, какие объекты могут быть удалены, они сканируют все объекты, начиная с корней, стека и регистров, и удаляют все объекты, …

4
Должен ли я предпочесть свойства с частными полями или без них?
Кодовая база, в которой я сейчас работаю, имеет соглашение об использовании частных полей и открытых свойств. Например, у большинства классов их члены определены следующим образом: // Fields private double _foo; private double _bar; private double _baz; // Properties public double Foo { get{ return _foo; } set{ _foo = value; …
16 c#  coding-style 

5
Парное программирование и ISO 27001
Я работаю в команде программистов eXtreme и более 7 лет занимаюсь парным программированием в среде Windows. Когда мы впервые начали это делать, кто-то входил в систему со своими учетными данными Windows, и, следовательно, весь доступ к ресурсам домена и, в частности, контроль версий, был бы подотчетен этому пользователю Windows. В …

10
Предпочитая Python над C для алгоритмического программирования
Я изучал немного алгоритмов и смотрел сайты типа SPOJ.pl TopCoder и т. Д. Я видел, что программисты предпочитают C или C ++ обычно для большинства конкурсов алгоритмического программирования. Теперь у меня были некоторые проблемы в последнее время. Я немного знаю и C, и Python, и при попытке написать код мне …

6
Rails - замедляет ли рендеринг представлений использование?
У меня проблемы с производительностью на Rails 3.1.0 приложении , теперь я сделал изменения в своих запросах с помощью AR и так, но представления по-прежнему отнимают слишком много времени, я разделил представления, циклы и так далее по многим частям, которые отображаются динамически внутри представлений и внутри других частичных. Так что …

11
Почему все классы в .NET глобально наследуются от класса Object?
Мне очень интересно, какие преимущества дает подход «глобального корневого класса» для фреймворка. Проще говоря, по каким причинам .NET Framework был разработан, чтобы иметь один класс корневых объектов с общей функциональностью, подходящей для всех классов. В настоящее время мы разрабатываем новую платформу для внутреннего использования (платформу на платформе SAP), и все …

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

4
Могут ли приложения существенно влиять на энергопотребление?
Можно ли что-то сделать для одного приложения общего назначения, чтобы повлиять на энергопотребление устройства, на котором оно работает? Я не знаком с тем, как оптимизация отдельных приложений может повлиять на энергопотребление в целом, может кто-то объяснить, влияют ли различные подходы к написанию приложений на энергопотребление устройства, на котором они работают? …

9
Использовать конструктор или метод установки?
Я работаю над кодом пользовательского интерфейса, где у меня есть Actionкласс, что-то вроде этого - public class MyAction extends Action { public MyAction() { setText("My Action Text"); setToolTip("My Action Tool tip"); setImage("Some Image"); } } Когда этот класс Action был создан, предполагалось, что Actionкласс не будет настраиваемым (в некотором смысле …

3
Git: Исправление ошибки, затрагивающей две ветви
Я основываю свое Git-репо на успешной модели ветвления Git, и мне было интересно, что произойдет, если у вас возникнет такая ситуация: Скажем, я разрабатываю две ветви функций A и B, а для B требуется код из A. Узел X вносит ошибку в функцию A, которая влияет на ветку B, но …
16 git  bug  branching 

8
Способы сломать «Синдром совершенного программиста» [закрыто]
Трудно сказать, что здесь спрашивают. Этот вопрос является двусмысленным, расплывчатым, неполным, чрезмерно широким или риторическим, и на него нельзя дать разумный ответ в его нынешней форме. Чтобы получить разъяснения по этому вопросу, чтобы его можно было снова открыть, посетите справочный центр . Закрыто 7 лет назад . Я, наверное, не …

1
Как можно улучшить Java, чтобы он больше не нуждался в стирании типов?
Официальный Java учебник по дженериков объясняет тип стиранию и почему он был добавлен в компиляторе: Когда создается универсальный тип, компилятор переводит эти типы с помощью метода, называемого стиранием типа, - процесс, в котором компилятор удаляет всю информацию, связанную с параметрами типа и аргументами типа, внутри класса или метода. Стирание типа …
16 java  jvm 

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