范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

按技术职责还是按领域职责来构建代码?Reddit

  在构建 REST api 时,您会选择:
  选项 A:  controllers        order.go        region.go        user.go    models        order.go        region.go        user.go    repos    order.go    region.go    user.go
  选项 B:  order        order_controller.go        order_entity.go        order_repo.go    region        region_controller.go        region_entity.go        region_repo.go    user    user_controller.go    user_entity.go    user_repo.go
  这是如何在不妥协的情况下在松散耦合和高内聚之间找到平衡。
  第一个选项适用于非常小范的项目,其中类型很少,"处理程序"很多,像"ToDo"应用程序,演示,单一职责命令行工具这样的幼稚项目适合这种情况,因为凝聚力不会受到太大影响,因为有每个包中的东西很少。
  现第二个适用于其他一切:
  如果一旦您在这些目录中拥有大量相同命名的.go文件,那么寻找单一类型的实现和跟踪代码将变得非常笨拙。
  两打目录和几个文件比几个文件夹更容易推理,每个文件夹中有两打文件,每个文件夹都命名相同。
  这就是为什么我从不选择第一种方法,因为随着熵的增加,它几乎总是蜕变为第二种方法,而且当我可以从那里开始的时候,重新构建所有的东西是浪费时间的。
  按团队划分
  下面是我们团队的标准布局,我们有一个工具可以保证这一点。
  我们的布局是这样的:  etc       pet-api.yaml   internal       config           config.go       handler           cat_create_handler.go           dog_create_handler.go           routes.go       logic           cat_create_logic.go           dog_create_logic.go       svc           service_context.go       types           types.go   pet.go etc是yaml配置文件的文件夹config包含配置的 Go 定义handler包含路由的 HTTP 处理程序logic包含每个处理程序的 biz 逻辑svc是从外部传入处理程序的服务上下文,例如数据库实例。types是定义请求和响应类型的文件夹
  为什么我把逻辑文件夹和handler处理程序分开,是因为我希望我们的团队尽可能少地把HTTP请求的信息传递给逻辑处理函数。
  另外,所有文件夹的布局是由goctl从下面的API定义文件中生成的,命令是goctl api go -api demo.api -style go_zero -dir .type (     CatCreateRequest {         Name string `path:"name"`     }      CatCreateResponse {         Message string `json:"message"`     } )  type (     DogCreateRequest {         Name string `path:"name"`     }      DogCreateResponse {         Message string `json:"message"`     } )  @server(     prefix: v1 ) service pet-api {     @handler CatCreateHandler     post /pets/cats/:name(CatCreateRequest) returns (CatCreateResponse)      @handler DogCreateHandler     post /pets/dogs/:name(DogCreateRequest) returns (DogCreateResponse) }
  前缀:v1将/v1添加到服务中的所有路由,它是可选的。
  对于单体服务,我们会在内部下添加模型文件夹,用于数据访问代码。
  另外,goctl支持自定义生成行为的选项,比如命名风格、将请求分组到不同的包中,甚至将处理程序和逻辑分别压缩到一个文件中。
  安装:go install github.com/zeromicro/go-zero/tools/goctl@latest
  六边形架构
  对于微型服务来说,拥有如下软件包:- cmd — service_name — mock_service - internal — entities — errors — repositories —— database —— fxrates_provider — server —— http —— grpc — usecases cmd - 持有启动你的服务的方法http/grpc等在/server目录下--你的服务的进入点usecases--领域/业务逻辑层mysql/firestone/其他一些api在/repositories目录下--来自外部的任何数据entities--创建并通过各层传递的模型errors--全局错误,使错误检查更容易。
  优点。没有循环的依赖关系非常清楚地将逻辑分离出来只要满足预期的接口,就可以互相替换层(你的老板决定明天要支持http? 没问题!)。更容易测试更容易用gomock来模拟接口更容易调试(根据我的经验,更少的面条,更清晰的责任)。
  缺点。一些重复的代码转换为实体有时是件麻烦的事
  原文:按技术职责还是按领域职责来构建代码? - Reddit

