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

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

9
Почему бы не выставить первичный ключ
В моем образовании мне говорили, что ошибочно предлагать пользователю фактические первичные ключи (не только ключи БД, но и все первичные средства доступа). Я всегда думал, что это проблема безопасности (потому что злоумышленник может попытаться прочитать что-то не свое). Теперь я должен проверить, разрешен ли пользователю доступ в любом случае, так …

11
Насколько часто команды пишут все своими силами? [закрыто]
В одном из недавних интервью я спросил интервьюеров: «Как вы оцениваете новые технологии и библиотеки (такие как SignalR) и вводите их в действие?». Они сказали, что не делают, что вместо этого они пишут все сами, чтобы им не пришлось полагаться ни на кого другого. Фирма не работает на правительство или …

16
Является ли совет старших программистов всегда использовать книги хорошей идеей? [закрыто]
Я младший разработчик и работаю в этой отрасли всего 5 лет. В моей нынешней компании есть старший, назовем его Infestus. Изредка мне дают возможность сиять и делать что-то совершенно новое с нуля. Одним из последних примеров было то, что мне пришлось сделать синглтон в многопоточном приложении. Я решил использовать этот …

9
Каков правильный баланс между целостностью кода и улучшением кода?
Недавно у меня была дискуссия с коллегой по поводу стиля кода. Он утверждал, что использование вами API-интерфейсов и общих шаблонов, которые вы используете, должно быть как можно более похожим с окружающим кодом, если не с базой кода в целом, так же, как если бы вы использовали внешний вид кода (позиционирование …

4
TDD - снаружи внутрь против снаружи
В чем разница между созданием приложения Outside In и Inside Out с использованием TDD? Это книги, которые я прочитал о TDD и модульном тестировании: Разработка через тестирование: на примере Разработка через тестирование: Практическое руководство: Практическое руководство Реальные решения для разработки высококачественных фреймворков PHP и разработка приложений на основе тестов в …

9
Должны ли методы класса вызывать свои собственные методы получения и установки?
Где я работаю, я вижу много классов, которые делают такие вещи: public class ClassThatCallsItsOwnGettersAndSetters { private String field; public String getField() { return field; } public void setField(String field) { this.field = field; } public void methodWithLogic() { setField("value"); //do stuff String localField = getField(); //do stuff with "localField" } …

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

12
Как сделать шаг назад и посмотреть на код свежим взглядом? [закрыто]
Я провел прошлый год как команда из одного человека, разрабатывающая приложение для богатых клиентов (35 000+ LoC, для чего это стоит). Это в настоящее время стабильно и в производстве. Однако я знаю, что мои навыки были ржавыми в начале проекта, поэтому, без сомнения, в коде есть серьезные проблемы. На данный …

1
Участие в Github (как найти проекты) [закрыто]
Я хочу внести свой вклад в проекты с открытым исходным кодом на Github. В основном, я бы хотел начать с исправления небольших ошибок или добавления новых функций. У меня нет конкретного проекта. Я бы хотел работать над проектами C, C ++, Python, .NET, Java и т. Д. Однако моя проблема …

6
Кто создал идею первой конструкции цикла?
while (1) { if (1+1==2) { print "Yes, you paid attention in Preschool!"; } else { print "Wait... I thought 1+1=2"; } } Как разработчик, мы все должны использовать циклы очень часто. Мы знаем это. Что мне было интересно, так это то, кто думал об идее иметь петли? На каком …
53 history  loops 

2
Почему void не разрешен как универсальный тип в C #
Каковы были дизайнерские решения, которые приводили доводы в пользу того, что они voidне конструируемы и не допускаются в качестве универсального типа? В конце концов, это просто специальная пустая ячейка, structкоторая позволила бы избежать общего PITA, состоящего из отдельных участников Funcи Actionделегатов. (C ++ допускает явные voidвозвраты и допускает voidв качестве …

5
Почему не XHTML5?
Итак, HTML5 - это большой шаг вперед, мне сказали. Последний шаг вперед, о котором я знаю, это введение XHTML. Преимущества были очевидны: простота, строгость, возможность использовать стандартные парсеры и генераторы XML для работы с веб-страницами и так далее. Как странно и расстраивает то, что HTML5 откатывает все это назад: снова …
53 html  html5  xml  xhtml 

5
Что означает «Ночные сборки»?
Я использовал проекты с открытым исходным кодом некоторое время и разрабатывал приложения с открытым исходным кодом, и время от времени я сталкивался со словами «Ночная сборка», и мне всегда было любопытно, что это на самом деле означает. Означает ли это буквально, что проекты выполняются исключительно как побочные проекты (обычно ночью, …

3
Лучшие практики для регистрации и трассировки в .NET
Я много читал о трассировке и ведении журнала, пытаясь найти золотое правило для лучших практик в этом вопросе, но его нет. Люди говорят, что хорошие программисты производят хорошую трассировку, но говорят об этом, и это должно происходить из опыта. Я также читал подобные вопросы здесь и через Интернет, и они …
53 .net  logging 

11
Получить 100 старших чисел из бесконечного списка
Один из моих друзей задал этот вопрос интервью - «Существует постоянный поток чисел, поступающих из некоторого бесконечного списка чисел, из которого вам необходимо поддерживать структуру данных, чтобы возвращать первые 100 старших чисел в любой заданный момент времени. Предположим, что все числа являются только целыми числами». Это просто, вам нужно держать …
53 numbers  big-o  puzzles 

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