安装程序无法复制一个或多个文件。特定错误码是0x4b8
esentutl /p %windir%/security/database/secedit.sdb 故障现象安装IIS的时候一直提示如下错误,IIS无法正常安装。提示:安装程序无法复制一个或多个文件。特定错误码是 0x4b8。按“确定”以继续;或者按“取消”,停止安装并且再试一次。如果继续,组件可能无法正常运行。解决方案(1) 开始 > 运行 > 输入 CMD >再输入以下命令:esentutl /p %windir%/security/database/secedit.sdb,然后再安装一次,就搞定了。修复了安装IIS组件需要的系统数据库。这里的esentutl是一个系统的修复工具。主要用于修复系统的数据库。在Windows系统中,包含了多个数据库,最主要的数据库就是注册表,还包含了很多其他的数据库,他们都以系统数据库文件的形式保存,其后缀名为SDB。ESEnTUtl运行有几种模式。每种模式对SDB文件执行不同的任务。这里是每种模式的语法:Defragmentation : ESEnTUtl /d <database name> [options]碎片整理模式 : ESEnTUtl /d <数据库文件名> [选项]Recovery : ESEnTUtl /r [options]恢复模式 : ESEnTUtl /r [选项]Integrity : ESEnTUtl /g <database name> [options]完整性检查模式 : ESEnTUtl /g <数据库文件名> [选项]Repair : ESEnTUtl /p <database name> [options]修复模式 : ESEnTUtl /p <数据库文件名> [选项]Checksum […]
View DetailsVisual Studio 2012 Ultimate旗舰版序列号
Visual Studio 2012 Ultimate旗舰版序列号: YKCW6-BPFPF-BT8C9-7DCTH-QXGWC RBCXF-CVBGR-382MK-DFHJ4-C69G8 YQ7PR-QTHDM-HCBCV-9GKGG-TB2TM 点击帮助(help)-注册产品(Register Product)-输入Key就可以了
View Details再来 35 个响应式 HTML5 和 CSS3 模版
免费响应式模版 FlexApp Demo || Download zGallering – Free Responsive Html5 Theme Demo || Download Responsive HTML5/CSS3 template Demo || Download VividPhoto HTML5 and CSS3 Template Demo || Download ResponseEve HTML Template Demo || Download Brownie Responsive HTML5 Template Demo || Download Retina – Free Responsive HTML5 Template Demo || Download Digy Demo || Download Obscura – Free Responsive HTML Template Demo || Download ImCreative HTML5 Template Demo || Download Simple Responsive Template Demo || Download Keyners HTML5/CSS3 Responsive Template Demo || Download zParalexy – Free Responsive Html5 Theme […]
View Details为开发者准备的 15 款 Tooltip 工具提示 jQuery 插件
tooltip或者infotip或者hint,是一种常见的图形用户界面元素。它用于连同一个光标,通常是一个鼠标光标。当用户将鼠标悬停在一个特定的地方,无需点击,就会出现一个包含关于悬停到这个地方的一些信息的tooltip或小的悬浮框。 jQuery tooltip是应该考虑在网页设计和开发中利用的最好的构件之一。Tooltip提供了额外的功能和通用型,可以被视为大多数网站的最重要的一个用户界面组件。 本文中我收集了15个最好的jquery tooltip插件,这些可以帮助你创建创新的和有创造性的网页设计,同时也可以帮助你来实现你的web项目所需要的结果。我希望这个jquery tooltip插件的列表对你即将到来或已经开始的web项目提供了便利并且是确实有用的。如果你知道一些其他的jquery tooltip插件请通过在评论区跟帖让我知道,非常期待。请享受本文! 1. Tooltipster Tooltipster是一个jQuery插件,用来快速创建HTML5验证的灵活的提示工具。这个插件很小(4.8kb大小),工作很快并且可以很容易的被定制。外观可以随意改变CSS(支持主题)和鼠标箭头的位置,展现的延迟/时间都可以被定义。 Source 2. Toolbar.js Toolbar.js允许你快速创建用于web应用程序和网站的提供工具类型的工具栏。这个工具栏可以很容易的用twitter启动图标定制,还提供自适应的环绕在工具栏周围显示一些图标。 Source 3.qTip2 qTip2是第二代先进的qTip插件,这是一个曾经很流行的jQuery框架。在1.0版本的友好的用户和丰富的功能的基础上,qTip2提供了一些增强的功能,比如气泡提示、影像映射等等。它是完全免费的,许可是MIT/GPLv2。 Source 4. Poshy Tip jQuery Plugin Poshy Tip jQuery Plugin是一个提示框插件,允许轻松创建时尚的提示框。通过Poshy Tip你可以把提示相对于鼠标光标或目标元素来定位,并可以将它们横向或纵向展示。 Source 5. Grumble.js Grumble.js提供了一个没有东西南北定位限制的特殊的提示框。它可以从360度的任何角度环绕一个给定的元素,可以指定任意的距离。 Source 6. Joyride Joyride是一个jQuery的插件,简化了指导用户发现一个网站的特点的过程。通过定义一个有序的步骤,可以在任何HTML元素附近通过提示框显示需要的信息。 Source 7. ImageMapster ImageMapster是一个可以通过添加更多地功能给旧图片来让它们更有生气的jQuery插件。使用这个插件,可以通过各种方式突出显示、选择(单个或多个区域)和操纵任何的图像。提示工具可以显示用户友好的可以与该图像互动的信息。 Source 8. Tooltipsy Tooltipsy是一个提供了创建提示工具的灵活基础的jQuery插件。它有最小的默认样式或动画,你都可以完全控制它们。它可以按你希望的方式来定位,外观和感觉均可以通过CSS来定制,任何类型的动画都可以被实现。 Source 9. jQuery Bubble Popup jQuery Bubble Popup是一个用来帮助创建容易控制的别致Tooltip的最流行的JS框架的插件。Tooltip通过淡入淡出的方式显示/隐藏,里面也可以显示任何的HTML内容。它们可以附加到任何一边的一个元素中,也可以获取Tooltip的状态(开/关,创建,最后一次修改或最后一次显示的时期时间)而采取相应的动作。 Source 10. Beauty Tips BeautyTips是一个使用canvas元素来实时绘制Tooltip的jQuery插件。每一个Tooltip默认显示在一个元素的有足够空间的一边,但是这个位置也可以强制放到一边。内容可以硬编码进去,或者从一个属性获取或者通过一次Ajax请求获取。 Source 11. Simpletip Simpletip是一个新生的轻量级的创建灵活的Tooltip的jQuery插件。Tooltip可以附加到任何的元素 & 轻松风格的演示 & 定位。Tooltip可以是静态的、动态的或者通过Ajax加载的。另外,可以应用任何组合的效果来使它们更有吸引力。 Source 12. Colortip 它将在你页面中元素的title属性转换为一系列丰富多彩的Tooltip。共有六个可用的颜色主题,所以你可以很容易的匹配你的设计。你也可以轻松地通过添加三个额外的样式类到你的stylesheet和在colortip-1.0-jquery.js中的支持颜色数组中添加一个元素来创建你自己的Tooltip。 Source 13.TipTip TipTip是一个非常轻量级和智能的自定义Tooltip的jQuery插件。它使用零图像,并且是通过CSS完全可定制的。TipTip会检测浏览器窗口的边缘以确保tooltip停留在当前窗口的大小。因此Tooltip将调整自身来显示在要使用TipTip的元素的上下左右,这取决于要保持在浏览器窗口中的哪些是必要的。 Source 14. (Mb) Tooltip (mb)Tooltip是为你的使用jQuery的页面提供的一个美丽的tooltip。只需很简单的将你的内容作为title属性的值,然后你就可以用这个聪明的漂亮的tooltip代替那丑陋的默认tooltip了。你也可以随时禁用或启用(mb)Tooltip。 Source 15. Hovercard 这是一个免费的轻量级jQuery插件,可以让你使用悬停的label、link或任何你选择的html元素来显示相关联的信息。hovercard可以用在显示个人简历、书籍作者和价格,通过Ajax加载相关联的信息,直接编辑等场景下。你也可以添加你的自定义数据源,使用已有的card格式来显示分析的数据。 Source 转自:http://www.oschina.net/translate/jquery-tooltip-plugins-for-developers
View Details60 个 Windows Store 的应用设计模版
今天给大家介绍的 60 个应用模版,全部是关于 Windows 8 设计相关的,它们很适合在 Windows 8 的平板上使用。如果你接下来想开发 Windows 8 应用,相信对你会有很大帮助。 而且这些模版都是放在 CodePlex 上。 点击图片进入模版页面 Block Style Color template will help if you want to build an app which needs a Variable Size Content display block. The Block Style Color template contains placeholders for Category and Detail Page. You can leverage this style if your implementation scenario is closest to this template. Block Style Pic template is an emulation of a data storage app with placeholders for category and details data. Brick Style template will help if […]
View Details开始3D编程前需注意的十件事
开始3D编程不是一件容易完成的任务。这里有很多新的东西可以发挥作用,从选择语言到选择合适的3d建模软件。当这10个事情完成时,无论你选择何种语言,使用何种建模软件,你都可以认为自己是这方面的半个专家了。 #1:建立自己的图形初始化函数 现在有种类繁多的3d引擎和平台,所以这个任务一般交给它们来完成。我还记得以前的事情,你必须使用windows函数来初始化OpenGL,并管理窗口句柄和资源的加载。了解事情是如何进行内部管理的会让你更深刻理解你现在在干什么,这是非常有用的。 我建议从NEHE的教程开始。在教程的第一章中包含了一个C语言编写的利用Windows API的图形初始化函数。如果这里有很多东西需要你控制,你可以试试C++的相对的函数,或者使用托管语言,像C#、Java或者Python。在网络中有很多例子。 #2:实现自己的相机 您可以从互联网上复制和粘贴摄像头的代码,使用它并没有大的问题, 但它不是自己的相机,直到你从头开始,充分了解一些概念,如向量处理,矩阵变化,角度转换等等。你应该先从一个FPS(第一人称射击)的摄像头开始,它会给你需要的一切并让你为接下来的学习做好准备。 如果你以后想构建自己的游戏,你不能使用它。我建议你阅读这篇文章,以找出最适合您的需求类型的相机。 #3:了解初级的3D概念 当我开始,我就开始听到了很多新词,如抗锯齿,各向异性过滤,阻塞测试,Z-缓冲,alpha测试,着色器语言,凹凸贴图等。如果你是一个玩家,也许你已经在配置游戏的图形设置时看过它们了。请确保你花费一些时间来阅读相关内容,因为这将会给你一个3D编程的概述。 #4:学习所有向量和矩阵的知识 这始终被低估。我强烈建议,为了正确地管理如相机,光线追踪,地形跟踪的东西,你应该知道关于这个的一切。当然,你也需要学会最基础的三角知识。现在我才明白,如果我愿意花几分钟研究这个问题,我的生活本应该很轻松。 #5:编写你自己的3D模型加载器 我建议从使用OBJ文件或STL文件开始,因为他们用一个ASCII格式表示。之后你可以迁移到其他根伟复杂的格式上,比如3DS格式。有了这个,你不仅将了解如何保存3D模型,你还会理解如何绘制三角形,然后你就会明白图形引擎是如何绘制一切的。 #6:成功实现自己的碰撞算法 一个事情是绘制世界,另外一个是管理其他中几何形状。在一个虚拟的3D世界中,这里没有物理定律,所以你必须创建它们。如果你想要一个对象不能穿越墙壁,那么你必须在墙壁中创建一个几何图形并计算所有东西。有几种方法来管理碰撞,我建议从在一个迷宫项目实现两体碰撞开始。试试这个链接,了解更多信息。 #7:实现一个小的粒子引擎 当我发现3D游戏中火焰、烟雾、照明和一些其他令人惊艳的效果是由粒子组成,而那些粒子是由相机面前的贴图组成。你添加更多的粒子,效果看起来更加逼真,但是性能就有所损失了。我的第一个粒子引擎是为火箭的烟雾制作的,而且我这样做的时候还没有不参看粒子引擎教程。后来我意识到了,我已经改造了车轮。通过实现这些东西,你会明白一些诸如粒子发射器、粒子行为等想法。 # 8:了解一个3D建模软件的基本知识 为了修改在你的应用中使用的3D模型,你应该知道基本的操作,比如平移,缩放,旋转,变形,导出为其他格式,并制作简单的模型。如果你不这样做,你在制作第一个游戏时遇到事事依赖别人的情况。我曾用过几个建模软件,我强烈推荐3D MAX或Maya。 #9 :加载和播放动画 我做过的最困难的事情是加载并正确播放动画。我不得不对3D max的XAF文件进行大量的逆向。我不得不学习骨骼层次,矩阵插值等东西。在最后,看到自己的模型自行移动是一件让人相当高兴的事情。我建议从一个机器人动画开始,因为动物模型什么的还需要一种名为蒙皮的技术。 #10 编写2D自定义GUI控件 当我开始使用XNA时,由于XNA没有实现窗体控件,我不得不构建自己的图形用户接口。这也导致了两件事: 第一:我有了构建自定义的GUI控件的能力。 第二:我懂得了一些重要的概念,如事件控制和事件捕捉。 这不是容易的事,我实现的最难的一个控件是listbox,但是一旦做出来了,就可以在很多地方使用了。 结论 在这个过程中你将会遇到很多问题。你不得不花费很多时间来使你的代码可以正常工作,即使你很聪明。但是我可以告诉你的是,从一个程序猿的角度来说,没有什么快乐比的上你看着你的代码能顺利的工作。我仍然不能忘记当我第一次编出OBJ模块加载器时的喜悦。当时,我想要加载个人脸图像,然后数个小时过去了,在凌晨3:50时,突然一个非常诡异的人脸出现在我的屏幕,真是吓死爹了,每当我想起这件事时,就哈哈大笑.. 我确信当你设法完成这10件事后,你可以说你已经了解了3D编程的基础。我写篇文章是因为我花了很多时间来完成它(指走了弯路了),所以我希望每个开始接触3D编程的人,能有一个小小的指南。我的建议是开始做一个小小的游戏,并不断的完善它。我觉得这是一个很好的方式,因为如果只是单纯的去学习而看不到实际的效果的话,积极性不高。一段时间之后,你会觉得游戏对你来说不一样了,因为你会花很多时间来想它们是怎么解决你曾经碰到的技术难点的。以上,我试图使这篇文章结构保持清晰和易懂,如果你喜欢,你可以访问我的 博客来获取更多的这方面的内容。 转自:http://www.oschina.net/translate/ten-things-to-achieve-when-starting-3d-programming
View Detailsa标签的四个伪类
★a标签的四个伪类的意义及排序: 在支持css的各个浏览器中,a标签链接的不同状态都能以不同的方式显示,这些状态包括:未被访问状态、已被访问状态、鼠标悬停状态和激活状态。 a:link|a:visited|a:hover|a:active这是a标签的排列顺序,这样排列是有一定因素的:a、技术层面:a的这四个伪类,分别表示了a的四种状态,要注意的是,a可以只具有一种状态(:link),或者同时具有两种或者三种状态,任何具有href属性的a标签,在没有对它进行操作之前就已经具备了:link的条件了;b、css优先级角度:从css优先级来看,当排列顺序发生变化时,后者会覆盖前者的表现样式,所以一般来说,我们要按照正确的顺序来排列a标签的四个伪类,可以简写为love、hate; 在实际应用中,很少会出现4个伪类同时使用的情况,有时我们只用到一个a:hover的效果,而不再对四个伪类都设置一遍,但是如果有其他伪类的需求,就必须按照4个伪类的正确顺序来设置,需要注意的是,除a标签以外,其他标签也都具备伪类,但是在IE6不支持a标签以外的标签的伪类; 转自:http://hi.baidu.com/haohaizhaozhao/item/96570e34ef28f5bfb80c03d9
View DetailsMozilla的编程语言 Rust
Mozilla 目前正在开发一个新的编程语言,名为“Rust”,由web语言的领军人物Brendan Eich(js之父),Dave Herman以及Mozilla公司的Graydon Hoare 合力开发。 创建这个新语言的目的是为了解决一个很顽疾的问题:软件的演进速度大大低于硬件的演进,软件在语言级别上无法真正利用多核计算带来的性能提升。Rust是针对多核体系提出的语言,并且吸收一些其他动态语言的重要特性,比如不需要管理内存,比如不会出现Null指针等等。 Rust 最早是在今年7月的Mozilla的社区峰会上公之于众的,当时就有人问以后是否会用Rust重写Firefox,Brenda说希望如此。Rust目前还处于初期的开发阶段,开发团队目前并不想花太多的时间在语法上,不过他们还是提供了一小段代码: iter pairs() -> tup(int,int) { let int i = 0; let int j = 0; while (i < 10) { put tup(i, j); i += 1; j += i; } } fn main() { let int i = 10; let int j = 0; for each (tup(int,int) p in pairs()) { log p._0; log p._1; check (p._0 + 10 == i); i += 1; j = […]
View Details93岁抗战老兵蜗居公厕旁30年 曾搞情报杀伪市长
中广网北京7月4日消息 据中国之声央广夜新闻报道,这两天引发了热烈讨论的一则消息——人大代表提出的关于优抚抗战老兵的提案获得了民政部积极的反馈。媒体注意到这则消息,源头是来自香港的全国人大代表王敏刚先生7月2号在微博里贴出了两张图片,显示的是一份来自民政部的文件,全称叫《民政部对十二届全国人大一次会议第8260号建议的答复》。原来,在今年两会期间,王敏刚联合香港特区多位人大代表提交了“关于优抚抗战老兵的建议案”,希望在抗战胜利68年后的今天,对那些年事已高、生活困苦的老兵们给予应有的照顾和关怀。提案中说,此前,受到历史原因的影响,有部分原国民党抗日老兵生活贫困,甚至孤苦一人,老无所依,因此建议由民政部牵头,民间机构作为补充,为这些老兵提供更多的帮助。提案上交三个月后,民政部给予了正式回复,表示近期已下发通知,将原国民党抗战老兵纳入相应社会福利保障范围,社会养老服务体系将优先照顾原国民党抗战老兵;同时建议各地党委、政府在重大节日邀请老兵参加纪念活动并予以慰问。 既然说到原国民党抗战老兵的生活今后可能会获得进一步的改善,那我们就要来看一看现在他们生活的状况了,第一站,云南,昨天,在民政部回复人大代表建议的消息被热烈讨论的同时,我们也看到,在云南昆明有一条消息让人唏嘘不已,93岁的抗战老兵陈士麟,60年前,曾凭独特的“听风”本领干掉了敌占区武汉的伪市长。但此后长达30余年的时间内,都蜗居在昆明一个公厕旁的幽暗小屋里,直到最近,才在爱心人士的帮助下住进老年公寓。 记者:搬过来住还适应吗? 陈士麟:其是还不习惯。 记者来到昆明知青老年工作室,工作人员正准备帮陈爷爷从一楼搬到二楼,一间更亮堂的房间,陈爷爷的新家在公寓的四栋自理区,除了桌椅床等家具外还有一个彩电,全新的被褥挂着蚊帐,陈爷爷最珍贵的就看着英雄字样的绶带挂在墙上。 记者:没来这个地方吃什么呢?自己做? 陈士麟:吃,该咱吃自己做,习惯了。我们以前有50块钱用不了。 记者:儿女来看望您吗? 陈士麟:我姑娘们在宁江,回不来。儿子们来。 记者:陈爷爷叫陈士麟,抗战期间曾经是国民党重庆军队警备司令部情报组组长。 陈士麟:当天我是知识青年参军的,有的头衔。 记者:您这么干掉武汉的伪市长呢? 陈士麟:干那个市长是市长的侄子,我是搞情报的,他是搞行动的。 记者:抗战结束后,离开部队的他一直任职于昆明蓄电池厂,为千家万户亮上电灯。但由于历史原因,老人一直没有分到住房。 陈士麟:因为我的身份不好,盖房子这些没有我的份。 在长达30多年的时间里,陈爷爷和老伴一直蜗居在昆明一个公厕旁的一间小屋,前些年老伴去世了,陈爷爷就一直一个人住,如今他最大的心愿是能够台湾去看一看。 记者:您有什么心愿呢? 陈士麟:想要去一趟台湾。 记者:想要去一趟台湾。 陈士麟:就是台湾居住了,台湾还有我的老二哥。 记者:还有您的亲人在那边。 爱心人士武思奇(音)告诉记者,陈爷爷入住养老院的所有费用都由志愿者分免担负,现在还有很多爱心人士都向他伸出了援助之手。陈爷爷今后的生活衣食无忧,知情老年公寓院长谢会英(音)告诉记者,陈爷爷身体还硬朗,性格独立,所以先安排他在自理区。老人除了需要自己洗鞋子、袜子外,其他都由工作人员来大理。 陈会英:陈士麟老人入住我们知青老年公寓,我们一定尽我们的能力,为抗战英雄做好每一件事,让他们安度晚年。 (原标题:蜗居公厕93岁抗战老兵搬进养老院 曾干掉敌占区伪市长) 转自:http://news.sina.com.cn/s/2013-07-05/002627580057.shtml
View Details永远不要再犯的 5 个编程错误
当你开始成为一个程序员的时候,在编程的时候很容易陷入下面所述的一些坏习惯。 作为一名程序员,犯错误不可避免,这是你学习编程课程中的一部分。在你的职业生涯中你会犯很多错误 – 有的特别、有的普遍 – 通过这些错误你可以学习如何避免在将来再犯同样的错误。 但是如果你是一个初学者,你犯的错误可能会比其他人更频繁。那么如何才能避免大部分程序员每天都犯的这些普遍的错误呢? 想要避免错误,就要对它有所了解。这也是为什么我要和大家分享一些在我们的程序员生涯中阻碍我们成长的普遍错误。 在开始之前,你可能想知道为什么我知道这些是错误,不是最佳的方法? 有一个简单的回答就是 – 在我的职业生涯中,所有这些情况我都遇到过。有些情况经常遇到,有些只遇到过几次。每次犯错之后,我都后悔莫及。 最坏的情况是我根本你不知道我在做错的东西。一旦我意识到我在做错事,我就开始避免这些失误。至少,我现在写的代码比以前写的要好多了。 现在你们也可以避免这些错误。首先要知道你现在在做的是错误的。我知道大部门程序员都不会做任何错事,因为他们认为那是正确的,所以他们的行为会对程序和程序员的职业成长产生不利影响。 绝大部分的不良编程习惯都源于无知,而没有任何其他原因。 要成为一个好的程序员,我们必须一个一个的去掉这些无知。这也是那些好的编程书籍所尽力展示给我们的。 我们犯这些错误的部分原因在于它们确实完成了工作。并不是我们要做的 – 让我们的程序运行起来,完成我们日常的工作。 但是让什么好用只是你工作的一部分。如果想要让你的应用程序好用,你将不得不定期更新,修复任何新的bug,这些将有可能变得很频繁。这样一来能让你的工作变得比较容易的方法就是遵循好的编程实践。 另外,即使你在小型程序中能够摆脱这些错误,在大型程序中你也可能碰到他们。 如果你仍然犯这些错误,可能你的程序依然正常运行,能够完成需要的任务,但是它会变得易出bug,充满低效率的代码,难于维护。并且,当你很长时间后再来看它的代码的时候,你会发现代码很难理解。 作为程序员,我们的工作不仅仅是让我们的程序工作,而让用户来处理bug。我们的工作是确保用户即使输入错误也不会得到意外的结果。 所以要创建高品质的应用程序,请确保你不会在编程的时候犯下面的这些普遍的错误: 不加理解的拷贝代码 你经常会发现你需要的代码在一些别的程序里面有。整段的拷贝代码并且就这么使用它而不去烦恼于理解每一行代码是很诱人的。 有时候你拷贝的代码可能太大了以至于没有时间去完全理解它。如果你拷贝任何代码都像这样,就会有让你的程序变得脆弱易出bug等风险。 这样可能让工作完成,但是如果这段代码在某种情况下产生了一些意外的行为将会怎么样?如果使你的程序变慢或者有恶意行为将会怎么样?因此需要恰当的理解这些代码,或者需要绝对的确信你拷贝的代码的出处。 如果以后产生了bug,你会发现很难理解这些代码,因为你从来没有写过它。甚至于你会发现很难去找出bug并且修复它,特别是如果拷贝了很多代码在程序的不同地方。 所以当拷贝代码的时候要小心,即使很少的代码。确保你完全理解它了。如果你以前用过一段代码并且可以百分之百的保证它可以工作,那么它是安全可用的。但是如果不是的话,就要当心了。 每次都从头开始 这和我之前说完全相反,但是这确实是初学者容易犯的另外一个错误。 也许你认为每次都从头开始会很好,但是实际上它浪费了太多资源--时间,精力和思维,你可以更好的在其他方面使用它们。 如果你需要的东西已经存在了,那么使用它们。不要反复重复最基础的东西。 你可以使用这些时间让你的应用在其他方面更加优秀。 如果一个API、框架或者游戏引擎让你的任务更加轻松,你没有理由不适用它们。你的目标不是展示你有多么的优秀,也不是证明你可以独立完成任何任务。你的目标是保证你的应用完美工作,并且尽可能少花费一些资源去创造它们。 如果你这样做,你可以用更少的时间去完成同样地工作。时间就是金钱,即使是你为你自己工作,你也应该试着在同样的时间赚更多的钱。 没自己尝试就开始Google 很多次,出于习惯,每次出现新的问题,你都会通过Google来找找解决方案。对于程序来说,这不是个好办法。如果你总是没有自己试一试就通过外部方法来搜索答案,那么你的思维永远都不会受到挑战。 当你的思维停止挑战,你自身的编程技能就会停止增长。把你自己的任何技能都练得很棒,你就可以自己解决问题,这也适用于程序开发。 你是创建一个已经存在的东西,你从来不进行原创。这真是你想要做的吗? 搜寻存在的解决方案看起来很聪明,但是这会蒙蔽你的双眼,你的懒惰会阻止你成为一个好的程序员。如果你真的你想要搜寻一个解决方案,至少,开始的时候你在这个问题上先花一点事件思考一下。 也许你自己不花多少事件就能解决掉它。也许你会有比其他人更好的解决它。也许你的解决方案比其他人的更加精确。 如果你不尝试,你永远都不知道。 忽略警告 这是一个早期我进行程序开发时犯的另一个错误。我不能告诉你当你的程序中出现几百个警号和一次都不出现有什么大的不同-最重要的是忽略掉它就出现新的问题。 警告通常是你做的东西可能不是每次都能正常工作的一个标志。有时,忽略这些警告会造成很大的安全问题。但是真正的问题通常是出现在程序出现几百个警告,或者程序不能正常工作时。 很难确定到底是什么原因造成了那个错误,你必须花更很多的时间来分析每一个警告来找出造成问题发生的根本原因。相反,你可以在警告发生的时候就处理掉它。 通常你仅仅需要使用正确的变量或者正确的函数来处理这些警告。不会花你几小时,只需要几分钟遇到它们就把它们处理掉。 要尽早的处理警告。干净的代码看起来舒服工作起来也会很高。记住- 对待警告和对待错误一样 . 快速修复而不是永久性解决 是的,我对这样做感到愧疚。我不为此而自豪。但通常,我们仅仅是草草的修复一下,很少会去从根本上解决这个问题。 它能正常工作了,问题也处理掉了。但是如果你一不小心,问题又会以不同的方式重新出现。 无论你怎么修复一个问题,都应确保你不会把整个系统破坏掉。修复应该提升整个系统的运行状况,而不是让它更慢或更笨重。 同时,进行一个修复要能永久性的解决这个问题。要长期,不要短期。有时,由于懒惰和无知,我们通常喜欢快速的把问题解决掉,而不想在上面花太多时间。这就是为什么我们的写的代码能正常的工作,但是却不是在所有情况下都能工作。 如果你在工作的时候把它忽略掉,你会在后面花更多的时间。 了解上面这些错误能有助于你避免它们。如果你知道你所做的是错误的,一般来说你就不会去做。 为了把工作干好你应该热爱你所做的。如果因为某些原因你不喜欢编程了那么你几乎不会花额外的功夫来编写好的可维护的程序。 如果你打算写一手好程序那么你就应该 改变你对编程的看法。 你要把编程看成一门艺术而你自己则是一个艺术家。那么你就不会因为懒惰和不小心而犯错。 作家会把一篇未完成的文章发表么?画家会把未完成的画作拿来出售么?歌手会在他的歌中唱没有用的歌词么? 绝不会。 对编程来说也一样。任何情况下,都别编写未经测试的半吊子代码。在你的程序未写完前,不要发布它。别编写不会使用的无用代码。 这都是一些我们犯的一般性错误,因为我们喜欢在工作花更少的时间而去干其他事情。但这是不行的,迟早你都会为确保你的代码不出问题而负责。 越早的练习正确的编程方法,就对你的用户和自己越好。有时成为一个好的程序员意味着你不会犯糟糕程序员同样的错误。 谢谢大家的阅读。如果你知道谁不知道这些编程技巧的,请你把这篇文章发给他们,以便让他们成为好的程序员。 转自:http://www.oschina.net/translate/5-programming-mistakes-you-should-stop
View Details