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

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

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

10
Как проверить тесты?
Мы проверяем наш код, чтобы сделать его более правильным (на самом деле, менее вероятно, что он будет неправильным ). Тем не менее, тесты также являются кодом - они также могут содержать ошибки. И если ваши тесты содержат ошибки, они вряд ли улучшат ваш код. Я могу думать о трех возможных …

14
Действительно ли TDD работает для сложных проектов?
Я задаю этот вопрос относительно проблем, с которыми я столкнулся во время проектов TDD. Я заметил следующие проблемы при создании модульных тестов. Генерация и ведение фиктивных данных Поддерживать большие фиктивные данные сложно и нереально. Еще сложнее, когда структура базы данных претерпевает изменения. Тестирование GUI Даже с MVVM и способностью тестировать …
53 tdd 

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

1
Соглашения о присвоении имен протоколу Swift [закрыто]
Исходя из в основном фона c #, я привык использовать термин «интерфейс» для описания объекта без реализации, определяющей поведение. В c # соглашение заключается в добавлении имен интерфейсов с помощью «I», например IEnumerable, и т. Д. Конечно, у концепции разные названия на разных языках. В Swift та же концепция называется …

2
Что такое код «зависти к особенностям» и почему он считается запахом кода?
Этот вопрос о SO говорит о том, чтобы исправить то, что OP считал кодом зависти к функциям . Другой пример, где я видел, как цитируется эта изящная фраза, - недавно полученный ответ здесь, в programmers.SE. Несмотря на то, что я добавил комментарий к этому ответу с просьбой предоставить информацию, я …

7
Индивидуальный разработчик против командного разработчика: я должен двигаться дальше? [закрыто]
Я работаю сольным разработчиком в небольшой компании. Там более чем достаточно работы, но то же самое не относится к деньгам. Таким образом, я не буду видеть новых коллег в ближайшем будущем. Я несу ответственность за абсолютно все, что связано с ИТ-операциями. Это включает разработку и обслуживание программного обеспечения, используемого внутри …

5
Должен ли я передать имена файлов, которые будут открыты, или открыть файлы?
Предположим, у меня есть функция, которая работает с текстовым файлом - например, читает из него и удаляет слово «а». Я мог бы либо передать ему имя файла и обработать открытие / закрытие в функции, либо я мог бы передать ему открытый файл и ожидать, что тот, кто его вызовет, будет …

6
Является ли использование лямбда-выражений, когда это возможно, в java хорошей практикой?
Недавно я освоил лямбда-выражение, которое было введено в java 8. Я обнаружил, что всякий раз, когда я использую функциональный интерфейс, я склонен всегда использовать лямбда-выражение вместо создания класса, реализующего функциональный интерфейс. Это считается хорошей практикой? Или их ситуации, когда использование лямбды для функционального интерфейса не подходит?
52 java  lambda 

4
Какова точная изобретательность Unix трубы
Я слышал историю о том, как Дуглас Маклрой придумал концепцию и как Кен Томпсон реализовал ее за одну ночь. Насколько я понимаю, pipe - это системный вызов, который разделяет часть памяти между двумя процессами, где один процесс пишет, а другой читает. Как человек, который не знаком с внутренностями ОС или …

9
Сгенерировать исключение или дать сбою
Мне интересно, есть ли плюсы и минусы против этого стиля: private void LoadMaterial(string name) { if (_Materials.ContainsKey(name)) { throw new ArgumentException("The material named " + name + " has already been loaded."); } _Materials.Add( name, Resources.Load(string.Format("Materials/{0}", name)) as Material ); } Этот метод должен nameбыть запущен только один раз. _Materials.Add()сгенерирует …
52 exceptions 

11
Как избежать каскадного рефакторинга?
У меня есть проект. В этом проекте я хотел реорганизовать его, чтобы добавить функцию, и я рефакторинг проекта, чтобы добавить функцию. Проблема в том, что когда я закончил, оказалось, что мне нужно было сделать небольшое изменение интерфейса, чтобы приспособиться к нему. Так что я сделал изменения. И тогда класс потребления …

5
Почему умные указатели подсчета ссылок так популярны?
Как я вижу, умные указатели широко используются во многих реальных проектах C ++. Хотя некоторые интеллектуальные указатели, очевидно, полезны для поддержки RAII и передачи прав собственности, также существует тенденция использования общих указателей по умолчанию в качестве способа «сборки мусора» , так что программисту не нужно слишком много думать о распределении …

6
Как мне внедрить функцию «самоуничтожения» в бесплатную пробную версию моего программного обеспечения?
Существует постоянный аргумент о бесплатной пробной версии по сравнению с моделью freemium (то есть бесплатной версией их программного обеспечения с ограниченными и / или урезанными функциями), позволяющей потенциальным клиентам и пользователям тестировать свой продукт. На основании моих исследований я могу сделать вывод, что бесплатная пробная версия - это способ как …

14
Будет ли изучение какого-либо естественного языка, в частности, вашей карьере программиста? [закрыто]
Кажется очевидным, что английский является доминирующим международным языком для программирования, основанным на предыдущих вопросах P.SE (хотя комментарий с высоким голосом правильно указывает на то, что задание такого вопроса на преимущественно английском сайте искажает результаты). Однако есть ли польза в изучении иностранного языка для разработки программного обеспечения? Например, есть ли у …

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