安卓机超六成杀毒软件没用,有的甚至杀自己安卓机60的杀毒应用都没用,就问你怕不怕?近日,知名计算机安全软件测试机构AVComparatives(AVC)发布了安卓平台杀毒应用的测试报告。经过50多万次的测试之后,结果显示超详细的大数据学习资源大全!当今社会,可以说进入了大数据时代,爆炸性的数据信息给传统的计算技术以及信息技术带来术挑战。大数据技术正在助力公众企业打开DT世界的大门。学习大数据不仅前景好,而且工资高。为了帮助程小米红米7运存2G起,雷军就我们很在乎用户需求!刚刚,对于发布没多久飞Redmi7,小米雷军在微博发文问是不是只有我们如此认真做了一款百元机?配置待机外观品质等等!首先看看小米红米7一些信息内置4000mAh大电量,搭载骁龙63面试题我有一批IPv6地址,你帮我想个办法来存储?作者dadiyang公众号Java面试那些事儿之前写了一篇面试题请用代码实现ip地址与int之间互换?,有读者评论问到IPv6的转换方法,于是抽时间也自己实现了一下。面试官我有一批马云再砸46亿喜提四通,阿里对战京东顺丰还看菜鸟申通快递3月11日公告称,阿里巴巴将投资约46。65亿元,成为公司第二大股东。至此,中国快递业四通一达中的四通,已经全部有股份为阿里巴巴所掌握。阿里巴巴不仅是百世集团第一大股东,还马云名字被企业抢注你好,我是马云公司CEO马云名字被企业抢注你好,我是马云公司CEO据天眼查信息显示,马云的名字被人抢注为企业了。2017年4月19日成立的马云网络有限公司,实际控制人是林裕隆,跟马云阿里都没有关联关系。此面试官你了解Java的类加载机制吗?网友这么回复竟丢offer我是面试官面试官你精通Java吗?谈一下对Java的类加载机制的理解。网友首先将java编译成虚拟机承认的class字节码文件,然后运行。这样的答案,你要是面试官你会满意吗?肯定是阿里蔡崇信我为什么敢放弃580万年薪,跟着马云拿500块工资?声明本文来源企业治理360,不代表笑谈管理立场。如果您认为标注与事实不符,请告知我们。01那放弃580万年薪去创业的年轻人后来怎么样了?后来,他身价数百亿,成为阿里巴巴当之无愧的二华为P30Pro开启预售后置徕卡四摄10倍混合变焦华为P30Pro无疑是整个3月最受期待的旗舰之一,该机不仅后置徕卡四摄,还将进一步提升相机拍摄能力,在变焦夜景等方面都会新的造诣。这时候就有网友在评论区提问了这么厉害的手机在哪里可Kindle入门版升级为青春版!背光全新外形省电模式墨水屏升级作为Kindle系列中最经济最实惠的一款,Kindle入门版一直是许多小伙伴第一次入手电纸书时最好的选择而就在刚刚,相隔3年之后,亚马逊再次发布了入门版Kindle的新一代型号Ki无印良品杂货铺的造车逻辑丨深度智能座舱,乃至于自动驾驶的未来,都在发生着变化。日前,外媒报道称,日本无印良品(MUJI)与芬兰自动驾驶公司Sensible4合作设计了一款名为GACHA的自动驾驶公共汽车。其中,
天能电瓶正品是什么样的?大家好,我是天能电池南阳办事处的虎稚稚,专业解答电池方面的问题。质量差假冒伪劣回答问题之前先给大家说明一个问题有的朋友换完电池后骑了一年多或者不到一年就出了问题,然后就觉得电池不是联想是不是国内PC厂商的天花板?联想,不仅是国内PC的天花板,放眼全球,都是!但某品牌,为了打土豪上位,发动舆情,认为它不是!特别是这段时间,造就风风雨雨!也不想想自己那公模机,糟糕的布局,拉垮的做工,糟糕的散热前三季度扣非净利同比下降47,与马斯克一起造火箭能否成为利欧股份扭转颓势的救急稻草?马斯克的火箭卫星送人上火星的神话本来就是假的,本来就是不可能的。只不过他利用所谓的高科技把自己编造成神。然后用这个高大形象来忽悠骗钱而已。可以说他从来没有真心实意踏踏实实的想干一番资讯朋友圈里充斥着正能量,东方证券美女分析师分享她的独特研究模式,对互联网与教育的研究不只是数据当我们讨论工作即生活这一话题时,更多的年轻朋友感受到的是压力与无奈,但这却是项雯倩最熟悉最自然的状态,也是她与自己所热爱的行业所做的工作相处的独特模式。雯倩同学有两个重要的身份。在电商即将死亡,你怎么看?我希望电商统统死光光,所有人都回归实体店,让街上的人多起来。非常想念那种挤挤攘攘的感觉。现在街上能看到最多的就是外卖小哥,快递小哥。天下各行各业都有饿不死的瞎家雀,电商也会找出头之2021年末,再聊无中生有的新款iphonesese的执念确切地说,小屏手机已然不是这个时代的主流了。社会和科技的发展,已经让手机的属性发生了根本性的拓展,从原来简单地打电话发短信,保持与他人联系的基本需求,演变到如今附加了娱乐前苹果设计灵魂离职后首度发声这才是苹果更像苹果的秘诀我非常想念史蒂夫,永远想念与他无言却充满默契的日子。ImissStevedesperatelyandIwillalwaysmissnottalkingwithhim。JonyIve你的电脑还能动吗?如果不能,那就请对号入座吧电脑卡得让人无法接受,操作一步后要等几秒甚至十几秒才能反应过来,有时反应不过来还出现白屏现象,或者弹出一个对话框显示程序无响应,最令人郁闷的是鼠标指针转变成一个小圈圈一直在那瞎转,小米新系统迎来4大升级,22款机型集体升级,流畅度媲美苹果iOS文球子审核子扬校对知秋对于MIUI系统,不少米粉朋友都很熟悉,这是小米基于安卓自主设计的操作系统,功能性和可玩性都比原生的安卓系统更强。但在近两年,由于小米只注重MIUI系统的可玩鸿蒙系统到底有多少差评?虽然很难听,但是很真实HarmonyOS2。0HarmonyOS2。0是华为技术有限公司于20年9月在华为开发者大会上发布的操作系统,适用于部分手机车机智能电视等设备。鸿蒙系统给应用带来了更多的流量入口上架不到一周,华为新机遭下架,方法堵死了?如大家所见,由于不可控因素影响,导致华为手机业务遭遇巨大损失。海思半导体研发出的5nm麒麟芯片目前已经无法量产,导致华为Mate50系列推迟发布,就连旗舰产品P50Pro也只能用4