摘要:
一、引言 1.几条基本规则:(清晰性和简洁性最为重要) 模块的用户永远也不应该被模块的行为所迷惑(那样就不清晰了),模块要尽可能小,但又不能太小 代码应该被重用,而不是被拷贝 模块之间的依赖性应该尽可能的降到最小 错误应该尽早的被检测出来,最好是在编译时刻 ... 阅读全文
摘要:
【伯乐在线注】:《Web 应用上线前,程序员应考虑哪些技术细节呢?》这是 StackExchange 上面的一个经典问题贴。最赞回复有 2200+ 顶,虽然大多数人可能都听过其中大部分内容,但应该会有你没有深入了解的内容。一起来看看。问题Web 应用上线前,程序员应考虑哪些技术细节呢? 如果Jeff... 阅读全文
摘要:
概述:NodeJS宣称其目标是“旨在提供一种简单的构建可伸缩网络程序的方法”,那么它的出现是为了解决什么问题呢,它有什么优缺点以及它适用于什么场景呢?本文就个人使用经验对这些问题进行探讨。一. NodeJS的特点我们先来看看NodeJS官网上的介绍:Node.js is a platform bui... 阅读全文
摘要:
之前给同事开发了一个功能模块,主要是一些记录的查询和录入。过了一个月同事来找我,说发现这个功能模块打开很慢,一查数据库发现,原来是我当初写的SQL有问题,left join了一张主要数据表,而刚好关联的那个字段又没加索引,导致查询异常缓慢。线上立刻加了索引,分分钟搞定。但是回头一想,为什么这么简... 阅读全文
摘要:
一、CSI (Client Side Includes) 含义:通过iframe、javascript、ajax 等方式将另外一个页面的内容动态包含进来。 原理:整个页面依然可以静态化为html页面,不过在需要动态的地方则通过iframe,javascript或ajax来动态加载! 例子: 优点:相... 阅读全文
摘要:
jvm 优化问题JVM堆内存分为2块:Permanent Space 和 Heap Space。 Permanent 即 持久代(Permanent Generation),主要存放的是Java类定义信息,与垃圾收集器要收集的Java对象关系不大。 Heap = { Old + NEW = {Ede... 阅读全文
摘要:
在分布式系统中,冗余数据是保证可靠性的手段,因此冗余数据的一致性维护就非常重要。一般而言,一个写操作必须要对所有的冗余数据都更新完成了,才能称为成功结束。比如一份数据在5台设备上有冗余,因为不知道读数据会落在哪一台设备上,那么一次写操作,必须5台设备都更新完成,写操作才能返回。对于写操作比较频繁... 阅读全文
摘要:
一 概述1.大型网站构架技术的核心价值是随着网站所需灵活应对2.驱动大型网站技术发展的主要力量是网站的业务发展(同理,驱动个人技术提升的主要力量在于工作中接触此类工作的经验的积累)3.解决大型网站的问题,不能认死理,没有固定的解决方案,不能为了技术而技术,有时甚至改变下业务方的应用场景,也能解决问题... 阅读全文
摘要:
上周做了个活动,有个计数器功能,压力测试的时候,读操作的QPS可以达到1万,但是写操作却只有800QPS。从代码角度分析原因,无非是读操作的时候是从缓存读取数据,没有命中才读数据库。而写操作是次都要向数据库里写入数据。所以当写操作的时候,对于数据库的访问便成为了瓶颈。 因为这次活动的QPS要求... 阅读全文
摘要:
核心原则:任何没有经过自动测试的程序功能都可以当做不存在单元测试框架的大三规则: 1.每个单元测试都必须独立于其他所有单元测试而运行 2.框架应该以单个测试为单元来检测和报告错误 3.应该易于定义要运行哪些单元测试Junit框架的三大核心:测试类、测试集(Suite)、运行器(Runner)运... 阅读全文