行内技术
JavaScript用户密码安全强度判定
//CharMode函数//测试某个字符是属于哪一类.functionCharMode(iN){if(iN>=48&&iN<=57)//数字return1;if(iN>=65&&iN<=90)//大写字母return2;if(iN>=97&&iN<=122)//小写return4;elsereturn8;//特殊字符}//bitTotal函数//计算出当前密码当中一共有多少种模式functionbitTotal(num){modes=0;for(i=0;i<4;i++){if(num&1)modes++;...
2013-3-3515
PHP作用域限定符::的几个程序例子
双冒号::被认为是作用域限定操作符,用来指定类中不同的作用域级别。::左边表示的是作用域,右边表示的是访问的成员。系统定义了两个作用域,self和parent。self表示当前类的作用域,在类之外的代码是不能使用这个操作符的。ProgramList:使用self作用域访问父类中的函数<?phpclassNowaClass{functionnowaMethod(){print'我在类NowaClass中声明了。';}}classExtendNowaClassextendsNowaClass{functi...
2013-3-3502
JavaScript时间戳与其格式化
在PHP+MySQL(日期类型为datetime)+ajax应用中,有时候需要用JavaScript将时间戳类型格式化为一般的时间类型格式。下面提供一些转换的方法,比较常见的一些总结。先定义时间戳与其Date格式日期varday1=parseInt(newDate().valueOf()/1000);varday2=newDate(day1*1000);下面是从时间戳获得日期的封装方法,与day2方式差不多:functiongetLocalTime(nS){returnnewDate(parseInt(nS)*1000).t...
2013-3-3411
JavaScript去除数组中的重复值
用原型函数(prototype)可以定义一些很方便的自定义函数,实现各种自定义功能。Javascript中的原型函数(prototype)的工作原理,在javascript中每次声明新函数的过程中,就会为其创建一个prototype的属性。在未加其他附带条件情况下,所有的prototype属性都会自动获取constractor属性,constructor内包含一个指向prototype属性所属函数的指针(就是说constructor回指构造函数本身)。举个例子来说,Fruit.prototype.constructor指向Fruit。并且可以通过这个构造函数,为...
2013-3-3420
关于契约式编程的一些事情
契约式编程是编程的一种方法。那么什么是契约式编程呢?我想这个概念是从“合同”演变过来的。在人类的社会活动中,契约一般是用于两方,一方(供应者)为另一方(客户)完成一些任务。每一方都期待从契约中获得利益,同时也要接受一些义务。通常,一方视为义务的对另一方来说是权利。契约文档要清楚地写明双方的权利与义务。契约合同能保障双方的利益,对客户来说,合同规定了供应者要做的工作;对供应者来说,合同说明了如果约定的条件不满足,供应者没有义务一定要完成规定的任务。同样的道理也适合于软件。设想一个软件单元E。它要达到它的目的(履行契约),E使用的策略可能会包括一系列的子任务,t1...
2013-3-3492
几个PHP的静态方法的程序例子
静态方法的规则和静态变量是相同的。使用ststic关键字可以将方法标识为静态方法,通过类的名称和作用域限定操作符::可以访问静态方法。静态方法和非静态方法之间有一个很重要的区别,就是在调用静态方法时,我们不需要创建类的实例。ProgramList:用类名作为参数用类名作为参数可以解决非继承的静态问题。<?phpclassFruit{publicstatic$category="I'mfruit";staticfunctionfind($class){$vars=get_class_vars($class);echo$vars['c...
2013-3-3548
什么是IoC控制反转
静态类的使用是一个有争议的话题,有人甚至提倡不要在类的名称上使用作用域限定符。关于静态特性争论的焦点在于一个被称为IoC控制反转的设计原则。IoC这个设计原则试图在面向对象编程中去掉所有相互依赖的现象。这个原则对于复杂的系统来说是很重要的。它使得对象具有更好的多态性和封装性。相互依赖的现象越少,就越容易单独测试某个组件。静态类与IoC之间的问题在于静态访问特性,这个特性从本质上来说,定义了两个类之间的绑定关系,因为类的名称是硬编码的。这就意味着在单独测试某个类的时候,这个类不容易被模拟。就是说,静态类的使用会导致IoC设计原则受到限制。这是因为静态类的使用会导致...
2013-3-3394
如何去掉Google搜索的跳转
在点击google搜索结果时,google会在结果的URL前做个跳转,且有时这个跳转地址会被墙,这样极大的影响对搜索引擎的使用体验。近期,Google的基本搜索功能又开始间歇性的被重置,更别说那些早已被压在大墙底下的Google应用了,现在每天搜索几乎都是在无止尽的RESET中,找到瞬间,而且打开地址,还经常需要复制链接,然后粘贴到地址栏,才能打开,否则,只要你点击Google搜索结果中的链接就会被重置,而不管你是搜IT、工程、或是技术问题、医药等,现在似乎关键词已经不再重要,重要的是RESET谁。遇到地址超长的搜索结果,没有办法复制地址,因为复制链接仍然会带Googl...
2013-3-3479
原生的强大DOM选择器querySelector
在传统的JavaScript开发中,查找DOM往往是开发人员遇到的第一个头疼的问题,原生的JavaScript所提供的DOM选择方法并不多,仅仅局限于通过tag,name,id等方式来查找,这显然是远远不够的,如果想要进行更为精确的选择不得不使用看起来非常繁琐的正则表达式,或者使用某个库。事实上,现在所有的浏览器厂商都提供了querySelector和querySelectorAll这两个方法的支持,甚至就连微软也派出了IE8作为支持这一特性的代表,querySelector和querySelectorAll作为查找DOM的又一途径,极大地方便了开发者,使用它们,你可以像使用C...
2013-3-3456
浅谈中国互联网商业模式
只要身在北京最大的“村”里,你总能及时知道IT圈最in的创业时尚是什么?就跟到西直门“动批”淘宝的姑娘一样,每月拿的新货保准不同。比如前一阵,人人都在谈论Groupon(美国的一个团购网站)。自从我的朋友王兴第一个弄出了中国版的美团网之后,又出了米团F团酷团团宝等等四五十个团购站。而眼下,模仿Foursquare(一个基于地理位置信息的社交网站)又成了最新的时髦。事实上,这种精明的实用主义做法在中关村已经流行多年。区别在于,以前柳传志等上一辈模仿的只是PC这样的产品,而新一代山寨则的是整套运作赚钱的方法,换个更蛊惑人心的词——这叫“商业模式”。对于他们来说,一个...
2013-3-3619
怎么样的互联网企业在中国才赚钱
中国没有一个所谓“全民的互联网”,中国的互联网是人为割裂的。它既存在于精英的Think笔记本上,也存在于草根的MTK山寨机中。我们的精英也许和美国同步,草根却与越南同步。我有两个朋友。L的公司在上海,大半时间跑广东。他是华南某所不太知名的大学毕业的,小眼睛质朴男,多年以前还是个文学青年。哥们做手机网游的,我见他使过好几款手机,但最贵的一个也不过1千多块钱。比起什么Web2.0、移动互联网的概念,他更关心珠三角的几千万农民工和城市边缘的大学生“蚁族”,怎么关心?在东莞的夜宵摊上跟他们拼啤酒,在富士康厂区外网吧里刷夜,跟靠做他们生意开上宝马的便利店老板扯淡……...
2013-3-3464
如何设计数据库的主键
有些朋友可能不提倡数据库表必须要主键,但在我的思考中,觉得每个表都应该具有主键,不管是单主键还是双主键,主键的存在就代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,本记录的修改与删除,当我们没有主键时,这些操作会变的非常麻烦。我强调主键不应该具有实际的意义,这可能对于一些朋友来说不太认同,比如订单表吧,会有“订单编号”字段,而这个字段呢在业务实际中本身就是应该具有唯一性,具有唯一标识记录的功能,但我是不推荐采用订单编号字段作为主键的,因为具有实际意义的字段,具有“意义更改”的可能性,比如订单编号在刚开始的时候我们一切顺利,后来客户说“...
2013-3-3371
再谈PHP单例模式Singleton
单例模式属于创建型模式,它是设计模式中最简单的一种模式,当然它的使用也是无处不在的。单例模式保证一个类仅有一个实例,并提供一个访问它的全局访问点。当需要控制一个类的实例数量,且调用者可以从一个公共的众所周知的访问点访问时,我们就可以考虑使用单例模式了。我们用UML来设计单例模式,当然在以后的设计模式的设计部分,我们都将采用UML来描述我们的设计,这样就更为形象化了。从UML设计图中我们可以看出,为了让一个类只有一个实例,它必须创建一个静态变量,然后我们用一个公共静态的Instance()的方法来创建它,但是为了避免这个类自身的构造函数可以创建对象,我们...
2013-3-3473
PHP职责模式单例模式
模式对于面向对象开发是相当重要的。一种模式可以帮助我们创建能够实现特定任务的对象,成为类的职责。模式还允许我们修改某个类,但不需要修改与这个类有关系的代码,这个称为类的多态。单例模式又称为职责模式,它用来在应用程序中创建一个单一的功能访问点。下面我们来探讨并且结结实实地掌握单例的思想还有应用。在复杂的系统中,使用单例模式在维持应用程序状态的同步方面尤其有用。所有的单例类至少拥有以下三个元素:一个标记为private的构造函数。保存类的实例的静态成员变量。访问这个实例的公共静态方法。ProgramList:单例模式的类<?php...
2013-3-3451
JSON对象转字符串的一些方法
将后台程序(如php)发送过来的json数据转化为javascript的数组或者对象的方法十分简单,代码如下://假设后台发送的json数据为'{a:2,b:1}'存储于str中vardata=eval('('+str+')');然而想将一个javascript对象转化为json格式的字符串却并不那么简单,特别是对象的属性值递归包含一个对象时(如varobj={a:[2,3],b:{m:[3,4],n:2}}),那么有没有什么方法将obj转化为json格式的字符串呢?当然你可以自己写一个函数,递归遍历一个对象并将其转化为json格式的字符串,对于大部...
2013-3-3503
JavaScript正则表达式的浏览器的差异
JavaScript中的正则表达式在不同的浏览器中得到的结果可能会有差异,下面把正则表达式在五大主流浏览器(IE、Firefox、Chrome、Safari、Opera,以当前版本为准)之间的差异整理一下罗列出来。1.Firefox和Chrome会过度优化在循环(以及其中内嵌的函数定义)中创建的正则表达式,似乎它们在假设写JavaScript的人会把正则表达式的构建和赋值写错地方。varr;for(vari=0;i<2;i++){varx=/abc/g;if(r)//第二个循环时Firefox和Chrome会输出“true”document.write(...
2013-3-3375
了解下PHP模板引擎Smarty
用PHP实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择,但是官方引擎SMARTY诞生后,选择就有了变化。它的理念和实现都是相当"前卫"的。MVC最早是在SmallTalk语言的开发过程中总结出的一种设计模式,MVC分别代表了"模型"、"视图"和"控制",目的就是让不同的开发角色在大中型项目中各司其职。在网络应用程序的开发中,可以用下图来表示各概念之间的关系。96年CGI在中国开始流行的时候,早期的WEB程序员都是从HTML开始自学成材的,在PERL中print一行行的HTML并不是一件难事,但是随着网络的一步步提速,页面大小也从当初的二、三十K暴涨了十倍。写C...
2013-3-3492
网站应对庞大访问量的措施
硬架构1:机房的选择:在选择机房的时候,根据网站用户的地域分布,可以选择网通或电信机房,但更多时候,可能双线机房才是合适的。越大的城市,机房价格越贵,从成本的角度看可以在一些中小城市托管服务器,比如说广州的公司可以考虑把服务器托管在东莞,佛山等地,不是特别远,但是价格会便宜很多。2:带宽的大小:通常老板花钱请我们架构网站的时候,会给我们提出一些目标,诸如网站每天要能承受100万PV的访问量等等。这时我们要预算一下大概需要多大的带宽,计算带宽大小主要涉及两个指标(峰值流量和页面大小),我们不妨在计算前先做出必要的假设:
    假设峰值流量是平均流量的...
2013-3-3429
MySQL的OrderByRand()有很严重的效率问题
MySQL很多时候需要获取随机数据,举个例子,要从tablename表中随机提取一条记录,大家一般的写法就是:SELECT*FROMtablenameORDERBYRAND()LIMIT1但是,后来我查了一下MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDERBY从句里面不能使用RAND()函数,因为这样会导致数据列被多次扫描。但是在MYSQL3.23版本中,仍然可以通过ORDERBYRAND()来实现随机。测试一下才发现这样效率非常低。一个15万余条的库,查询5条数据,居然要8秒以上。查看官方手册,也说rand()放在ORDERBY子句...
2013-3-3498
你需要去揣摩面试官在想些什么
当你走近会客室,面试过程就开始了,当然你得不卑不亢,谦虚谨慎,除了这些放之四海皆准的原则,你还应该知道。面试就是个沟通,让对方认识到你的实力,并且你也了解到是否喜欢并且能做这个工作,后者可能很多人没有意识到。沟通很奇妙,每个人都说自己能很好的别人沟通,在面试官看来,沟通不是让你不停的附和或者滔滔不绝讲述,而是从对话中能了解双方的立场,无论是支持和反对,都能深入对问题的探讨,怕的是无论对方说什么,自己都在说自己的那一套,这样的人也许是一个目标清晰的人,但不是一个好的沟通者,因为对方说什么都不能影响他的内容,他也不关心别人说什么。例如在面试的时候,面试官几次要求讲解和应聘职务...
2013-3-3366