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

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

10
Это хорошая практика, чтобы заменить деление с умножением, когда это возможно?
Всякий раз, когда мне нужно деление, например, проверка условий, я хотел бы реорганизовать выражение деления на умножение, например: Оригинальная версия: if(newValue / oldValue >= SOME_CONSTANT) Новая версия: if(newValue >= oldValue * SOME_CONSTANT) Потому что я думаю, что можно избежать: Деление на ноль Переполнение, когда oldValueочень мало Это правильно? Есть ли …

6
Исправление орфографической ошибки в имени метода
Один из методов, которые я обычно использую в нашей кодовой базе, написан с ошибками (и это предшествовало мне). Это действительно раздражает меня не просто потому, что оно введено неправильно, но, что более важно, оно заставляет меня ВСЕГДА неправильно вводить имя при первом наборе (а затем я должен помнить: «О, верно, …

10
Почему операторы if if else else практически никогда не представлены в табличном формате?
if i>0 : return sqrt(i) elif i==0: return 0 else : return 1j * sqrt(-i) В.С. if i>0: return sqrt(i) elif i==0: return 0 else: return 1j * sqrt(-i) Учитывая приведенные выше примеры, я не понимаю, почему я практически никогда не вижу первый стиль в базах кода. Для меня вы …

7
Разработка REST API по URI против строки запроса
Допустим, у меня есть три ресурса, которые связаны следующим образом: Grandparent (collection) -> Parent (collection) -> and Child (collection) Выше показано отношение между этими ресурсами примерно так: каждый дедушка может сопоставить с одним или несколькими родителями. Каждый родитель может сопоставить одному или нескольким детям. Мне нужна возможность поддержки поиска по …
73 design  rest  api 

7
Должен ли я идти по обычному пути или рано провалиться?
Из книги « Полный код» приводится следующая цитата: «Положите нормальный случай после, ifа не после else» Это означает, что в elseслучае должны быть указаны исключения / отклонения от стандартного пути . Но Прагматичный Программист учит нас «рано падать» (стр. 120). Какому правилу я должен следовать?
73 design 


4
JavaScript интерпретируется как дизайн?
Я осторожно задаю этот вопрос, потому что он может показаться слишком разборчивым. Я только что открыл JavaScript: Полное руководство, и в нем говорится о первой странице главы 1 «JavaScript - это высокоуровневый, динамический, нетипизированный интерпретируемый язык программирования» Поэтому я должен считать, что интерпретируемая часть является требованием в спецификации языка, или …
73 javascript 

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

10
Никогда не использовать строки в Java? [закрыто]
Я наткнулся на запись в блоге, в которой не рекомендуется использовать Strings в Java для того, чтобы в вашем коде отсутствовала семантика, предлагая вместо этого использовать классы тонкой оболочки. Это примеры «до» и «после», приведенные в данной статье для иллюстрации: public void bookTicket( String name, String firstName, String film, int …

7
Должны ли имена интерфейсов начинаться с префикса «I»?
Я читал « Чистый код » Роберта Мартина, чтобы, надеюсь, стать лучшим программистом. Хотя до сих пор ни один из них не был действительно новаторским, это заставило меня по-другому думать о том, как я проектирую приложения и пишу код. Есть одна часть книги, с которой я не только не согласен, …

15
Является ли определение переменной для именования аргумента метода хорошей практикой?
Для удобства чтения я часто определяю временные переменные при вызове функций, таких как следующий код var preventUndo = true; doSomething(preventUndo); Короче версия этого к этому будет, doSomething(true); Но когда я возвращаюсь к коду, я часто задаюсь вопросом, к чему это trueотносится. Существует ли соглашение для такого рода головоломки?

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

16
Является ли гибкий подход слишком удобным оправданием для ковбоев?
Я считаю, что гибкий подход лучше всего подходит для проектов, где требования нечеткие и требуется много взаимодействия, чтобы помочь сформировать идеи конечного пользователя. Однако ... В своей профессиональной работе я продолжаю работать в компаниях, где "гибкий" подход используется в качестве оправдания того, почему не было предпринято никаких усилий для первоначального …

8
Какой код статуса HTTP нужно вернуть, если несколько действий заканчиваются разными состояниями?
Я создаю API, где пользователь может попросить сервер выполнить несколько действий в одном HTTP-запросе. Результат возвращается в виде массива JSON с одной записью на действие. Каждое из этих действий может быть неудачным или успешным независимо друг от друга. Например, первое действие может быть выполнено успешно, входные данные для второго действия …
72 api  http 

7
Как архитектуры микросервисных систем позволяют избежать узких мест в сети?
Я много читал о микросервисных архитектурах для серверных приложений и удивлялся, как использование внутренней сети не является узким местом или существенным недостатком по сравнению с монолитной архитектурой. Ради точности, вот мои интерпретации двух терминов: Монолитная архитектура: одно приложение на одном языке, которое обрабатывает все функциональные возможности, данные и т. Д. …

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