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

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

4
Почему бы просто не заставить непараметрические запросы возвращать ошибку?
Внедрение SQL - это очень серьезная проблема безопасности, во многом потому, что ее легко понять неправильно: очевидный, интуитивно понятный способ создания запроса, включающего пользовательский ввод, делает вас уязвимым, а правильный путь для его смягчения требует, чтобы вы знали о параметризации запросы и SQL-инъекция в первую очередь. Мне кажется, что очевидный …
22 security  sql  rdbms 

5
Как я могу управлять пользователями мусора?
Я создал систему, которая, надеюсь, будет иметь много пользователей. Мы боимся, что наша база данных заполнится мусорными пользователями, которые берут имена пользователей с высоким спросом, или, возможно, они просто регистрируются и никогда не возвращаются. Я знаю, что это часто, я делаю это сам, так как у меня есть 3 аккаунта …

4
Говоря, как я могу сказать, что порядок временной сложности алгоритма равен O (N log N)?
Какой термин я могу использовать для описания чего-либо со сложностью O (N log N)? Например: O (1): постоянная O (log N): логарифмический O (N): линейный O (N log N): ?????? O (N 2 ): квадратичный O (N 3 ): кубический

8
Как я могу продвигать использование шаблона Builder в моей команде?
Наша кодовая база устарела, и новые программисты, как и я, быстро учатся делать это так, как это делается для единообразия. Думая, что мы должны с чего-то начать, я взял на себя реорганизацию класса держателей данных как такового: Удалил методы установки и сделал все поля final(я беру " finalхорошо" аксиоматически). Как …

2
Является ли владение объектами хорошей практикой?
Недавно в моей компании было предложено, чтобы один разработчик сосредоточился (и только один) на одной функции. Это означало бы что-то вроде того, чтобы отложить разработчика в сторону от обычной рутинной рутины, освободить его от некоторых других обязанностей (встреч и т. Д.), И этот человек был бы «единственным» ответственным за эту …

8
Как бороться с огромным количеством неудачных тестов? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 4 года назад . Я работаю над разработкой старого проекта, написанного на Java. У нас более …

3
Класс с членами, которые изменяются во время создания, но неизменны после
У меня есть алгоритм, который создает коллекцию объектов. Эти объекты являются изменяемыми во время создания, так как они начинаются с очень небольшого количества, но затем они заполняются данными в разных местах в алгоритме. После завершения алгоритма объекты никогда не должны быть изменены - однако они используются другими частями программного обеспечения. …
22 c# 

4
Так ли важен мерзавец «Золотое правило перебазирования»?
Недавно у меня была дискуссия с людьми, абсолютно не согласными со стратегией ребаз в ветвях функций GIT. Кажется, это приемлемый шаблон для использования rebase только для локальных, частных ветвей, но никогда не используйте его, когда над одной и той же функцией и ветвью работают несколько человек, согласно так называемому «Золотому …
22 git 

2
Должно ли приложение ASP.NET MVC напрямую использовать Entity Framework в качестве модели?
Я создаю свое первое приложение MVC в Visual Studio 2013 (MVC 5), и мне немного неясно, как лучше настроить мою модель. Я сгенерировал модель структуры сущности, используя код сначала из существующей базы данных. Моим первым инстинктом было создание некоторых промежуточных классов, которые были бы моделью, используемой представлениями, и чтобы эти …

2
Почему Scala возвращается, но не ломается и продолжает
Scala не имеет breakили continue, поэтому некоторое циклическое поведение требует немного больше размышлений. Раннее завершение цикла требует хвостовой рекурсии, исключений или scala.util.control.Breaks(которые используют исключения). Основанием для этого является то, что gotoони , как и они, представляют собой потоковые конструкции, которые затеняют поток и могут быть выполнены лучшими, менее удивительными способами. …

3
Существуют ли ОО-языки без наследования?
Во время сегодняшнего обзора кода мой коллега сказал что-то интересное: prototypeполезно только тогда, когда вам нужно наследование - и когда наследование когда-либо является хорошей идеей ? Я подумал об этом и понял, что обычно использую наследование, чтобы обойти код, который изначально был плохо спроектирован. Современный ОО-стиль предпочитает композицию, а не …


5
Стоит ли оставаться независимым от реализации?
У меня есть проект, над которым я сейчас работаю, использующий Tomcat, Spring 4, Spring Security, MySQL и JPA с Hibernate. Я выбрал JPA с той точки зрения, что предполагается сделать замену базовой реализации поставщиков ORM беспроблемной или, по крайней мере, менее болезненной. Я бы сказал, что это умственное использование спецификации …

4
Если MVC - это разделение интересов, то почему был введен синтаксис Razor?
Мой вопрос связан с шаблоном проектирования MVC и синтаксисом Razor, представленным Microsoft. При изучении шаблона проектирования MVC мне сказали, что идея основана на принципе, известном как разделение проблем . Но Razor Syntax позволяет нам использовать C # в Views напрямую. Разве это не пересечение проблем?

2
Самый чистый способ сообщить об ошибках в Haskell
Я работаю над изучением Haskell, и я столкнулся с тремя различными способами устранения ошибок в функциях, которые я пишу: Я могу просто написать error "Some error message.", что выдает исключение. Я могу вернуть свою функцию Maybe SomeType, где я могу или не могу вернуть то, что хотел бы вернуть. Я …

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