??xml version="1.0" encoding="utf-8" standalone="yes"?> 1Q打开\Tomcat 5.0\conf\web.xml; 2:在文件中Q?/p>
<servlet>
上面的listings的属性设为falsep了?/strong>
2. 你们的项目组使用~陷理pȝ了么Q?br /> 应该用。ClearQuest太复杂,我的推荐是BugZilla? 3. 你们的测试组q在用Word写测试用例么Q?br /> 不要用Word写测试用例(Test CaseQ。应该用一个专门的pȝQ可以是Test ManagerQ也可以是自己开发一个ASP.NET的小|站。主要目的是Track和Browse?/p>
4. 你们的项目组有没有徏立一个门L站? 5. 你们的项目组用了你能买到最好的工具么? 6. 你们的程序员工作在安静的环境里么Q?br /> 需要安静环境。这Ҏ端重要,而且要保证每个h的空间大于一定面U? 7. 你们的员工每个h都有一部电话么Q?br /> 需要每Z部电话。而且电话最好是带留a功能的。当Ӟ上这么一套带留言电话pȝ开销不小。不q至每Z部电话要有,千万别搞得经常有人站h喊:“某某某电话”。《h件》里面就强烈谴责q种做法? 8. 你们每个人都知道Z问题应该找谁么? 9. 你遇到过有h说“我以ؓ…”么Q?br /> 要消灭“我以ؓ”。Never assume anything? 10. 你们的项目组中所有的人都坐在一起么Q?br /> 需要。我反对Virtual TeamQ也反对Dev在美国、Test在中国这U开发方式。能坐在一起就最好坐在一P好处多得不得了? 11. 你们的进度表是否反映最新开发进展情况? 12. 你们的工作量是先由每个h自己估算的么Q?br /> 应该让每个h自己估算。要从下而上估算工作量,而不是从上往下分z。除非有其他原因Q比如政MQ务工期固定等? 13. 你们的开发h员从目一开始就加班么? 14. 你们的项目计划中Buffer Time是加在每个小d后面的么Q?br /> 不要。Buffer Time加在每个Q务后面,很容易轻易的p消耗掉。Buffer Time要整D늚加在一个Milestone或者checkpoint前面? 15. 值得再多׃些时_?5%做到100%好值得Q非常值得?br /> 其当项目后期h困马乏的时候,要坚持。这会给产品带来质的区别? 16. 登记新缺hQ是否写清了重现步骤Q?br /> 要。这属于Dev和Test之间的沟通手Dc面寚w沟通需要,详细填写Repro Steps也需要? 17. 写新代码前会把已知缺陯决么Q?br /> 要。每个h的缺陷不能超q?0个或15个,否则必须先解册的bug才能l箋写新代码? 18. 你们对缺L轻重~急有事先的约定么Q?br /> 必须有定义。Severity要分1??Q约定好Q蓝屏和Data LostSev 1QFunction ErrorSev 2Q界面上的算Sev 3。但q种U定可以Ҏ产品质量现状适当q行调整?/p>
19. 你们Ҏ见不一的缺h三国会议么? 20. 所有的~陷都是q记的人最后关闭的么? 21. 你们的程序员厌恶修改老的代码么? 22. 你们目l有Team Morale Activity么? 23. 你们目l有自己的Logo么? 24. 你们的员工有印有公司Logo的T-Shirt么? 25. ȝ理至每月参加次目l会议要的?br /> 要让team member觉得高层xq个目?/p>
26. 你们是给每个Dev开一个分支么Q?br /> 反对。Branch的管理以及Merge的工作量太大Q而且Ҏ出错? 27. 有h长期不Check-In代码么? 28. 在Check-In代码旉填写注释了么Q?br /> 要写的,臛_一两句话,比如“解决了Bug No.225”。如果往高处拔,q也做“配|审计”的一部分?/p>
29. 有没有设定每天Check-In的最后期限? 30. 你们能把所有源码一下子~译成安装文件吗Q? 31. 你们的项目组做每日编译么Q?br /> 当然要做。有三样东西是Y仉?产品开发必备的Q?. bug management; 2. source control; 3. daily build? 32. 你们公司有没有积累一个项目风险列表? 33. 设计简单越好越单越好?br /> 设计时候多一句话Q将来可能就带来无穷无尽的烦恹{应该从一开始就勇敢的砍。这叫scope management? 34. 量利用现有的品、技术、代码千万别什么东襉K自己Coding。BizTalk和Sharepoint是最好的例子Q有q两个作为基Q可以把L提高很多。或者可以尽量多用现成的Control之类的。或者尽量用XMLQ而不是自己去Parse一个文本文Ӟ量用RegExpQ而不是自׃头操作字W串Q等{等{。这是“Y件复用”的体现?/p>
35. 你们会隔一D|间就停下来夯实代码么Q?br /> 要。最好一个月左右一ơ。传adq初Windowsl在Stevb的命令下停过一个月增强安全。BtwQ“夯”这个字念“hang”,W一声? 36. 你们的项目组每个人都写Daily Report么? 38. 你们目l是否至每周全体开会一ơ? 39. 你们目l的会议、讨论都有记录么Q?br /> 会前发meeting request和agendaQ会中有责主持和记录Q会后有责发meeting minutesQ这都是effective meeting的要炏V而且Q每个会议都要Ş成agreements和action items?/p>
40. 其他部门知道你们目l在q什么么Q?br /> 要发一些Newsflashl整个大l织。Show your team’s value。否则,当你坐在甉|里面Q其他部门的人问Q“你们在q嘛”,你回{“ABC目”的时候,别h全然不知Q那U感觉不太好?/p>
42. 为项目组建立多个Mailing Group 43. 每个人都知道哪里可以扑ֈ全部的文档么Q?br /> 应该每个人都知道。这叫做知识理QKnowledge ManagementQ。最方便的就是把文档攑֜一个集中的File ShareQ更好的Ҏ是用Sharepoint? 44. 你做军_、做变化Ӟ告诉大家原因了么Q?br /> 要告诉大家原因。Empower team member的手D之一是提供够的informationQ这是MSF一开的几个原则之一。的如此,tell me why是h之常情,tell me why了才能有understanding。中国h做事喜欢搞限Ӟ限制信息Q似乎能够看到某一份文件的人就是有w䆾的h。大错特错。权威、权力,不在于是不是能access information/dataQ而在于是不是掌握资源? 45. Stay agile and expect change 要这栗?br /> 需求一定会变的Q已l写好的代码一定会被要求修改的。做好心理准备,对change不要抗拒Q而是expect change? 46. 你们有没有专职的软g试人员Q?br /> 要有专职试。如果h手不够,可以peer testQ交换了试。千万别自己试自己的? 47. 你们的测试有一份ȝ计划来规定做什么和怎么做么Q?br /> q就是Test Plan。要不要做性能试Q要不要做Usability试Q什么时候开始测试性能Q测试通过的标准是什么?用什么手D,自动的还是手动的Q这些问题需要用Test Plan来回{?/p>
48. 你是先写Test Case然后再测试的么? 49. 你是否会为各U输入组合创建测试用例? 50. 你们的程序员能看到测试用例么Q?br /> 要。让Dev看到Test Case吧。我们都是ؓ了同一个目的走Ch的:提高质量?/p>
51. 你们是否随便抓一些h来做易用性测试? 53. 你们的性能试是等所有功能都开发完才做的么Q?br /> 不能q样。性能试不能被归到所谓的“系l测试”阶Dc早早ҎQ早L升天?/p>
54. 你注意到试中的杀虫剂效应了么Q?br /> 虫子有抗药性,Bug也有。发现的新Bug来少是正常的。这时候,最好大家交换一下测试的areaQ或者用用看其他工具和手法,又会发C些新bug了?/p>
55. 你们目l中有h能说Z品的当前整体质量情况么? 56. 你们有单元测试么Q?br /> 单元试要有的。不q没有单元测试也不是不可以,我做q没有单元测试的目Q也做成功了——可能是侥幸Q可能是大家都是熟手的关pR还是那句话QY件工E是非常实践、非常工E、非常灵zȝ一套方法,某些Ҏ在某些情况下会比另一些方法好Q反之亦然? 57. 你们的程序员是写完代码就扔过墙的么? 58. 你们的程序中所有的函数都有输入查么Q?br /> 不要。虽然说做输入检查是write secure code的要点,但不要做太多的输入检查,有些内部函数之间的参C递就不必查输入了Q省点功夫。同L道理Q未必要l所有的函数都写注释。写一部分主要的就够了?/p>
59. 产品有统一的错误处理机制和报错界面么? 60. 你们有统一的代码书写规范么Q?br /> 要有。Code Convention很多Q搞一份来发给大家可以了。当Ӟ要是有FxCopq种工具来检查代码就更好了? 61. 你们的每个h都了解项目的商业意义么? 62. 产品各部分的界面和操作习惯一致么Q?br /> 要这栗要让用戯得整个程序好像是一个h写出来的那样?/p>
63. 有可以作为宣传亮点的Cool Feature么? 64. 可能羃短品的启动旉要这栗?br /> 软g启动旉QStart-Up timeQ是客户Ҏ能好坏的第一印象?/p>
65. 不要q于注重内在品质而忽视了W一眼的外在印象E序员容易犯q个错误Q太看重性能、稳定性、存储效率,但忽视了外在感受。而高层经理、客h相反。这两方面要兼顾Q协调这些是PM的工作?/p>
66. 你们Ҏ详细产品功能说明书做开发么Q?br /> 要这栗要有设计才能开发,q是必须的。设计文档,应该说清楚这个品会怎么q行Q应该采取一些讲故事的方法。设计的时候千万别ȝ节,别钻到数据库、代码等具体实现里面去,那些是后面的事情Q一步步来不能着急?/p>
67. 开始开发和试之前每个人都仔细审阅功能设计么? 68. 所有h都始l想着The Whole Image么? 69. Dev工作的划分是单纯U向或横向的么? 70. 你们的程序员写程序设计说明文档么Q?br /> 要。不q我听说微Y的程序员1999q以前也不写。所以说Q写不写也不是绝对的Q偷懒有时候也是可以的。参见第56条?/p>
71. 你在招h面试时让他写一D늨序么Q?br /> 要的。我最喜欢让h做字W串和链表一cȝ题目。这U题目有很多循环、判断、指针、递归{,既不偏向q于考算法,也不偏向q于考特定的API?/p>
72. 你们有没有技术交讲座? 73. 你们的程序员都能专注于一件事情么Q?br /> 要让E序员专注一件事。例如说Q一个部门有两个目?0个hQ一U方法是?0个h同时参加两个目Q每个项目上每个人都?0%旉Q另一U方法是5个h去项目AQ?个h去项目BQ每个h?00%在某一个项目上。我一定选后面一U。这个道理很多h都懂Q但很多领导实践h把属下当成可以L拆分的资源了? 74. 你们的程序员会夸大完成某工作所需要的旉么? 75. 量不要用Virtual Heads 最好不要用Virtual Heads?br /> Virtual heads意味着resource is not secureQshared resource会降低resource的工作效率,Ҏ增加出错的机会,会让一心二用的人没有太多时间去review spec、review design。一个dedicated的hQ要两个只能投入50%旉和精力的人。我是吃q亏的:7个part time的testerQ发现的Bug和干的活Q加hq不如两个full-time的。参见第73条?3条是针对E序员的Q?5条是针对Resource Manager的?/p>
<servlet-name>default</servlet-name>
<servlet-class>
org.apache.catalina.servlets.DefaultServlet
</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
]]>
应该用。VSS、CVS、PVCS、ClearCase、CCC/Harvest、FireFly都可以。我的选择是VSS?/p>
要有一个门L站,用来放Contact Info、Baselined Schedule、News{等。推荐Sharepoint Portal Server 2003来实玎ͼ15分钟搞定。买不vSPS 2003可以用WSS (Windows Sharepoint Service)?
应该用尽量好的工h工作。比如,应该用VS.NET而不是Notepad来写C#。用Notepad写程序多半只是一U炫耀。但也要考虑到经费,所以说是“你能买到最好的”?
应该知道。Q何一个Feature臛_都应该有一个OwnerQ当ӞOwner可以l箋Dispatchl其他h?/p>
应该反映。但是,应该用Baseline的方法来理q度表:l护一份稳定的ScheduleQ再l护一份最新更攏VBaseline的方法也应该用于其它的Spec。Baseline是变更管理里面的一个重要手Dc?/p>
不要q样。不要一开始就搞疲x。从目一开始就加班Q只能说明项目进度不合理。当Ӟ一些对日Y件外包必d天加班,那属于剥削的范畴?
必须要有。要有一个明的决策q程。这cM于CCB (Change Control Board)的概c?
Bug应该由Opener关闭。Dev不能U自关闭Bug?
厌恶是正常的。解x法是l织Code ReviewQ单独留出时间来。XP也是一个方法?/p>
每个月都要搞一ơ,吃饭、唱歌、Outing、打球、开卡丁车等{,一定要有。不要剩q些钱?
要有自己的Logo。至应该有自己的Codename?
要有。能增强归属感。当ӞT-Shirt要做的好看一些,最好用80支的来做。别没穿几次q破烂烂的?/p>
不可以。对大部分项目来_最多两三天应该Check-In?
要的Q要明确Check-In Deadline。否则会Build Break?
要的。这是每日编译(Daily BuildQ的基础。而且必须要能够做成自动的?
要。Risk Inventory。否则,下个目开始的时候,又只能拍脑袋分析Risk了?/p>
要写。五分钟够了,?0?br /> 37. 你们的项目经理会发出Weekly Report么?
要。也是ؓ了沟通。内容包括目前进度,可能的风险,质量状况Q各U工作的q展{?/p>
要。一定要开会。程序员讨厌开会,但每个礼拜开会时间加h臛_应该?时。包括team meeting, spec review meeting, bug triage meeting。千万别大家闷头写code?
41. 通过Emailq行所有正式沟?
Email的好处是免得抵赖。但也要避免矫枉q正Q最好的Ҏ是先用电话和当面_然后Email来确认?
如果在AD+Exchange里面Q就建Distribution List。比如,我会建ABC Project Core TeamQABC Project Dev TeamQABC Project All TestersQABC Project Extended Team{等。这样发起Email来方便,而且能让该收到email的h都收到、不该收C被骚扰?
应该如此。应该先设计再编E、先test case再测试。当Ӟ事情是灵zȝ。我有时候在做第一遍测试的同时补上test case。至于先test case再开发,我不喜欢Q因Z习惯Q太ȝQ至于别人推荐,那试试看也无妨?
不要Q不要搞边界条gl合。当心组合爆炸。有很多test case工具能够自动生成各种边界条g的组合——但要想清楚Q你是否有时间去q行那么多test case?
要这么做。自q自己写的E序界面Q怎么看都是顺眼的。这叫做审美疲劳——臭的看久了也就不臭了,不方便的怹了也׃惯了?
52. 你对自动试的期望正么Q?br /> 别期望太高。依我看Q除了性能试以外Q还是暂时先忘掉“自动测试”吧Q忘掉WinRunner和LoadRunner吧。对于国内的软g试的现状来_只能“矫枉必过正”了?/p>
要有。当老板问vq个产品目前质量如何QTest Lead/Manager应该负责回答?
大忌。写好一块程序以后,即便不做单元试Q也应该自己先跑一跑。虽然有了专门的试人员Q做开发的Z不可以一Ҏ试都不做。微软还有Test Release Document的说法,E序太烂的话Q测试有权踢回去?/p>
要有。最好能有统一的error messageQ然后每个error message都带一个error number。这P用户可以自己Ҏerror number到user manual里面ȝ看错误的具体描述和可能原因,像SQL Server的错误那栗同PASP.NET也要有统一的Exception处理。可以参考有关的Application Block?/p>
要。这是Vision的意思。别把项目只当成工作。有时候要想着自己是在Z国某某行业的信息化作先驱者,或者时不时的告诉team memberQ这个项目能够ؓ某某某国安门每q节省多多百万的U税人的钱,q样有动力了。^凡的事情也是可以有个崇高的目标的?/p>
要。这是增强团队凝聚力、信心的。而且Q“一俊遮百丑”,有亮点就可以掩盖一些问题。这P对于客户来说Q会感觉产品从质量角度来说还是acceptable的。或者说Qcool feature或者说亮点可以作ؓ质量问题的一个事后I补措施?
要做。Function Spec review是用来统一思想的。而且Qreviewq以后Ş成了一致意见,来再也没有人可以说“你看,当初我就是反对这么设计的Q现在吃苦头了吧?/p>
要这栗项目里面每个h虽然都只是在刉一片叶子,但每个h都应该知道自己在刉的那片叶子所在的树是怎么样子的。我反对软g蓝领Q反对过分的把Y件制造看成流水线、R间。参见第61条?/p>
不能单纯的根据功能模块分Q或者单U根据表现层、中间层、数据库层分。我推荐q么做:首先Ҏ功能模块分,然后每个“层”都有一个Owner来Review所有h的设计和代码Q保证consistency?
要的。每一两个C拜搞一ơ内部的Tech Talk或者Chalk Talk吧。让l员之间分n技术心得,q笔花钱送到外面d训划?/p>
会的Q这是常见的Q尤其会在项目后期夸大做某个change所需要的旉Q以ơ来抵制change。解决的Ҏ是坐下来慢慢,掉E序员的逆反心理Q一起分析,q把估算旉的颗_度变小?
?http://www.uml.org.cn/UMLForum/200604142.htm
]]>
大家都知道javascript是可以隐式声名变量的。但要注意,隐式声名变量L被创Zؓ全局变量。看以下代码Q情愿javascript语言强制声明变量。徏议大家一定要var声明变量?
代码
<SCRIPT LANGUAGE="JavaScript">
function test(){
var a=222;
document.writeln(a);
}
test();
document.writeln(a);
</SCRIPT>
代码
<SCRIPT LANGUAGE="JavaScript">
function test(){
a=222;
document.writeln(a);
}
test();
document.writeln(a);
</SCRIPT>
2、关于变量的作用?
猜猜以下代码输出什么?
代码
<SCRIPT LANGUAGE="JavaScript">
var x='000';
document.writeln(x);
a();
function a(){
var x='aaa';
function b(){
document.writeln(x);
var x='bbb';
document.writeln(x);
}
b();
document.writeln(x);
}
</SCRIPT>
如果你的{案?000 undefined bbb aaa。恭喜,ok.当代码用到x变量Ӟ先从函数块(权威指南中用调用对象来解释)中找Q如果找不到Q从上一U函数块找,直到扑ֈQ如果知道顶层代码(指var x='000';的位|)q没扑ֈ定义Q代码会报未定义错误?/p>
改一下代码,得到 000 undefined 111 111
代码
<SCRIPT LANGUAGE="JavaScript">
var x='000';
document.writeln(x);
a();
function a(){
function b(){
document.writeln(x);
document.writeln(x);
}
document.writeln(x);
var x='111';
b();
}
</SCRIPT>
3、新的问?
变量个作用域清楚了,注意上面的代码。ؓ什么我的function a()定义以前可以调用a函数了,而我的var x='111';前“不可以用”x啊?Q?
让我把我的理解一一道来
首先Q以下代码让我相信javascript有个预编译过E,不是完全按照序解释执行的?
代码
<SCRIPT LANGUAGE="JavaScript">
a();
function a(){
alert();
}
</SCRIPT>
个h理解q个预编译过E不会象java/c#那样把代码编译成虚拟识的语言Q更不会象vbQvc那样~译成更底层的语a。猜惛_是把q个函数预装载到q段函数执行的全局环境中,在这个执行环境中Q该函数被标识定义过Q可以直接用了。(看到|上很多人写的AOP的javascript实现,其实q个预编译过E才是翻译元数据最x候,可惜javascript语言来讲Q是有些落伍了)
q个文章主要讲变量的一些问题。变量说了,Z么函数可以,我变量就不可以呢?
代码
<SCRIPT LANGUAGE="JavaScript">
document.writeln(a);
var a=0;
</SCRIPT>
Z么我要输出undefined呢?Z么我a׃可以预编译一把呢Q?
大家看看以下两段代码会输Z么呢啊?Q?
代码
<SCRIPT LANGUAGE="JavaScript">
document.writeln(a);
a=0;
</SCRIPT>
代码
<SCRIPT LANGUAGE="JavaScript">
document.writeln(a);
</SCRIPT>
可能你运行试了,可能你本来就知道Qa未定义。哈哈哈Q好了?
现在我确信var a=0;被javascript解释器“预~译q”,臛_是记录下来了。甚x它的D|ؓ undefined。“undefined”这个词名字取的很是让h误解Q怎么能叫未定义呢Q分明是javascript中所有变量的初始化倹{关于null与undefined的比较我实在不愿提了?
注意上面两段代码q反映一个现象。隐式声明的变量是在解释的时候才把自己定义ؓ全局变量的?/p>
关于函数与变量javascript预编译的不同处理Q大家可以与java class的加载过E比较下。java也是对基本类型设出|对象为null的。(不往q扯了)
4、区别未定义变量和未附值变?
代码
<SCRIPT LANGUAGE="JavaScript">
var a;
document.writeln(a);
</SCRIPT>
代码
<SCRIPT LANGUAGE="JavaScript">
document.writeln(a);
</SCRIPT>
未定义变量和未附值变?权威指南中文?定义的。通过W三条分析,我觉得变量就应该?定义和未定义变量区别。未附值变量和undefined有点冲突Qjavascript不是强类型语aQ没发附默认|才来了个undefined?
5、基本类型和引用cd
熟悉java的朋友可能这部分很清楚。没?
说头?
6、javascript的垃圑֛?
关于q部分内容一直没见着个权威说法。在javascript权威指南中有两小节提到这个问题?
对于字符丌Ӏ对象、数据这些没有固定大,必须为它们动态的分配内存Q但什么时候回收这些内存呢Qjavascript使用和java一Lgarbage collection的方法?
代码
var s="hello";
var u=s.toUpperCase();
s=u;
q行q段代码后,"hello"没有变量会再用到他,q是"hello"的存储空间的被垃圑֛收了。对于javascript的垃圑֛Ӟ你唯一要关心的是,它一定会q行Q不要对内存担心?
注意Qjavascript不提供Q何的强制垃圾回收或释攑ֆ存的q算附或语句?
javascript的deleteq算附和C++中的不同?
代码
<SCRIPT LANGUAGE="JavaScript">
var o=new Object();
o.name="zkj";
o.age=25;
o.bir=new Date();
for(var key in o){
document.writeln(key+':'+o[key]+'</br>');
}
document.writeln('delete o.bir</br>');
delete o.bir;
for(var key in o){
document.writeln(key+':'+o[key]+'</br>');
}
</SCRIPT>
7、作为属性的变量
猜猜以下代码会输Z么?
代码
<SCRIPT LANGUAGE="JavaScript">
var x=100;
document.writeln(x);
add(x);
document.writeln('</br>------------------------</br>');
var x=200;
document.writeln(x);
add(x);
function add(x){
document.writeln(x);
var x=300;
document.writeln(x);
var x=400;
document.writeln(x);
}
</SCRIPT>
估计很多得出正确{案
100 100 300 400
------------------------
200 200 300 400
但这里我惛_?全局对象和调用对象的 概念Qjavascript权威指南是这么翻译滴Q?
代码
<SCRIPT LANGUAGE="JavaScript">
var x=100; //我们在全局对象中加了个属性x. Ҏ
//var o=new Object();o.x=100;
document.writeln(this.x);//用this讉K全局对象
add(this.x);//把全局对象的属性g递对函数中 ?
document.writeln('</br>------------------------</br>');
this.x=200;//把全局变量中的x属性修Ҏ
document.writeln(window.x);
add(window.x);
function add(x){
//假设有个局部对象,调用对象Q函数调用过E中的对象 ?
// temp temp.x=${传入的值}
document.writeln(x); //哦这打印的可是参C的|也就是temp.x=this.x
//的?
var x=300;//把调用对象变量的{l覆盖了.
document.writeln(x); //打印修改q的倹{?temp.x
var x=400;//temp.x=400
document.writeln(x);
}
</SCRIPT>
在函数的调用q程中,假设有个调用对象存在Q把函数的参敎ͼ和函数内的时变量当成这个调用对象的属性。当然这个调用对象的生命周期很短?
注意Q当我们讉K全局变量的属性入x的时候,不必要用this.x 或window.x讉KQ当在有<frame><iframe>的页面时会出现淆?
关于函数的详l讨论我后箋会详l讨论?/p>
文章来自Q?a >http://www.javaeye.com/article/19506
字符集支持?/p>
MySQL4.1以后的版本对字符集的支持h以下新增功能Q?/p>
支持服务器同时用多U字W集?/p>
允许在服务器Q数据库Q数据表Q数据列{多U别上设|不同的字符集?/p>
服务器的默认字符集在~译旉定Q但可在启动服务器时?-default-character-set选项来更攏V?/p>
用ALTER DATABASE db_name DEFAULT CHARACTER SET charset来设|数据库字符集?如果只有default参数Q则使用服务器的字符集?/p>
用CREATE TABLE table_name(...) CHARACTER SET = charset讄数据表字W集。如果charset为defaultQ则使用数据表所在数据库的字W集作ؓ数据表的字符集?/p>
在数据列中,可用CHARACTER SET charset属性来讄数据列的字符集。charset不能是defaultQ如果没有该属性,则默认用数据表的字W集。允许设|字W集的数据列有charQvarchar(不带binary属?及TEXTcd?/p>
用_charset str转换字符串常数的字符集。如Q_utf8 'mysql'Q_latinl 'oracle'。该Ҏ只适用于括在引号内的字W串Q其它十六进制常?、字W串表达式等可用CONVERT()函数q行转换Q如QSELECT CONVERT( str USING charset)?/p>
通过MySQL提供的函数可q行字符集{换和查询?/p>
新增的COLLATE操作W我们可按某一U字W集的排序顺序来处理另一U字W集的数据。如QSELECT a from t ORDER BY a COLLATE utf-8Q?/p>
用SHOW CHARACTER SET命o可显C服务器支持的字W集列表?/p>
当服务器转换到另一U字W集Ӟ会自动对索引q行重新排序?/p>
通过UTF-8和UCS2字符集提供了Unicode支持?/p>
MySQL现在q不支持Q?,在同一个字W串里用不同字W集的字W;2,在同一个数据列里用不同的字符集?/p>
各字符集的查询Ҏ
服务器
SHOW CHARACTER SETQ可查出可供使用的所有字W集?br />SHOW VARIABLES LIKE 'character_set'Q可查出服务器的默认字符集?br />
可查出数据库U的字符集?/p>
SHOW CREATE DATABASE db_nameQ?br />
两条命o可查出数据表的字W集?/p>
SHOW CREATE TABLE table_nameQ?br />SHOW TABLE STATUS LIKE 'table_name'
以下几命令可查出数据列的字符集:
DESCRIBE table_name;
SHOW COLUMNS FROM table_name;
SHOW CREATE TABLE table_name;
用CHARSET()函数可确定特定字W串Q字W串表达式或数据列值相兌的字W串的字W集。如QSELECT CHARSET(str)?/p>
数值型的列cd包括整型和Q点型两大cR?/p>
数据列类?/th> | 存储I间 | 描述 |
---|---|---|
TINYINT | 1字节 | 非常的正整敎ͼ带符P-128~127Q不带符P0~255 |
SMALLINT | 2字节 | 整敎ͼ带符P-32768~32767Q不带符P0~65535 |
MEDIUMINT | 3字节 | 中等大小的整敎ͼ带符P-8388608~8388607Q不带符P0~16777215 |
INT | 4字节 | 标准整数Q带W号Q?2147483648~2147483647Q不带符P0~4294967295 |
BIGINT | 8字节 | 大整敎ͼ带符P-9223372036854775808~9233372036854775807Q不带符P0~18446744073709551615 |
FLOAT | 4字节 | 单精度QҎQ最非零|+-1.175494351E-38Q最大非零|+-3.402823466E+38 |
DOUBLE | 8字节 | 双精度QҎQ最非零|+-2.2250738585072014E-308Q最大非零|+-1.7976931348623157E+308 |
DECIMAL | M+2字节 | 以字W串形式表示的QҎQ它的取D围可变,由M和D的值决定?/td> |
MySQL有五U整型数据列cdQ即TINYINTQSMALLINTQMEDIUMINTQINT和BIGINT。它们之间的区别是取D围不同,存储I间也各不相同。在整型数据列后加上UNSIGNED属性可以禁止负敎ͼ取g0开始?/p>
? 明整型数据列Ӟ我们可以为它指定个显C宽度M(1~255)Q如INT(5)Q指定显C宽度ؓ5个字W?如果没有l它指定昄宽度QMySQL会ؓ它指 定一个默认倹{显C宽度只用于昄Qƈ不能限制取D围和占用I间Q如QINT(3)会占?个字节的存储I间Qƈ且允许的最大g不会?99,而是 INT整型所允许的最大倹{?/p>
MySQL有三UQ点型数据列类型,分别是:FLOATQDOUBLE和DECIMAL。Q点类数据cd有一个最大可表示值和一个最非零可表示|最非零可表示值决定了该类型的_度?/p>
MySQL 4.0.2版之后,FLOAT和DOUBLE都可以指定UNSIGNED属性。当指定该属性时Q取D围不q移到正数区_而只是简单地把Q点类型的负数部䆾L?/p>
? 点类型也有M(1~255)和D(1~30Q且不能大于M-2)。分别表C显C宽度和数位数。M和D在FLOAT和DOUBLE中是可选的Q默认,? MySQL版本大于3.23.6ӞFLOAT和DOUBLEcd被保存为硬件所支持的最大精度。DECIMAL的M和D值在MySQL3.23.6? 可选,默认Dgؓ0,Mgؓ10?
? 了节省存储空间和提高数据库处理效率,我们应根据应用数据的取D围来选择一个最适合的数据列cd。如果把一个超出数据列取D围的数存入该列,? MySQL׃截短该|如:我们?9999存入SMALLINT(3)数据列里Q因为SMALLINT(3)的取D围是-32768~32767Q? 所以就会被截短?2767存储。显C宽?不会影响数值的存储。只影响昄?/p>
对于点数据列,存入的数g被该列定义的数位进行四舍五入。如把一?.234存入FLOAT(6.1)数据列中Q结果是1.2?/p>
DECIMAL 与FLOAT和DOUBLE的区别是QDECIMALcd的值是以字W串的Ş式被储存h的,它的数位数是固定的。它的优ҎQ不会象FLOAT? DOUBLEcd数据列那栯行四舍五入而生误差,所以很适合用于财务计算Q而它的缺ҎQ由于它的存储格式不同,CPU不能对它q行直接q算Q从而媄 响运效率。DECIMAL(MQD)d要占用M+2个字节?/p>
ZEROFILL属性适用于所有数值类数据列类型,作用是,如果数值的宽度于定义的显C宽度,则在数值前填充0?/p>
UNSIGNED属性不允许数据列出现负数?/p>
AUTO_INCREMENT属性可生成独一无二的数字序列。只Ҏ数类的数据列有效?/p>
NULL和NOT NULL属性设|数据列是否可ؓI?/p>
DEFAULT属性可为数据列指定默认倹{?/p>
转义序列 | 含义 |
---|---|
\0 | NUL(ASCII?? |
\' | 单引?/td> |
\" | 双引?/td> |
\b | 后退W?/td> |
\n | 换行W?/td> |
\r | 回RW?/td> |
\t | 制表W?/td> |
\\ | 反斜?/td> |
\Z | Ctrl+Z |
AdParter分成机制QAdParter按竞价广告单ơ有效点Mhg站长分成Q幅度ؓQ?span class="style6">50%-90%、站长单ơ最低收?.05?span style="text-decoration: underline;">.
相比Google EarthQ微软的q款“虚拟地球”可不是什么单独运行的软gQ而是架构于Live Search上面的一个服务网c而这栯计的好处也是显而易见的Q那是我们在Q意一台电脑上都可以方便地使用Virtual Earth了?
一?外观?
1. 外观界面速览
当我们在览器中输入?http://maps.live.com/ ”这个网址后回车,便可以看到“Virtual Earth”的主页面了Q如?所C?
? 其他Windows Live产品一P“Virtual Earth”的背景也是׃块非常漂亮的极光蓝组成。同Ӟ它的界面设计也是相当z,所有功能都被划分到面上方的搜索框和左侧的控制手柄中。而且Q由 于这里的功能和咱们以前用q的Google Earth完全一P所以,怿大家上手应该是没有什么问题?
2. 多样的地图浏览模?
而与Google Earth不同的是QVirtual Earthq没有完全采用卫星地图作为演C体,而是常规地图、卫星地囑时放|在了控制手柄上Q用户可以根据自q需要自行选用Q而且切换h十分q速,如图2所C?
不过Q微软毕竟还是微软,q点问题可是难不倒它的。在处理自己的卫星地图不丰富q个~点Ӟ它很巧妙地将航拍囄与卫星地囄合了h。当地图被放大到一定精度时Q控制手柄中的“航拍模式”便被自动激zM?
其实Q这个模式用v来也很简单,只要我们点击一下“航拍模式”按钮,Virtual Earth便会马上以当前位置Z心的最q九张航拍地图整理出来,以九宫格的Ş式显C在按钮右侧Q而我们只需在选好的图片上点击Q便能迅速打开q张地图了,如图4所C?
二?的浏览控?
使用qGoogle Earth的朋友一定知道,Google Earth的浏览控制功能十分丰富,我们除了可以使用固定在地图上方的控制手柄之外Q还可以直接利用鼠标快速完成一些简单Q务。而在Virtual Earth中,鼠标同样h着重要作用?
1. 地图的放大与~小 在地囄览q程中,最常用到的功能是攑֤与羃了。而在Virtual Earth中,我们除了可以方便C用鼠标滚轮快速羃放之外,q可以通过双击的方式手动放大鼠标所在区域。而如果再配合上控制手柄中的羃放滑杆,整个地图的羃放操作将变得十分方便?
2. 地图的移?
相比攑֤与羃,地图的移动就昑־更ؓ单了。和同类软g不同的是QVirtual Earthq没有将地图Ud工具攄到控制手柄上Q事实上Q也很少有h会用手柄来完成q个操作Q,而是直接它集成在了鼠标上?
我们只需用鼠标在地图上拖拽,相应的画面便会随之发生变化。甚臻I整个拖动q程也和Google Earth一P颇具动画效果Q用v来感觉十分逼真?/p>
三?3D视图模式
1. 3D视图的启?
? 要说Virtual Earth最有特点的一,恐怕就是它?D视图了。和航拍模式不同Q?D视图下的每个建筑物,都是电脑Ҏ实际寸自动合成的。我们不仅可以Q意改变观 看的角度Q甚臌可以清楚地知道徏{物之间的比例,而这点也正是卫星地图和航拍地N以企及的Q倒有点像׃时候玩q的U木Q如?所C?
? 切换?D模式非常单,我们只要在控制手柄处点击一下?D”按钮,再按照屏q的提示Q? 下蝲q安装好一?D插g可以了。而当插g安装完毕之后QVirtual Earth会首先弹Z个选项面Q让我们选择一?D模型的渲染别,如图6所C。其实这个选项的含义非常简单,从左到右分别是“最低精度”、“中{精 度”和“最高精度”,而它们之间的区别除了效果不同之外Q对电脑的要求也是节节攀升的?
【小提示?Virtual Earth?D插g目前仅能安装在英文版操作pȝ中,q点请大家注意?
2. 更改3D视角 ׃3D视图中的建筑物都是由计算机实时渲染出来的Q因此我们就有了更多的视角变化。相信大家已l注意到Q在3D视图模式下,画面中除了原有的控制手柄之外Q还多出了一个方向手柄。其实,q正是Virtual Earth?D视图下所Ҏ的视角控制器Q如?所C?
而除了上面这UQ意视角之外,Virtual Earthqؓ我们预设了三档默认视角,被顺序地攄在控制手柄上Q用v来非常方便,如图8所C?
3. 画质Ҏ
不过说了半天Q这些由计算机渲染出来的地图I竟效果如何呢?耛_、眼见ؓ实,W者这里找C一l同一地点拍摄的航拍图片和渲染囄Q效果如何,q是h自己来看吧,如图9所C?
四?更多有趣功?
1. 交通查?
? Ӟ除了上面所说的q些功能之外QVirtual Earth的附属功能也一点不比Google Earth差。除了最基本的地址搜烦服务QVirtual Earthq有一个非常实用的功?—? 交通查询。就像我们好多司机朋友爱听\况广播一P在Virtual Earth上也提供了一些事故通报和\况信息等{内宏V?
其中Q事故通报的颜色非帔R目,在图中一眼就能看刎ͼ而我们只要将鼠标悬停于通报图标之上Q便能看到它的具体内容了Q如?0所C。只不过Q有些遗憄是,该项功能目前q仅能在国的一些城市中使用Q而且数量也不是很多?
2. 路线查询
? 了交通查询之外,Virtual Earthq有另外一w常实用的功能 —?路线查询。点几ZDriving directions”按钮之后,Virtual Earth便会在页面左侧打开一个对话框Q我们只需v始地点和目的地点输入其中Q再选择好是希望查询最短行驶时间还是最短\E之后,点击“Get directions”按钮即可开始查询?
而如果您l出的地址信息不够详细QVirtual Earthq会弹出几个更详l的地址供您选择。最后,查询出来的\U会用一条醒目的颜色标识出来Q一目了Ӟ如图11所C?
? 不想让电脑自动将您当前的所在地标识出来Q呵呵,q可不是什么天方夜潭,在点Mȝ面上 的“Locate me”按钮之后,Virtual Earth便能直接您当前所处的位置昄在了图中。其实,不是Virtual Earthh什么特异功能,可以得知我们当前所处的位置Q而是它能够通过解析我们上网的IP地址来完成所在地定位?
所以,如果您现在正在用代理服务器Q或者打开了什么网l加速Y件的话,那么q项功能可就真的失效了,如图12所C?
而除此之外,Virtual Earthq允许我们发布或打印出当前地图,具体操作也与其他软g完全一P只不q限于篇q有限,W者在q里׃再赘qCQ大家可以自己去试一下?
写在最?
怎么P看到q里Q相信您已经对微软的q款Virtual Earth有了个大体印象了。就W者这D|间的试用情况来说QVirtual Earth相比Google EarthQ明昑֜功能斚w占了上风。但囄数量q少Q精度太低的问题却一直困扰着它?
? 且,׃目前好多服务都仅限于北美地区Q甚臛_q那?D视图插g也只能安装在英文版操?pȝ中,所有的q些问题无疑都严重阻了Virtual Earth的快速发展。而恐怕只有解决了q些问题之后QVirtual Earth才能真正与Google Earth一决高下?/p>