java软件开发工具

在Stormpath(一款用户管理和认证服务),我们认真对待质量和效率。任何一个优秀的工匠,仅仅拥有天赋是不够的,你在工作中还需要正确的工具。工程学不仅仅是科学,更是艺术。所以,在Stormpath,尽管我们拥有天赋,我们仍不断寻找所需的有用的工具。我们的工程师一直渴望向团队其他人分享新工具。现在,让我们向所有充满天赋的Java开发者推荐工具。

在这篇文章中,我将分享我们Java团队日常工作使用的工具,并介绍如何使用它们,分享一些实用的小技巧。

1.Groovy

我们使用Groovy来写Java测试。为什么?因为它提供了下面这些能力:

宽松的Java语法:这是Java语法,但有些其他规则,比如分号,变量类型,访问修饰符都是可选的。后者对于测试意义重大,由于访问修饰符不是严格的,你的测试可以读取并断言类内部的状态。举个例子,我们假设下面一个类:

如果你想测试setBar(String)方法正常(即能正确修改bar的值),你可以用Groovy方便的读取变量值。Java中不允许这样的操作(在不涉及Java反射机制前提下)。

强大的断言:Groovy提供强大多样的assert,被称作power assertion statement。Groovy的强大断言能够清晰的展示验证失败时的结果。另外,它比Java更有可读性。

可以用Groovy这样写:

当断言失败时它会显示一个非常清晰的描述:

Mocking:使用Java时,动态模拟框架(如:EasyMock,PowerMock和Mockito)非常流行,这些框架可以在Groovy下方便的使用。耶!

2.支持REST风格

我们的后端提供REST API服务来创建和管理账户,众多SDK中,我们的Java SDK提供特定语言客户端模型做简单交互。其中一些SDK也提供网页来和后端交互,从而不用编写代码。

为了保证网络框架的互操作性,它们必须表现的一样。因此我们需要创建一系列基于HTTP的测试。这是我们的兼容性测试工具。这个项目由我们的SDK工程师维护,他们精通不止一种语言。因此我们需要跨语言测试工具,谢天谢地Rest-assured来了。

Rest-assured是Java领域特定语言(DSL domain-specific language)用来测试REST服务,它简单易用易上手,甚至对于没有用过Java的开发者也是难以置信的强大。它提供先进的特性,比如细节配置、过滤器、定制分析、跨站请求伪造(CSRF)和OAuth 2.0。它提供非常简单的语法:given-when-then。

3.Cargo Plugin

为了让我们的Java SDK按照TCK校验,我们需要开启我们其中一个Web服务,以便测试在上面执行。讲道理的话,我们需要每次构建时自动测试,Gargo Plugin就是为此而生。

Cargo用标准的方式简单封装各种应用容器。我们使用Cargo可以毫不费力的在不同的Servlet容器(比如Jetty和Tomcat)中运行我们的代码。我们只需要在我们的pom文件中配置Cargo Maven2 Plugin来启动一个Servlet容器(Tomcat7),在测试阶段编译最近的War包,你可以在我们的Servlet插件例子中看到配置。

4.Git

我们能讨论哪些关于Git你不了解的事情呢?想要深入了解Git,你可以看他们的About页。

我们的Java SDK团队遍布全球,而且彼此之间几乎从未坐在一起。Git保障了我们写的每一行代码,这里有一些非常棒的命令,节省了我们大量的时间:

  • git mv –force foo.java Foo.java:在大小写敏感的文件系统中改变文件名是非常麻烦的,这个命令能让git意识到foo.java重命名为Foo.java
  • git diff-tree –no-commit-id –name-only -r <commit_ID>:查看所有在<commit_ID>这次提交中更改的文件。
  • git diff –name-only SHA1 SHA2:列举出在SHA1和SHA2两次提交之间所有更改的文件。
  • 在一个文件的历史提交记录中查询某个字符串:创建search.sh文件,粘贴下面代码:

5.GitHub

GitHub不仅仅为我们的Git项目提供托管服务,它为代码开源并让全世界都看到做出了巨大贡献。这鼓舞了人们去尝试、去交流、去练习,很大程度提高了每个人的项目质量和大家的技术水平。

GitHub允许我们跟进我们的issue.游客可以提交新需求和报告bug。他们也可以收到我们项目进展的通知。

6.Maven

