开发技术
文章平均质量分 82
tywali
长期从事嵌入式系统,呼叫中心,MIS的开发
展开
-
使用 Google Analytics 跟踪 JavaScript 错误
Google Analytics(谷歌分析)不仅仅是一个流量统计工具,你还可以用它来测量广告活动的有效性,跟踪用户多远到所需的页面流(从点击广告到购物车到结账页面)获取,并基于用户的信息设置浏览器和语言环境支持。 但是,这一切东西都不是我们开发者所需要的。今天给大家介绍一个很另类的技巧,通过自定义事件跟踪 JavaScript 错误。下面就让我们来看看如何实现的错误检查的转载 2014-04-22 17:28:21 · 977 阅读 · 1 评论 -
史上最最佳软件开发实践指导
每过一段时间,我都能读到一些好东西,它是如此的深刻见解,写的如此的清晰,如此的条理,我必须把它收录进我的个人“史上最佳”圣物集里。最近,我新收录了一篇,非常棒的一篇叫做《Best Practices for Scientific Computing》的文章,我希望每个来读本文的读者都找个时间读读它。我在这里列出它的要点,是要鼓励你去阅读完整的全文。写的真是非常好。给人写程序,而不是给计算机转载 2013-03-01 19:05:28 · 476 阅读 · 0 评论 -
开源项目文档应规避的13处“硬伤”
大多数开源项目开发者只关注于软件的质量,而常常忘记编写高品质的文档。但是,文档的好坏对于一个项目的成功有着至关重要的作用,它可以帮助用户快速了解这个项目,或在用户的使用过程中提供一些帮助。 然而,有很多开源项目的文档令人失望,主要表现在以下几个方面。 1. 缺乏一个良好的README或介绍 README可以使潜在用户对你的项目有一个初步、快速的了解,如果该项目在GitHu转载 2013-01-21 18:51:25 · 404 阅读 · 0 评论 -
额滴神呀,测试驱动开发真的有效!
我们经常听到人们宣扬说,在开发软件时写测试代码(单元测试,功能测试等)能有效的减少产品中的bug。如何验证这样的言论?通常,这些人都是已经在使用驱动测试开发(TDD)或行为驱动开发(BDD),而且,他们所在的公司在诞生第一天起就有着很强的测试文化。然而,如何能测量不写测试程序造成的影响?如何能验证实践TDD能真正的减少bug的存在?我们能否在一段时间里停止写测试程序,看看这对软件缺陷数有多大的影响转载 2013-01-21 18:37:00 · 454 阅读 · 0 评论 -
探索HTML5之本地文件系统API - File System API
新的HTML5标准给我们带来了大量的新特性和惊喜,例如,画图的画布Canvas,多媒体的audio和video等等。除了上面我们提到的,还有比较新的特性 -File System API,它能够帮助我们来突破沙箱访问我们本地的文件系统,从而有效的弥补桌面和web应用之间的鸿沟。在今天这篇文章中,我们将会介绍基本的File system API的知识,探索HTML5的本地文件系统API的新特性,转载 2013-01-21 19:44:39 · 7223 阅读 · 0 评论 -
范钢:一堂如何提高代码质量的培训课
今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术。我们抛开任何具体的技术,来谈谈如何提高代码质量。如何提高代码质量,相信不仅是在座所有人苦恼的事情,也是所有软件项目苦恼的事情。如何提高代码质量呢,我认为我们首先要理解什么是高质量的代码。高质量代码的三要素我们评价高质量代码有三要素:可读性、可维护性、可变更性。我们的代码要一个都不转载 2013-01-18 16:49:47 · 592 阅读 · 0 评论 -
为了发现数量众多的Bug而欢呼?
英文原文:Seth Eliot,编译:一淘 – 惠如这不是一篇关于软件测试人员的工作评论方面的文章。最近参加了一个测试总结会,至少在两个项目汇报过程中发现,开发管理者感兴趣的一个度量指标是:你们发现了多少个bug?然后,当得到的回答是一个很高的数目或是一个很严重的缺陷(如:3个严重的bug!),就会得到热烈的鼓掌。不过,我感觉这样做是不对的!我的第一反应是,好吧,让我换种说转载 2013-01-18 17:03:37 · 358 阅读 · 0 评论 -
高效代码审查的十个经验
代码审查(Code Review)是软件开发中常用的手段,和QA测试相比,它更容易发现和架构以及时序相关等较难发现的问题,还可以帮助团队成员提高编程技能,统一编程风格等。1. 代码审查要求团队有良好的文化团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。“A的代码有个bug被B发现,所以A能力不行,B能力更好”,这一类的陷阱很容易被扩散从而影响团队内部的转载 2013-01-18 17:01:56 · 290 阅读 · 0 评论 -
CSS 中的分离、抽象和层叠
摘要:LESS和Sass(或者类似方案)从三个方面解决了css存在的问题:分离,抽象和层叠。当我在接受他们时,我发现css还有一些其他问题需要解决。在这里我提出些解决方案。介绍有很多充分的理由说明LESS和Sass的用途。css很难做到可维护性。LESS和Sass(类似工具)使css变成了一个更加易用的语言。但是,当人们谈论到为什么他们如此强大时,往往都失去了主转载 2013-01-18 17:01:03 · 571 阅读 · 0 评论 -
如何避免重构带来的危险
重构代码很危险,它会给测试工作增加巨大的负担。除非你的程序需要重构,一定不要轻易重构代码。我这里所说的并不是把一个for循环改成while循环,或把一个StringBuffer改成StringBuilder,我说的是大动作,例如重写一个方法,一个函数,甚至整个类或包。如果你缺乏对一个方法或一个类的了解,那你重构它的条件就不充分。即使你有一个天才的计划,你也需要和团队一起设计其中重大的修改。转载 2013-01-18 17:03:01 · 307 阅读 · 0 评论 -
单元测试实践的主要问题与解决(5)
3.2 如何解决“做不了” 上面我们只是用一个独立的函数来演示ETDD过程。在实际的工作中,代码之间通常是互相依赖的,这种依赖关系会造成测试难于进行,这就是“做不了”的问题。 我们首先来分析一下。“做不了”主要是指可测性问题。可测性问题的核心是内部输入。在解释内部输入前,我们先来看一下一般的输入:外部输入。 外部输入是指在被测代码的外部可以设定的输入,包括参转载 2012-11-14 20:23:00 · 315 阅读 · 0 评论 -
单元测试实践的主要问题与解决(2)
1.3 单元测试的效益 单元测试的效益可以说是立竿见影,并且会推动整个开发过程的改进。 首先,单元测试可以保证代码的质量。因为只有单元测试,能够全面检测代码单元的功能逻辑,排除代码中大量的、细小的错误。 其次,排错成本最小。如果在编码阶段同时进行单元测试,排错成本可以忽略不计。但若到了后期,排错成本可能会增长上百倍,要是产品已经到了用户手里,那造成的损转载 2012-11-14 20:21:29 · 326 阅读 · 0 评论 -
优秀程序员无他,善假于物也
运用一门程序设计语言对大多数程序员来说是小菜一碟,但是更上一层楼成为一名专家级的软件开发者,恐怕目前还是大多数人的梦想。《程序员的思维修炼》一书中将程序员分为5个层级:新手、高级新手、胜任者、精通者、专家。根据作者的调查研究结果,在这5个层级中,大多数的程序员属于高级新手。而且居于这个层级的程序员从入行1、2年的到工作10来年都大有人在。身为一个程序员,如何才能尽快的突破自身的瓶颈,得到快速的转载 2013-04-16 19:42:25 · 588 阅读 · 0 评论 -
10步让你成为更优秀的程序员
这篇文章要介绍的,是我作为专业程序员这些年来学到的能真正提高我的代码质量和整体工作效率的10件事情。 1. 永远不要复制代码不惜任何代价避免重复的代码。如果一个常用的代码片段出现在了程序中的几个不同地方,重构它,把它放到一个自己的函数里。重复的代码会导致你的同事在读你的代码时产生困惑。而重复的代码如果在一个地方修改,在另外一个地方忘记修改,就会产生到处是bug,它还会使你的代码体积变得转载 2013-04-16 19:46:00 · 495 阅读 · 0 评论 -
jQuery的编码标准和最佳实践
不知道在哪里看到了这篇关于jQuery编码的文章,挺实用的,恰好最近在研究jQuery的基础知识,今天打开收藏夹来翻译一下,原文的英语不难,但是内容很实用,可能有大神已经翻译过了,大家看精华就行了。加载jQuery1. 尽量在页面上使用CDN来加载jQuery。 CDN Benefits,一些流行的CDN地址<script type="text/javascript" src="转载 2014-04-22 17:25:42 · 1214 阅读 · 0 评论 -
Web开发常见的几个漏洞解决方法
原文出处: 伍华聪的博客 平时工作,多数是开发Web项目,由于一般是开发内部使用的业务系统,所以对于安全性一般不是看的很重,基本上由于是内网系统,一般也很少会受到攻击,但有时候一些系统平台,需要外网也要使用,这种情况下,各方面的安全性就要求比较高了,所以往往会交付给一些专门做安全测试的第三方机构进行测试,然后根据反馈的漏洞进行修复,如果你平常对于一些安全漏洞不够了解,那么反馈的结果转载 2014-04-22 17:24:14 · 795 阅读 · 0 评论 -
JavaScript经常忽略或误用的七个基础知识点
JavaScript 本身可以算是一门简单的语言,但我们也不断用智慧和灵活的模式来改进它。昨天我们将这些模式应用到了 JavaScript 框架中,今天这些框架又驱动了我们的 Web 应用程序。很多新手开发者被各种强大的 JavaScript 框架吸引进来,但他们却忽略了框架身后浩如星海的 JavaScript 实用技巧。本文将为你呈献其中七个基础知识点:1. 在 String.proto转载 2014-03-10 18:49:59 · 582 阅读 · 0 评论 -
10 个 Java 编码中微妙的最佳实践
这是10个最佳实践的列表,比你平时在Josh Bloch的《 effective java》中看到的规则更加精妙。和Josh Bloch列出的非常容易学习的、和日常情况息息相关的实践相比,这个列表中提到了一些关于设计API/SPI的实践,虽然不常见,但是存在很大的效率问题。我在编写和维护jOOQ(一种内部DSL,在java中将SQL模块化)时,碰到了这些问题。作为内部DSL,jOOQ最大限转载 2014-02-07 09:58:25 · 810 阅读 · 0 评论 -
Web客户端安全性最佳实践
得益于HTML5,Web应用中越来越多的逻辑从服务器端迁移到了客户端。因而,前端开发人员也需要更多关注安全性方面的问题。在这篇文章中,我会告诉你如何使你的应用更加安全。我会着重描述一些你可能从未听说过的技术,而不是仅仅告诉你“别忘了对用户提交的页面数据做转义(escape)”。HTTP?想都别想当然,我并不想让你通过FTP或者普通的TCP协议来传输你的数据。我的意思是,如果你想让你的用户安转载 2014-02-07 09:57:12 · 710 阅读 · 0 评论 -
写给系统管理员的25个PHP安全实践
PHP是广泛使用的开源服务端脚本语言。通过HTTP或HTTPS协议,Apache Web服务允许用户访问文件或内容。服务端脚本语言的错误配置会导致各种问题。因此,PHP应该小心使用。以下是为系统管理员准备的,安全配置PHP的25个实践事例。用于下文的PHP设置样例DocumentRoot:/var/www/html默认Web服务:Apache(可以使用Lighttpd或Nginx代替)转载 2014-02-07 10:01:57 · 929 阅读 · 0 评论 -
编写更好的CSS代码
编写好的CSS代码,有助提升页面的渲染速度。本质上,引擎需要解析的CSS规则越少,性能越好。MDN上将CSS选择符归类成四个主要类别,如下所示,性能依次降低。ID 规则Class 规则标签规则通用规则对效率的普遍认识是从Steve Souders在2009年出版的《高性能网站建设进阶指南》开始,虽然该书中罗列的更加详细,但你也可以在这里查看完整的引用列表,也可以在谷歌的《高效CSS选择转载 2014-02-07 09:54:42 · 541 阅读 · 0 评论 -
jQuery插件开发的模式和结构
jQuery插件开发的模式和结构jQuery插件开发一般来说,jQuery插件的开发分为两种:一种是挂在jQuery命名空间下的全局函数,也可称为静态方法;另一种是jQuery对象级别的方法,即挂在jQuery原型下的方法,这样通过选择器获取的jQuery对象实例也能共享该方法。一、在讲解jQuery插件基本结构和模式前,先介绍下两个重要的方法,还有不知啥原因,代码无法折叠,导致整体篇转载 2013-05-22 17:31:49 · 3562 阅读 · 1 评论 -
Web前端浏览器兼容初探
前言浏览器兼容是前端开发人员必须掌握的一个技能,但是初入前端的同学或者其他后台web开发同学往往容易选择忽略,而形成两个极端:1 我最开始都是使用IE6,IE6上没问题,其它浏览器坑爹(多出现与前端后端一起搞的同学,小生2年前就这种状态,鼓励人家用ie6.。。。)2 我要遵循标准,我只要ff就好,IE就是坑爹的玩意,我不必去理他(小生一年前的心态。。。)现在看来,之前的想法都是不对转载 2013-04-29 14:16:12 · 499 阅读 · 0 评论 -
研发周报:如何编写出拥抱变化的代码?
我们精心为您准备了 CSDN研发频道一周最精彩的技术热点,以飨读者! 编写高效优质的代码一直是程序员所追求的目标之一,那么什么样的代码才叫优质呢?来看看这篇《如何编写出拥抱变化的代码?》;Warcraft之父为如何用肮脏的技巧解决StarCraft开发难题呢?在开发工具发面,可以关注下 20个优秀的前端框架以及十款最新开源的开发者工具/应用。有人说微博和微信就像楚汉之争,现在微博在迷失,微信在寻找转载 2013-04-29 21:35:45 · 1049 阅读 · 0 评论 -
给网页设计师和前端开发者看的前端性能优化
英文原文:Front-end performance for web designers and front-end developers ,编译:oschina如果不是不可能,你也很难拒绝承认性能目前已是任何正规网站项目的最关键方面之一,无论它是一个小型的网站组合,一个移动优先的web应用,一直到一个大规模的商业项目。研究,论文和个人体验都告诉我们快速是最好的。性能不仅仅是非常重要,它也转载 2013-04-29 14:12:02 · 501 阅读 · 0 评论 -
用JSLint精炼提升JavaScript代码
英文原文:Using JSLint to Refine Your Code,编译:伯乐在线 – 胡蓉(@蓉_inShanghai)由于移动应用的盛行和HTML5的广泛运用,JavaScript正越来越流行。JavaScript受欢迎的部分原因是因为它的灵活便捷,你可以快速上手,它不需要重量级的开发环境,也不需要第三方应用支持,只要你打开一个文本编辑器,然后保存,最后通过网页浏览器运行即可。转载 2012-11-14 20:15:19 · 473 阅读 · 0 评论 -
解决真实世界的单元测试问题
过去几年的经验告诉我:单元测试已然是“被解决的问题”了。所有的信息、图书、工具都摆在面前,你只要把NUnit拣起来就可以上路了,不是么?不是。即便是在下决心要开始写单元测试之前,我们也得从别人那里吸取经验,从那些好的坏的故事里,那些令人绝望或是见证奇迹(一个测试就省了我一周时间!)的时刻中,取其精华弃其糟粕。即便这样,等我们勇敢上路之后还会意识到,要学的东西还多着呢!我想跟你讲讲我在单转载 2012-11-14 20:25:50 · 537 阅读 · 0 评论 -
单元测试实践的主要问题与解决(8)
3.3 如何解决“做不好” 现在来看做不好的问题。做不好的主要原因,是高标准的测试覆盖难以实现。 为什么要关注测试覆盖呢?因为未覆盖的单位,通常对应未测试的数据分类,也就是说,可以用覆盖率来检查测试的完整性,衡量测试效果。 应该在完成功能测试的基础上,统计覆盖率,找出遗漏用例来完成白盒覆盖,而不是功能测试做一遍,白盒覆盖又做一遍。 下面,我用一个案例来演示转载 2012-11-14 20:24:27 · 324 阅读 · 0 评论 -
田永强:优秀的JavaScript模块是怎样炼成的
引言:如今的JavaScript已经是Web上最流行的语言,没有之一。从GitHub上的语言排行榜https://github.com/languages上即可看出,也是如今最为活跃的开源社区。随着Node的加入,JavaScript开枝散叶进入服务器领域,为这个语言榜的占比,也贡献了几分热度。尽管经历了Web2.0的洗礼 ,但在国内谈及开源,开源人士似乎都当这门语言并不存在,这也意味着国内的转载 2012-08-29 21:09:58 · 2509 阅读 · 0 评论 -
HTML5 VS. Flash&Flex? – 浅谈Flash/Flex/HTML 5技术选型
在HTML5发布以前,RIA领域的技术解决方案一直相都是各展所长,并无争议。Adobe体系中,Flash做不了的事情,Flex可以做到;.Net系决策者在选用RIA解决方案时,Silverlight是不二之选。曾经我对Flex的迷恋到了欲罢不能的地步,与我有相同想法的人亦不在少数,Flex也大有“一统江湖”的趋势。然而,随着HTML 5横空出世,Flex“易主”,Silverlight被“雪藏转载 2012-08-15 12:50:39 · 1170 阅读 · 0 评论 -
Java 处理 XML 的三种主流技术及介绍
XML (eXtensible Markup Language) 意为可扩展标记语言,它已经是软件开发行业中大多数程序员和厂商用以选择作为数据传输的载体。本文作者对于 Java 处理 XML 的几种主流技术进行一些总结和介绍,希望帮助那些有不同需求的开发人员对于 XML 处理技术的作出最优的选择。最初,XML 语言仅仅是意图用来作为 HTML 语言的替代品而出现的,但是随着该语言的不断发展和完转载 2012-08-14 15:34:45 · 365 阅读 · 0 评论 -
了解 JavaScript 中的内置对象
所有编程语言都具有内部(或内置的)对象来创建 语言的基本功能。内部对象是 您编写自定义代码所用语言的基础, 该代码基于您的想象实现自定义功能。JavaScript 有许多 将其定义为语言的内部对象。本文介绍了一些 最常用的对象,并简要介绍了它们 有哪些功能以及如何使用这些功能。 NumberJavaScript Number 对象是 一个数值包装器。您可以将其与 new 关键词结合转载 2012-07-27 21:26:23 · 388 阅读 · 0 评论 -
使用 Java Native Interface 的最佳实践
简介: Java™ 本机接口(Java Native Interface,JNI)是一个标准的 Java API,它支持将 Java 代码与使用其他编程语言编写的代码相集成。如果您希望利用已有的代码资源,那么可以使用 JNI 作为您工具包中的关键组件 —— 比如在面向服务架构(SOA)和基于云的系统中。但是,如果在使用时未注意某些事项,则 JNI 会迅速导致应用程序性能低下且不稳定。本文将确定转载 2012-07-27 21:13:35 · 501 阅读 · 0 评论 -
WebSockets VS Server-Sent Events VS Long-polling
社交网络如此流行,以至于所有的厂商都想在他们的网站中加入一些新的特性,例如有些需要即时的通知。这是非常常见的需求,设想你打开一个页面后,你肯定想你收到的通知,好友的状态列表等等即时的展现出来。原来的web设计就是一种方法,一个请求,一个相应,而现在在HTML5的帮助下对于服务器和客户端的通信来讲,我们有了新的办法。虽然现在还是有很多人在使用Long-polling技术模拟服务器和客户端的通信。转载 2012-08-07 09:48:56 · 519 阅读 · 0 评论 -
陈皓:C++的坑真的多吗?
先说明一下,我不希望本文变成语言争论贴。希望下面的文章能让我们客观理性地了解C++这个语言。(另,我觉得技术争论不要停留在非黑即白的二元价值观上,这样争论无非就是比谁的嗓门大,比哪一方的观点强,毫无价值。我们应该多看看技术是怎么演进的,怎么取舍的。)事由周五的时候,我在我的微博上发了一个贴说了一下一个网友给我发来的C++程序的规范和内存管理写的不是很好(后来我删除了,因为当事人要求),我并转载 2012-08-06 21:23:56 · 8199 阅读 · 0 评论 -
成为高手的必经之路——学会调试代码(菜鸟必读)(JavaScript)
任何一个编程者都少不了要去调试代码,不管你是高手还是菜鸟,调试程序都是一项必不可少的工作。一般来说调试程序是在编写代码之后或测试期修改Bug 时进行的,往往在调试代码期间更加能够体现出编程者的水平高低以及分析问题的准确度。不少初学者在寻找错误原因时,总是不得要领,花费了大量时间却无法解决一些最终证明是相当简单的Bug。 在长期解答 zTree 相关问题时,也的确发现很多的问题其实不算什么问转载 2012-07-11 15:56:19 · 1086 阅读 · 0 评论 -
这些年我们爱犯的弱智错误(菜鸟必看)(JavaScript)
做了开源以后,最大的感触就是:沟通增加了,信息来源增加了。提问的朋友很多,各种问题都会有,有时候在解答时也是很郁闷,这两天感觉适当总结一下自己以及周围朋友在制作 js 时爱犯的弱智错误,还是很有必要的。这些弱智错误经常会让我们抓狂——这么简单的东西怎么就是总出错呢?反复检查好几遍就是找不到错误,一旦你恍然大悟时,必然会惊呼:啊!太弱智了。。。。 这篇文章肯定无法帮助你应付面试(面转载 2012-07-11 15:55:03 · 510 阅读 · 0 评论 -
Lisp的永恒之道
Lisp之魅长久以来,Lisp一直被许多人视为史上最非凡的编程语言。它不仅在50多年前诞生的时候带来了诸多革命性的创新并极大地影响了后来编程语言的发展,即使在一大批现代语言不断涌现的今天,Lisp的诸多特性仍然未被超越。当各式各样的编程语言摆在面前,我们可以从运行效率、学习曲线、社区活跃度、厂商支持等多种不同的角度进行评判和选择,但我特别看中的一点在于语言能否有效地表达编程者的设计思想。学习C转载 2012-06-19 11:28:27 · 488 阅读 · 0 评论 -
这里我说了算!
自从9岁那年得到第一台Commodore 64家用电脑起,我就开始编程。然而,当面对如何写出好的代码时,我仍然感觉自己还有很多要学的。在探索如何提高自己的过程中,我学了很多种语言。大多数是以面向对象为主的(OO)。然而,让我惊讶的是,在我读过的大多数书本、杂志和网上文章中,有着大量遭透了的被当作面向对象例子的代码。这些代码中,我看到的最多被违反的原则是“命令,不要去询问(Tell, D转载 2012-05-21 10:17:22 · 452 阅读 · 0 评论 -
11 个高效的同行代码审查最佳实践
简介: 这 11 项针对轻量级高效同行代码评审最佳实践被证明是有效的,它们建立在一个通过结合使用 IBM® Rational Team Concert™ 与 SmartBear CodeCollaborator 对 Cisco 系统的开发进行案例研究的基础之上。它们可以帮助您确保评审既能够改进您的代码,又能利用好开发人员的时间。SmartBear Software 团队® 花费了数年时间去搜索转载 2012-08-21 14:58:03 · 2703 阅读 · 0 评论