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

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

6
Считается ли чистая запомненная функция чистой?
Допустим, fn(x)это чистая функция, которая делает что-то дорогое, например, возвращает список основных факторов x. И скажем, мы запоминаем версию той же самой функции memoizedFn(x). Он всегда возвращает один и тот же результат для заданного ввода, но поддерживает частный кэш предыдущих результатов для повышения производительности. Формально говоря, memoizedFn(x)считается чистым? Или есть …

9
Почему цикл while (true) в конструкторе действительно плох?
Хотя это и общий вопрос, моя сфера - скорее C #, так как я знаю, что языки, подобные C ++, имеют различную семантику в отношении выполнения конструктора, управления памятью, неопределенного поведения и т. Д. Кто-то задал мне интересный вопрос, на который мне было нелегко ответить. Почему (или это вообще?) Считается …
47 c#  architecture 

8
Почему кодирование имен аргументов в именах функций более распространено? [закрыто]
В Чистом коде автор приводит пример assertExpectedEqualsActual(expected, actual) против assertEquals(expected, actual) с первым утверждалось, что это более ясно, потому что это устраняет необходимость помнить, куда идут аргументы и возможное неправильное использование, которое проистекает из этого. Тем не менее, я никогда не видел пример первой схемы именования в каком-либо коде и …
47 clean-code 

9
Являются ли фиксированные даты поставки элементов «гибким» способом работы?
Нам постоянно говорят, что мы будем гибко работать над новым проектом со стороны высшего руководства. Они настроили стенды, планирование спринта, ретроспективы и т. Д. Однако, теперь они придумали план, детализирующий всю работу, которую они хотят, чтобы мы выполнили, с датами по каждому элементу и снова продемонстрировали даты с тем, что …

12
Избегать "goto" вуду?
У меня есть switchструктура, которая должна обрабатывать несколько случаев. switchРаботает над enumкоторой ставит вопрос о дублировании кода через объединенные значения: // All possible combinations of One - Eight. public enum ExampleEnum { One, Two, TwoOne, Three, ThreeOne, ThreeTwo, ThreeOneTwo, Four, FourOne, FourTwo, FourThree, FourOneTwo, FourOneThree, FourTwoThree, FourOneTwoThree // ETC. } …

7
Какова фактическая ценность согласованного стиля кода
Я являюсь частью команды консультантов, внедряющих новое решение для клиента. Я отвечаю за большинство обзоров кода на клиентской кодовой базе (React и javascript). Я заметил, что некоторые члены команды используют уникальные шаблоны кодирования до такой степени, что я могу выбрать файл случайным образом, чтобы сказать, кто был автором одного стиля. …

4
Код состояния HTTP для «Обработки еще»
Я создаю RESTful API, который поддерживает постановку в очередь длительных задач для возможной обработки. Типичный рабочий процесс для этого API: Пользователь заполняет форму Клиент отправляет данные в API API возвращает 202 Принято Клиент перенаправляет пользователя на уникальный URL для этого запроса ( /results/{request_id}) ~ ~ В конце концов, Клиент снова …
47 rest  http 

7
Как я могу убедительно спорить против дублирования столбцов базы данных?
Я начал работать в новой организации, и одним из шаблонов, которые я видел в базе данных, является дублирование полей, чтобы упростить написание запросов для бизнес-аналитиков. Мы используем Django и его ORM. В одном случае мы сохраняем объект MedicalRecordNumber с уникальной строкой, идентифицирующей пациента в определенном контексте. У нас есть объекты …

4
Почему метод не должен выдавать несколько типов проверенных исключений?
Мы используем SonarQube для анализа нашего Java-кода, и у него есть следующее правило (установлено как критическое): Публичные методы должны выдавать не более одного проверенного исключения Использование проверенных исключений вынуждает вызывающие методы обращаться с ошибками, распространяя их или обрабатывая. Это делает эти исключения полностью частью API метода. Чтобы обеспечить разумную сложность …

4
Как именно создается абстрактное синтаксическое дерево?
Я думаю, что понимаю цель AST, и раньше я построил пару древовидных структур, но не AST. Я в основном сбит с толку, потому что узлы - это текст, а не число, поэтому я не могу придумать хороший способ ввода токена / строки, когда я разбираю некоторый код. Например, когда я …

3
Почему C # допускает свойства в интерфейсах?
В C # следующий код действителен interface I{ int property{get;set;} } Что не имеет никакого смысла для меня. Это, кажется, нарушает один из самых важных принципов интерфейсов: отсутствие состояния (другими словами, нет полей). Разве свойство не создает неявное приватное поле? Разве это не очень плохо для интерфейсов?

9
Вообще говоря, лучше ли сделать все функциональные части или заставить пользовательский интерфейс работать в первую очередь - или их сочетание?
Вообще говоря, лучше ли сделать все функциональные части или заставить пользовательский интерфейс работать в первую очередь - или их сочетание? Предполагая, что вы работаете над чем-то большим, общепринятая практика - заставить все функциональные блоки сбора данных работать перед любым пользовательским интерфейсом, заставить весь пользовательский интерфейс работать по одному за раз, …

8
Зачем разрабатывать современный язык без механизма обработки исключений?
Многие современные языки предоставляют богатые функции обработки исключений , но язык программирования Apple Swift не предоставляет механизм обработки исключений . Несмотря на то, что я погружен в исключения, мне трудно понять, что это значит. Swift имеет утверждения и, конечно, возвращает значения; но мне сложно представить, как мой образ мышления, основанный …

1
Являются ли пулы goroutine go-langs просто зелеными нитями?
Комментатор здесь предлагает следующую критику зеленых нитей: Первоначально я был продан на модели N: M как средство программирования, управляемого событиями, без ада обратного вызова. Вы можете написать код, который выглядит как боль старый процедурный код, но под ним есть магия, которая использует переключение задач в пользовательском пространстве всякий раз, когда …

2
Стратегия создания уникальных и безопасных идентификаторов для использования в «иногда автономном» веб-приложении
У меня есть веб-проект, который позволяет пользователям работать как в сети, так и в автономном режиме, и я ищу способ создания уникальных идентификаторов для записей на стороне клиента. Я хотел бы, чтобы подход работал, когда пользователь находится в автономном режиме (то есть не может общаться с сервером), гарантированно уникален и …

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