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

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

1
Модуль, требующий внедрения зависимостей в Javascript
В эти дни у меня возник вопрос: Идет ли то, как мы, Javascript, против всего, что считается хорошей практикой в ​​традиционной разработке программного обеспечения? У меня есть ряд вопросов / замечаний, связанных с этим утверждением, но для того, чтобы уважать формат StackExchange, будет лучше, если я разделю их на разные …

4
Как обработать TODO в запросе на включение?
Этот вопрос перенесен из Exchange Stack Exchange для обеспечения качества программного обеспечения и тестирования, поскольку на него можно ответить в Exchange Stack Exchange. Мигрировал в прошлом году . Когда я просматриваю изменения в запросе на удаление, я иногда натыкаюсь на комментарий с пометкой «TODO», которая может быть там по разным …

7
Девяносто девяносто правило на практике
Первые 90 процентов кода составляют первые 90 процентов времени разработки. Оставшиеся 10 процентов кода составляют остальные 90 процентов времени разработки. - Том Каргилл, Bell Labs Что это означает на практике? Что программисты делают значительный объем работы и что они дают 180% от себя или?

8
Действие пользователя один раз в день: 24-часовой сброс против полуночного сброса [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он был сосредоточен только на одной проблеме, отредактировав этот пост . Закрыто 12 месяцев назад . Когда пользователь может выполнять действие только один раз в день, например, получая …

7
Следует ли избегать STL в больших приложениях?
Это может звучать странно, но в моем отделе у нас возникают проблемы со следующей ситуацией: Мы работаем здесь над серверным приложением, которое становится все больше и больше, даже в тот момент, когда мы рассматриваем его разделение на разные части (файлы DLL), динамическую загрузку при необходимости и последующую выгрузку, чтобы иметь …
24 c++  stl 

10
Параметр для контроля, выдавать ли исключение или возвращать ноль - хорошая практика?
Я часто сталкиваюсь с методами / функциями, которые имеют дополнительный логический параметр, который управляет тем, будет ли выброшено исключение в случае сбоя или будет возвращено значение null. Уже ведутся дискуссии о том, какой из них является лучшим выбором в этом случае, поэтому давайте не будем здесь останавливаться на этом. Смотрите, …
24 exceptions 

6
Является ли читабельность допустимой причиной не использовать const в (справочных) параметрах?
При написании некоторых функций я нашел ключевое слово const в таких параметрах: void MyClass::myFunction(const MyObject& obj,const string& s1,const string& s2,const string& s3){ } часто вызывает разделение строки на 2 строки в IDE или vim, поэтому я хочу удалить все ключевые слова const в параметрах: void MyClass::myFunction(MyObject& obj,string& s1,string& s2,string& s3){ …

4
Обработка исключений в функциональном стиле
Мне сказали, что в функциональном программировании нельзя бросать и / или наблюдать исключения. Вместо этого ошибочный расчет должен оцениваться как нижнее значение. В Python (или других языках, которые не полностью поддерживают функциональное программирование) можно возвращать None(или другую альтернативу, рассматриваемую как нижнее значение, хотя Noneи не строго соблюдающее определение), когда что-то …

6
Зачем вам когда-либо «ждать» метод, а затем немедленно запрашивать его возвращаемое значение?
В этой статье MSDN приведен следующий пример кода (слегка отредактированный для краткости): public async Task<ActionResult> Details(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Department department = await db.Departments.FindAsync(id); if (department == null) { return HttpNotFound(); } return View(department); } FindAsyncМетод возвращает Departmentобъект по его ID, и …
24 c#  .net  asp.net-mvc  async 

10
Является ли это анти-паттерном, если свойство класса создает и возвращает новый экземпляр класса?
У меня есть класс с именем, Headingкоторый делает несколько вещей, но он также должен иметь возможность возвращать значение, противоположное текущему значению заголовка, которое, в конечном итоге, должно использоваться посредством создания нового экземпляра самого Headingкласса. У меня может быть простое свойство, вызываемое reciprocalдля возврата противоположного заголовка текущего значения, а затем вручную …

9
Могу ли я безопасно игнорировать порядок байтов в сети?
Я разрабатываю приложение сервер-клиент, в котором клиент будет работать в Windows, а сервер, вероятно, в Linux. Возможно, я позже перенесу клиента на Mac и Linux, но пока нет. Все домашние компьютеры в наши дни работают с прямым порядком байтов. Некоторое время я гуглил, но не смог найти список устройств, работающих …

5
Как смоделировать циклическую ссылку между неизменяемыми объектами в C #?
В следующем примере кода у нас есть класс для неизменяемых объектов, который представляет комнату. Север, Юг, Восток и Запад представляют выходы в другие комнаты. public sealed class Room { public Room(string name, Room northExit, Room southExit, Room eastExit, Room westExit) { this.Name = name; this.North = northExit; this.South = southExit; …

8
Не было бы полезно писать тесты во время проверки кода?
У моего коллеги возникла идея, которая мне показалась интересной. Разве не было бы полезно писать тесты во время проверки кода человеком, который делает проверку, предполагая, что мы не делаем TDD? Для этого вопроса предположим, что это чисто академический проект, поэтому на карту не ставится жизнь. Причем в команде 4 человека. …

2
Фильтрация циклов foreach по условию where против продолжения guard
Я видел, как некоторые программисты используют это: foreach (var item in items) { if (item.Field != null) continue; if (item.State != ItemStates.Deleted) continue; // code } вместо того, где я обычно использовал бы: foreach (var item in items.Where(i => i.Field != null && i.State != ItemStates.Deleted)) { // code } …

9
Инъекция зависимости: должен ли я использовать фреймворк?
Недавно я работал над проектом Python, в котором мы интенсивно делали внедрение зависимостей (потому что мы должны сделать так, чтобы приложение было тестируемым), но мы не использовали какую-либо инфраструктуру. Временами было немного утомительно связывать все зависимости вручную, но в целом все работало замечательно. Когда объект должен был быть создан в …

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