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

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

2
REST API Design: несколько вызовов против одного вызова API
Мы разрабатываем Rest API для веб-сайта электронной коммерции, который будет использоваться мобильными приложениями. На главной странице приложения нам нужно назвать несколько ресурсов, таких как слайдеры, лучшие бренды, самые продаваемые продукты, трендовые продукты и т. Д. Два варианта выполнения вызовов API: Одиночный звонок: www.example.com/api/GetAllInHome Несколько звонков: www.example.com/api/GetSliders www.example.com/api/GetTopBrands www.example.com/api/GetBestSellingProducts www.example.com/api/GetTrendingProducts Какой …
19 rest  api  api-design  url 


6
Почему у make-файлов должна быть цель «установить»?
Исходя из мира C и C ++, большинство систем сборки имеют installцель, в частности Makefiles (где это рекомендуется GNU, например) или CMake . Эта цель копирует файлы времени выполнения (исполняемые файлы, библиотеки, ...) в операционной системе (например, в C:\Program Files\Windows). Это выглядит очень странно, так как для меня сборка программ …

3
Когда и почему указатели стали рассматриваться как рискованные?
Похоже, что мышление об использовании указателей в языках программирования постепенно изменилось, поэтому стало общепринятым, что указатели считаются рискованными (если не явным «злом» или подобным повышением). Каковы были исторические события для этого изменения мышления? Были ли какие-то конкретные, оригинальные события, исследования или другие события? Например, поверхностный взгляд на переход с C …
18 history  pointers 

1
Модульные тесты: отложенные утверждения с Linq
Это нормально, чтобы добавить отложенные утверждения, как это var actualKittens = actualKittens.Select(kitten => { Assert.IsСute(kitten); return kitten }); Почему? Так что я могу выполнить итерацию только один раз, даже если операторы ожидают материализованную коллекцию, например: CollectionAssert.AreEquivalent(expectedKittens, actualKittens.ToList()); А также это может быть не просто Select, но метод с определенным итератором, …

1
SOA / Microservices: как обрабатывать авторизацию в межсервисных коммуникациях?
передний план Мы переходим от монолитной платформы к сервис-ориентированной архитектуре. Мы применяем очень простые принципы DDD и разделяем нашу область на различные ограниченные контексты. Каждый домен распространяется и предоставляет службу через веб-API (REST). Из-за характера нашего бизнеса у нас есть такие услуги, как бронирование , услуги , клиенты , продукты …

2
Есть ли доказательства того, что использование внедрения зависимостей улучшает результаты в разработке программного обеспечения?
Несмотря на его популярность, есть ли эмпирические данные, которые показывают, что Dependency Injection (и / или использование DI-контейнера) помогает, скажем, уменьшать количество ошибок, улучшать удобство обслуживания или увеличивать скорость разработки в реальных программных проектах?

3
Почему REST обычно используется вместо RPC-подобных механизмов в веб-приложениях?
Я начал совсем недавно в компании, которая использует довольно необычную пользовательскую среду для своих веб-приложений, по крайней мере, по сравнению с типичными платформами веб-приложений, которые я знаю. Вместо веб-службы RESTful для связи с сервером используется механизм RPC. Связь с сервером выглядит как простой вызов функции, но функция выполняется на сервере, …

3
Есть ли термин для чрезмерного осложнения ООП?
Год или два назад я увидел отличную статью об ООП (Java), в которой рассказывалось о прогрессировании простого конкретного регистратора из двух или трех строк кода, а также о теоретическом чрезмерном мышлении неопытного разработчика, который в основном сказал: « О, я должен добавьте это на случай, если мы когда-нибудь захотим этого! …

5
RESTful API представляет отсутствие вещи
Представьте себе API, чтобы определить, выбрал ли человек свое духовное животное. У них может быть только ноль или одно духовное животное. В настоящее время: /person/{id}/selectedSpiritAnimal когда они выбрали животное возвращает http 200 и {selectedAnimal:mole} но когда у них нет выбора, возвращается http 404. Это делает мое духовное животное несчастным, поскольку …
18 rest 

4
Каковы преимущества ссылочной прозрачности для программиста?
Каковы преимущества ссылочной прозрачности в программировании ? RT делает одно из основных различий между функциональной и императивной парадигмами и часто используется сторонниками функциональной парадигмы как явное преимущество перед императивной; но во всех своих усилиях эти защитники никогда не объясняют, почему это приносит пользу мне как программисту . Конечно, у них …

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

5
Причина, по которой предпочитаю RIGHT JOIN, а не LEFT JOIN
Если я правильно понимаю, каждый RIGHT JOIN: SELECT Persons.*, Orders.* FROM Orders RIGHT JOIN Persons ON Orders.PersonID = Persons.ID можно выразить как LEFT JOIN: SELECT Persons.*, Orders.* FROM Persons LEFT JOIN Orders ON Persons.ID = Orders.PersonID Мое личное мнение таково, что в заявлении говорится: Сначала получите Persons Затем разверните / …

3
Почему выражение вычислений в виде умножения матриц делает их быстрее?
В учебнике Google MNist с использованием TensorFlow показаны вычисления, в которых один шаг эквивалентен умножению матрицы на вектор. Сначала Google показывает картинку, на которой каждое числовое умножение и сложение, которое будет использовано для выполнения вычисления, записывается полностью. Затем они показывают картину, в которой вместо этого она выражается в виде умножения …

7
DevOps означает, что разработчики теперь берут на себя ответственность за инфраструктуру и выпуск - но каковы причины этого изменения?
DevOps означает, что разработчики теперь берут на себя ответственность за инфраструктуру и выпуск - но каковы причины этого изменения? Я положу свои карты на стол: я разработчик и работал как в «DevOps», так и в других культурах. Необходимость беспокоиться об инфраструктуре и выпусках, о QA и связанной с этим церемонии …
18 process  devops 

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