`
blue2048
  • 浏览: 178514 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
代码坏味道中,最易见且最严重的当属冗长的类和方法 在重构手法中,使用最多的就是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立即运行的匿名函数语法,下面这 ...
Global site tag (gtag.js) - Google Analytics