07 2016 档案

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

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

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

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

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

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

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

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

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

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

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

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

程序的性能优化感悟
摘要:一、前言毕业工作了近六个月了,踩过不少坑,在重构,性能优化方面有不少体会,结合自己的经历和同事的一次优化方面的分享文档,稍微总结一下。*过早的优化是万恶之源虽然把优化放在嘴边,但我仍要把这句话放在前面,如果一个日访问量几乎为零的小网站,比如说我的博客,要不要做缓存,垂直拆库,读写分离呢,玩玩还是可以的,谈优化就是多此一举了,首先满足需求,让正确的程序更快,要比让快速的程序正确容易得多。二、正文一、... 阅读全文

posted @ 2016-07-07 18:33 初开 阅读(926) 评论(0) 推荐(1) 编辑

什么是函数式编程
摘要:门java8出来后,特意了解它的新特性lambda表达式,由此头一次听说了函数式编程这个词,听起来挺高深的样子。也曾各种搜索去了解它的来龙去脉。甚至买了一本书《函数式编程思想》,并在部门内进行了一次讨论。此时,首先需要回答的问题便是函数式编程:那是什么东西?为此,我逛过百度,各种博客,知乎,github,但没有看到一个直接的答案,大多是列举函数式编程的特性,优点,理解能力有限,在多次思考之后,某一... 阅读全文

posted @ 2016-07-07 18:33 初开 阅读(12284) 评论(2) 推荐(4) 编辑

汇总几点前端优化的手段
摘要:1. 压缩html标签前面的空白不是文描,可以去掉降低文件大小,对于freemarker,通过指令实现2. css,js压缩经过压缩和混淆的css,js代码可以进一步降低文件大小具体可参考member-vip 使用的yhd-merge-cssjs 插件3. 引用的多余,或冗余的js对于多个页面共同使用的js,css,img等,请全部使用一个路径,方便跳转另一个页面时能使用到前一个的缓存4. 不建议... 阅读全文

posted @ 2016-07-07 18:33 初开 阅读(453) 评论(0) 推荐(0) 编辑

DEBUG技巧-设定合适的日志级别
摘要:有些技能只有踩过坑的人才能够掌握,能用来避免后来的坑,很多时候是用凌晨的时间换来的,我们通常把他叫做经验。 故事这个一个关于springmvc的坑的故事。某天晚上本打算一个小功能分分钟搞定上线,但页面总是报404错误,肉眼实在找不到原因。各种手段折腾,断点,重启,重新打包,拍脑袋觉得代码没写错,url路径也ok,真心没问题,无数次f5就是不出来。很多时候遇到一个bug越着急越搞不定,我就是这种情况... 阅读全文

posted @ 2016-07-07 18:33 初开 阅读(19540) 评论(1) 推荐(0) 编辑

java的热部署和热加载
摘要:ps:热部署和热加载其实是两个类似但不同的概念,之前理解不深,so,这篇文章重构了下。一、热部署与热加载在应用运行的时升级软件,无需重新启动的方式有两种,热部署和热加载。对于Java应用程序来说,热部署就是在服务器运行时重新部署项目,热加载即在在运行时重新加载class,从而升级应用。二、实现原理热加载的实现原理主要依赖java的类加载机制,在实现方式可以概括为在容器启动的时候起一条后台线程,定时... 阅读全文

posted @ 2016-07-07 18:26 初开 阅读(22766) 评论(0) 推荐(4) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示