Giter Site home page Giter Site logo

yangseungin / atdd-subway-service Goto Github PK

View Code? Open in Web Editor NEW

This project forked from next-step/atdd-subway-service

0.0 1.0 0.0 11.05 MB

우아한테크캠프 pro ATDD 과정 저장소

License: MIT License

JavaScript 7.01% Java 42.26% HTML 0.29% Vue 18.62% SCSS 31.81%

atdd-subway-service's Introduction

npm node Website GitHub


지하철 노선도 미션

ATDD 강의 실습을 위한 지하철 노선도 애플리케이션


배운점

  • ATDD에 대해 학습
    • OutSide-In: 외부에서 부터 내부로 진행
    • InSide-Out: 도메인부터 외부 레이어로 진행
  • 인수 테스트 기반 리팩터링
    • 서비스레이어의 비즈니스로직을 도메인으로 옮기기
    • 인수 테스트로부터 보호를 받으며 세부 기능들을 TDD 사이클로 리팩터링 하기

주요 피드백

  • 원시객체로 포장하고 객체로써의 역할과 책임을 한번 부여해보자
  • 도메인에 대한 검증이나 비즈니스 플로우 등이 겹칠 텐데 이에 대한 변경 사항 대응도 여기저기 흩어져 있다면 대응하기가 어렵다
  • 매직넘버들이 추출된다면 훨씬 혼동을 줄일 수 있다.
  • RuntimeException은 너무 포괄적이다. 비즈니스 요건에 맞는 Exception을 정의해보자

🚀 Getting Started

Install

npm 설치

cd frontend
npm install

frontend 디렉토리에서 수행해야 합니다.

Usage

webpack server 구동

npm run dev

application 구동

./gradlew bootRun

✏️ Code Review Process

텍스트와 이미지로 살펴보는 온라인 코드 리뷰 과정


🐞 Bug Report

버그를 발견한다면, Issues 에 등록해주세요 :)


요구사항 정리

1단계

  • LineService 리팩터링
    • 도메인으로 옮길 로직 찾기
    • 도메인 단위테스트 작성
    • 도메인으로 로직이동
  • (선택) LineSectionAcceptanceTest 리팩터링

2단계

  • 최단 경로 조회 인수테스트 만들기
  • 최단 경로 조회 기능 구현하기

3단계

  • 토큰 발급 기능 (로그인) 인수 테스트 만들기
  • 인증 - 내 정보 조회 기능 완성하기
  • 인증 - 즐겨 찾기 기능 완성하기

4단계

  • 경로 조회 시 거리 기준 요금 정보 포함하기
  • 노선별 추가 요금 정책 추가
  • 연령별 할인 정책 추가

📝 License

This project is MIT licensed.

atdd-subway-service's People

Contributors

yangseungin avatar gracefulbrown avatar neojjc2 avatar boorownie avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.