商品服务设计的感悟

作为商品的管理员,可以选择一个或多个商品进行上架,下架,删除操作(至于创建和修改,那是编辑模块了)。这些操作非常简单,就是一个按钮的事,首先要判断所选商品是否满足条件,否则给出提示,都满足操作条件后,还要给出确认提示。
这三个操作对应6个方法(list和one ),最开始设计  传入最终确定的商品,给出提示,Promise后操作服务器。然后还额外加了一个验证,验证不通过给出提示,返回false。
这些都封装后发现service变得复杂了。。。
如果要修改提示的语句(这个经常修改),提示方式不应该在服务中做,应该交给外面啊。
作为一个服务还是要简单,明确,专一,(我就是专门服务一件事的,没必要做太多,甚至包揽了所有的东西)
服务应该做到一旦写好,就不会轻易被修改,因为真正体现需求,经常修改的,始终是最外层,服务应该是让最外层变得更抽象,更优雅的东西,而不是最外层的替代。

时间: 05-28

商品服务设计的感悟的相关文章

微服务集成——《微服务设计》读书笔记

一.理想的集成应该是什么样的? 1.避免破坏性修改 如果在一个微服务的响应中添加一个字段,服务的消费方不应该受到影响. 2.保证API的技术无关性 微服务之间的通信应该是与技术无关的. 3.使服务的消费方易于使用 如果消费方使用该服务比登天还难,那么无论该微服务多漂亮都没用任何意义.但同时,易于使用的服务可能内部封装了很多细节,这会增加耦合. 4.隐藏内部实现细节 消费方与服务方的内部细节应该是分开的,如果与细节绑定,则意味着改变服务内部的一些变化,消费方也要跟着修改,这会增加修改的成本. 二.

【netty】Netty系列之Netty百万级推送服务设计要点

1. 背景 1.1. 话题来源 最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题.问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为如下几类: Netty是否可以做推送服务器? 如果使用Netty开发推送服务,一个服务器最多可以支撑多少个客户端? 使用Netty开发推送服务遇到的各种技术问题. 由于咨询者众多,关注点也比较集中,我希望通过本文的案例分析和对推送服务设计要点的总结,帮助大家在实际工作中少走弯路. 1.2. 推送服务

测试——《微服务设计》读书笔记

一.测试象限(Brain Marick) 二.测试金字塔(Mike Cohn)       1.单元测试 通常只测试一个函数或方法调用,通过TDD或者基于属性而写的测试就属于这一类,在UnitTest中,我们不会启动服务,对且对外部文件和网络连接的使用也很有限,通常我们需要大量的单元测试. 单元测试是帮助开发人员,是面向技术而非业务的.       2.服务测试 对于包含多个服务的系统,一个服务测试只测试其中一个单独服务的功能.只测试一个单独的服务可以提高测试的隔离性,这样我们可以更快地定位并解

建模:确定服务的边界——《微服务设计》读书笔记

什么样的服务才是好的服务? 高内聚.松耦合的服务才是好的服务.简而言之,就是把相关性强的放在一起,相关性不强的分开,物以类聚,人以群分,服务的划分也是这样.这就需要确定什么要放在一起,什么是要分开的,这个寻找的过程就是确定服务边界的过程. 限界上下文 限界上下文确定了这个边界内它所承担的职责. Evans在<领域驱动设计>中作喻:细胞之所以会存在,是因为细胞膜定义了什么在细胞内,什么在细胞外,并且确定了什么物质可以通过细胞.这是限界上下文的绝好比喻. 任何一个给定的领域都包含多个限界上下文.限

微服务设计笔记——几种远程过程调用方法

微服务设计中提到服务间常见的PRC 有如下几种:SOAP.Thrift.Protocol Buffers. 为了搞清楚几种RPC背后的机理以及应用场景,特意研究了一番: SOAP(Simple Object Access Protocol) 简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分: SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架: SOAP编码规则(encod

规模化微服务——《微服务设计》读书笔记

    系列文章目录:     <微服务设计>读书笔记大纲 改变思维的角度:故障无处不在 当微服务规模化后,故障是无可避免的,以往我们总是想尽力避免故障的发生,而当故障实际发生时,我们往往束手无策.我们花了很多时间在流程设计和应用设计的层面上来阻止故障的发生,但实际上很少花费时间思考如何第一时间从故障中恢复过来. 一些公司喜欢组织活动,活动当天系统会被关掉以模拟故障发生,然后不同团队演练如何应对这种情况.这些项目中最著名的是混乱猴子(Chaos Monkey),在一天的特定时间随机停掉服务器,

《微服务设计》读书笔记大纲

cha1:微服务的概念--<微服务设计>读书笔记 cha2:微服务架构师的职责--<微服务设计读书笔记> cha3:建模:确定服务的边界--<微服务设计>读书笔记 cha4:微服务集成--<微服务设计>读书笔记 服务的协作:服务间的消息传递--<微服务设计>读书笔记 cha5:拆分:分解单块系统--<微服务设计>读书笔记 cha6:部署:持续集成(CI)与持续交付(CD)--<微服务设计>读书笔记 cha7:测试--<

Netty系列之Netty百万级推送服务设计要点

原文:http://www.infoq.com/cn/articles/netty-million-level-push-service-design-points 1. 背景 1.1. 话题来源 最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题.问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为如下几类: Netty是否可以做推送服务器? 如果使用Netty开发推送服务,一个服务器最多可以支撑多少个客户端? 使用Netty开发

《微服务设计》

最近在看<微服务设计>这本书.记录下自己的心得体会. 豆瓣:https://book.douban.com/subject/26772677/ 1.主题脉络 第一章 微服务:阐述了微服务的特点,以及带来的好处: 第二章 演化式架构师:描述了架构师的工作内容和若干准则,非常有参考价值. 第三章 如何建模服务 :好服务的标准?以及如何拆分服务的方法:上下文边界+业务概念沟通 第四章 集成:分享了服务间的协作方式,以及服务的版本管理 第五章 分解单块系统:更细的阐述拆分服务的方面. 第六章 部署:服