首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

用"责任风暴"驱动OOADP和DDD

Eric Evans的《领域驱动设计》一书,主要讨论的是如何做好OOD(Object-Oriented Design, 面向对象设计),但在面向对象的软件开发过程中,OOD需要基于之前的OOA(Object-Oriented Analysis, 面向对象分析)所产生的分析模型进行设计,而OOA又需要基于之前的需求工作流所产生的用例模型进行分析。这些内容Evans在书中没有讲。所以如果仅读《领域驱动设计》,而没有掌握OOAD整套的方法,是无法将DDD落地的,也无法运用好OOP(Object-Oriented Programming, 面向对象编程)。当需要从一个单体系统中剥离一块业务设计微服务时,不会对这块业务进行软件建模,又何谈运用好DDD呢?从我最近10年接触到的企业内部应用系统的开发人员来看,绝大部分开发人员都缺乏OOADP的实践技能。他们基本上是基于数据库来开发,写出的代码是脚本式的,缺乏面向对象的封装和多态,导致代码难以阅读、扩展和维护。

02

庞氏骗局、市场操纵——关于区块链的几篇论文的读书笔记

Detecting Ponzi Schemes on Ethereum: Towards Healthier Blockchain Technology讲了庞氏骗局的检测。庞氏骗局是一种早就出现的骗局,它是通过从后来投资者取得的资金,作为“返利”返回给之前的投资者,虚假宣传,让投资者以为一定可以从中获利,而不断给其打钱,但可想而知,一旦发起骗局的人终止了,那么后来加入投资的那些人肯定收不到返利,资金就这样被骗走了。实际也表明,能从中获利的投资者占少部分,大部分参与者的利益是收到严重损害的,而获利最大的就是骗局的发起者。而智能合约由于其自动执行且不可终止,加上账户的匿名性,成为了庞氏骗局的一个很好的栖息地及保护伞。无疑,检测并预警庞氏骗局迫在眉睫。要检测智能庞氏骗局,首先能想到的办法就是可以根据智能合约的源码来手动判断,但这样工作量非常大,也不能实时监控,并且智能合约只需要通过字节码部署,没必要公开其源代码,所以其实以太坊上公开的源代码的合约并不多。所以更好的思路是从字节码入手,通过数据挖掘、机器学习的手段识别并预警智能庞氏骗局。首先,将智能合约的字节码反解成操作码是简单可行的,然后通过操作码的代码特征,如某个词出现的频率,可以判断其是否可能为庞氏骗局。此外,智能庞氏骗局有其独特的账户和交易行为特征,如参与者不多,多次参与,收益随机,大部分投资者没有回报,前期投资者回报次数较多,合约大部分只支付给曾经的投资者,投资次数与收益次数变异很大等,所以可以通过这些特征进行识别。这两个思路结合起来便是智能庞氏骗局的一个识别方法,这一方法无需源代码,在智能合约部署时即可识别庞氏骗局,且实验表明效果较好,有利于相关机构建立监管机制帮助投资者避免损失,帮助区块链技术更好的发展。

02
领券