月度归档:2013年09月

5款工具助你写出更好的Java代码

摘要:工欲善其事,必先利其器。一名优秀的开发者手里肯定握着不少秘密武器,本文开发者分享了他在开发Java项目时,所用到的5款有助于提高代码质量的工具。

作者在IDR解决方案中,一直寻找方法来编写出更好的代码,后来他们发现,通过使用一些工具使用好的工具不仅可以提高代码质量,还可以提高开发人员的工作效率。在本文,作者将介绍5款在IDR解决方案的(开发语言为Java)中,最常用也最实用的工具给Java开发人员,希望它们帮你开发出更好的代码。

1.FindBugs

顾名思义,FindBugs是一款帮助开发者发现bug的工具,它是一个开源项目,遵循GNU公共许可协议,运行的是Java字节码而不是源码。

它是一款静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比来发现可能存在的问题,这些问题包括空指针引用、无限递归循环、死锁等。

FindBugs在发现错误后,会进行等级划分,它把发现的错误分为四个等级:

 

  1. scariest(恐怖的)
  2. scary(吓人的)
  3. troubling(令人困扰的)
  4. of concern(值得关注的)

 

FindBugs是一个独立的GUI应用程序,有多种使用方式,可以作为Eclipse、NetBeans、IntelliJ IDEA插件使用,也可以从命令行、Ant、Maven使用。

2.Apache Ant

Apache Ant是由Apache软件基金会所提供的一款开源软件,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,主要用于Java环境中进行软件开发,它还可以用于构建C或C++应用程序,也可以针对目标任务运用在多种软件开发过程上。

Apache Ant有大量商用或开源的“antlibs”供大家使用,它非常灵活,因为他对编码约定或目录布局都是没有任何限制的。Apache Ant被广泛运用在各种Java IDE环境中,如Eclipse、NetBeans、IntelliJ IDEA等。

3.JProfiler

JProfiler是一个商业授权的Java剖析工具,由EJ技术有限公司开发,主要是针对Java EE和Java SE应用程序使用。它把CPU、内存和线程分析析组合在一个强大的应用中,从而可以用来分析性能瓶颈、内存泄漏、CPU负载以及线程问题。

JProfiler支持多种剖析模式:本地会话实时分析模式、远程会话实时分析模式、离线分析模式、快照比较、查看HPROF快照。此外,JProfiler既可以作为单独的应用程序使用,也可以作为一个插件使用,也可以在Adobes Coldfusion和Glassfish中作为应用服务器集成的一部分。

4.Bash

全称是Bourne-Again SHell,发布于1989年。它是一个Unix shell或命令式语言解析器,它作为GNU项目,是Bourne shell的一个免费替代。它在GNU操作系统上作为shell被广泛运用,它已是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现Windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

它通常被用作一个命令处理器,通常运行在一个文本窗口,它还可以从文件中读取各种命令、支持通配符的文件名、piping、命令替换、变量、控制结构等用来进行条件或迭代测试。

5.Sonarqube

Sonarqube是一个开源平台,是一款代码质量管理和环境搭建工具。它目前支持25种以上语言,包括Java、C/C++、C#、PHP、Flex、JavaScript、Python、PL/SQL、COBOL等,此外,它还可以作为Android开发的一部分。

它提供了完全自动化的分析工具,并且可以与Maven、Ant、Gradle和其它集成工具很好地集成,也可以与Java IDE进行很好的集成。它还可以用于报告重复的代码、编码标准、单元测试、代码覆盖率、复杂的代码、潜在的bug、评论、设计和架构。

来自:IDR solutions

http://www.csdn.net/article/2013-09-06/2816856-5-tools-to-help-you-write-better-Java-Code

有胆你就来!11个在线编码大赛

摘要:只要你敢挑战自己,那么都可以在文中提及的这些平台上展示、PK你的编码技能。或许你就是下一个幸运儿,让你有机会在这些大公司实习或工作。感兴趣的话就来试试吧!

如果你拥有出色的编码技能,或者虽然你只是名初学者,但你愿意去锻炼自己的编码能力,愿意去和顶尖的编码者进行PK,那么这篇文章就是为你而准备的。本文提供了11个在线编码竞赛,与来自世界各地的编码人员进行PK。

文中提及的这些网站都有各自的实践问题、训练课程以及竞赛试题。另外,这些项目的赞助商(包括微软、IBM、Facebook等)公司负责人也在密切关注此项目,或许你就是下一个幸运儿,让你有机会在这些大公司实习或工作。感兴趣的话就来试试吧!

Topcoder

TopCoder可以说是全球最大的竞赛软件开发社区,全球各地的开发者都会来此参加比赛。该社区提供各种类型的编程竞赛,包括算法、测试、设计、组装、SRM、马拉松等。赞助商包括微软和NSA等一些巨头公司为获奖者提供现金奖励。提交的解决方案可以采用的语言有:Java、C++、C#或VB。

CodeChef

CodeChef是一个非营利性组织,这是印度的一家软件公司DirectI提供的,总部设在孟买。它是一个全球性的编程社区,举办网上竞赛、培训等各种活动。

Sphere online judge (SPOJ)

Sphere online judge是最早的竞赛网站之一,支持超过40种编程语言以及编译器。如今,SPOJ平台已经建立了在线评测系统,用于自动评估用户提交的项目。

CodingBat

CodingBat是一个现场编程网站,支持利用Java和Python构建的相关问题。该问题提供即时反馈,此外,它还可以作为编码者实践和掌握编程基础知识的实用平台。

