2016年12月5日

设计模式1:单例模式原理的思考

摘要: 1.前言关于设计模式的文章一直以来都没有写,因为总感觉翻一遍书,只是用代码搞个什么Cat,Dog的Class,再来个eat的method,abstract个animal来敲遍代码太无趣了,没有实际应用,或者深入思考,照书贴一遍代码是浪费时间的。今天之所以写下这一篇自然是有一些有趣并且有内涵的东西可以让人思考,那开始吧。2.单例的思考一般来说单例的初始化根据加载的时机分为两种,饿汉式和懒汉式,其中懒... 阅读全文

posted @ 2016-12-05 09:00 初开 阅读(691) 评论(2) 推荐(0) 编辑

2016年11月21日

lucene6+HanLP中文分词

摘要: 1.前言前一阵把博客换了个模版,模版提供了一个搜索按钮,这让我想起一直以来都想折腾的全文搜索技术,于是就用lucene6.2.1加上HanLP的分词插件做了这么一个模块CSearch。效果看这里:https://chulung.com/search源码:CSearch2.关于分词索引的一个核心功能便是分词,lucene自带的分词是基于英语的,所以中文分词用其他插件比较好。网上很多都是推荐IK-An... 阅读全文

posted @ 2016-11-21 01:00 初开 阅读(2256) 评论(0) 推荐(0) 编辑

2016年11月16日

jenkins+github持续集成中的坑

摘要: 1.前言刚开始开发自己的独立博客的时候,每次发布都要手动打包,上传服务器,杀tomcat进程,重启,来回这么重复性工作,很快就有点不耐烦了。如果能自动化的东西,就绝不要手动了,所以自己搭建了个持续集成环境,配好了结合github进行push时自动构建,自动发布的流程,提交代码,泡杯咖啡就发布好了。本以为很简单,但没想到中间细节还是有不少坑,查了很多资料,墙都翻了好几次,把遇到的问题记录在这里。2.... 阅读全文

posted @ 2016-11-16 18:36 初开 阅读(4938) 评论(1) 推荐(0) 编辑

2016年10月25日

我为什么走向全栈

摘要: 前言不久前看到了这么一篇文章:为什么未来是全栈工程师的世界?让我可以立马用一个词形容自己的感受:共鸣。很少有文章让你发自内心的觉得它写得好,但这篇做到了。场景一个场景:你是一名后端开发,拿着前端同学的页面正往自己的逻辑里套。你发现样式有点对不上。“前端,这个样式不对啊,来看看”,在意想中,前端应该是屁颠屁颠的过来帮你改。然而,前端在开会,前端正在设计,前端正在码代码,前端吃饭去了,终于30分钟后回... 阅读全文

posted @ 2016-10-25 01:00 初开 阅读(513) 评论(0) 推荐(0) 编辑

2016年7月10日

内网穿透原理及实现一:C/S,P2P模式原理

摘要: 1.前言最近一阵子在研究内网穿透,查了不少资料,所以今天就聊聊两种不同的穿透方式的原理,以及基于java的netty框架的实现,代码也已在我的github。起因:突然花这么大力气研究这个虽然是头脑发热所为,但动机源于跟小伙伴联机打游戏,原来用nat123之类的做远程端口转发在最近一阵子巨慢无比,又没找好的替代方案,前一阵子公司同事又分享过nio,网络编程的知识又被过了遍,一拍脑子自己造轮子得了,正... 阅读全文

posted @ 2016-07-10 08:21 初开 阅读(6138) 评论(0) 推荐(1) 编辑

2016年7月8日

使用Freemarker宏进行可扩展式模块化编程

摘要: 一、前言今天的文章聊一下freemarker的一些特性:宏,我们将使用它写出一些模块化,可扩展的页面代码,这样的复用并且可扩展的代码风格正是我一直所追求的优雅。二、需求案例干巴巴的代码没意思,我们拿一个实际应用的例子。Deprecated:由于我的博客改版了,以下线上例子不再适用,大家理解下面的代码就好了。先看一下我们具体的需求,以我的博客网站为例,比较[首页] 及[markdown编辑器页]可以... 阅读全文

posted @ 2016-07-08 13:44 初开 阅读(5755) 评论(3) 推荐(2) 编辑

分布式系统的架构思路

摘要: 一、前言在计算机领域,当单机性能达到瓶颈时,有两种方式可以解决性能问题,一是堆硬件,进一步提升配置,二是分布式,水平扩展。当然,两者都是一样的烧钱。今天聊聊我所理解的分布式系统的架构思路。二、分布式系统的两种方式平时接触到的分布式系统有很多种,比如分布式文件系统,分布式数据库,分布式WebService,分布式计算等等,面向的情景不同,但分布式的思路是否是一样的呢?1.简单的例子假设我们有一台服务... 阅读全文

posted @ 2016-07-08 13:44 初开 阅读(71758) 评论(4) 推荐(9) 编辑

分布式文件系统及FastDFS

摘要: 1、前言今天来谈谈分布式文件系统,侧重点是文件系统,分布式稍微带一下。然后聊下我用的FastDFS的例子。2、从小需求开始我的博客的编辑器用的是markdown,它内嵌了一个文件上传功能,不过后端文件管理要自己的写。最开始直接用SpringMVC接收上传文件,直接扔服务器新建的upload文件夹下。但问题很快就出现了,上传同名文件会冲突,顺手加个时间戳好像可以解决问题,但我总感觉重复文件最后只存一... 阅读全文

posted @ 2016-07-08 13:44 初开 阅读(14168) 评论(0) 推荐(1) 编辑

一个开发眼中的单元测试

摘要: 一、前言单元测试在我刚接触java不久就知道了这个词,后来学习了junit,接触了TDD(测试驱动开发),但直到去年毕业进公司后才正式把单元测试当成一个日常的任务,这漫长的一段时间内,我以为单元测试仅仅是一个保证代码质量的工具,然而最近我的看法变了,单元测试还有这样的用处。今天来谈谈至今为止我眼中的单元测试两方面用处。二、保证代码质量如果说重构改善代码的设计,那么单元测试保证了代码行为,前者是提升... 阅读全文

posted @ 2016-07-08 13:44 初开 阅读(1005) 评论(0) 推荐(0) 编辑

nginx防恶意域名解析

摘要: 今天无意间查看访问日志发现一个fhxywh.com的域名居然解析到了我的服务器,也就是说通过这个域名也能访问我的博客,这个就是赤裸裸的恶意域名解析了。这个危害非常大,不仅会影响用户,而且不利于SEO,影响网站收录权重,甚至由于恶意域名没有备案等原因导致服务器被关闭,因此配置了下nginx解决此问题。有两种方式一是直接返回403,404或者500页面不给看。打开Nginx配置文件nginx.conf... 阅读全文

posted @ 2016-07-08 13:44 初开 阅读(869) 评论(0) 推荐(0) 编辑

导航