在寫module之前
確定module的分類很重要
這時候有一個經典的分類就是lib vs framework
根據wiki的定義
lib: lib基本上是一坨實作,讓開發者可以調用來增快開發速度&可讀性
framework: 框架是讓開發者可以夠某一種模板,來進行特定任務
其實這兩個分野還滿模糊的
例如React/Vue到底是lib還是framework就有很多爭議
但是有個基本概念要搞清楚
一但選擇用接近lib的方式開發,對於開發者的干涉就要進量少
而選擇開發框架,就要讓使用者盡可能套版就可以完成實作
以下是一個框架的範例code
class FrameFormatter(abc.ABC):
@abc.abstractmethod
def prepare_pack_data(self):
return NotImplemented
@abc.abstractmethod
def pack_label_and_content(self):
return NotImplemented
@abc.abstractmethod
def store_pack_result(self):
return NotImplemented
@abc.abstractmethod
def generate_report(self):
return NotImplemented
@property
@abc.abstractmethod
def with_ann_image_count(self):
return NotImplemented
@property
@abc.abstractmethod
def annotation_count(self):
return NotImplemented
@property
@abc.abstractmethod
def report_id(self):
return NotImplemented
def before_prepare_pack_data(self):
pass
def after_prepare_pack_data(self):
pass