摘要: 前言 至少30年以前,一些软件设计人员就已经意识到领域建模和设计的重要性,并形成一种思潮,Eric Evans将其定义为领域驱动设计(Domain-Driven Design,简称DDD)。在互联网开发“小步快跑,迭代试错”的大环境下,DDD似乎是一种比较“古老而缓慢”的思想。然而,由于互联网公司也 阅读全文
posted @ 2018-01-23 17:12 Love馨蕊 阅读(681) 评论(0) 推荐(0) 编辑
摘要: 某天和朋友吃饭正好聊到这个话题。作为架构师或者做技术的人,在开发软件时,我们基本上就是在扮演上帝的角色:我们不但要创建出一个个的程序,还要让这些程序能够脱离我们在硬件上独立运行,以便为这个程序所服务的群体提供服务。当这个程序出现问题甚至bug的时候,我们还得扮演牧师的角色去修复这些问题。这不正是一个 阅读全文
posted @ 2018-01-23 17:09 Love馨蕊 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 在第六篇文章中,我们得出一个结论,软件架构实际上包括了:代码架构,以及承载代码运行的硬件部署架构。实际上,硬件部署架构最终还是由代码的架构来决定。因为代码架构不合理,是无法把一个运行单元分拆出多个来的,那么硬件架构能分拆的就非常的有限,整个系统最终很难长的更大。 所以我们经常会听说,重写代码,推翻原 阅读全文
posted @ 2018-01-23 17:08 Love馨蕊 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 什么是架构师 在之前的几篇文章中,经常会提到架构师这个词。我们已经定义了什么叫架构,那怎么定义架构师呢,是不是做架构的就叫架构师了? 没有这么简单,本篇尝试讨论一下这个问题。 架构师的前提条件 如果一个人在工作中,只是致力于完成自己的工作,以做好自己的工作为主要目标,那么最多只能成为一个工匠,无法成 阅读全文
posted @ 2018-01-23 17:07 Love馨蕊 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 前一篇文章简述了什么是软件。那么什么是软件架构呢?按照惯例,我们来看看是什么问题,是谁的问题。 要解决谁的问题? 如前所述,软件实际上就是把现实生活模拟到计算机中,并且软件是需要在计算机的硬件中运行起来的。要做到这一点需要解决两个问题: 一、业务问题 具体的现实生活状态下,没有软件的时候,所解决的问 阅读全文
posted @ 2018-01-23 17:06 Love馨蕊 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 前面通过四篇文章,把什么是架构,如何做好架构等必要的概念澄清了一下。这些概念对于在各种不同的领域都应该也是有用的,需要读者自行思考,并应用到自己所在的领域中。在这篇文章开始,我们用同样的思考,来看看软件是怎么回事,以及如何运用架构思维,更好的设计和实现软件。 冯诺依曼结构,图灵机,以模拟人为目标 软 阅读全文
posted @ 2018-01-23 17:05 Love馨蕊 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 前一篇已经讲了如何识别问题。在识别出是谁的问题之后,会发现,在大部分情况下,问题都迎刃而解,不需要做额外的动作。很多时候问题的产生都是因为沟通的误解,或者主观上有很多不必要的利益诉求导致的。但是总还有一部分确实是有问题的,需要做调整,那么就必须要有所动作,做相应的调整。这个调整就是架构的切分。 切分 阅读全文
posted @ 2018-01-23 17:04 Love馨蕊 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 按照之前架构的定义,做好架构首先需要做的就是识别出需要解决的问题。一般来说,如果把真正的问题找到,那么问题就已经解决80%了。这个能力基本上就决定了架构师的水平。 那么面对问题有哪些困难呢? 我们先看一则笑话。女主人公:老公,把袋子里的土豆切一半下锅。结果老公是把袋子里的每个土豆都削了一半,然后下锅 阅读全文
posted @ 2018-01-23 17:03 Love馨蕊 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 在前一篇文章中,我们讨论了什么是架构。事实上,这些基础概念对于做架构是非常重要的,大部分人对于每天都习以为常的概念,都自以为明白了,但实际上都是下意识的,并不是主动的认识。比如说“什么是桌子?”,做培训的时候,我经常拿这个例子来问大家,回答千奇百怪。这实际上就导致了做架构的时候,不同角色的沟通会出很 阅读全文
posted @ 2018-01-23 17:01 Love馨蕊 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 架构漫谈是由资深架构师王概凯Kevin执笔的系列专栏,专栏将会以Kevin的架构经验为基础,逐步讨论什么是架构、怎样做好架构、软件架构如何落地、如何写好程序等问题。专栏的目的是希望能抛出一些观点,并引发大家思考,如果你有感触或者新的感悟,欢迎联系专栏负责人Gary(微信greenguolei)深聊。 阅读全文
posted @ 2018-01-23 17:00 Love馨蕊 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 一、阻塞和非阻塞 传统的 IO 流都是阻塞式的。也就是说,当一个线程调用 read() 或 write()时,该线程被阻塞,直到有一些数据被读取或写入,该线程在此期间不能执行其他任务。因此,在完成网络通信进行 IO 操作时,由于线程会阻塞,所以服务器端必须为每个客户端都提供一个独立的线程进行处理,当 阅读全文
posted @ 2018-01-23 15:55 Love馨蕊 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 一、原理与概念 一、概念流:流动 、流向 从一端移动到另一端 源头与目的地程序 与 文件|数组|网络连接|数据库 ,以程序为中心 二、IO流分类1、流向: 输入流与输出流2、数据:字节流:二进制,可以一切文件 包括 纯文本 doc 音频、视频等等字符流:文本文件,只能处理纯文本3、功能:节点:包裹源 阅读全文
posted @ 2018-01-23 15:49 Love馨蕊 阅读(1285) 评论(0) 推荐(0) 编辑
摘要: 接着前面的登录模块的进化史,带大家回顾java学习历程(一) 继续往下面讲 前面我们去实现登录功能,都是想着要完成这个功能,直接在处理实际业务的类中去开始写具体的代码一步步实现,也就是面向过程的编程。 那么现在我们站在设计的角度上去实现该如何做呢?实际上在项目开发的时候,需求规划和数据库设计好之后, 阅读全文
posted @ 2018-01-23 14:46 Love馨蕊 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 一直在想着写点特别点的东西,让有兴趣学编程的人确实能学到点干货,今天就来随意写写。 大家在网上查找资料看到最多的demo估计就是登录功能的演示了,为何大家偏爱拿登录来做demo呢?因为行业应用类程序的核心就是为了让用户能与数据进行交互,对于一个高级DBA来说的话,他与数据的交互可以直接与数据库进行打 阅读全文
posted @ 2018-01-23 14:45 Love馨蕊 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 5.2 Array类型 创建数组的基本方式有两种: 方式一:使用Array构造函数(new操作符也可省略不写)。 方式二:使用数组字面量表示法。 数组之:索引和length 数组之索引: 数组之length: 由于数组最后一项的索引值始终是length-1,因此下一个新项的位置就是length。每当 阅读全文
posted @ 2018-01-23 11:48 Love馨蕊 阅读(152) 评论(0) 推荐(0) 编辑
摘要: Servlet不是线程安全的。 要解释为什么Servlet为什么不是线程安全的,需要了解Servlet容器(即Tomcat)使如何响应HTTP请求的。 当Tomcat接收到Client的HTTP请求时,Tomcat从线程池中取出一个线程,之后找到该请求对应的Servlet对象并进行初始化,之后调用s 阅读全文
posted @ 2018-01-23 11:40 Love馨蕊 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 添加用户 以root用户登录数据库,运行以下命令: 上面的命令创建了用户zhangsan,密码是zhangsan。在mysql.user表里可以查看到新增用户的信息: 授权 命令格式:grant privilegesCode on dbName.tableName to username@host  阅读全文
posted @ 2018-01-23 11:36 Love馨蕊 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 上篇文章《大白话说Java泛型(一):入门、原理、使用》,我们讲了泛型的产生缘由以及其基本使用。但泛型还有更加复杂的应用,如: 上面的 extends 和 super 关键字其实就是泛型的高级应用:泛型通配符。 但在讲泛型通配符之前,我们必须对编译时类型和运行时类型有一个基本的了解,才能更好地理解通 阅读全文
posted @ 2018-01-23 11:30 Love馨蕊 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 远在 JDK 1.4 版本的时候,那时候是没有泛型的概念的。当时 Java 程序员们写集合类的代码都是类似于下面这样: 在代码中声明一个集合,我们可以往集合中放入各种各样的数据,而在取出来的时候就进行强制类型转换。 但其实这样的代码存在一定隐患,因为可能过了不久我们就会忘记到底我们存放的 list 阅读全文
posted @ 2018-01-23 11:29 Love馨蕊 阅读(117) 评论(0) 推荐(0) 编辑
摘要: DOC:17.Web MVC framework 一、1、导包:除了5个基本jar外spring-web-*.jarspring-webmvc-*.jarspring4.0以上还需导入aop包spring4开始,以Servlet3进行开发 2、springmvc核心组件:核心控制器:Dispatch 阅读全文
posted @ 2018-01-23 11:19 Love馨蕊 阅读(192) 评论(0) 推荐(0) 编辑