12 张建飞(Frank)

尚未进行身份认证

What doesn't kill you make you stronger!

等级
TA的排名 2w+

关于面向接口编程,你真的弄懂了吗?

什么是接口(What)百度说:接口泛指实体把自己提供给外界的一种抽象化物,用以由内部操作分离出外部沟通方法,使其能被内部修改而不影响外界其他实体与其交互的方式。人类与电脑等信息机器或人类与程序之间的接口称为UI(UserInterface,用户界面)。电脑等信息机器硬件组件间的接口叫硬件接口。电脑等信息机器软件组件间的接口叫软件接口。牛津字典说:Interface:Ap...

2019-11-02 22:54:29

解决问题黄金三步:定义问题—分解问题—归类分组

我们经常说软件开发中,没有银弹。的确,单看软件领域,很少有什么方法论是普适的。然而再拔高一些,跳出软件的范畴,是有一些东西是普世的,比如老子说的“道”。好吧,“道”说的有点大。不过,最近我的确有一个新发现——我发现“归类分组”在我们解决问题中起着巨大的作用。而这里的“问题”不仅仅限于软件设计,从日常生活、产品设计到公司战略、生物分类。都有它的身影。这是为什么呢?究其原因可能有两个:一、归类分...

2019-09-03 19:52:00

应用架构COLA 2.0

很多同学不止一次和我反馈,我们的系统很混乱,主要表现在:应用的层次结构混乱:不知道应用应该如何分层、应该包含哪些组件、组件之间的关系是什么;缺少规范的指导和约束:新加一段业务逻辑不知道放在什么地方(哪个类,哪个包)、应该起什么名字比较合适?解决这些问题,正是我创建COLA的初心之一——试图探索一套切实可行的应用架构规范,这个规范不是高高在上的纸上谈兵,而是可以复制、可以理解、可以落地、可...

2019-08-26 11:58:28

被提拔成主管后如何提升自己的管理能力?

作者:空白白白白来自:知乎我是26岁当上数据总监的,当时完成了公司的数字化转型,帮助公司带来盈利。就被提拔上成为管理者了。我一下子从专注于自己的事的工程师到搭建团队还要...

2019-08-21 18:00:03

一文教会你如何写复杂业务的代码

了解我的人都知道,我一直在致力于应用架构和代码复杂度的治理。这两天在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,是一个新课题。针对该...

2019-08-02 10:45:21

复杂业务代码要怎么写

了解我的人都知道,我一直在致力于应用架构和代码复杂度的治理。这两天在看零售通商品域的代码。面对零售通如此复杂的业务场景,如何在架构和代码层面进行应对,我有了一些新的思考,在此分享给大家。我相信,同样的方法论可以复制到大部分复杂业务场景。一个复杂业务的处理过程业务背景简单的介绍下业务背景,零售通是给线下小店供货的B2B模式,我们希望通过数字化重构传统供应链渠道,提升供应链效率,为新零售助力。...

2019-08-01 18:33:14

应用架构之道:分离业务逻辑和技术细节

架构什么是架构?关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。硬是要给一个概述,我认为架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。架构始于建筑,是因为人类发展(原始人自给自足住在树上,也就不需要架构),分工协作的需要,将目标系统按某个原则进行切分,切分的原则,是要便于不同的角色进行并行工作。为什么需要架构?有系统的地方就需要架构,大到航空飞机,小到一个电商...

2019-07-04 07:28:00

复杂性应对之道——抽象

写本文的原因是,抽象是软件设计中最重要的概念。但抽象这个概念本身又很抽象,我们有必要花一些时间深入理解抽象、抽象的层次性,以及不遗余力的不断提升我们抽象能力。抽象的力量没...

2019-06-23 17:33:34

《代码精进之路:从码农到工匠》——抽象

写本文的原因是,抽象是软件设计中最重要的概念,但抽象这个概念本身又很抽象,值得我们花时间去好好探究一番。抽象的力量没有抽象思维,就没有人类光辉灿烂的现代文明。原始人看到一片树林,不会给它们一个名字,比如叫“松树”。他们会给每一棵树取一个独特的名字,可能叫“silisiba”。原始人只知道某棵具体的树。随着意识水平的发展,人类开始有意识地将具有相同特征的事物归并到一起,从“silisiba”...

2019-06-21 11:08:43

《代码精进之路:从码农到工匠》

我有一个梦想,我写的代码,可以像诗一样优美。我有一个梦想,我做的设计,能恰到好处,既不过度,也无不足。这种带有一点洁癖的完美主义就像一把达摩克利斯之剑,时刻提醒我不能将就、不能妥协。完美主义的代价是在很长时间里持续的迷茫和焦虑。甚至一度,我对软件行业是失望的,怀疑在软件的世界里,到底还有没有优雅的代码和整洁的架构。如果有的话,为什么所有的业务代码都像一座座“屎山”,既不优雅也不整洁,既晦涩又...

2019-06-21 10:59:51

阻碍你发展的是《能力陷阱》

