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

47
Каковы преимущества безопасности системы типов?

В JavaScript: Хорошие части Дугласа Крокфорда он упоминает в своей главе о наследовании: Другое преимущество классического наследования заключается в том, что оно включает в себя спецификацию системы типов. Это в основном освобождает программиста от необходимости писать явные операции приведения,...

47
Являются ли пулы goroutine go-langs просто зелеными нитями?

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

47
Стратегия создания уникальных и безопасных идентификаторов для использования в «иногда автономном» веб-приложении

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

47
Почему C # допускает свойства в интерфейсах?

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

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

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

47
Как именно создается абстрактное синтаксическое дерево?

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

47
Зачем разрабатывать современный язык без механизма обработки исключений?

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

47
Почему метод не должен выдавать несколько типов проверенных исключений?

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

47
Как я могу убедительно спорить против дублирования столбцов базы данных?

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

47
Какова фактическая ценность согласованного стиля кода

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

47
Код состояния HTTP для «Обработки еще»

Я создаю RESTful API, который поддерживает постановку в очередь длительных задач для возможной обработки. Типичный рабочий процесс для этого API: Пользователь заполняет форму Клиент отправляет данные в API API возвращает 202 Принято Клиент перенаправляет пользователя на уникальный URL для этого...

47
Являются ли фиксированные даты поставки элементов «гибким» способом работы?

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

47
Почему цикл while (true) в конструкторе действительно плох?

Хотя это и общий вопрос, моя сфера - скорее C #, так как я знаю, что языки, подобные C ++, имеют различную семантику в отношении выполнения конструктора, управления памятью, неопределенного поведения и т. Д. Кто-то задал мне интересный вопрос, на который мне было нелегко ответить. Почему (или это...

47
Почему кодирование имен аргументов в именах функций более распространено? [закрыто]

В Чистом коде автор приводит пример assertExpectedEqualsActual(expected, actual) против assertEquals(expected, actual) с первым утверждалось, что это более ясно, потому что это устраняет необходимость помнить, куда идут аргументы и возможное неправильное использование, которое проистекает из этого....

47
Избегать "goto" вуду?

У меня есть switchструктура, которая должна обрабатывать несколько случаев. switchРаботает над enumкоторой ставит вопрос о дублировании кода через объединенные значения: // All possible combinations of One - Eight. public enum ExampleEnum { One, Two, TwoOne, Three, ThreeOne, ThreeTwo, ThreeOneTwo,...

47
Считается ли чистая запомненная функция чистой?

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

46
Языки в резюме: лучше ли ставить «C / C ++» или «C, C ++»? [закрыто]

Я заканчиваю через пару недель, и мое резюме (как и ожидалось) перечисляет языки, с которыми я имел опыт работы. Ранее я поставил "C / C ++" , однако тогда у меня не было такого большого опыта работы с этими двумя языками, как сейчас. Теперь, когда я официально выучил эти два языка, для меня (и...

46
Как найти наставника по программированию? [закрыто]

Я решил научиться программированию. Я читаю SO в течение нескольких дней, и я думаю, что начну с C ++, так как я читаю некоторые статьи. Я немного знаю о циклах, массивах, логике программы и объектах, и мне нужен кто-то, кто бы осмотрел меня и помог мне с небольшими вопросами, которые возникают при...

46
Цель `вернуть себя` из метода класса?

Я столкнулся с чем-то вроде этого в проекте с открытым исходным кодом. Методы, которые изменяют атрибуты экземпляра, возвращают ссылку на экземпляр. Какова цель этой конструкции? class Foo(object): def __init__(self): self.myattr = 0 def bar(self): self.myattr += 1 return self...