zzikbu / PetDays

반려동물 정보, 성장 일기, 산책 및 진료 기록을 관리할 수 있는 모바일 애플리케이션
0 stars 0 forks source link

code에 대한 제안 #4

Open modooJH opened 1 day ago

modooJH commented 1 day ago

Model

diary_model

toMap에서 userDocRef는 왜 저장??? 이렇게 하면 model에 firestore가 강하게 연결되는데...좋은방식은 아님.
이 부분은 얘기가 필요하겠네요.

pet_model

isDeleted는 default값 false로 주는게 좋겠음.
createAt도 default값 Timestamp.now()로 주는게 좋겠음 .

현재 구조가 나쁜것은 아님. 아이디어를 던져 보는 거얘요.

class PetModel {
  final String uid;
  final String petId;
  final String image;
  final String name;
  final String breed;
  final String birthDay;
  final String firstMeetingDate;
  final String gender;
  final bool isNeutering; // 중성화
  final bool isDeleted; // 삭제 여부
  final Timestamp createdAt;

Components

custom_dialog

onConfirm 을 그대로 onTap에 할당가능

onTap: () {
    onConfirm();
    // Navigator.of(context).pop();
  },

theme 정의하는게 좋겠음. palette 방식도 나쁘지 않지만, 굳이 theme를 활용해 보면 좋겠음. 기술을 자랑한다는 의미로...

ThemeExtension을 상속해서 나만의 Theme를 정의해보는 것임.

참고: https://medium.com/@mregnauld/how-to-implement-your-design-system-in-a-flutter-app-1-2-d2e21b5fcffd

Text(
    '확인',
    style: TextStyle(
      fontFamily: 'Pretendard',
      fontWeight: FontWeight.w500,
      fontSize: 16,
      color: Palette.white,
      letterSpacing: -0.5,
    ),
  ),

step_progress....

List.generate VS Listview.builder
바꾸지 않아도 상관 없는 코드이고, 둘 중 머가 더 좋다 말하기 어렵지만, ListView.Builder가 상황에 더 적합함. 그러라고 만들어진 애니까.

repositories

walk_repository

petModel을 db에 넣어놓고, toMap 할때는 왜 petRef를 넘기지?

구조를 다시 얘기해 봅시다.

// pets 필드 처리
List<PetModel> pets = await Future.wait(
  (data['pets'] as List<dynamic>).map((petRef) async {
    DocumentSnapshot petSnapshot =
        await (petRef as DocumentReference).get();
    return PetModel.fromMap(
        petSnapshot.data() as Map<String, dynamic>);
  }),
);

pet_repository

getDiaryList , 반려동물은 pet아닌가요? PetModel return 인데 이름은 getDiaryList 이네요. 헷갈림

 Future<List<PetModel>> getDiaryList({
    required String uid,
  }) async 

총평

코드 잘 작성했네요. 정리도 잘 되어있고.

위 내용은 같이 보면서 얘기해 봅시다.

zzikbu commented 1 day ago

리뷰 감사합니다 !!

walk_repository에서 pet을 리스트로 저장하는 부분이 헷갈려서 이상하게 작성한거 같네요...