Как часто Вы используете псевдокод в реальном мире?

ну вот ,

В документации, которой вы поделились, есть довольно хорошее введение, если вы перейдете на вкладку введения. Я думаю, вы знаете, что такое RESTfull API? Если вы не здесь . Так как остальные API не используют сеансы (в PHP вы это знаете), все вызовы API будут без сохранения состояния (без сессий). Поэтому вам потребуется механизм аутентификации, чтобы убедиться, что клиент на самом деле является тем, кем он является. Именно здесь и используется этот метод аутентификации, этот сервис oauth специально разработан для разрешения этой проблемы при работе с сеансами без сохранения состояния REST.

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

**

теперь генерирует механизм токена

blockquote>

**

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

{
   username:"JhonSnow",
   email:"winteriscomming@gmail.com",
   type:"user"
} 

, теперь сначала этот токен шифруется с использованием кодировки base64url . Хорошо, теперь это можно почитать с помощью декодера base64. Но удивительная часть состоит в том, что даже если злоумышленник сможет получить эту информацию из токена, он не сможет расширить приложение, привилегированное, как этот

type: "user"

blockquote>

-

`type:" admin "

blockquote>

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

header:{
  "alg": "HS256",
  "typ": "JWT"
},
payload:{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

, теперь с использованием этих деталей, будет сгенерирован токен, например,

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.he0ErCNloe4J7Id0Ry2SEDg09lKkZkfsRiGsdX_vgEg

, если вы присмотритесь, вы увидите, что есть 3 "." (точка) в этом токене, чтобы различать заголовок, полезную нагрузку и сигнатуру. Последняя часть - это та, которую сервер проверит с помощью секрета сервера или известной как сигнатура для проверки этого токена, является действительным токеном или нет [1117 ]

9
задан 5 revs, 4 users 100% 5 April 2011 в 13:08
поделиться

13 ответов

Я использую все это время. Любое время я должен объяснить проектное решение, я буду использовать его. Говоря с нетехническим штатом, я буду использовать его. Это имеет приложение не только для программирования, но и для объяснения, как что-либо сделано.

При работе с командой на нескольких платформах (фронтенд Java с бэкендом КОБОЛа, в этом случае) намного легче объяснить, как немного работ кода с помощью псевдокода, чем он должно показать реальный код.

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

15
ответ дан 4 December 2019 в 06:12
поделиться

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

5
ответ дан 4 December 2019 в 06:12
поделиться

Я и другие разработчики в моей команде используем все это время. В электронных письмах, электронной доске, или только в confersation. Psuedocode жесток, чтобы помочь Вам думать способ, которым Вы должны, смочь программировать. Если Вы действительно не стоите psuedocode, можно уловить смысл почти в любом языке программирования, потому что основным различием между ними всеми является синтаксис.

3
ответ дан 4 December 2019 в 06:12
поделиться

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

5
ответ дан 4 December 2019 в 06:12
поделиться

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

procedure GetTextFromValidIndex (input int indexValue, output string textValue)
// initialize
// check to see if indexValue is within the acceptable range
//    get min, max from db
//    if indexValuenot between min and max
//       then return with an error
// find corresponding text in db based on indexValue
// return textValue
   return "Not Written";
end procedure;
2
ответ дан 4 December 2019 в 06:12
поделиться

Я даже никогда не должен был, однажды, писать псевдокод программы прежде, чем записать это.

Однако иногда я должен был записать псевдокод после написания кода, которое обычно происходит, когда я пытаюсь описать высокоуровневую реализацию программы для получения кого-то до скорости с новым кодом в короткий срок. И "высокоуровневой реализацией", я подразумеваю, что одна строка псевдокода описывает приблизительно 50 строк C#, например:

Core dumps a bunch of XML files to a folder and runs the process.exe
  executable with a few commandline parameters.

The process.exe reads each file
    Each file is read line by line
    Unique words are pulled out of the file stored in a database
    File is deleted when its finished processing

Такой псевдокод достаточно хорош для описания примерно 1 000 строк кода, и достаточно хороший для точного информирования новичка, что на самом деле делает программа.

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

2
ответ дан 4 December 2019 в 06:12
поделиться

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

Я использую его изрядное количество на StackOverflow.

2
ответ дан 4 December 2019 в 06:12
поделиться

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

Таким образом, я не должен возвращаться и документировать его с тех пор его уже сделанный.

1
ответ дан 4 December 2019 в 06:12
поделиться

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

Я действительно использую английские описания алгоритмов, когда логика достаточно сложна для гарантирования его; их называют "комментариями".;-)

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

2
ответ дан 4 December 2019 в 06:12
поделиться

Главным образом используйте его для сбора орехов действительно сложный код, или при объяснении кода или другим разработчикам или не разработчикам, которые понимают систему.

Я также теку схемы или схемы типа uml при попытке сделать выше также...

1
ответ дан 4 December 2019 в 06:12
поделиться

Справедливо редко, хотя я часто документирую метод прежде, чем записать тело его.

Однако, Если я помогу другому разработчику с тем, как приблизиться к проблеме, я буду часто писать электронное письмо с решением для псевдокода.

1
ответ дан 4 December 2019 в 06:12
поделиться

Я не использую псевдокод вообще. Я более доволен синтаксисом языков стиля C, чем я с Псевдокодом.

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

public void doBigJob( params )
{
    doTask1( params);
    doTask2( params);
    doTask3( params);
}
private void doTask1( params)
{
    doSubTask1_1(params);
    ...
}

Который, в идеальном мире, в конечном счете превратился бы в рабочий код, поскольку методы становятся более тривиальными. Однако в реальной жизни, существует чертовски много рефакторинга и пересмотра прежнего мнения дизайна.

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

1
ответ дан 4 December 2019 в 06:12
поделиться

Я никогда не использую или использовал его.

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

1
ответ дан 4 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: