-
后端开发实践系列——领域驱动设计(ddd)编码实践
2019年6月20日 by 滕云 28 CommentsMartin Fowler在《企业应用架构模式》一书中写道: I found this(business logic) a curious term because there are few things that are less logical than business logic.初略翻译过来可以理解为:业务逻辑是很没有逻辑的逻辑。的确,很多时候软件的业务逻辑是无法通过推理而得到的,有时甚至是被臆想出来的。这样的结果使得原...…
-
使用命令行导入 git 仓库
If GitHub Importer 不适用于您的目的,例如,如果您现有的代码托管在私有网络上,则我们建议使用命令行导入。Were you able to find what you were looking for?Yes, easily Yes, eventually No Send在开始之前,请确保您知道: 您的 GitHub 用户名 外部仓库的克隆 URL,如 https://external-host.com/user/repo.git 或 git://external-ho...…
-
Dubbo负载均衡
1.简介LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时,还可以避免资源浪费,一举两得。负载均衡可分为软件负载均衡和硬件负载均衡。在我们日常开发中,一般很难接触到硬件负载均衡。但软件负载均衡还是可以接触到的,比如 Nginx。在 Dubbo 中,也有负载均衡的概念和相应的实现。Dubbo...…
-
使用 optional 摆脱 nullpointexception 的折磨
背景在Java中,如果你尝试对null做函数调用,就会引发NullPointerException(NPE),NPE是Java程序开发中的最典型的异常,对于Java开发者来说,无论你是初出茅庐的新人和还工作多年的老司机,NPE经常让他们翻车。为了避免NPE,他们会加很多if判断语句,使得代码的可读性变得很差。从软件设计的角度来看,null本身是没有意义的语义,这是一种对缺失变量值的错误的建模。从Java类型系统的角度看,null可以被赋值给任何类型的变量,并且不断被传递,知道最后谁也不知道...…
-
K8s实践(一):centos7.6部署k8s(v1.14.2)集群
k8s实践(一):Centos7.6部署k8s(v1.14.2)集群环境说明: 主机名 操作系统版本 ip docker version kubelet version kubeadm version kubectl version flannel version 备注 master Centos 7.6.1810 172.27.9.1...…
-
Jdk install on mac os
Java - MacOS下JDK安装、升级教程(附:JDK1.8官方下载地址)1,JDK 的下载与安装(1)首先访问 Oracle 官网(www.oracle.com),点击页面最下方的“Java for Developers”链接。(2)找到需要的版本后,点击旁边的“JDK DOWNLOAD”按钮:(3)选择“Accept Lisence Agreement”同意协议,然后点击 Mac OS X x64 后面的下载链接即可下载。(4)下载完成后双击安装包,按提示即可完成安装。(5)我们可...…
-
Mac下java环境变量配置总结【jdk&maven】
MAC下JAVA环境变量配置总结【JDK&MAVEN】环境变量配置:1、打开终端Terminal;2、进入当前用户主目录,cd ~;3、临时授权,sudo su;4、输入密码;5、创建.bash_profile文件,touch .bash_profile(如果存在则不必新建);6、打开.bash_profile文件,open .bash_profile(能打开则新建成功);7、输入jdk文件路径JAVA_HOME=/Library/Java/JavaVirtualMachines/...…
-
Shorturl
t.cn/xxx越来越多的短链接受到欢迎,今天分享一下t.cnGetting Startedt.cn属于新浪微博的一个短链接平台,同类的还有很多,比如百度dwz.cn等等,相对来说新浪的还是比较稳定。新旧版apihttps://api.weibo.com/2/short_url/shorten.json http://api.t.sina.com.cn/short_url/shorten.jsonGive examplesxml:http://api.t.sina.com.cn/short...…
-
Docker部署GitLab
GitLab是类似于Github的开源Git版本管理平台,功能强大且界面美观,通常用于搭建私有代码仓库,是目前公司内部Git版本管理系统的首选方案。 对于一个版本管理系统而言,如何去部署、升级、备份和迁移是一个必须考虑的问题,而Docker由于其容器特性,非常符合我们的需求,最重要的是它不会对现有服务器环境造成任何影响,这里选择Docker的方式部署GitLab一. 确保机器上安装了docker并启动# 安装dockeryum install docker# 启动dockers...…
-
心情日记
时间过得真快 一眨眼的时间,来北京好久了。记得当初刚来帝都,还是个学生,什么也不懂。第一次见过大城市,第一次坐地铁,第一次去这么远的地方,很多第一次从这里起航了。 我不是什么笔者,写不出那么多优美有趣的文字,可是文字是有趣的,也是有灵魂的,所以我想通过文字来记录我的生活,哈哈。 先谈谈工作吧,对,我就是你们眼中的程序员,coder,不过还是个渣渣,坐标西二旗。每天早上奔波于13号线。每天能看到很多人,大概是因为梦想吧,每天在这个空气不怎么新鲜的城市,交通堵得要死,房子贵的出奇。...…
-
领域驱动设计
介绍 Eric Evans的“Domain-Driven Design领域驱动设计”简称DDD,Evans DDD是一套综合软件系统分析和设计的面向对象建模方法。 过去系统分析和系统设计都是分离的,正如我们国家“系统分析师” 和“系统设计师” 两种职称考试一样,这样割裂的结果导致,需求分析的结果无法直接进行设计编程,而能够进行编程运行的代码却扭曲需求,导致客户运行软件后才发现很多功能不是自己想要的,而且软件不能快速跟随需求变化。 DDD则打破了这种隔阂,提出了领域模型概念,统一了分析...…
-
使用 TensorFlow 实现神经网络
介绍 一直关注 数据科学 、 机器学习 的同学,一定会经常看到或听到关于 深度学习 和 神经网络 相关信息。如果你对 深度学习 感兴趣,但却还没有实际动手操作过,你可以从这里得到实践。 在本文中,我将介绍 TensorFlow , 帮你了解 神经网络 的实际作用,并使用 TensorFlow 来解决现实生活中的问题。 读这篇文章前,需要知道 神经网络 的基础知识和一些熟悉编程理念,文章中的代码是使用 Pyhton 编写的,所以还需要了解一些 Python 的基本语法,才能更有利对于文章...…
-
Markdown工具集
什么是 Markdown Markdown 是一种方便记忆、书写的纯文本标记语言,用户可以使用这些标记符号以最小的输入代价生成极富表现力的文档:如您正在阅读的这篇文章。它使用简单的符号标记不同的标题,分割不同的段落,粗体 或者 斜体 某些文字. 很多产品的文档也是用markdown编写的,并且以“README.MD”的文件名保存在软件的目录下面。 一些基本语法标题 H1 :# Header 1 H2 :## Header ...…
-
Xcode 8 使用笔记
最近使用 Xcode8遇到了一些问题,想记下来,发现简书上有位同学写了一篇很详细的教程 原文链接,比较懒惰的我就在他的基础上加了些我自己的一些笔记。Interface Builder随着 14 年的 iPhone6 和 6P 出来之后,iPhone 的屏幕尺寸也越来越多,屏幕适配是一个需要解决的问题,以后不一定苹果又出什么尺寸的 iPhone 呢。在 iPhone6 和 6P 发布的同一年,苹果推出的 Xcode6 中在原有的 Auto layout的基础上,添加了Size Classes...…
-
Jekyll搭建个人博客
之前写了一篇HEXO搭建个人博客的教程获得了很好评,尤其是在简书上目前已经累积了10W+的阅读量了,也有好心的读者主动给我打赏,在此感谢。 如果你看过我的文章会发现我现在的博客样式跟之前是有很大的区别的,之前我也是使用 HEXO 搭建的博客,后来发现使用 HEXO 在多台电脑上发布博客,操作起来并不是那么方便,果断就转到了 Jekyll 上,接下来我会讲如何使用 Jekyll 搭建博客,博客模板效果。介绍 Jekyll 是一个简单的博客形态的静态站点生产机器。它有一个模版目录,其中包含原...…
-
Git教程
介绍 Git是做项目的版本管理,你也可以称它们为版本管理工具。假如现在你有一个文件夹,里面可以是项目,也可以是你的个人笔记(如我这个博客),或者是你的简历、毕业设计等等,都可以使用git来管理。 目前常用的版本控制器有Git和SVN,即使这两个你没有全用过,至少也会听过,我这里以Git为例,个人比较喜欢Git,你也可以看看这篇文章:为什么Git比SVN好。我使用的是Mac,Mac上没自带Git环境,但是作为iOS开发者,我安装Xcode的时候,Xcode里是有自带Git的,所以我不需要...…
-
机器学习入门(名词科普)
通用名词ML 名词解释: 机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。 它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。DL 名词解释: 深度学习(Deep Learning)是机器学习拉出的分支,它试图使用包含复杂结构或由多重...…
-
HEXO进阶
HEXO接近是最近有一些朋友提出的问题,然后我做了总结,如果你也在使用HEXO,不妨看看,应该会有些帮助。 1、博客部署样式出问题了怎么办? 2、电脑重装或者误删了本地博客怎么办? 3、想使用两台电脑写博客怎么办? 4、为何使用百度搜不到我的博客?使用Jekyll解决前三个问题。不得不说 Jekyll 确实可以解决我上面三个问题, 因为 Jekyll 是直接把Markdown格式的文章直接放在github仓库里的, 相当于直接用git来管理博客了, Github 官方也很推荐 Je...…
-
开发常用工具
工欲善其事必先利其器,选择一些好的工具可以成吨的提高自己的工作效率。个人开发常用工具的收集 cmd Markdown 作业部落出版的Markdown编辑器 RESTClient 一个开源的客户端HTTP调试工具。 lantern 蓝灯,一款开源的翻墙工具。 Charles 青花瓷, 一款HTTP/HTTPS的抓包工具。 Charles 从入门到精通 Sublime 一款强大的IDE,支持Python、JS、JSON格式化等等…更重要的是Sublime...…
-
我们日常生活中的 iBeacon
随着低功耗蓝牙的推出,iBeacon 的使用是越来越广泛了,如:微信的附近摇一摇功能,又或者是当你进入大型商场,一些店铺给你推送通知,VR 场景识别等等,这些表示 iBeacon 已经与我们的生活精密相连了。简介: 概念: iBeacon 是 iOS7 后苹果出的一项新技术,支持蓝牙4.0(或以上)的 iOS 设备,工作方式是低功耗蓝牙(Bluetooth Low Energy),向周围发送自己特有的ID,一个 iBeacon 硬件设备在不做任何处理的情况下一般可使用两三年左...…