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

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

16
Какие простые методы вы используете для повышения производительности?
Я говорю о том, как мы пишем простые подпрограммы, чтобы повысить производительность, не делая трудным для чтения ваш код ... например, это типично для того, что мы узнали: for(int i = 0; i < collection.length(); i++ ){ // stuff here } Но я обычно делаю это, когда foreachне применимо: for(int …

10
Лучшие практики и этикет для настройки уведомлений по электронной почте
Этот вопрос был перенесен из переполнения стека, потому что на него можно ответить в Software Engineering Stack Exchange. Мигрировал 8 лет назад . Если вы собираетесь настроить оповещения по электронной почте для клиентов вашего сайта, на которые вы хотите подписаться, какие правила этикета следует соблюдать? Я могу думать о нескольких …

4
Почему JSX хорош, когда JSP скриптлеты плохи?
React.js предоставляет JSX в виде XHTML-подобного синтаксиса для построения дерева компонентов и элементов. JSX компилируется в Javascript, и вместо предоставления циклов или условных выражений в собственно JSX вы используете Javascript напрямую: <ul> {list.map((item) => <li>{item}</li> )} </ul> Что я еще не смог объяснить, так это почему это считается хорошим, если …

5
OAuth2 ROPC против базовой аутентификации для публичных API REST?
Особый случай использования, который меня интересует, - это аутентификация клиентов REST по общедоступным конечным точкам сервера (например, общедоступный API REST). Самым простым решением здесь является Basic Auth . Но я часто слышу, что OAuth2 рекламируется как превосходное решение для аутентификации практически во всех обстоятельствах. Дело в том, что единственным типом …
21 rest  oauth  https 

6
Вообще стоит ли использовать виртуальные функции, чтобы избежать ветвления?
Кажется, что есть грубые эквиваленты инструкций, чтобы приравнять к стоимости пропущенных веток виртуальные функции имеют аналогичный компромисс: инструкция против пропуска кэша данных барьер оптимизации Если вы посмотрите на что-то вроде: if (x==1) { p->do1(); } else if (x==2) { p->do2(); } else if (x==3) { p->do3(); } ... У вас …
21 c++  performance 

4
Почему я должен использовать MSBuild вместо файлов Visual Studio Solution?
Мы используем TeamCity для непрерывной интеграции и собираем наши релизы с помощью файла решения (.sln). В прошлом я использовал Makefiles для различных систем, но никогда не использовал msbuild (я слышал, что это похоже на Makefiles + XML mashup). Я видел много сообщений о том, как использовать msbuild напрямую вместо файлов …

2
Как размер стека и кучи ограничен ОС?
Примечание : если вам нужно рассмотреть конкретную ОС, чтобы иметь возможность ответить, рассмотрите Linux. Всякий раз, когда я запускаю программу, ей предоставляется пространство для виртуальной памяти, с областью для ее стека и одной для ее кучи. Вопрос 1 : имеют ли стек и куча ограничение по статическому размеру (например, 2 …
21 linux  memory  stack  heap 

1
Время Нода против Время Йода?
В Руководстве пользователя Noda Time в разделе обоснования говорится: публичный API был в значительной степени переписан, чтобы обеспечить API, более идиоматичный для .NET, а также исправить некоторые решения Joda Time, которые команда Noda Time считает «неудачными». (Некоторые из них просто из-за разных целей; другие я бы поспорил, это действительно ошибки.) …

5
Какая мотивация стоит за TypeScript?
Хотите улучшить этот пост? Предоставьте подробные ответы на этот вопрос, включая цитаты и объяснение того, почему ваш ответ правильный. Ответы без достаточной детализации могут быть отредактированы или удалены. У нас был JavaScript, затем у нас был Flash, затем был Silverlight, а затем HTML5 передал их всем. Так что же мотивирует …

3
Когда писать явный оператор возврата в Groovy?
В данный момент я работаю над проектом Groovy / Grails (в котором я довольно новичок), и мне интересно, будет ли хорошей практикой опускать returnключевое слово в методах Groovy. Насколько я знаю, вы должны явно вставить ключевое слово, т. Е. Для охранных предложений, поэтому следует ли использовать его также везде? На …

6
Эффективное использование блока try / catch?
Должны ли блоки catch использоваться для написания логики, например, для управления потоком и т. Д.? Или просто для того, чтобы бросать исключения? Влияет ли это на эффективность или удобство сопровождения кода? Каковы побочные эффекты (если они есть) написания логики в блоке catch? РЕДАКТИРОВАТЬ: Я видел класс Java SDK, в котором …

3
Отражение: использование отражения все еще «плохое» или «медленное»? Что изменилось с отражением с 2002 года?
Я заметил, что, имея дело с выражениями или деревьями выражений, я часто использую отражение, чтобы устанавливать и получать значения в свойствах и в том, что у вас есть. Мне пришло в голову, что использование отражения, похоже, становится все более распространенным. Такие вещи, как DataAnotations для валидации, атрибуты тяжелых ORM и …
21 .net  reflection 

3
Github-подобные «запросы на получение» без Github
Я работаю аналитиком в финансовом учреждении, которое из-за чувствительности данных не будет хранить данные в облаке. Тем не менее, я добился некоторого успеха, заставив мою команду использовать Git для управления кодом. Мне было интересно, есть ли какой-нибудь способ реализовать Github-подобные запросы на нашем собственном сервере. Особая особенность, которая меня интересует, …
21 git  code-reviews 

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

4
Как радикально улучшить покрытие кода?
Мне поручено получить устаревшее приложение под модульным тестом. Сначала немного информации о приложении: это 600-килобайтная кодовая база Java RCP с этими серьезными проблемами. массовое дублирование кода нет инкапсуляции, большая часть личных данных доступна извне, некоторые бизнес-данные также являются одиночными, поэтому их можно изменять не только извне, но и повсюду. нет …

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