Skip to content

0715

clone coding

  • 리팩토링하기
    • cart에 product를 담는 버튼은 cart에 있어야 될까 product에 있어야 될까
      • 상품 정보와 관련된 컴포넌트이기에 product 도메인에 더 가깝다
      • 최종적으로는 장바구니에 담는 행위지만 핵심 구성은 상품 구성이다
    • useCartProductStore, AddToCartForm 유효성 검증은 어디서 해야 될까
      • maxQuantity 수량을 넘겼는데도 장바구니에 상품을 담으려고할 때의 책임은 Store에 있다. 이미 담겨있는걸 또 담으려고 하는거니까.
    • appHeader와 productnavbar
      • product navbar 자체에 isVisible 속성을 넘기는게 좋다
    • import 순서
js
import simpleImportSort from "eslint-plugin-simple-import-sort";  
import importPlugin from "eslint-plugin-import";

import { dirname } from "path";  
import { fileURLToPath } from "url";  
import { FlatCompat } from "@eslint/eslintrc";

const __filename = fileURLToPath(import.meta.url);  
const __dirname = dirname(__filename);

const compat = new FlatCompat({ baseDirectory: __dirname });

const eslintConfig = [  
  ...compat.extends("next/core-web-vitals", "next/typescript"),  
  {  
    plugins: {  
      "simple-import-sort": simpleImportSort,  
      "import": importPlugin,  
    },  
    rules: {  
      "@typescript-eslint/no-unused-vars": [  
        "error",  
        {  
          argsIgnorePattern: "^_",  
          varsIgnorePattern: "^_",  
        },  
      ],  
      "simple-import-sort/imports": "error",  
      "simple-import-sort/exports": "error",  
      "import/first": "error",  
      "import/newline-after-import": "error",  
      "import/no-duplicates": "error",  
      "prettier/prettier": "off"  
    },  
  },  
];

export default eslintConfig;
  • cart product card와 cart products는 나누는게 좋을까 합치는게 좋을까

  • cartform에 너무 많은 책임이 몰려있는 것 같다 어떻게 분리하는게 좋을까

    • solid 원칙 읽어보기
  • cart products store라는 이름이 괜찮을까

    • 장바구니 페이지에서는 오로지 프로덕트에 대한 상태만 다루고 쿠폰이나 배송지 등의 상태는 결제정보에서 다루기에 cart products store라고 정함
  • timer 리렌더링 생각해보기

그 외