Maven已经足够出名了。所以我不会用长篇幅解释为什么我们使用Maven做构建管理。然而我可以分享几个技巧,让你的Maven更得心应手:

管理依赖:在一个多模块的项目中,你需要在根pom.xml的标签中定义每一个依赖。一旦你这样做,所有下层模块都可以不需要指定版本。这种管理依赖的方式(比如版本升级)可以集中处理,所有下层模块都会自动识别。比如在根pom.xml:

下层模块的pom.xml:

阻止下层模块编译:在发布的时候我们需要所有下层模块一起发布,但是我们如何避免某个模块(比如example)发布呢?很简单,只需要把下面的pom文件加入到你不想发布的模块:

跳过集成测试:我们有很多集成测试需要很长时间编译。这些测试确保了后端整体运行正常.在频繁的本地部署期间,我们多次因为新功能或修复bug而更改代码。并不需要每次在本地构建的时候执行这些测试,这会拖慢开发进度。因此我们要确保我们的Java SDK只在我们的CI服务器上运行的时候执行集成测试。可以通过下面方法:

根pom.xml文件:

所以你可以想象到,所有集成测试文件以IT结尾,来保证配置正常运作,比如:ApplicationIT.groovy 或 I18nIT.groovy

然后,如果我们想让集成测试运行,我们执行以下构建:mvn clean install -DskipITs=false

7.JWT Inspector

我们的Java SDK使用JWT(JSON Web Token)通过安全可靠的方式传输数据。当我们测试排查时,我们需要分析从浏览器接收到的JWT内容。token信息可能在URL,cookie或本地储存中。JWT Inspector是一款浏览器插件,让我们可以从控制台或内置的界面解码JSON Web Token。你不需要在你的app中跟踪token信息。你只需要按一下插件的按钮,JWT Inspector会自动展示你所需要的所有信息,然后你可以复制其中任何token信息。

8.Postman

我们重度依赖REST API请求,编写REST请求并不方便,具体语法取决于我们所用的工具,比如curl或HTTPie。两者都易读,但语法难记。通常,我们需要排查问题时,我们需要测试一些请求。当出问题时,我们无法判断原因是请求还是后端。我们浪费了大量时间来怀疑我们写的请求是否正确。

Postman让书写REST API请求变得简单。它也提供很多功能,比如保存、复用请求、生成代码(java,python,curl等等),还可以批量按序执行请求。Postman通过友好的界面帮助你构建复杂的命令,你所需要做的就是填写一个表单,简直不能再棒了。

渭南网站优化总结

使用正确的工具不仅仅帮助你节省时间提高效率,还能提高你作品的质量并享受日常工作。我们要时刻留心,发现并学习新的工具。一开始可能需要一些努力,但你总会意识到付出的时间是值得的。

原文地址:https://www.cnblogs.com/a5651651616/p/12229946.html

时间: 2024-11-09 03:32:06

java软件开发工具的相关文章

概述:软件开发工具

近期合作开发中,使用了一些工具,感觉确实让自己解放了不少.忙里偷闲,顺便学习了下自考科目<软件开发工具>. 这本书分为两部分,一部分是理论部分,主要还是论述我们须要软件开发工具的N中理由: 用了那么多张纸从软件开发流程的各个阶段论述我们须要工具,之后从两个方面说了下开发工具的标准:从开发人员来说,怎样开发好用的工具有一个标准:对于使用者来说,怎样选择又有一个标准.介绍完软件开发工具的前世,然后就是今生. 第二部分.主要是拿出一些软件开发中各个阶段所须要的工具来说一下怎么用: 建模用的是rati

JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都是很痛苦的事情,但是程序之路这么长,你必须精通的不能再精通一门语言才行(有点说大了哈),但是最起码你要如鱼得水吧,我准备的资料有: JAVA编程思想 深入浅出JAVA 黑马,传智,慕课,极客学院等-的视频 Google搜索 我们既然是重新学一遍,那我们尽量就是用记事本去敲代码好了,这里我用notep

软件开发工具(五)——开发与发展

软件开发工具(五)-开发与发展 从前面我们从理论和技术方面了解了软件开发工具,现在我们一起总结总结生活中实 际的.使用者与购买这较多讨论,比如首先是购买商品化的软件开发工具还是自己研发 专用的工具呢?他的历史发展.现在的发展方向并结合Eclipse工作台来详细了解.   一.使用与开发: 1.开发还是购买权衡: 1)软件开发工作性质与要求(一般是小购,大自研发) 2)开发人员实际需要 3)工作环境 4)人员因素 2.选买之前为何要设明确.有限目标? 在选择与购置软件开发工具时,最最重要的就是设置