Google Code Jam

由谷歌公司推出的Google Code Jam是一年一度的编程竞赛。在这里,专业人士和学生程序员可自主选择编程语言在有限的时间内挑战复杂的算法竞赛。

Dream in Code

Dream In Code (DIC)是一个专为程序员和Web开发者提供的在线社区。该社区会员可以免费访问成千上万的编程教程、代码片段、论坛主题等。

Codeforces

Codeforces是一个在线编程平台,基于该平台你可以练习各种问题,提交竞赛试题并与其他用户提交的问题进行PK。

UVa Online Judge

这个在线编码网站是由西班牙Valladolid(巴利亚多利德)大学维护。在这里你可以找到以往编程竞赛各种类型问题,包括ACM国际编程大赛;此外你还可以提交各种编程语言的源代码。

Python Challenge

以Python为主,Python Challenge是个系列性的编程竞赛。尽管任何一门语言都可用来解决这个问题,但倘若你用Python,将更加有助于你理解问题。

Facebook Puzzles

顾名思义,这套编程问题是由Facebook提供的。用户可以利用各种语言提交解决方案,包括C++、C、Haskell、Java、Perl、PHP、Python、Ruby。

ACM-ICPC

ACM – ICPC是世界上最大的编程竞赛之一,每年举行一次。该竞赛是由IBM为学生团队组织的。这个竞赛主要涉及编程算法问题。从各个地区中选拨,最终进入世界级总决赛。目前支持两种语言:C/C++和Java。

值得一提的是,还有一些平台也不错,它们是 IEEEXtremehackers.orgTimus Online JudgeDWITE

英文出自: Efytimes

http://www.csdn.net/article/2013-09-03/2816800-Online-Coding-Contests-For-Programmers

积少成多:十大高效原型设计工具

摘要:本文为开发者介绍了对开发者最有效的原型工具。免费的工具现在越来越多,如何在众多工具中找到最有效,最适合自己的工具成为了开发者的难题,答案就在这里。

免费的工具其实有很多,但是哪款工具可以名副其实地提高你的效率呢?我们会在接下来的时间为大家总结出移动和Web原型设计的工具。拥有一个原型设计的工具库对于开发者,特别是对那些需要立刻针对客户反馈进行修改的开发者来说,可以提高他们的工作效率。开发者也可以根据客户的不同需求设计出不同版本的原型设计。

Pencil

Pencil是一款开源的手绘风格原型图绘制工具,可以用来绘制各种架构图和流程图。Pencil向开发者提供一个免费、开源的GUI原型工具,具备了多种原型设计模板、多页背景文档、跨页超链接、富文本编辑支持等功能,安装十分简单。

Balsamiq Mockups

使用Balsamiq Mockups有一种画画的感觉,而且由于这一切是数字化的,“画家”们可以简单地进行修改。一个开发团队需要对界面设计进行反复地修改。有了Balsamiq Mockups,产品经理、开发者甚至是客户可以坐在一起,用同一个工具共同修改。达成统一之后,开发者再进行代码的编写。

Lumzy

作为一款针对Web和应用的原型工具,Lumzy无需注册、无需下载,可以在浏览器上进行原型设计的工具。功能全面但并不复杂,这就是Lumzy最大的特点。

Jumpchart

Jumpchart其实不仅仅是一个项目管理软件,它基于Web,用于快速规划和创建原型。除了所需的项目管理功能,还可用它来追踪与Web设计相关的任务。Jumpchart有一个免费版本,不过功能受限。

Mockup Builder

Mockup Builder是一款原型设计工具,支持网页、桌面应用、移动应用。此工具具有UI模型,交互的线框图,页面布局,客户端原型甚至站点地图和屏幕导航等功能。这是一款完全免费的开发工具。

UXPin

UXPin是一款大众化的原型设计工具。UXPin公司里面经验丰富的UX设计人员提供了一系列完整实用的设计元素和模式,对新手有极大帮助。UXPin的目标是帮助项目经理为各种方案和设备开发响应式的线框图和UI原型。

iPlotz

iPlotz可以帮助你迅速创建一个可以点击的界面和网页原型的布局。iPlotz是基于Flash/Flex平台上的产品原型设计软件,允许你直接将各种元件通过鼠标的拖拽至画布上构建自己的Web项目;另外iPlotz还提供了基于Adobe AIR的客户端软件,从而能够方便用户在Windows、Mac OS X和Linux等不同平台上使用这款软件。

MockFlow

不仅是页面布局,MockFlow为开发者提供了一系列的写作Web创新服务,它是完全基于Web浏览视窗的产品。MockFlow内置了许许多多经常使用到的Widget控件,能够有效地帮助用户提高对传统软件以及富互联网应用软件的快速设计和交互式用户界面实体模型的规划进程。

Cacoo

Cacoo是一款用户在线绘图工具,允许你在线创建站点的原型、UML统一建模和框架图等。这款工具基于Flash技术,具有良好的用户体验。与此同时,Cacoo还支持实时的同步协作功能,允许多个用户同时对同一幅电子图表进行在线远程协作编辑等。

Creately

Creately在线图表制作协作平台是一款优秀的绘制产品原型的在线工具。Creately拥有50种图表、上千种样品构成的库和强大的协作功能,因此用起来很方便。

(文/侯亭 责编/张宁)

文章来源:smashingapplumzyCreately

http://www.csdn.net/article/2013-09-03/2816802-10-useful-prototype-tool