Подтвердить что ты не робот

Без гражданства против состояния - я мог бы использовать какую-то конкретную информацию

Мне интересны статьи, в которых есть определенная информация об апатриде и состоянии в программировании. Мне интересно, потому что я хочу узнать больше об этом, но я действительно не могу найти никаких хороших статей об этом. Я читал десятки статей в Интернете, которые смутно обсуждают этот вопрос, или они говорят о веб-серверах и сеансах, - которые также относятся к состоянию состояния без учета состояния, но я заинтересован в том, Пример: я слышал, что BL-классы не имеют состояния по дизайну, классы сущностей (или, по крайней мере, то, что я их называю, например Person (id, name,..)) являются состояниями и т.д.

Я думаю, это важно знать, потому что я считаю, что, если я это понимаю, я могу написать лучший код (например, гранулярность).

В любом случае, действительно короткий, вот то, что я знаю, "против состояния против vs без гражданства:

Stateful (например, WinForms): сохраняет данные для дальнейшего использования, но ограничивает масштабируемость приложения, поскольку он ограничен ограничениями на процессор или память

Stateless (Как ASP.NET - хотя ASP пытается быть в состоянии с ViewStates): После завершения действий данные передаются, и экземпляр возвращается в пул потоков (Amorphous).

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

4b9b3361

Ответ 1

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

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

Еще одна область, которую вы могли бы исследовать, чтобы получить больше понимания, - это веб-службы RESTful. Это по дизайну "без гражданства", в отличие от других веб-технологий, которые пытаются как-то сохранить состояние. (На самом деле то, что вы говорите, что ASP.NET является апатридом, неверно - ASP.NET пытается сохранить состояние с помощью ViewState и определенно должно быть охарактеризовано как состояние. ASP.NET MVC, с другой стороны, - это технология без гражданства). Существует много мест, где обсуждаются "безгражданство" веб-сервисов RESTful (например, это место в блоге), но вы можете снова начать с SO question.

Ответ 2

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

Приложения без учета состояния не раскрывают какую-либо информацию. Они дают один и тот же ответ на тот же запрос, вызов функции или метода каждый раз. HTTP является безстоящим в своей необработанной форме - если вы делаете GET для определенного URL-адреса, вы получаете (теоретически) один и тот же ответ каждый раз. Исключением, конечно, является то, когда мы начинаем добавлять состояние statefulness сверху, например. с веб-приложениями ASP.NET:) Но если вы думаете о статичном веб-сайте только с HTML файлами и изображениями, вы поймете, что я имею в виду.

Ответ 3

Без гражданства означает, что нет памяти о прошлом. Каждая транзакция выполняется так, как если бы она выполнялась в первый раз.

Stateful означает, что есть память о прошлом. Предыдущие транзакции запоминаются и могут влиять на текущую транзакцию.

  Stateless:

     //The state is derived by what is passed into the function

        function int addOne(int number)
        {
        return number + 1;
        }

  Stateful:

     //The state is maintained by the function

        private int _number = 0; //initially zero

        function int addOne()
        {
        _number++;
        return _number;
        }

Обратитесь к: https://softwareengineering.stackexchange.com/questions/101337/whats-the-difference-between-stateful-and-stateless

Ответ 4

Прилагательное Stateful или Stateless ссылается только на состояние разговора, оно не связано с понятием функции, которое обеспечивает одинаковый вывод для одного и того же входа. Если это так, любое динамическое веб-приложение (с базой данных позади него) будет состоять из службы с состоянием, что, очевидно, неверно. Имея это в виду, если я доверяю задачу сохранения диалогового состояния в базовой технологии (например, сеанс coockie или http), я реализую службу с сохранением состояния, но если вся необходимая информация (контекст) передается как параметры я ' m внедрение службы без состояния. Следует отметить, что даже если переданный параметр является "идентификатором" диалогового состояния (например, билета или sessionId), мы все еще работаем в службе без состояния, потому что разговор не имеет статуса (билет постоянно передается между клиентом и сервер), и оба конечных точки должны быть, так сказать, "stateful".

Ответ 5

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

Ответ 6

Мы делаем Webapps statefull, переопределяя поведение безгражданства HTTP с помощью объектов session.When мы используем session objets, состояние выполняется, но мы по-прежнему используем только HTTP.

Ответ 7

У меня было такое же сомнение в отношении дизайна класса stateful v/s без штатов и какое-то исследование. Только что закончил, и мои результаты были опубликованы в мой блог

  • Для классов сущностей должно быть указано состояние
  • Классы помощников/рабочих не должны быть работоспособными.