코딩 학습? 먼저, 문제 해결을 배우십시오.

Unspalsh의 이미지

지금까지 읽거나 본 대부분의 자습서는 일반적으로 숟가락 수유라는 한 가지 작업을 수행합니다.

이것은 새로운 것을 배우기위한“OK”이지만 실제 과제를 해결해야 할 때는 좋지 않습니다.

작업에는 일반적으로 문제를 극복하여 목표를 달성하는 것이 포함됩니다. 이 글은 모든 초급 소프트웨어 엔지니어에게 가장 중요한 "팁"을 공개합니다.

TL; DR

먼저 문제를 해결하십시오. 그런 다음 코드를 작성하십시오. — 존 존슨

다시 말해, 단계적으로 종이에 솔루션을 해결하십시오. 그런 다음 코드 작성을 시작하십시오. 코드와 소프트웨어 디자인에 얽매이지 마십시오.

그래서 어떻게됩니까?

초보자와 후배 소프트웨어 엔지니어는 다음과 같이 말합니다.“자습서에 따라 개념을 이해했다고 생각했습니다. 하지만 애완 동물 프로젝트에서 비슷한 일을하려고했지만 할 수 없었습니다.”

이것은 두 가지 이유로 발생합니다.

첫째, 당신은 어딘가에서 생각의 기차를 잃어 체인을 만들 수 없었습니다.

둘째, 코드에 너무 얽혀서 해결하려는 주요 문제에 초점이 맞지 않았습니다.

이 문제는 소프트웨어 엔지니어 및 선임 소프트웨어 엔지니어에게도 발생합니다.

좋은 점은 경험이 있으면 중지하거나 휴식을 취할 시간을 알고 있다는 것입니다. 그런 다음 다른 처방전으로 문제를 해결하고 더 빨리 해결책을 찾으십시오.

많은 사람들이 이것과 관련이 있습니다. 몇 시간 동안 문제를 해결하기 위해 열심히 노력했습니다. 당신은 휴식을 취하거나 잠을 잤으며 다음 세션에는 몇 분 안에 해결책이있었습니다.

이것은 마술이 아닙니다. 이것은 다른 관점에서 문제를보고 있습니다.

예를 들어 설명하겠습니다

예를 들어 지불로 환불을 생성하는 등의 작업을 수행해야합니다.

데이터베이스 스키마가 제공됩니다. 이는 백엔드 작업이므로 환불 및 관련 지불을 생성 할 수있는 POST / 환불 API를 만들어야합니다. 데이터베이스 구조는 다음과 같습니다.

환불에는 항상 '손상된 제품'또는 '늦은 배송'과 같은 이유가 있습니다.

팀 구성원 중 한 사람과 API 페이로드에 대해 토론 할 수 있습니다. 아래 JSON 페이로드에 동의 할 수 있습니다.

일반적인 시나리오

대부분의 초보자 소프트웨어 엔지니어는 코드베이스가있는 경우 스캔을 시작합니다. 그들은 즉시 코드를 작성하기 시작합니다. 테스트 문화가 있다면 자동화 된 테스트 코드를 작성할 수도 있습니다.

이곳은 대부분의 초보자와 숙련 된 소프트웨어 엔지니어가 빠져드는 곳입니다. 문제를 해결하지 않은 경우 코드를 작성하지 마십시오.

적절한 단계

가장 적절한 단계는 종이에 앉아 문제를 단계적으로 해결하는 것입니다.

따라서 자신이해야 할 일을 스스로에게 물어보십시오. 단계적으로 계획을 세우고 조정하십시오.

팀에 선임자가있는 경우 단계를 확인하고 피드백을받을 수 있습니다.

또한 코드 검토 시간이 줄어 듭니다. 둘 다 이미 솔루션의 양식에 동의했습니다.

그렇게하는 방법

앞에서 설명한 작업은 지불 환불을 만들 수있는 create / POST API를 작성하는 것입니다.

각 환불에는 최대 두 번의 결제가 가능합니다. 하나는 '현금'유형이고 다른 하나는 '신용'유형입니다. 현금이나 신용으로 한 번만 지불하면 한 번의 환불이 가능합니다. 이것이 내가 종이에 다음 단계를 썼을 것입니다

  1. 사용자가 보낸 컨트롤러에서 데이터를 가져 오는 메소드 작성
  2. 값, 환불 유형 및 이유에 대한 모든 입력의 유효성을 검증하십시오.
  3. 모든 유효성 검사가 통과되면 환불 테이블에없는 임의의 영숫자 길이 10을 생성합니다 (재귀 검사).
  4. 유효성 검사가 올바른 유효성 검사 실패 메시지로 응답하지 않으면 응답 구조를 결정하십시오.
  5. 데이터베이스 트랜잭션 시작
  6. 환불 테이블에 환불 _nr, reason_reason, is_premium_customer의 환불 관련 값을 삽입하십시오.
  7. 삽입 성공시 마지막 삽입의 ID를 얻습니다.
  8. 환불 _id를 사용하여 지불 테이블에 fk_refund, fk_item, amount, is_cash의 지불 관련 값을 삽입하십시오.
  9. 모든 것이 데이터베이스 트랜잭션을 커밋했다면
  10. 문제가 있으면 롤백 데이터베이스 트랜잭션
  11. 적절한 구조로 데이터베이스 트랜잭션의 성공 여부에 따라 성공 또는 실패 메시지에 응답
  12. 컨트롤러와이 방법을 연결하십시오

단계적으로 계획을 따르십시오. 이제 코드를 작성하십시오.

단계별 계획이 있으면 코드 작성을 시작할 수 있습니다. 그런 다음 메소드 이름, 데이터베이스 연결 및 기타 세부 사항을 얻는 방법에 대해 더 심도있게 다룰 수 있습니다.

언어와 프레임 워크에 따라 유효성 검사 코드가 어디에 있어야하는지 결정할 수도 있습니다.

회사와 문화가이를 지원하고 장려한다면 테스트를 작성할 수도 있습니다.

솔루션이 마음에 분명하고 종이에 단계별 조치 계획이 있으면 이제 코드를 작성할 수 있습니다.

마무리 및 배선이 더 쉬운 방식으로 부품을 분해 할 수도 있습니다.

예를 들어, 테스트 로직은 별도로 작성하여 자체적으로 테스트 할 수있는 것일 수 있습니다. 솔루션을 형성하기 위해 함께 연결할 수있는 독립적 인 부품에 대해 생각하고 있습니다.

결론

다음 과제에 직면 할 때 시작부터 코드 작성을 시작하지 마십시오.

먼저 문제를 파악한 다음 단계를 통해 솔루션을 고안하십시오. 이것은 종이 위에 스크린을 두지 않는 것이 가장 좋습니다.

그런 다음 솔루션을 개선하고 다른 사람과상의하십시오. 만족하면 해당 솔루션을 코드로 변환하십시오. 이것은 약간 체계적이지만 매우 효과적입니다.

코드는 항상 솔루션 자체가 아니라 솔루션의 매개체입니다.

당신이이 거리에 도달했다면, 나에게 "박수"를 남겨주세요 :).

읽어 주셔서 감사합니다!

원래 geshan.com.np에 게시되었습니다.