读书的一大乐趣就是可以颠覆认知,让不同的思想在你这里汇聚,拓展你的思维,丰富你看问题的角度,让你在变化中成长。最近这本《能力陷阱》无疑是给我在认知上带来冲击很大的一本书,读完这本书,我自己也被惊出一身汗,这些陷阱真实存在,但自己却浑然不知。对了,这本书的作者是埃米尼亚·伊贝拉(Herminia Ibarra),全球50大管理思想家(Thinkers50)之一,哈佛商学院巡视委员会成员,欧洲工商管...

2019-06-17 16:07:21

万物流变:从辩证法看互联网架构和人生

辩证法这两天在学习辩证法,发现辩证法的思想非常有意思。辩证法简单的说就是事物都是运动、变化和发展的,事物的对立面在某些情况下是可以互相转换的,而且正是这种矛盾推动着事物向前发展。辩证法的思想自古有之,也是系统化思维和思辨思维的重要方法论,我们先简单看下其历史和脉络。中国古代朴素辩证法“祸兮福所倚,福兮祸所伏”“物极必反”,“否极泰来”“天下大势,分久必合,合久必分”。希腊古代辩...

2019-06-14 14:49:32

结构化思维,让你的工作有条不紊

在日常工作中,我们时常会碰到这样的情况,有的人讲一件事情的时候逻辑非常混乱,前后没有逻辑性关联,不能把一件事情说清楚。这种思维混乱是缺少结构化思维的典型表现。实际上,我们不仅在表达上要结构化,在分析问题的时候更要有结构化思维,这样才能分析的更全面、更深刻。什么是结构化思维那么到底是什么是结构化思维呢?我给结构化思维的定义就是逻辑+套路。表达要有逻辑所谓逻辑是指我们的结构之间必须是有逻辑关系...

2019-06-14 14:35:10

使用结构化思维,让工作有条不紊

在日常工作中,我们时常会碰到这样的情况,有的人讲一件事情的时候逻辑非常混乱,前后没有逻辑性关联,不能把一件事情说清楚。这种思维混乱是缺少结构化思维的典型表现。实际上,我们...

2019-06-14 14:20:57

世界上唯一不变的就是变化:互联网架构的辩证发展

辩证法这两天在学习辩证法,发现辩证法的思想非常有意思。辩证法简单的说就是事物都是运动、变化和发展的,事物的对立面在某些情况下是可以互相转换的,而且正是这种矛盾推动着实物向...

2019-06-10 09:23:17

技术人自己的KPI

为什么需要技术KPI在业务技术团队,有一个不好的趋势,就是团队越来越业务,越来越没有技术味道。每个人都在谈业务,技术大会上在谈业务,周会上在聊业务,周报里写的是业务项目....

2019-06-09 21:00:06

复杂度应对之道 - COLA应用架构

前言从业这么多年,接触过银行的应用,Apple的应用,eBay的应用和现在阿里的应用,虽然分属于不同的公司,使用了不同的架构,但有一个共同点就是都很复杂。导致复杂性的原因有很多,如果从架构的层面看,主要有两点,一个是架构设计过于复杂,层次太多能把人绕晕。另一个是根本就没架构,ServiceImpl作为上帝类包揽一切,一杆捅到DAO(就简单场景而言,这种TransactionScript也还凑合...

2019-01-04 17:04:44

Synchronized和Lock该如何选择

本文将从Synchronized和Lock的线程状态和同步算法的比较为切入点,深入探讨Java的并发处理和锁的机制。线程状态BLOCKEDvsWAITING我们使用jstack将JVM的线程stack打印出来的时候,如果采用的是Synchronized进行并发同步的话会看到如下的日志:如果采用的是Lock进行并发同步的话,会看到如下的日志:类似的如果是调用j...

2018-05-21 22:36:04

复杂性应对之道 - 领域建模

为什么要领域建模软件的世界里没有银弹,是用事务脚本还是领域模型没有对错之分,关键看是否合适。就像自营和平台哪个模式更好?答案是都很好,所以亚马逊可以有三方入住,阿里也可以有自建仓嘛。实际上,CQRS就是对事务脚本和领域模型两种模式的综合,因为对于Query和报表的场景,使用领域模型往往会把简单的事情弄复杂,此时完全可以用奥卡姆剃刀把领域层剃掉,直接访问Infrastructure。我个人也是坚...

2018-03-19 17:39:07

SOFA企业应用框架

前言从业这么多年,接触过银行的应用,Apple的应用,eBay的应用和现在阿里的应用,虽然分属于不同的公司,使用了不同的架构,但有一个共同点就是都很复杂。导致复杂性的原因有很多,如果从架构的层面看,主要有两点,一个是架构设计过于复杂,层次太多能把人绕晕。另一个是根本就没架构,ServiceImpl作为上帝类包揽一切,一杆捅到DAO(就简单场景而言,这种TransactionScript也还凑合,...

2018-02-08 10:37:29

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条Blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。