TIL 20. 最初のプロジェクトのレビュー
Today's topic
👉 最初のプロジェクトのレビュー
今回の記事では、過去2週間に行われたRedibooksクローンプロジェクトRedibooksをレビューします.私はbackendpartを担当し、mainとcategoryを代表するProductListViewを担当します.
👉 テーマ
e-bookコンテンツを扱うサイトRedibookをクローンコードした.
👉 期間
2021/11/01 ~ 2021/11/12
👉 組織チーム
Front end:4人
Back end:2名
👉 機能実装(Backendベース)
👉 What I did?
import json
from django.http import JsonResponse
from django.views import View
from django.db.models import Avg
from .models import Product
from django.db.models import Q, Avg, Count
class ProductListView(View):
def get(self, request):
new_books = request.GET.get('new_books', None)
sub_category = request.GET.get('sub_category', None)
category = request.GET.get('category', None)
rating = request.GET.get('rating', None)
requests = request.GET.get('requests')
q = Q()
offset = 0
limit = 20
if sub_category:
q &= Q(subcategory_id=sub_category)
if category:
q &= Q(subcategory__category_id=category)
products = Product.objects.filter(q)\
.annotate(reviews_count=Count('review'))\
.annotate(average_rating=Avg('review__rating'))\
.values("id", "name", "author", "thumbnail_image_url", "date_published", "average_rating", "head_description", "detail_description1", "detail_description2")\
.distinct()
if rating:
products=products.order_by(rating)[offset:limit+offset]
if new_books:
products=products.order_by('-date_published')[offset:limit+offset]
if requests:
products=products[0:10]
result = [{
"id" : product['id'],
"name" : product['name'],
"author" : product['author'],
"image" : product['thumbnail_image_url'],
"date_published" : product['date_published'],
"head_description" : product['head_description'],
"detail_description1" : product['detail_description1'],
"detail_description2" : product['detail_description2'],
"rating" : round(float(product['average_rating']), 1) if product['average_rating'] else 0
} for product in products]
return JsonResponse({"products" : result}, status = 200)
👉 少しよくできましたか。
👉 足りないところ?
👉 全面的な回顧
チーム全体が自分の知っている機能をうまく応用できるプロジェクトを作りましょう.スキルというよりは、知識を最大限に理解し、応用することです.しかし、プロジェクトを始めたばかりの頃は、自分が人間だと感じていたので、誰もが自分のスキルに欲望を抱いていました.これは私個人の感覚です.
私が担当しているBackendチームには2人の選手がいますが、相対的に傾向が少し違うようです.もう一人は比較的速い人で、ProductListViewの間にProductDetailView、Review、Cart機能を実現しました.私は相対的に違うスピードを感じることができるので、相手のバックグラウンドが少し気分が悪いかもしれません.私のスピードが相対的に遅いので、いろいろなことを引き受けて申し訳ありません.しかし、私はまだ何が正しいのか分かりません.もちろん、プロジェクトを行うときは、確定した時間帯を把握し、チーム全体のメンツに合わせるために、手段を選ばずにフォローします.しかし、今では誰もが熟知しなければならない状況で、必ずその顔について行くかどうか、疑問もある.チーム全体が自分の知っている知識をもとに、自分の顔型に合わせて、指導者たちの意見もスキルを実現しようとせず、顔型をしっかり維持しなければならないと言っています.この二つの分かれ道で、どちらが正しいかはまだ分からない.
この点は私がこれから開発を続けて蓄積した宿題のようです.2つ目のプロジェクトが残っています.1つ目のプロジェクトで学んだ経験をもとに、努力してください.
Reference
この問題について(TIL 20. 最初のプロジェクトのレビュー), 我々は、より多くの情報をここで見つけました https://velog.io/@yg910524/TIL-19.-1차-project-회고록テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol