腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
返回腾讯云官网
斑斓
张逸的技术分享
专栏作者
举报
256
文章
255131
阅读量
60
订阅数
订阅专栏
申请加入专栏
全部文章
设计
架构
系统
服务
其他
领域驱动设计
java
scala
微服务
模型
对象
uml
编程算法
spark
系统架构
大数据
开发
数据
架构设计
软件架构
企业
数据库
sql
数据处理
ddd
存储
测试
软件
网关
接口
框架
python
linux
程序员
事件
ruby
运维
工具
管理
函数
实践
erlang
react
ide
api
人工智能
分布式
单元测试
编程
产品
工作
科技
生命周期
事务
重构
机器学习
php
android
mvc
git
unix
spring
神经网络
深度学习
电商
http
容器
网络安全
jdk
敏捷开发
微信
小程序
数据分析
https
it
程序
登录
基础
架构模式
开发者
通信
性能
需求分析
iphone
javascript
go
actionscript
angularjs
xml
ecmascript
汇编语言
nosql
云数据库 Redis
postgresql
apache
mapreduce
访问管理
命令行工具
消息队列 CMQ 版
cci 持续集成
短信
腾讯云测试服务
mongodb
svg
redux
lodash
游戏
自动化
缓存
数据迁移
jvm
aop
markdown
dubbo
rpc
数据结构
canvas
kafka
性能测试
flink
agile
dsl
null
twitter
报表
编程语言
变量
并发
博客
部署
插件
低代码
反射
分布式事务
服务器
公众号
函数式编程
行业
后台
继承
集合
计算机
架构师
脚本
接口设计
进程
客户端
可视化
快捷键
模块化
内存
配置
企业应用
前端
求职
日志
软件开发
设计模式
摄像头
思维导图
搜索
线程
线程安全
效率
异常
异常处理
语法
原理
注解
搜索文章
搜索
搜索
关闭
阅读开源框架,总结Java类的定义
其他
即使我们明白Java的类,也未必清楚该如何正确地定义一个Java类。阅读一些开源框架的源代码,会启发我们灵感,并给出好代码的规范,提炼设计原则与模式。
张逸
2018-11-08
665
0
领域模型在交流中扮演的角色
其他
问题:我对于领域模型如何表示始终还不太明白。按照Evans书里的说法,代码应当是领域模型的主要部分,文档、图表作为补充。另外一方面,领域模型应当是所有参与者都能够理解的,而我觉得用户不太可能去理解代码。
张逸
2018-10-24
1.2K
0
一个完整的TDD演练案例(三)
其他
之所以将“验证输入是否合法”放在第三个任务,是因为它不属于happy path的范畴。它属于辅助业务,重要性相对次之。
张逸
2018-10-24
866
0
领域驱动设计概览
其他
领域驱动设计(Domain Driven Design,DDD)是由Eric Evans最早提出的综合软件系统分析和设计的面向对象建模方法,如今已经发展为一种针对大型复杂系统的领域建模与分析方法。它完全改变了传统软件开发工程师针对数据库进行的建模方法,从而将要解决的业务概念和业务规则转换为软件系统中的类型以及类型的属性与行为,通过合理运用面向对象的封装、继承、多态等设计要素,降低或隐藏整个系统的业务复杂性,并使得系统具有更好的扩展性,应对纷繁多变的现实业务问题。
张逸
2018-10-24
698
0
领域驱动设计中的架构要素
其他
多数时候,领域驱动设计的分层架构并不能清晰表达各模块之间的依赖关系,以及这些模块在分层架构中所处的位置。因为我倾向于将Uncle Bob的Clean Architecture与DDD的分层架构整合起来,如下图所示:
张逸
2018-10-10
3.3K
0
一文讲清楚什么是行为驱动开发
其他
行为驱动开发(Behavior-Driven Development, BDD)的概念来自于测试驱动开发,强调使用DSL(Domain Specific Language,领域特定语言)描述用户行为,定义业务需求,是需求分析人员、开发人员与测试人员进行沟通的有效方法。DSL是一种编码实现,相比自然语言更加精确,又能以符合领域概念的形式满足所谓“活文档(Living Document)”的要求。可以说,行为驱动开发将编码实现与业务行为描述完美地结合起来,走出了一条业务分析人员、开发人员与测试人员都能接受的中庸之道。
张逸
2018-07-27
695
0
迪米特法则与重构
其他
在面向对象设计的世界里,有一个寻常却又常常为人所忽略的原则——“迪米特(Law of Demeter)”法则。这个原则认为,任何一个对象或者方法,它应该只能调用下列对象:
张逸
2018-07-27
475
0
教会你何时定义领域服务
其他
若遵循基于面向对象设计范式的领域驱动设计,并用以应对纷繁复杂的业务逻辑,则强调领域模型的充血设计模型已成为社区不争事实。我将Eric提及的战术设计要素如Entity、Value Object、Domain Service、Aggregate、Repository与Factory视为设计模型。这其中,只有Entity、Value Object和Domain Service才能表达领域逻辑。
张逸
2018-07-27
650
0
透过文学经典理解软件设计的抽象思想
其他
博尔赫斯(Jorge Luis Borges)有一篇奇文,曰《博闻强记的富内斯》,以纪实手法杜撰了一个具有非凡记忆能力的传奇人物富内斯。博尔赫斯自云:“(《博闻强记的富内斯》)是长夜失眠的隐喻。”博尔赫斯大约是文学大师中最擅长使用隐喻的人了。他在诺顿讲座的演讲中,专门做了一次题为“隐喻”的演讲。极限编程的创始人Kent Beck非常推崇“隐喻”,并将其作为Spike阶段理解架构的重要手段,也是XP敏捷实践之一。
张逸
2018-07-27
347
0
Scala实现DSL的框架案例
其他
在skinny.validator框架中,提供如下的一种DSL调用方式来验证Map的值:
张逸
2018-07-27
902
0
MongoDB的数据建模
其他
MongoDB是一种面向Document的NoSQL数据库,如果我们还是按照RDB的方式来思考MongoDB的数据建模,则不能有效地利用MongoDB的优势;然而,我们也不能因为Document的灵活性,就可以在设计之初放任自流。 适度的建模是非常有必要的,尤其对于相对复杂的关联关系。因为在MongoDB中,处理这种关联关系既可以使用Link,也可以使用Embedded。 我们要评价一种决策,不能将其与具体的上下文割裂开来做判断,那种单纯说A技术要比B技术好的做法,就像小孩子看卡通片里的人物只知道说谁是好人
张逸
2018-03-07
903
0
Scala中的偏函数
其他
艺术地说,Scala中的Partial Function就是一个“残缺”的函数,就像一个严重偏科的学生,只对某些科目感兴趣,而对没有兴趣的内容弃若蔽履。Partial Function做不到以“偏”概全,因而需要将多个偏函数组合,最终才能达到全面覆盖的目的。所以这个Partial Function确实是一个“部分”的函数。 对比Function和Partial Function,更学术味的解释如下: 对给定的输入参数类型,函数可接受该类型的任何值。换句话说,一个(Int) => String 的函数可以接收
张逸
2018-03-07
2.5K
0
我的期望与痛:SICP
其他
几天前,袁英杰在微信中推荐《计算机程序的构造和解释》(Structure and Interpretation of Computer Programs,SICP)。 他的推荐词说: SICP是一本无论如何都应该去仔细阅读的书。读完它,如果你不是变成了fp的狂热爱好者,而是除了理解fp之外,也更加深刻的理解了OO,logical programming,以及认识到用任何一种方法描述世界都有其局限性,从而放弃对单种范式的狂热(但过程式是个例外,你需要从这个泥潭中越早跳出来越好),那么你才没有白读这本书。 其实
张逸
2018-03-07
1.8K
0
或许是领域建模的真相?
其他
我们一提及领域建模,就好像回到了石器时代。然而这个谜题至今还未解决,就好像穴居人的生存方式,我们只能猜测、推测以及演绎,却不能真实复现。 Martin Fowler的《分析模式》总结了诸多领域分析模式,Eric Evans开创了领域驱动设计的办法,至于还要老的CRC方法,用例驱动,ICONIX方法以及稍新一些的四色建模法,都在尝试领域模型的建构,结果仍然差强人意。 这个问题或许是Mission Impossible,因为领域逻辑其实是一个复杂系统,系统中的模型如三体一般互相影响,却又隐没在混沌中,并不真实
张逸
2018-03-07
713
0
架构模式的圣经
其他
在模式领域里,有一部伟大著作给予软件设计领域带来的影响非常大,那就是以德国人Frank Buschmann为主要贡献者的《面向模式的软件架构》(Pattern-Oriented Software Architecture)系列。 提及模式,开发人员的第一反应一定是GOF的《设计模式》。毫无疑问,这本软件领域的经典著作已经深入人心,差不多可以说是设计模式的圣经了。书中的23种模式已经成为开发者之间进行交流的术语,使用它们甚至像使用语言中的惯用法一般自然。然而,事实上,在模式领域里,还有一部伟大著作给予软件设
张逸
2018-03-07
1.5K
0
Spray中的Authentication和JMeter测试
其他
Spray Authentication 在Spray中,如果需要对REST API添加认证,可以使用Spray提供的Authenticate功能。本质上,Authenticate属于安全指令(Security Directive)提供的功能。它的接口定义本质上为: def authenticate[T](auth: => Future[Authentication[T]])(implicit executor: ExecutionContext): Directive1[T] def authentica
张逸
2018-03-07
1.1K
0
函数式非凡的抽象能力
其他
如果说面向对象思想是物质世界的哲学观,则函数式思想展现的就是纯粹的数学思维了。函数作为一等公民,它不代表任何物质(对象),而仅仅代表一种转换行为。是的,任何一个函数都可以视为一种“转换(transfo
张逸
2018-03-07
808
0
晴窗闲谈 | 今天,你写自动化测试了吗?
其他
一艘货轮满载着货物从港口启航,向浩瀚的大海深处破水而去。海面平静,微微皱起波浪,从容而显得宽容。然而,货轮的步履却有些蹒跚,发动机“轰轰轰”地嘶吼着,不堪重负,却无法让船只游得更快,倒像是海水咬住了船底往下在拖曳。 “嘟——嘟——嘟”,突然警报声响起,甲板上变得喧闹起来,一个水手模样的年轻人声嘶力竭地呐喊:“船超重了,快快快……快卸货!”声音急迫,甚至能听到哭音。然后,又是一阵喧嚷,似乎是在争吵甚么,就看到一个胖胖的中年人冲了出来。看他那肥胖的体型,真难想到他的身手竟然如此敏捷,如海豹一般破开人群,两手挥舞
张逸
2018-03-07
683
0
大数据 | Spark的现状与未来发展
其他
Spark的发展 对于一个具有相当技术门槛与复杂度的平台,Spark从诞生到正式版本的成熟,经历的时间如此之短,让人感到惊诧。2009年,Spark诞生于伯克利大学AMPLab,最开初属于伯克利大学的研究性项目。它于2010年正式开源,并于2013年成为了Aparch基金项目,并于2014年成为Aparch基金的顶级项目,整个过程不到五年时间。 由于Spark出自伯克利大学,使其在整个发展过程中都烙上了学术研究的标记,对于一个在数据科学领域的平台而言,这也是题中应有之义,它甚至决定了Spark的发展动力。S
张逸
2018-03-07
1.8K
0
设计匠艺 | 隐喻体现设计意图
其他
若要让意图清晰的呈现,可以运用“隐喻”。 何谓“隐喻”?隐喻(Metaphor)一词源于希腊语metephora,其字源meta的意思是“超越”,而pherein的意思则是“传送”,即“意义的转换”。古希腊思想家亚里士多德对隐喻的定义是:“将属于另一事物的名称用来指称某一事物。”这主要属于修辞格研究的范畴。而莱考夫与约翰逊则突破了该范畴,将其延伸到认知的研究,他们认为:“隐喻的本质是以另一事物和经验来理解和经历一件事或经验。”在语言学中,从认知角度解释隐喻的论点通常被称为认知隐喻,它强调从人类的思维高度来分
张逸
2018-03-07
864
0
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
立即发文
Python精品学习库
代码在线跑,知识轻松学
立即查看
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
立即体验
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
立即查看
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档