Python:DRY vs explicit比隐式更好

时间:2015-10-21 09:11:53

标签: python django django-rest-framework

我正在使用django和DRF构建API。在这里我使用自定义ModelViewSet和MixIns。这些实现了我的API的list(),update(),create()和destroy()函数。现在我有一整套视图集:

from kernel.api.viewsets.base implement CustomBaseViewSet

class MyModelViewSet1(CustomBaseViewSet):
      serializer_class = MyModel1Serializer 
      queryset =  MyModel1.objects.all()

class MyModelViewSet2(CustomBaseViewSet):
      serializer_class = MyModel2Serializer 
      queryset =  MyModel2.objects.all()

class MyModelViewSet3(CustomBaseViewSet):
      serializer_class = MyModel3Serializer 
      queryset =  MyModel3.objects.all()

 ... and so on ...

问题1 :我现在在两个Zen规则中存在冲突,我是否应该明确绑定create,list,destoy和update方法(因为显式优于隐式)或将被认为是浪费了一口气......

class MyModel1ViewSet(CustomBaseViewSet)
      serializer_class = MyModel1Serializer 
      queryset =  MyModel1.objects.all()              

      def list(self, *args, **kwargs):
          super().list(*args, **kwargs)

      def create(self, *args, **kwargs):
          super().create(*args, **kwargs)
      ...

我能想到的一个事情是,显式方法比DRY方法更有用,我可以在方法中提供docstrings,这些方法在我的DRF-api中显示为文档。

问题2: DRY与E> I原则之间是否有任何其他优缺点???

0 个答案:

没有答案