IPO 연기

5337 단어 patterndesignpattern
결국 엔터프라이즈 어플리케이션에 모든 신기술, 업계 표준 모범 사례 및 아이디어를 적용하지만 새로운 기능을 만들거나 기존 기능을 실행하기는 여전히 어렵습니다.이때, 개선해야 할 것은 코드가 있는 위치가 아니라 코드 자체라는 것을 깨닫게 됩니다.
지금 할 일이 많아요.가장 큰 영향은 흔히 가장 간단한 일인 변수를 정확하게 명명하고 코드의 주요 부분을 개술하는 데서 온다.일단 당신의 영역을 더 잘 이해하기 시작하면, 때로는 패턴이 한 번 또 한 번 나타날 수도 있다.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의 예입니다.
  • 사용자가 우리에게 데이터를 발송한다.
  • 데이터베이스
  • 에서 추가 데이터 가져오기
  • 사용자가 제출한 데이터가 유효하고 어떠한 업무 규칙과 충돌하지 않도록 보증합니다.
  • 오류 메시지가 없으면 저희가 가지고 있는 변환 업무 규칙에 따라 데이터를 변환하여 데이터베이스에 제출합니다.
  • 오류 메시지가 있으면 사용자에게 되돌려 주십시오.
  • 이제 우리는 간단한 영어로 이해했으니 수두-C#로 쓰자.
    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);
        }
    }
    

    기능 유형
    이러한 코드를 요약하면 다음과 같은 다섯 가지 유형의 함수를 얻을 수 있습니다.
  • 입구점: 사용자 흐름이 시작되는 곳(PerformUserFlow(userInput).
  • 조회: 우주에서 추가 정보를 수집하는 곳(조회(사용자 입력).
  • 검증 프로그램: 데이터 검증을 실행하는 곳(allData).
  • 변환기: 정보를 사용할 수 있는 것으로 변환(allData)합니다.
  • 명령: 데이터가 데이터베이스에 저장된 곳(transformModel).

  • 요약
    개발자로서 우리의 목표는 어떤 프레임워크나 모델도 보급하는 것이 아니라 의도를 밝히는 코드를 작성하는 것이다.IPO를 확장하는 것은 의도 제시 코드를 작성하는 방식일 뿐이다.그 밖에 프로그래밍의'평범함', 예를 들어 명명 변수를 중시하지 않는다면 아무리 새로운 모델이나 언어 특성이 많아도 코드의 가독성을 향상시키는 데 도움이 되지 않는다.

    이제 어떡하지?
    ExtendedIPO는 Martin FowlerCQRS와 Jimmy BogartVertical Slice Architecture의 연장선에 가깝다.이것들은 모두 좋은 생각이다.
    각 함수 유형을 나타내는 인터페이스가 있는 아주 작은 C# 라이브러리도 있습니다...내가 이러는 건 지금 사람들이 이러는 것 같아서...하지만 나는 패턴이 라이브러리를 사용해야 한다고 생각하지 않는다.어쨌든 보고 싶으면 GitHub에 있어요.

    좋은 웹페이지 즐겨찾기