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

39
Документация в ООП должна избегать указания, выполняет ли «получатель» какие-либо вычисления?

Программа CS моей школы избегает каких-либо упоминаний об объектно-ориентированном программировании, поэтому я немного читал сам, чтобы дополнить его - в частности, конструкцию объектно-ориентированного программного обеспечения Бертрана Мейера. Мейер неоднократно подчеркивал, что классы должны...

39
Обозначения диаграмм классов UML: различия между ассоциацией, агрегацией и композицией

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

39
Почему у большинства языков программирования есть специальное ключевое слово или синтаксис для объявления функций? [закрыто]

Большинство языков программирования (как динамически, так и статически типизированных) имеют специальные ключевые слова и / или синтаксис, которые выглядят значительно иначе, чем объявления переменных для объявления функций. Я вижу функции как объявление другой именованной сущности: Например в...

39
Жесткое кодирование строк, которые никогда не изменятся

Поэтому, пытаясь написать программу для спряжения глаголов (алгоритмически, а не через набор данных) для французского языка, я столкнулся с небольшой проблемой. Алгоритм спряжения глаголов на самом деле довольно прост для 17-ти или около того случаев глаголов и работает по определенному шаблону для...

39
Почему я должен использовать «функциональные операции» вместо цикла for?

for (Canvas canvas : list) { } NetBeans предлагает мне использовать «функциональные операции»: list.stream().forEach((canvas) -> { }); Но почему это предпочтительнее ? Во всяком случае, труднее читать и понимать. Вы звоните stream(), затем forEach()используете лямбда-выражение с параметром...

39
Перевод внешних данных на язык программирования

Я не уверен, что делать со следующим: Мы берем данные из внешнего инструмента в нашем собственном инструменте. Эти данные написаны на голландском языке. Мы пишем наш Java-код на английском языке. Должны ли мы затем перевести этот голландский на английский или оставить его на голландском? Например,...

39
Считается ли это анти-паттерном для чтения из STDIN из библиотеки?

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

39
Инвертирование оператора IF

Так что я программирую уже несколько лет, а недавно начал больше использовать ReSharper. Одна вещь, которую ReSharper всегда предлагает мне, - это «инвертировать» if, чтобы уменьшить вложенность ». Допустим, у меня есть этот код: foreach (someObject in someObjectList) { if(someObject != null) {...

39
Это неправильно использовать логический параметр для определения значений?

Согласно Неправильно ли использовать логический параметр для определения поведения? Я знаю важность избегания использования логических параметров для определения поведения, например: оригинальная версия public void setState(boolean flag){ if(flag){ a(); }else{ b(); } c(); } новая версия: public...

39
Обеспечение возможности поиска кода с помощью глобально уникальных идентификаторов сообщений

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

39
Должен ли REST API возвращать 500 Internal Server Error, чтобы указать, что запрос ссылается на несуществующий объект?

Я работаю с REST API, который находится на сервере, который обрабатывает данные для множества устройств IoT. Моя задача - выполнить запрос к серверу с помощью API для сбора конкретной информации о производительности указанных устройств. В одном случае я получаю список доступных устройств и их...

39
Зачем наследовать класс, а не добавлять свойства?

Я нашел дерево наследования в нашей (довольно большой) базе кода, которая выглядит примерно так: public class NamedEntity { public int Id { get; set; } public string Name { get; set; } } public class OrderDateInfo : NamedEntity { } Из того, что я мог бы собрать, это прежде всего используется, чтобы...

39
Является ли новое булево поле лучше нулевой ссылки, когда значение может отсутствовать?

Например, предположим, у меня есть класс Member, который имеет lastChangePasswordTime: class Member{ . . . constructor(){ this.lastChangePasswordTime=null, } } у которого lastChangePasswordTime может отсутствовать, потому что некоторые участники никогда не могут менять свои пароли. Но в...

39
Почему SQL не является более подходящим? [закрыто]

Все знают, что новые разработчики пишут длинные функции. По мере продвижения вы становитесь лучше, разбивая свой код на более мелкие части, и опыт учит вас тому, как это делать. Введите SQL. Да, способ мышления кода SQL отличается от процедурного мышления кода, но этот принцип кажется вполне...

38
Насколько важна способность к прикосновению? [закрыто]

Вы научились печатать на сенсорном экране, когда уже работали программистом? Если да, то как это повлияло на вашу производительность? Или вы все еще не можете прикоснуться к типу и думаете, что это вас сдерживает? По словам Стива Йегге, это важно, Лично я не заметил большой разницы, возможно,...

38
Какой худший вопрос тебе задавали на собеседовании? [закрыто]

Это не обязательно должно быть связано с программированием или разработкой программного обеспечения, а просто спросить во время интервью о работе, связанной с ИТ. Я знаю, что некоторые вопросы «левого поля» предназначены для того, чтобы увидеть, как кандидат справляется с неожиданными и новыми...

38
Важен ли ваш собственный сайт? [закрыто]

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

38
Использование утверждений против создания исключений?

Часто, когда я пишу функцию, я хочу убедиться, что входные данные для нее действительны, чтобы как можно раньше обнаружить такие ошибки (я считаю, что это называется предварительными условиями). Когда предварительное условие не выполняется, я всегда выбрасываю исключение. Но я начинаю сомневаться в...

38
Что такое абстракция? [закрыто]

Существует ли общепринятое определение того, что такое абстракция программирования , используемая программистами? [Примечание: программирование абстракции не следует путать со словарными определениями для слова «абстракция».] Существует ли однозначное или даже математическое определение? Каковы...