教育领域创业公司技术合伙人
本文探讨: - 什么是微服务 - 微服务的约束 - 微服务对架构属性的影响
本文探讨如下几个问题: 什么是REST REST包含哪些约束 什么是RESTful 纯RESTful API的难点在哪里 如果你去搜索「什么是REST」的话,大部分情况下,你看到的基本都是RESTful! 这类内容主要说的是: 资源URL应该怎么写 要用GET来获取资源 要用POST来新建资源...
计算机科学家David Wheele曾说过这么一句话: All problems in computer science can be solved by another level of indirection 意思是:「 计算机科学领域的任何问题都可以通过增加一个间接的中间层来解决」。
本文探讨如下几个问题: 什么是架构属性 约束和架构属性的关系 有哪些架构属性 各个架构属性涉及知识点 什么是架构属性 首先,问个很简单的问题!请看下面的Java代码: class Person { private String name; private int age; public void skill() { .
本文探讨如下几个问题: - 架构模式和架构风格有区别吗? - 什么是架构模式? - 什么是架构风格? - 架构模式和架构风格的区别是什么? - 有哪些架构模式? - 有哪些架构风格? # 架构模式=架构风格? 如果你搜索「架构模式和架构风格的区别」,你会发现答案千差万别: - 有的观点认为架构模...
本文探讨什么是「软件架构」,并对其下个定义! 决策or组成? 如果你去google一下「什么是软件架构」,你会看到各种各样的定义!不过大致可分为「决策」论和「组成」论! 其中一个比较著名的「决策」论的定义是Booch,Rumbaugh和Jacobson于1999年提出的: 架构就是一系列重要的决策,这些决策涉及软件系统的组织、组成系统的结构化元素及其接口的选择、元素之间协作时特定的行为、结构化元素和行为元素形成更大子系统的组合方式以及引导这一组织(也就是这些元素及其接口)、他们之间的协作以及组合(架构风格)。
本文探讨在需要了解一个开源项目时,如何快速的理清开源项目的代码逻辑! 以下是个人认为行之有效的方法: 先「跑起来」 自顶向下拆解 深入细节 延伸改进 本文以Mybatis为例来进行演示! 先“跑起来” 程序界有个老传统,学习新技术时都是从「Hello World」开始的!无论是学习新语言时,打印...
之前买了一本书,叫《架构探险—从零开始写Java Web框架 》(不推荐购买~),一本标题党书籍!但是我很推崇作者写代码的方式,就是基于TODO的方式进行开发! 个人认为以基于TODO的方式进行开发,至少有如下几点优势: 有助于理解需求 有助于梳理业务流程 有助于任务拆解和代码封装 TODO即注释...
使用Kotlin实现的区块链基本逻辑! 源码地址 GitHub仓库 启动方式 启动参数添加 -Dserver.port=8080,启动不同的端口,模拟不同的节点。 假设目前启动了8080和8081两个端口: 通过POST http://localhost:8080/peer 来添加节点的互通。
本文欲回答这样一个问题:在 「特定环境 」下,如何规划Web开发框架,使其能满足 「期望 」? 假设我们的「特定环境 」如下: 技术层面 使用Java语言进行开发 通过Maven构建 基于SpringBoot 使用IntellijIDEA作为IDE 使用Mybatis作为持久层框架 前后端分离 非技术层面 新项目,变化较频繁 快速迭代 开发人员资历较浅 人员流动性较大 我们的 「期望 」是: 快速上手:鉴于人员流动性较大、开发人员的资历较浅和项目的快速迭代需求,期望开发框架易于开发人员开发。
最近写了一个简单的客户端,用来模拟服务化框架的客户端调用,功能如下: 随机调用服务 打印服务结果 10%的几率较少访问量(假设1个并发),10%几率高访问量(假设100个并发),80%几率正常访问量(假设10个并发) 打印各个访问量情况下的服务调用总时间 分别尝试了Java和Clojure实现,...
原文地址:http://www.ivaneye.com/2016/07/23/iomodel.html 无处不在的C/S架构 在这个充斥着云的时代,我们使用的软件可以说99%都是C/S架构的! 你发邮件用的Outlook,Foxmail等 你看视频用的优酷,土豆等 你写文档用的Office365,googleDoc,Evernote等 你浏览网页用的IE,Chrome等(B/S是特殊的C/S) ...... C/S架构的软件带来的一个明显的好处就是:只要有网络,你可以在任何地方干同一件事。
用户体验 作为互联网从业人员,经常会接触到“用户体验”这个词! 我们可能为了一个菜单该放在哪里而争论,或一边苦逼的编码一边骂着SB产品经理! 我们为别人考虑着“用户体验”,但是对自己一直在用的软件,为什么却这么将就呢? 软件=工具 作为软件开发人员,使用的软件不在少数,我们都称为工具。