御龙在天开服时间表交易时,拆分 单个交易ctrl+...

娱乐资本论郑道森:IP骗局论,内容和交易建议拆分|起来嗨
娱乐资本论郑道森:IP骗局论,内容和交易建议拆分|起来嗨
我们看完了所有创业报道 选最好的给你娱乐资本论是专注于娱乐产业研究报道的垂直媒体,希望从财经和娱乐的视角来看娱乐行业。目前业务延伸到财务顾问、线上线下的活动领域。在华映资本的媒体分享会上,娱乐资本论创始人郑道森对当下的文娱行业做了如下分享,由思达派()小编编辑整理,以下是分享记录:谈不上分享,更多的是从一个媒体人的角度,看了很多案例,做了很多采访,也听了很多创始人的吐槽之后,发现这个领域有很多有意思的事情,可以跟大家讲讲比较有意思的几个点。为什么我说文娱行业存在几个大坑?我觉得文化领域到底数据多少难以被真正知道。一般投资人在投一个公司的时候,会跟公司签一个对赌协议。所谓的对赌协议就是你今年要做到多少数据,这样我第二笔资金才会打给你。我第一次听到这种协议的时候觉得很有意思,因为这种流量和数据完全可以通过各种手段来进行变化和调整,在这个行业也有做第三方流量***的公司。包括刚才跟师兄聊到的,他们也在帮视频做流量分发和帮PGC找流量的生意。基本上你想要什么样的流量,我们就会帮你做出来什么样的流量,你想要什么样的垃圾流量,我就能帮你做出来什么样的垃圾流量。这就是有很多水分和需要大家擦亮眼的地方。之前看到有意思的一个点,IP像是一个骗局。当很多非文化领域的投资人进入到投资领域的时候,看不懂文化领域的内容所以抓取文化领域的一些数据,比如说阅读量、播放量来衡量商业价值和市场认可度。而IP可能就成了文化领域数据化的一个展现形式。我们在做采访的时候会发现,很多PGC在初期有不错的idea,即:我们每天都在做节目,这个节目的未来发展方向是要做电影,或者说网剧和网大。去年年底的时候我还是相信这个故事的,但是过了大半年的时间你会发现,当初说要做网剧和网大的公司都放弃了他们的计划。我有个同班同学在做编剧,他也在协助一些PGC的公司在做网剧和网大的内容,会发现剧情向的内容和非剧情类内容之间存在着巨大的鸿沟。能够运营好非剧情类内容的CEO,和运营好剧情类内容的CEO之间有非常巨大的差别。我们之前也会接触到比较小的,类似《霸道总裁爱上我》、《蛇蝎天使》之类不出名的IP。在我们跟他们接触的时候,他们会提出来说,2014年下半年和年底的时候大家会有这样一种想法:全产业链布局,IP要去做网文,网文去带热漫画,漫画再带热动画,通过动画再做网剧,通过网剧最后做大电影。但是大半年过去了,我们最后发现这样的公司会逐渐调整策略,比如说网文到底有没有必要?漫画这个领域是否需要涉足?如果我有很好的世界观和人物设定,我是不是应该把所有钱都花在用最好的编剧去打磨一个最好的电影剧本,然后再把精力分散到动漫等各种方向?在这个领域会有一些蛮有意思的误区成分在里面。从内容到交易真的是非常难的一件事情。其实现在看很多内容类的创业项目,会有希望内容到交易的这样一种状况。而我密切接触了几家创业公司,就先后放弃了内容到交易的转型,而把整个公司的重心放在专心做内容,将内容授权给比较擅长做交易的公司来做交易。因为自己做交易会遇到几个问题:先是电商核心基因上的差别。可以想象有一天娱乐资本论变成了一个电商,我们公司有大量的***,然后去跟我们的客户谈快递包邮。我们绝对做不了这样的事情。再比如供应链管理。其实我们也有看到一些做电商做的比较好的内容创业者,但一个奇怪的事情是,大多数这种创业者交易做的比较大,一定是因为他们跟第三方机构合作开发了新的产品。往往他们自己选的品,基本上赚不到钱,纯属卖空。讲一个我今年年初接触到的案例,一个台湾做美食的网剧,当时他们拿到了优酷和阿里非常好的资源,也是希望通过这个网剧来边看边买,边看边买推出的产品是台湾美食游。当时这个网剧的播放量还不错,但是通过网剧转而购买台湾美食游的旅游产品的人寥寥可数。因为最后他们发现,旅游并不是一个冲动性消费行为,并不是我看了一个网剧就可以去策划一场旅游。通过这个网剧也有做一些食材和餐具的交易,但是难以找到和网剧内容逼格相匹配的优质产品,以及优质供应链和销售渠道。这家公司的目前状况,是在做一些国内外优质IP的前期运营和开发。所以说到这里,有一个点是,从去年这个时候开始,娱乐资本论开始通过一个团队的方式来看整个文化领域的创业和投资。一两年的时间这个领域的资本经历了由冷到热,现在大家又逐渐回归理性的一个过程。我觉得接下来这种热度过后,创业和投资的氛围才是一个更好的开始。所以我们提出一个口号是:现在才是价值回归和价值发现的一个最好时机。项目要去掉一些不切实际的幻想和内容,并且在项目估值上有一个趋于理性的考量。
产品建议及投诉请联系:交易系统模块划分,模块拆分,重构实战 - CSDN博客
交易系统模块划分,模块拆分,重构实战
随着代码越来越多,引发了很多问题.
企业架构分为事业部,
其中又分为产品,开发,ui 。
这是两种划分 垂直切分和水平切分
说到我们技术系统,水平切分和垂直切分是什么?
最小划分到什么层级?***: 最小的流程力度.可能会有进一步拆分出底层支持模块.比如帐户,比如券.
1. 首先通过垂直拆分业务流, 然后水平切分复杂业务流. (个业务流功能点。)
2. 合并流程命名对应的模块名.
3. 然后将领域实体划分到对应的业务流中.
& 3.1 另外最好将表拆分,最小化功能原则. 按照流程和业务将通用的部分提取出来.
& 比如帐户流水和订单,支付,充值业务都相关.那这些就属于非帐户模块属性. 泛化为一个biz_type和desc描述.
&比如订单表,分为orderBase orderResult& 1对1 .下单和成单后属性
4.将业务入口划分到各个模块中.
5. 可能不能的模块会共用同一张表,那这张表的service就是支持模块.
6.& 找出现有的 type 值和 status 值, 看看是否可以归并出子 type , 下游保存的 type 是否是上游传入. 例如 cashier_thirdparty 的 biz_type
7. 难点的地方(找出原系统可改造的点,不被原有代码所所述的 实体结构影响 ):
&&&& 增加中间实体,更或者组合:
&&&& 7.1& 共存的组合:变静态写死的多个组合,抽象为相同实体的 list ( 券,权益,支付渠道抽象为渠道,不同渠道的不同静态参数,用泛型来实现, 或者 map )
&&&& 7.2& 互斥接口: 变互斥的多个为接口,然后 creator, kuaipay ,phoenix, 第三方支付的支付,支付查询,支付回调,退款
&&&& 7.3& 不同流程依据的分流 type 不一样, 比如费用流程按代保养,代驾分,支付流程按支付系统分,再按支付渠道分.(业务只是其中的一个值了,取微信的配置用)
&&&& 7.4& 分拆后又聚合: 流程分拆后, 发现各自的流程也有共同的, 那么就需要抽象出面向抽象接口的组装类 manager,比如 支付 要保存支付流水和向下游系统交互. 这个就是 manager 的功能, 或者说是抽象父类. 但是最好不要用继承,用接口组合是最好的. 衍生性比较好.
&&& 7.5 稳定性相关重构. 减少计算,增加存储. 例如: 根据费用要计算很多. 乘客支付金额, 平台垫付金额, 司机报单优惠, 权益等.& 每次计算都要获取大量的数据,增加依赖和不稳定性.
&&&&&&&&& 券也能先计算(企业支付不能用券,微信等可以用券)
一期后的重新思考,不仅仅局限于水平,垂直. 还包括(亮点,创新收获):
& 1. 模块划分的意义在于边界和隔离变化(高内聚). 起到上游的变化尽量少影响下游.
&&&&&&& 边界 : 和支付宝打交道需要一个系统, 网关
&&&&&&& 底层领域(复杂Bean和新技术栈)屏蔽隔离 :
&&&&&&&&&&&&& 1. 比如公司内一个C技术栈层面的系统,封装后提供给java使用.&
&&&&&&&&&&&&& 2. 业务层面, 分润和支付都需要对订单层面的费用明细要了解,虽然支付和分润都属于不同的业务流.但是面向的领域都是同一个,而且期望得到的数据又单一. 一个是收,一个是支出. 所以费用归类属于到一个模块上去.. 将复杂的各种费用类型,已经费用类型的变更给隔离掉.
&&&&&&&&&&&&&&&&& 面向领域去维护模块(自己的领域独立,别人的领域也独立), 而不是流程. 1. 要分层次,每个层次要将输入收缩后输出. 这就是(模块)层次的意义. 2.将水平切割后,共同面对的领域再抽象. 如上, 支付和分润都不再需要关注订单模块.
& & & 代码结构和模块划分 http://blog.csdn.net/fei33423/article/details/
&&& 2.2 模块划分优先划分通用性的模块(接口字段就是通用性的,mongdb): 业务无关.
&&&&&&& 比如, 帐户和收支系统. 比如***系统. 比如流水系统.
&&& 2.2. 再考虑业务层面可以分哪些系统.
3. 妙用组合,而不是扩展. 比如冻结金额.用两个帐户组合. 并发用分布式锁.
&&&&& 现金支付,先扣司机钱. 但是考虑到扣的太多,后续分润又延迟,怕影响司机接单.
&&&&& 转用冻结司机金额的概念.后续从冻结帐户上解冻和转钱.这样帐户流水层面就能体现出每一笔帐户变动.起到每笔操作都要记账的作用.
这就是微服务,微服务虽然只维护一张表,但是
支付中疑难问题:
& &1. 兼容支付问题. 迁移换回调地址导致.&
& &2. 旧的pay重新换流水号.一天内不换.
& &3. &幂等问题.
& &4. 支付没有回调回来的问题. 网络抖动.
& &5. 未代扣签约用户体验优化
重构依赖梳理:可以通过ide的导致call hierechary去分析.
模块划分通过接口强制隔离引发的问题:
& &1. 枚举类无法传递
& &2. 原有代码结构夸层调用导致代码迁移成本过高.
& &3. 底层模块变动,不了解到底要回归哪个业务. 兼容性回归.
1. 想要的代码不知道去哪里找:
&& 1. 哪个包下面
&& 2.哪个类下面,会不会有人专门对某个业务又建了个类.
&& 3. 怎么确保已经遍历过了.
&&& 一个模块的bizService放很多地方,放在几个目录里,一开始可能大家都清楚,慢慢的可能就混乱了,.最开始是连这种意识都没有,特别是相同模块的BizSerice要放在一起.
&&& 有些通用的代码,有些写在了service,有些写在了bizService,有些写在了sharedService.
&& 有些自己新增了一些bizService,然后放在了其他包里. 老人开发自己不熟悉的代码的时候,也会闷逼了. 同时依赖的层级可能是多层的,放在同一个jar里,可能包结构都是扁平化的.
2.跨层级模块思维: 这个可能大家基本都是不重视的.& 现在所有的dao,entirty都在一层. 但是他们显然是在不同层次的..(微服务链,虽然某些微服务只维护了一个实体,但是其功能是很强大的)
问题:&& 状态和类型混合在一起,期望起到cas锁的作用.但是把业务通过实体来控制了.增大了底层复杂性.
问题2:& 模块划分清楚了,有些业务代码怎么放就更会小心. 比如支付系统应该收多少钱,应该是独立一个模块计算的.
问题3:& 有些方法比较大,可能和模块划分无关. 比如订单代金券和费用是一起返回的.
问题4: & 1. 现有系统:& 企业支付等不能,权益等不能用代金券是某个代码维护的. 但是现金支付的支付金额又是另外一个地方维护的.
&&&&&&&&&&&&& 2. 支付阶段已经不需要关心订单等消息,也不需要关心给乘客通知等问题.不需要关心是哪个人. 没有强制模块划分和依赖独立,这些问题可能都发现不了. 通过模块依然自然而然的通过编译报错解耦了.
&&&&&&&&&&&&&&
解决方案: 多模块--这也是微服务的基础.
微服务的好处: 业务代码解耦明显,不通过人去维护
1. 先熟悉流程,细化. 比如何时通知司机,乘客.& 这些考虑到了,流程基本上会想到很细.
想到把支付和回调两个流程分开. 才能把代扣和支付流程分开.
对应问题点方法:
2. 状态重构,不要把类型和状态混合起来
3. 数据流重构,大的方法要变小.& 比如支付这边每次都获取 费用列表+券 +最终的支付金额. 这其实可以分成三个接口.
如何把帐户和网关系统提取出来. 很简单..你抽象出了提现模块,也抽象出了支付模块.他们共同操作的都是帐户模块,很自然就抽出来了.
同样帐户流水模块也一样..
解决方案引发的问题:
&& 1. 新api对应的bean需要 set get
&& 2. 不可能同时移过来, 只能保持副本维护. 特别是非常通用的cashier表. 这种可能就先不服务化了.
逐步把dao收拢到各个模块中.. 这样对方只能看到比较上层的service,不会自己盲目的去组装. 减少重复代码生成.
模块切分整体业务梳理责任到人. 文本化,大家都可以去看.
落地方案讨论,对应可能需要的预估点讨论按照方案出改动设计文档和预估时间
业务整理,梳理非本模块代码,依赖哪些非本模块接口.解耦mq.适当的跨层依赖重构.内部重构: 方法拆分,形参确认
分几期,安排排期开发测试.
拆分总体思想:
水平切分和垂直切分.
&&&&& 2. 重要流程先行.
模块依赖图:
&&& trade: 交易模块,订单相关业务.
& & account:帐户管理,提现,充值等
&&& bill: 乘客支付的金额和优惠金额
&&& pay: 线上支付,代扣等相关逻辑.
&&& shareBenefit: 分润规则读取,分润计算,入账,分润通知
&&& task: 重试修复的定时任务总控制器;
子模块工程划分
service和领域实体entity分开: service需要隔离,领域实体可在内部传播可见.
&& api-impl
&biz-interface
&& biz-impl
&dal-interface :
&& dal-impl :
&dal-entity : 包含本领域实体,依赖外部领域(order,voucher)实体.
将interface和领域实体entity分开,这样使领域实体entity可以在模块内部传播.
模块切分影响点和工作量评估:
& 1. 对应代码是否非自己模块业务.
&&&& 1.1 不是,那么就需要抽出到对应模块中.
& 2. 单元测试工作量,至少成功和失败两个case. (准入case,测试提供)
& 3. mq解耦
& 4. 跨层重构,跨层调用. 原本biz层调用了dal层.
本文已收录于以下专栏:
相关文章推荐
系统拆分是单体程序向分布式系统演变的关键一步,也是很重要的一步,拆分的好坏直接关系到未来系统的扩展性、可维护性和可伸缩性等,拆分工作不难理解,但是如何正确拆分、有什么样的方法和原则能帮助我们拆分得到一...
http://www.oschina.net/question/110?nocache=8
这是我加入公司后,公司架构的演变,但本身也有些...
一个大型系统里各个环节中最容易出性能和可用性问题的往往是数据库,因此分布式设计与开发的一个重要领域就是如何让数据层具有可扩展性,数据库的扩展分为Scale Up 和Scale Out,而Scale U...
系统为什么拆分?
系统做大了,并发量无法扛得住,如何做?
业务做复杂了,单个应用中不能个性化,如何做?
模块和逻辑对各类资源开销非常特殊,如何做?
。。。。。。
拆分、拆...
细数到今天,拆分系统已经断断续续进行了一个月了,希望在这里整理一下,对接下来的拆分工作有益。
这里记录一下在实际工作中总结的几条原则吧,主要是达到各系统间低耦合,系统内部高内聚。
1. db不能跨系统...
# coding=utf-8
@author: liujiawei (Sy1507518),hanxu (Sy1507522)
@license: GPL
@contact: ...
原文出处 /blog/610530
用 Java构建股指期货交易系统
Liu Hang ( )
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

参考资料

 

随机推荐