- 浏览: 183059 次
- 性别:
- 来自: 北京
最新评论
-
小黄牛:
基于支付系统真实场景的分布式事务解决方案效果演示:http:/ ...
spring 7 种分布式事务实现 -
blue2048:
看看两个实例的端口要不一样,另外,看看日志提示有没有错误
elasticsearch 单机部署 集群 -
mtsw2011:
我改了# Set the bind address speci ...
elasticsearch 单机部署 集群
文章列表
代码坏味道中,最易见且最严重的当属冗长的类和方法
在重构手法中,使用最多的就是Extrac Method
在抽取方法过程中,如果抽取出来的计算中,没有修改原始方法体中的局部变量,抽取会非常方便,但如果涉及原始方法的局部变量,抽取就要小心处理。
首先原始函数中的局部变量会以参数的形式传入抽取方法中。
如果局部变量是对象,那么抽取方法可以不处理,对象会帮我们保持数据的一致性
如果局部变量是基础类型,那么抽取方法首先需要使用局部变量来代替改参数,并且返回处理后的值。原始函数体接受该值,并将该值赋予到它的局部变量上。
建议大家使用idea集成编译器环境,它带了很多重构快捷方式,是重构利器
看到infoQ上关于web调优的文章,有些感悟,先总结如下
系统的调优分为前端和后端
前端的调优主要有
1. 减少页面中http请求数量
2. 减小网站cookie大小,或者采用服务器端cookie
3. 较少DNS请求时间
4. 图片合并压缩
5. 较少页面DOM数量,例如前端延迟加载,滚屏加载
后端调优
1. 编码效率的调优
2. 动态页面静态化
3. 页面缓存,例如 反向代理缓存技术,页面局部缓存技术
另外,文章也提到了关于使用开源框架和组件的问题,应当对其进行封装,在日后的升级过程中,由于封装提供了稳定的api,所以不必修改业务代码,秩序修改封装逻辑即可
svn可以单独搭建,客户端使用svn协议访问;也可以和apache一起搭建,客户端使用http或者https协议访问
搭建环境
系统 : linux
安装文件 :
httpd-2.2.22.tar.bz2
subversion-1.6.5.tar.bz2
subversion-deps-1.6.5.tar.bz2
安装apache
解压
tar jxvf httpd-2.2.22.tar.bz2
编译安装
$./configure --prefix=/home/space/magicbox/env/apache --enable-so --enable-dav --enable-dav-f ...
之前项目里需要实现分页打印,一直没有好的解决方案,因为考虑到屏幕和打印机的适配,分页很麻烦,也参考了一些系统,发现以保存成文件,使用pdf打印的比较普遍,或者是只支持ie的打印(ie里提供了相应的对象),这些都没有好的用户体验
在不断的努力下,终于找到简介方便的分页打印方式-css分页
原来css提供了分页机制,实在是太棒了!
{page-break-after:always;}
只要在相应的html元素添加上面的样式,则不管页面元素有多少机制分页!
ie的版本问题是叫广大开发者深恶痛疾的诟病,尤其是那ie6,更被称为另一种浏览器
在前段,我们往往会判断ie的类型,执行相应的操作,常用的方法是js判断
不过最近发现浏览器其实提供了伪注释功能,来专门判断ie的版本
只要在前段页面加入如下代码
1. <!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
2. <!--[if IE]> 所有的IE可识别 <![endif]-->
3. <!--[if IE 5.0]> 只有IE5.0可以识别 <![endif] ...
Dbdeploy
需求——
数据库版本化与代码版本化的区别在于数据库中的生产数据是现场(即用户)创造的,当我们的表结构发生改变时,不能直接用drop table然后再create table,因为这样会导致生产数据丢失。而代码则完全由开发人员 ...
我们控制页面div时经常会使用float来控制浮动效果,但是如果一个div内所有元素都浮动了,我们会发现了里面的元素并没有将外部的div元素撑开[b][/b],实际上,这是应为浮动元素不在正常的页面文档流中造成的
解决办法也很简单,在div中再加入一个div元素,设置其css属性,clear=both即可
首先,声明本文只是整体介绍Play框架,如果读者有什么技术疑惑,可以去play的官网learn板块学习,哪里讲的非常清晰。
Play框架对于小型系统的开发来说,无疑是天降福音,他能帮助我们在最快的时间能,完成整套系统的开发。
Play提供web系统开发用到整套东西,hibernate,jpa,数据库版本化、自动建表、各种工具包、热加载、rest风格、强大groovy模板、灵活的验证框架,另外,play自带的web服务器,能方便的热加载仍和修改...Play提供一栈式的框架支持。
Play采用“约定大于配置”的理念,大大节省了开发人员在浪费在配置文件上的时间与精力。
controller采用 ...
面向对象的javascript编程中,我们知道,访问一个对象实例的某个属性,首先会先在这个对象中寻找,如果不存在,就在对象的原型中寻找,如果还不存在,就沿着原型链向上寻找,这里的原型链具体是怎么个形式呢,下面我们就来看看
var Super = function(){
this.superName = "super";
}
var Sub = function(){
this.subName = "sub";
}
var superObj = new Super();
Sub.prototype= superOb ...
主页面嵌入iframe,但是iframe高度不是自适应的,一旦iframe中的内容超过了iframe框的大小就会出现滚动条,导致页面非常难看。现有的iframe高度自适应有以下4中情况,其中第四种是无法解决的
1.主页和iframe页面属于相同域名,不存在js跨域问题
这种情况很简单,如果你使用jquery
var frame = $("#frameId");
//拿到你所需要的页面的contents,这个可以结合firebug,打断点查看
var content = frame.contents()[0];
//拿到页面body对象
...
js在面向对象的编程中,通过访问控制,可以实现
类属性、对象属性和私有属性,通过使用不同的作用域的属性,我们可以很好的控制变量作用域。
function obj(){
var a = "私有变量";
this.c = "对象属性";
d = "全局属性";
this.funC = function(){
alert(a);//a变量只能在obj内部访问
alert(this.c);
};
}
obj.b = "类属性";
alert ...
js在初学者看来有点面向过程感觉,写function,操纵页面DOM元素,这估计是吸引人最先接触和使用js的亮点。
但是,js从设计上来说,完全是面向对象的!
只是这种对象有别于传统的Java,C++中的对象,我对js对象概念的理解是,
js中的对象更像是一个集合,存储属性和方法的集合
js里一切皆对象,function本身也是对象,js解释器会将将function的调用解释为,new function(...) 实例,来跑程序。下面就是一个简单的对象。
function obj(){};
obj.name = "forObj";
obj.address = &quo ...
在学习使用jquery时,发现jquery的源码中使用了匿名函数
(function( window, undefined ) {
var jQuery = function( selector, context ) {
....
[color=red]window.jQuery = window.$ = jQuery;[/color]
})(window);
起初并不明白,这里使用匿名函数的作用,经过查阅大量博客资料后,发现jquery这里对javascript匿名函数和闭包的绝妙使用。
首先,这段函数使用了javascript立即运行的匿名函数语法,下面这 ...