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

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

4
Является ли использование Git Stash в качестве рабочего процесса антипаттерном?
Недавно я смотрел, как я и моя команда используем Git и как работают наши рабочие процессы. В настоящее время мы используем рабочий процесс ветки функций, который, кажется, работает хорошо. Я также видел, как некоторые люди в нашей команде использовали рабочий процесс, основанный на git stash . Рабочий процесс выглядит примерно …

3
Почему закрытый член доступен в статическом методе?
Ниже приведен псевдокод, я пробовал его на Java и PHP, и оба работали: class Test { private int a = 5; public static function do_test(){ var t = new Test(); t.a = 1; print t.a // 1 } } Test::do_test(); Почему вы можете сделать это в парадигме ООП и какая …

7
Устранение того факта, что первичные ключи не являются частью вашего бизнеса
Практически во всех случаях первичные ключи не являются частью вашего бизнеса. Конечно, у вас могут быть некоторые важные объекты, с которыми сталкиваются пользователи, с уникальными индексами ( UserNameдля пользователей или OrderNumberдля заказов), но в большинстве случаев нет никакой необходимости явно идентифицировать доменные объекты по одному значению или набору значений кому-либо, …

1
Правильно ли попросить участников перебазировать их запросы на получение на github?
Я поддерживаю относительно популярное GitHub-репо. Когда запрос на объединение подходит для слияния, я обычно прошу автора преобразовать его в один коммит, прежде чем объединить его (особенно, когда было несколько небольших правок). Это хорошая практика мерзавцев? Это приемлемый / стандартный этикет GitHub? Итак, некоторые преимущества: Я получаю хорошую чистую историю коммитов …
25 github  etiquette 

12
Является ли «наконец» часть конструкции «попробуй ... поймай ... наконец» даже необходимой?
Некоторые языки (такие как C ++ и ранние версии PHP) не поддерживают finallyчасть try ... catch ... finallyконструкции. Когда- finallyлибо необходимо? Поскольку код в нем всегда выполняется, почему бы не разместить этот код после try ... catchблока без finallyпредложения? Зачем использовать один? (Я ищу причину / мотивацию для использования / …

11
Почему v в C означает не void?
В строго типизированных языках, таких как Java и C #, void(или Void) тип возвращаемого значения для метода, по-видимому, означает: Этот метод ничего не возвращает. Ничего такого. Без возврата. Вы не получите ничего от этого метода. Что действительно странно, так это то, что в C voidкак тип возвращаемого значения или даже …
25 c  pointers 

1
Асинхронное сетевое программирование с использованием Reactive Extensions
Этот вопрос перенесен из Exchange Stack Exchange, так как на него можно ответить в Software Stack Exchange. Мигрировал 5 лет назад . После выполнения некоторых (более или менее) «низкого уровня» асинхронном socketпрограммировании лет назад (в основе события асинхронной модели (EAP) мода) и в последнее время перемещения «вверх» к TcpListener(Asynchronous Programming …
25 c#  .net  tcp 

3
Является ли плохой практикой называть свойство / элемент таким же, как объявленный тип в C #?
Например, такой класс: class Dog { } //never mind that there's nothing in it... а затем свойство как: Dog Dog { get; set; } Мне сказали, что если я не могу придумать более оригинальное название для этого, то я должен использовать: Dog DogObject { get; set; } Любые мысли о …
25 c#  naming  properties 

4
Языки связывания C ++, кроме C?
Язык C ++ позволяет смешивать как C ++, так и C в одном исходном файле. Например, extern "C" { struct bar { /* ... */ } } Поддерживает ли C ++ или когда-либо поддерживал какие-либо другие «языки связей», кроме C? например extern "Pascal"илиextern "Haskell"

10
Можем ли мы жить без конструкторов?
Допустим, по какой-то причине все объекты созданы таким образом: $ obj = CLASS :: getInstance (). Затем мы внедряем зависимости с помощью сеттеров и выполняем начальную инициализацию с помощью $ obj-> initInstance (); Есть ли реальные проблемы или ситуации, которые нельзя решить, если мы вообще не будем использовать конструкторы? Причиной …

5
Почему плохо писать что-то на языке X, как будто вы пишете программу на языке Y с точки зрения использования общей парадигмы кодирования [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, редактируя этот пост . Закрыто 5 лет назад . Некоторое время назад я задал вопрос на SO о чем-то, написанном на C …

4
Почему Java не использует инкапсуляцию с некоторыми классами?
Мой вопрос связан с System.inи System.outклассами (там может быть и другими , как те , в библиотеке Standard). Почему это? Разве это не плохая практика в ООП? Разве это не должно быть использовано как: System.getIn()и System.getOut()? У меня всегда был этот вопрос, и я надеюсь, что смогу найти хороший ответ …

10
Дизайн API: конкретный или абстрактный подход - лучшие практики?
При обсуждении API-интерфейсов между системами (на бизнес-уровне) в нашей команде часто бывают две разные точки зрения: некоторые люди предпочитают более общий, скажем так, общий абстрактный подход, а другие - прямой «конкретный» подход. Пример: дизайн простого API «поиск человека». конкретная версия будет searchPerson(String name, boolean soundEx, String firstName, boolean soundEx, String …

3
Можно ли вернуть HTML из API JSON?
В моем текущем проекте я отвечаю за реализацию службы, которая включает использование только что созданных API RESTful, документированных как исключительно поддерживающие JSON. Клиент последовательно делает запросы с заголовком accept 'application / json' и типом контента 'application / json'. Однако некоторые конечные точки отправляют ответ с типом содержимого HTML, даже с …

4
Как мне спроектировать веб-сервис RESTful, чтобы использовать стороннюю систему (например, Google, Facebook, Twitter) для аутентификации?
Для моей работы у нас есть хороший веб-сервис RESTful, который мы используем для управления несколькими веб-сайтами, которые у нас есть. По сути, веб-сервис позволяет создавать заявки на поддержку и работать с ними, а веб-сайт отвечает за интерфейс. Любые запросы веб-сервиса используют заголовок авторизации, который мы используем для проверки пользователя и …

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