초보 소프트웨어 엔지니어에게 가장 중요한 힌트는...

4507 단어 beginnerscareer
지금까지 읽거나 본 대부분의 강좌는 보통 숟가락으로 먹이를 주는 일만 한다.새로운 것을 배워도 된다. 그러나 당신이 임무를 해결해야 할 때, 이것은 결코 좋지 않다.하나의 임무는 통상적으로 하나의 문제를 극복함으로써 하나의 목표를 달성하는 데 관련된다.이 글은 모든 초보 소프트웨어 엔지니어에게 가장 중요한 힌트를 제공했다.
이미지

깜박임 해제 TL;박사


First, solve the problem. Then, write the code. — John Johnson


다시 말하면

Work the solution out on paper in steps, then start writing the code for it. Don’t get tangled in the code and software design.


그럼 무슨 일이 일어날까요?


초보자, 심지어 초급 소프트웨어 엔지니어로부터 이 점을 들은 적이 많다.나는 교과서를 잘 이해하고 이 개념을 이해했다고 생각한다.하지만 내 애완동물 프로젝트에서 비슷한 일을 하려고 했을 때 그럴 수가 없었다.그것의 발생에는 주로 두 가지 원인이 있다.우선, 당신은 어딘가에서 생각을 잃고 체인을 만들 수 없습니다.그 다음으로 코드에 너무 얽매여서 해결하려는 주요 문제가 집중되지 않는다.
이 문제도 소프트웨어 엔지니어, 심지어 고급 소프트웨어 엔지니어에게 발생할 것이다.그래, 경험이 있으니까 언제 멈추거나 쉬어야 할지 알아.그리고 서로 다른 규정으로 문제로 돌아가 해결 방안을 빨리 찾아라.

Many of you can relate to this that you were trying so hard to fix an issue for hours. You took a break or slept over it and next session the solution was there in minutes.


이것은 마술이 아니다. 이것은 다른 각도에서 볼 때 문제다.

한 가지 예로 설명해 드릴게요.


너는 반드시 한 가지 일을 해야 한다. 그것은 바로 지불로 환불을 만드는 것이다.환불은 항상 파손, 납품 지연 등 한 가지 원인이 있는데 이 항목의 지불은 최대 2.하나는 현금이고, 다른 하나는 신용이다.데이터베이스 모드도 제공합니다.환불 및 관련 지불을 만들 수 있는 POST/RE 환불 API를 만들어야 하는 백엔드 작업입니다.데이터베이스 구조는 다음과 같습니다.

또한 팀 구성원 중 한 명과 API 로드에 대해 논의하고 다음 JSON 로드에 동의할 수 있습니다.
POST /refunds

{
 reason: "damaged",
 premium_customer: true,
 payments: [
  {
     item_id: 20,
     amount: 5000,
     is_cash: true    
  },
  {
     item_id: 20,
     amount: 7250,
     is_cash: false
  }
 ]
}

//decide on the response format

일반적인 상황


대부분의 초보자 소프트웨어 엔지니어들이 하는 일은 코드 라이브러리 스캔을 시작하는 것이다.그들은 즉시 코드를 작성하기 시작할 것이다.만약 어떤 테스트 문화가 존재한다면 자동 테스트 코드를 작성할 수 있다.

This is where most beginner and even some experienced software engineers slip. Don’t write code when you have not solved the problem.


적절한 절차


내가 보기에 가장 적합한 단계는 앉아서 종이에 한 걸음 한 걸음 문제를 해결하는 것이다.그래서 데이터베이스에 환불과 관련 지불을 적어 놓으면 제가 뭘 해야 하는지 물어보세요.너는 한 걸음 한 걸음 계획을 제출하고 조정해라.

If you have someone senior you can validate your steps and get feedback.


이것 또한 코드 심사 시간을 크게 줄일 것이다. 왜냐하면 당신들은 이미 해결 방안의 모델에 동의했기 때문이다.

그럼 어떻게 하지?


앞에서 언급한 임무는 지불 환불을 만들 수 있는 창설/발표 API를 작성하는 것이다.매번 환불하면 최대 2건의 금액을 지불할 수 있으며, 한 건은 현금이고, 다른 한 건은 신용이다.그것도 현금이나 신용카드를 한 번만 지불하면 한 번에 환불할 수 있다.이것이 바로 내가 종이에 다음과 같은 절차를 쓰는 방식이다.
  • 사용자가 보낸 컨트롤러에서 데이터를 가져오는 방법
  • 을 만듭니다.
  • 인증값, 환불 유형 및 원인에 대한 모든 입력.
  • 모든 검증이 통과되면 환불표에 존재하지 않는 길이가 10인 무작위 알파벳 숫자가 생성됩니다(귀속 검사)
  • 검증 실패 메시지로 응답하지 못하면 응답 구조 결정

  • 데이터베이스 트랜잭션 시작
  • RETURN\u nr,reason\u reason,is\u premium\u customer의 환불 관련 값을 환불표에 삽입
  • 삽입 성공 시 마지막으로 삽입된 id
  • 가져오기
  • 환불 id를 사용하여 fk\U 환불, fk\U 프로젝트, 금액, is\U 현금의 지불 관련 값을 지불표에 삽입
  • 모든 것이 순조롭다면 데이터베이스 사무 제출
  • 문제 발생 시 데이터베이스 트랜잭션 롤백
  • 데이터베이스 업무의 성공 여부에 따라 적당한 구조
  • 로 성공 또는 실패 메시지에 응답
  • 컨트롤러 연결 및 이 방법
  • 계획대로 단계적으로 진행하여 지금 코드를 작성하다


    단계별 계획이 생기면 코드를 쓰기 시작할 수 있다.그리고 방법 이름, 데이터베이스 연결을 어떻게 얻는지, 그리고 기타 세부 사항을 더욱 깊이 있게 이해할 수 있습니다.

    Depending on the language and framework you can also decide where should the validation code stay.


    회사와 문화의 지지와 격려 아래 테스트를 작성할 수도 있다.
    당신의 해결 방안이 머릿속에 뚜렷하게 보이고, 종이 위에 단계별 행동 계획이 있으니, 이제 코드를 작성할 수 있습니다.

    You can even break up the parts in ways that will be easier to finish and wire up.


    예를 들어 테스트 논리는 단독으로 작성하고 스스로 테스트할 수 있는 것이다.그것은 함께 연결되어 해결 방안을 형성할 수 있는 독립적인 부분을 고려한다.

    결론


    다음 임무에 직면했을 때, 처음부터 코드를 쓰지 마라.우선, 문제를 파악한 후에 해결 방안을 설계하여 종이 위의 화면에서 절차를 완성하는 것이 가장 좋다.그리고 당신의 해결 방안을 보완하고 다른 사람과 토론하세요.만족할 때 이 해결 방안을 코드로 변환합니다.이것은 좀 질서정연하지만 매우 효과가 있다.

    Code is always a medium to the solution, not the solution itself.


    최초 발표 .

    좋은 웹페이지 즐겨찾기