自考之软件开发工具

前言 自从开始自考的学习后,每天两个番茄的学习时间.自从开始这个计划后,发现学习压力没有那么大了.还想起以前复习时的辛苦,总是到考试眼前了才开始准备,于是结果可知-每次都是身心疲惫的进入考场,考试没自信,更多的是知识没有给自己留下印象.就好比你去约会,第一次俩人聊的挺开心的,回去后你竟然把人家给忘了,这怎么能行呢? 为何在考前一个月就考试准备呢? 这就好比是马拉松比赛,如果你口气跑完你什么感觉,而如果你能把目标分解的话,每天跑那么小会,你一定可以坚持到最后的.并且你还可以把你多余的时间分配到其他

自考之——我看《软件开发工具》

<软件开发工具>由理论篇和实践篇构成.实践篇是选取一种详细的软件开发工具Eclipse来进行介绍,帮助我们加深对软件开发工具的理解.在这篇文章里,我就不说这部分内容了. 这里,我主要是对理论篇这部分内容进行介绍.大家看我以下这幅导图是对理论篇的概括.我将软件开发工具整个理论篇分为了5个部分,每一个部分标题以下相应的是书中的章节. 高速浏览过我的导图之后,以下就让我来为大家讲讲,我是怎么分的. 米老师讲过.对待一个事物我们应该从下面这几个角度考虑: 是什么? 产生的背景? 为什么要用它? 怎么用

软件开发工具总结

软件开发工具和任何工具一样,是在人类以往发展的许多技术的基础上,适应社会的实际需要,从无大有,从小到大,逐步发展起来的,简单的说,就是帮助人们开发软件的工具. 既然是帮助人们开发软件的,首先需要分析软件开发中人们遇到的困难及其产生的原因.困难不是孤立存在的,而是相互联系的,它来源于人们认知的不足,来自于迅速变化的客观世界,回顾整个过程,获益匪浅. 由于软件开发工具的复杂性.庞大性,它的功能必须符合开发工作的实际需要,结构也必须具有实现软件开放性和灵活性的基础. 在软件开发工作中,如何实际地.有效

软件开发工具(三)——理论与开发过程

软件开发工具(三)--理论与开发过程 我们的软件开发工具就是为了更好帮助人们开发软件.这也是一项不小的项目或工 程,怎么让开发过程达到更加的高效和高速呢?这就须要有一定的科学--组织管理科 学. 开发过程中,人们肯定会遇到不少的困难.在计算机发展的过程中提倡了结过婚程 序设计方法.软件project方法.面向对象程序设计方法.即插即用方法到近期的面向开源 软件和互联网平台程序设计.  一.实践开发过程 一.基本的困难: 首先是从用户的理解到程序猿的理解,其次是从程序猿的理解到程序本身的实现, 以

软件开发工具(一)——概论

软件开发工具(一)--概论 软件开发工具是计算机技术发展下的一个产物 ,大概的浏览了一下课本,大体的 内容和信息开发管理相似,和我们实践的机房收费系统整个过程的百分之六七十都相 当,非常的能产生共鸣. 本书分为两部分,前半部分是主要以理论基础为主,后半部分主要是以Eclipse为媒 介,介绍软件开发工具的实践操作. 通过第一遍初步的学习了解,本书概括性的介绍了软件开发工具的由来.概念.功 能.性能.类别.技术.项目管理.版本管理以及使用环境等的,通过本书的理论学习 和实践操作,我相信,自己有必定

学好java软件开发能干什么?

近年来java应用开发培训日趋火热.每天参加java培训的人数不胜数,到底学好java软件开发能干什么? 1.桌面级应用:简单的说就是本机上运行的程序,比如word.excel等 2.企业级应用:一般使用数据量较大,人数较多,对系统的稳定性.安全性.可扩展性和可装配性等都有比较高的要求. 这是目前 Java 应用较广泛的一个领域,几乎一枝独秀.包括各种行业应用,领域涉及: OA, CRM,人力资源 HR, ERP.KM.供应链管理 SCM.企业EAM.产品生命周期管理 PLM.面向服务体系架构