IPO 연기
지금 할 일이 많아요.가장 큰 영향은 흔히 가장 간단한 일인 변수를 정확하게 명명하고 코드의 주요 부분을 개술하는 데서 온다.일단 당신의 영역을 더 잘 이해하기 시작하면, 때로는 패턴이 한 번 또 한 번 나타날 수도 있다.ExtendedIPO는 내가 응용 프로그램에서 반복적으로 발견한 모델이다.내가 이런 모델을 응용할 때마다 버그는 진단하기 쉽고 기능도 개발하기 쉽다는 것을 알게 되었다.마음대로 사용하세요.어떻게 됐는지 말해줘.
소개하다.
ExtendedIPO에는 다음 대상이 있습니다.
처음으로 주식을 공개 모집하다.
나는 대학에서 IPO를 배운 적이 있다.이것은 모든 함수에 입력 (매개 변수), 프로세스 (중간 코드), 출력 (되돌아오는 값) 이 있음을 나타낸다.ExtendedIPO는 함수의 코드가 특정 경로를 따르도록 함수를 약간 재정의합니다.
정의
입력:
"Any information that lives outside of the function that the function requires to run."
This includes information from databases, caches, etc.
과정
"Any operation which must be completed inside the function before the outside world can be changed."
CRUD 프로그램에는 일반적으로 두 가지 유형의 절차가 있는데 그것이 바로 검증과 변환이다.IPO 확장의 일부분은 아니지만, 모든 업무 유형 (검증, 전환 등) 에 대형 Process () 방법을 만들고, Process () 를 모든 업무 규칙에 호출하는 개인 방법을 만드는 것을 권장합니다.
출력:
"Any unit of work which is both expected to succeed and changes something in the outside universe."
바꿀 수 있는 것은 제한이 없다.데이터베이스에 기록되거나 고객에게 보내는 알림일 수 있습니다.예상 작업은 상태 코드를 반환할 수 없음을 나타냅니다.만약 물건이 고장났다면, 이것은 예외적인 상황이니, 반드시 예외로 처리해야 한다.
이러한 정의에서 수집된 규칙
IPO가 어떻게 정의되었는지 함수는 특정한 순서에 따라 배열됩니다.다음은 API의 예입니다.
IActionResult PerformUserFlow(userInput)
{
var allData = Query(userInput);
var errors = Validate(allData);
if (!errors.Any()) {
var transformModel = Transform(allData);
Submit(transformModel);
return Ok();
}
else
{
return BadRequest(errors);
}
}
기능 유형
이러한 코드를 요약하면 다음과 같은 다섯 가지 유형의 함수를 얻을 수 있습니다.
요약
개발자로서 우리의 목표는 어떤 프레임워크나 모델도 보급하는 것이 아니라 의도를 밝히는 코드를 작성하는 것이다.IPO를 확장하는 것은 의도 제시 코드를 작성하는 방식일 뿐이다.그 밖에 프로그래밍의'평범함', 예를 들어 명명 변수를 중시하지 않는다면 아무리 새로운 모델이나 언어 특성이 많아도 코드의 가독성을 향상시키는 데 도움이 되지 않는다.
이제 어떡하지?
ExtendedIPO는 Martin FowlerCQRS와 Jimmy BogartVertical Slice Architecture의 연장선에 가깝다.이것들은 모두 좋은 생각이다.
각 함수 유형을 나타내는 인터페이스가 있는 아주 작은 C# 라이브러리도 있습니다...내가 이러는 건 지금 사람들이 이러는 것 같아서...하지만 나는 패턴이 라이브러리를 사용해야 한다고 생각하지 않는다.어쨌든 보고 싶으면 GitHub에 있어요.
Reference
이 문제에 관하여(IPO 연기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/winstonpuckett/extendedipo-1m99텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)