摘要: 我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了。我想列下我能想到的一个Java程序员会用到的常用工具。一、编码工具1.IDE:Eclipse或者IDEA,熟悉尽可能多的快捷键,《Eclipse常见快捷键列表》2.插件:(1)Fi... 阅读全文
posted @ 2015-08-22 12:53 凡尘里的一根葱 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 前不久我们公司和业内一家一流的公司做了一次技术交流,对于他们的监控系统、日志系统、统一配置系统以及部署系统印象深刻。深刻的原因是我们公司这些工作都是徒手操作,跟他们相比简直是大刀对坦克了,交流完后我们大伙内部也讨论了下,该公司的这些系统我们这边也是急切需要的,无数生产的问题以及生产效率的问题都是因为... 阅读全文
posted @ 2015-08-22 10:27 凡尘里的一根葱 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 刚刚进入了一家新公司,哎在上海混了这么多年,终于到了一家像样的公司,想想这个过程还真不容易啊,一定得要好好珍惜了,不废话了,开始我的内容了。 我现在的项目组的确是做纯正大网站的项目组,虽然现在还没做开发,对公司框架还没完全熟悉,但是对公司的架构的初步了解(初解)觉得还真有价值,都说大型网站应用的开... 阅读全文
posted @ 2015-08-22 10:27 凡尘里的一根葱 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 最近研究servlet,看书时候书里讲到了c/s架构到b/s架构的演变,讲servlet的书都很老了,现在的b/s架构已经不是几年前的b/s架构,其实b/s架构就是web应用开发,对于这样的架构我们现在应该考虑的是前端和后端的分离(注意:这里的后端是指服务端)。 Web前端现在是一个独立的技术工种... 阅读全文
posted @ 2015-08-22 10:25 凡尘里的一根葱 阅读(1350) 评论(0) 推荐(0) 编辑
摘要: 今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以现在公司很多web项目的控制层的技术框架由struts2迁移到springMVC,我突然有了一个新的疑问无法得到正确的解释,为什么我们现在做java的web开发,会选择struts2或者springMV... 阅读全文
posted @ 2015-08-22 10:24 凡尘里的一根葱 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 互联网的网站和大部分企业管理软件一样都是使用B/S架构模型,但是大型的公共网站B/S架构会更加复杂,对架构人员的要求更高,今天我想在自己博客里聊聊我设计的网站的B/S技术架构。 不管是B/S架构的企业管理系统还是网站技术架构可以抽象为如下简图: 在传统B/S架构的企业管理系统里,技术架构往往就是... 阅读全文
posted @ 2015-08-22 10:21 凡尘里的一根葱 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 上文里我遗留了两个问题,一个问题是数据库做了水平拆分以后,如果我们对主键的设计采取一种均匀分布的策略,那么它对于被水平拆分出的表后续的查询操作将有何种影响,第二个问题就是水平拆分的扩容问题。这两个问题在深入下去,本系列就越来越技术化了,可能最终很多朋友读完后还是没有找到解决实际问题的启迪,而且我觉... 阅读全文
posted @ 2015-08-22 10:19 凡尘里的一根葱 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 如果数据库需要进行水平拆分,这其实是一件很开心的事情,因为它代表公司的业务正在迅猛的增长,对于开发人员而言那就是有不尽的项目可以做,虽然会感觉很忙,但是人过的充实,心里也踏实。 数据库水平拆分简单说来就是先将原数据库里的一张表在做垂直拆分出来放置在单独的数据库和单独的表里后更进一步的把本来是一个整... 阅读全文
posted @ 2015-08-22 10:18 凡尘里的一根葱 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 存储的瓶颈写到现在就要进入到深水区了,如果我们所做的网站已经到了做数据库垂直拆分和水平拆分的阶段,那么此时我们所面临的技术难度的挑战也会大大增强。 这里我们先回顾下数据库的垂直拆分和水平拆分的定义: 垂直拆分:把一个数据库中不同业务单元的数据分到不同的数据库里。 水平拆分:是根据一定的规则把同... 阅读全文
posted @ 2015-08-22 10:17 凡尘里的一根葱 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 上篇里我讲到某些网站在高并发下会报出503错误,503错误的含义是指网站服务端暂时无法提供服务的含义,503还表达了网站服务端现在有问题但是以后可能会提供正常的服务,对http协议熟悉的人都知道,5开头的响应码表达了服务端出现了问题,在我们开发测试时候最为常见的是500错误,500代表的含义是服务端... 阅读全文
posted @ 2015-08-22 10:16 凡尘里的一根葱 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程。 首先我们要思考一个问题,什么样... 阅读全文
posted @ 2015-08-22 10:15 凡尘里的一根葱 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 为什么要提升web性能?Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上。 web性能对于用户体验有及其重要的影响,根据著名的`2-5-8`原则:当用户在2秒以内得到响应,会感觉系统的响应非常快当用户在2-5秒之内得到响... 阅读全文
posted @ 2015-08-22 10:10 凡尘里的一根葱 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 如果测试类写到很多,每次要进行测试,难道要重新点击每一个测试类来运行?如果有200个测试类要测试呢? 为了解决这个问题,引入了测试套件(TestSuite)。 通过将多个测试放入套件中,一并执行多个测试。实例:一次运行多个测试类 比如,有两个测试类,叫CalculatorTest和Calcul... 阅读全文
posted @ 2015-08-22 09:48 凡尘里的一根葱 阅读(1010) 评论(0) 推荐(0) 编辑
摘要: 测试类的私有方法时可以采取两种方式: 1.修改方法的访问修饰符,将private修改为default或者public。(不推荐)。 2.在测试类中使用反射调用目标类的私有方法。(推荐)。程序实例 一个计算加法的方法,是私有方法,在测试类中通过反射调用该方法进行测试. PS:使用JUnit 3... 阅读全文
posted @ 2015-08-22 09:46 凡尘里的一根葱 阅读(4029) 评论(0) 推荐(1) 编辑
摘要: 之前一篇博文(JUnit基础及第一个单元测试实例(JUnit3.8))介绍了用JUnit做单元测试的基本方法,并写了一个简单的类Calculator,其中包含了整型加减乘除的简单算法。 本文通过完善其中的除法和除法的单元测试来继续说明JUnit的用法。 首先完善Calculator类中的除法,在... 阅读全文
posted @ 2015-08-22 09:45 凡尘里的一根葱 阅读(405) 评论(0) 推荐(0) 编辑
摘要: 单元测试 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。 单元测试不是为了证明您是对的,而是为了证明您没有错误。 单元测试主要是用来判断程序的执行结果与自己期望的结果是否一致。 关键是在于所用的测试用例(Test Case)。JUnit JUnit是一个... 阅读全文
posted @ 2015-08-22 09:41 凡尘里的一根葱 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 组合模式Composite 组合模式有时候又叫做部分-整体模式,它使我们在树形结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂元素,从而使得客户与复杂元素的内部结构解耦。组合模式的意图 将对象组合成树形结构以表示“部分-整体”的层次结构。 Composit... 阅读全文
posted @ 2015-08-22 09:39 凡尘里的一根葱 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 适配器(Adapter)模式 在软件系统中,由于环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。 那么如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同时又能满足新的应用环境所要求的接口? 这就要利用Adapter模式。Ad... 阅读全文
posted @ 2015-08-22 09:38 凡尘里的一根葱 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式 Template Method 定义一个操作中的算法骨架,而将一些步骤延伸到子类中去,使得子类可以不改变一个算法的结构,即可重新定义该算法的某些特定步骤。 这里需要复用的是算法的结构,也就是步骤,而步骤的实现可以在子类中完成。使用场合 1.一次性实现一个算法的不变部分,并且将可变... 阅读全文
posted @ 2015-08-22 09:34 凡尘里的一根葱 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 测试套件 JUnit3.8中,用测试套件同时运行多个测试类(http://www.cnblogs.com/mengdd/archive/2013/04/07/3006265.html)。 在JUnit4中也有类似功能,只不过是用注解来实现的。Suite类的文档public class Suite... 阅读全文
posted @ 2015-08-22 09:29 凡尘里的一根葱 阅读(237) 评论(0) 推荐(0) 编辑