首页 开发编程 正文

php流程图怎么画

一.开发编程工具1.Eclipse官网地址Eclipse是一个开放源代码的、基于Java的可扩展开发平台。是在Eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境。...

php流程图怎么画,有什么书或者软件推荐吗?

今天我们来详细盘点一下Java开发一般都会用到哪些开发工具。

一.开发编程工具

1.Eclipse 官网地址

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

2.MyEclipse 官网地址

MyEclipse,是在Eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。在最新版本的MyEclipse中,配合CodeMix使用支持也十分广泛,尤其是对各种开源产品和主流开发框架的支持相当不错。已支持PHP、Python、Vue、Angular、React、Java、Java EE等语言和框架开发。

3.IntelliJ IDEA 官网地址

IDEA 全称 IntelliJ IDEA,是java编程语言的集成开发环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。

我后来转Android后用的是 Android Studio工具,其实这个工具就是Google在idea的基础上二次开发出来的,所以两者非常像,只是侧重不同。

上面这几个工具我全部都用过,2011年刚入门培训的时候就是用的Eclipse,后来做Java web项目就改为用MyEclipse,后来转Android 用过一段时间Idea,说一下这几个工具的主要区别:

MyEclipse是收费的,eclipse是免费的。

Eclipse自带的插件很少,如果写web项目,需要自己配置很多东西,MyEclipse集成了很多的插件,一般Java的企业应用开发都会使用MyEclipse。

idea比myeclipse 更加智能,自带更智能的代码提示,代码检查。

MyEclipse 以前用的时候有时候经常会卡死,Idea更加稳定,而且我感觉Idea界面看起来更舒服。(个人感受)

我个人更推荐开发同学直接用idea,感觉idea集合了eclipse和MyEclipse的功能和优点,然后又在此基础上做了升级,尤其是代码智能提示,自动生成一些相关的类文件的确方便了很多。java开发工具还有NetBeans 、Visual Studio Code等其他工具,但是那些我没用过,相关介绍大家可以自行从网上搜索相关资料。

二.接口调试工具

作为一名开发人员,完成开发工作后,肯定要自己进行测试,这可能还会用到接口测试的一些工具。

1.Postman 官网地址

Postman是一款功能非常棒的Chrome扩展,提供功能强大的API&HTTP请求调试。它可以发送几乎所有类型的HTTP请求,并可以附带任何数量的参数和请求头(headers)。

2.Apipost 官网地址

ApiPost是一个支持模拟POST、GET、PUT等常见HTTP请求,支持团队协作,并可以直接生成并导出接口文档的API文档、调试、Mock、测试一体化协作平台。

3.ApiFox 官网地址

API 文档、API 调试、API Mock、API 自动化测试,一体化协作平台。平台化的产品不多说。

4.Charles 官网地址

Charles 是一个 HTTP 代理 / HTTP 监视器 / 反向代理,它使开发人员能够查看他们的机器和 Internet 之间的所有 HTTP 和 SSL / HTTPS 流量。这包括请求、响应和 HTTP 标头(其中包含 cookie 和缓存信息)。

charles更多的用在监视接口调用情况,说直白点就是抓包工具,类似的工具还有 Fiddler 和Wireshark。

三.测试工具

1.jmeter 官网地址

Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。

jmeter能够进行接口测试和性能测试,可是对于作单纯的接口测试jmeter操做起来没有postman、apipost使用起来方便。jmeter重点在于压力测试,稳定性测试和负载测试。针对于接口和程序的稳定性设计的一款以软件性能为主,接口测试为辅的接口测试工具。

2.JTest 官网地址

JTest是Parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。

3.JUnit 官网地址

JUnit是一个为Java编程语言设计的单元测试框架。 JUnit为测试驱动开发框架的发展发挥了重要作用。它是现在被统称为xUnit的单元测试框架大家庭的组成成员之一,源于SUnit。在编译时,JUnit可以连接作为JAR,用于编写可重复的测试。

4.Arquillian官网地址

Arquillian是JVM一个高度创新性和可扩展的测试平台,支持Java开发人员轻松创建自动化集合的,功能性的和验收的测试。Arquillian允许在运行时间执行测试。Arquillian可以用来管理单个或多个容器的生命周期,捆扎测试用例,从属类和资源。它还能够部署归档到容器中,在容器中执行测试、捕获结果,并创建报告。

Arquillian集成了常见的测试框架,如JUnit 4、TestNG 5,并允许使用现有的IDE发布测试,并且由于其模块化的设计使得能够运行Ant和Maven测试插件。

四.远程连接工具

国内程序员大部分都是在windows环境开发,但是开发完毕后,免不了需要部署到服务器(Liunx);特别是Java开发的程序,几乎都是部署在Linux系统,如何把程序部署到远程的Linux服务器呢?这时候远程连接工具就派上用场了。

1.Xshell

Xshell是一个功能强大的终端模拟器,支持SSH、SFTP、telnet,rlogin和串行。人们可以使用它在Windows界面下用来访问远端不同系统下的服务器,从而达到远程控制终端的目的。

2.SecureCRT

SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。

3.FileZilla

FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能。可控性、有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个方便高效的FTP客户端工具,而FileZilla Server则是一个小巧并且可靠的支持FTP&SFTP的FTP服务器软件。FileZilla是一种快速、可信赖的FTP客户端以及服务器端开放源代码程式,具有多种特色、直接的接口。

4.Putty

PuTTY是一个Telnet/SSH/rlogin/纯TCP以及串行连线软件。较早的版本仅支援Windows平台,在最近的版本中开始支援各类Unix平台,并打算移植至Mac OS X上。除了官方版本外,有许多非官方的团体或个人将PuTTY移植到其他平台上,像是以Symbian为基础的移动电话。

五.数据库视图工具

因为我以前做后台的时候主要用的是MySql,所以这部分主要列举MySql数据库图形化工具,如果工作用Oracle或者SqlServer的同学自行从网上找相关资料,当然下面介绍的工具有些也支持oracle和SqlServer。

1.Navicat 官网地址

Navicat是一套快速、可靠的数据库管理工具,Navicat 是以直觉化的图形用户界面而建的,可以兼容多种数据库,支持多种操作系统。

2.MySQL Workbench 官网地址

MySQL Workbench是一个统一的可视化开发和管理平台,该平台提供了许多高级工具,可支持数据库建模和设计、查询开发和测试、服务器配置和监视、用户和安全管理、备份和恢复自动化、审计数据检查以及向导驱动的数据库迁移。 MySQL Workbench是MySQL AB发布的可视化的数据库设计软件,它的前身是 FabForce 公司的 DDesigner 4。 MySQL Workbench 为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。它包含了用于创建复杂的数据建模ER模型,正向和逆向数据库工程,也可以用于执行通常需要花费大量时间和需要的难以变更和管理的文档任务。MySQL工作台可在Windows,Linux和Mac上使用。

3.SQLyog 官网地址

SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库。

SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。

4.DataGrip

DataGrip,是大名鼎鼎的JetBrains公司出品的,就是那个出品Intellij IDEA的公司。DataGrip是一款数据库管理客户端工具,方便连接到数据库服务器,执行sql、创建表、创建索引以及导出数据等。

下载地址:https://www.jetbrains.com.cn/datagrip/

六.其他工具

1.文本编辑工具EditPlus

在程序员的日常工作中,编辑器的使用是不可缺少的,一个好用方便的文本编辑器会在一定程度上提高工作效率。

EditPlus属于轻量级的编辑器,就小编而言,用EditPlus多些。不敢说EditPlus更好,但部分回复对EditPlus存在的说法做一些纠正。

editplus提供了与Internet的无缝连接,可以在EditPlus的工作范围中开启Intelnet访问窗口。提供了多工作窗口,无需转换到桌面便可在工作范围中开启好几个文档。editplus默认支持HTML.CSS.PHP.ASP.Perl.C/C++.java.JavaScript和VBScript等语法突出显示,通过定制语法文档,可以扩展到别的程序语言。

2.文本编辑工具Notepad++

Notepad就是记事本,它用于文本编辑,在文字编辑方面与Windows写字板功能相当。

所见即所得功能、语法高亮、字词自动完成功能,支持同时编辑多重文档,支持自定义语言。

对于HTML网页编程代码,可直接选择在不同的浏览器中打开查看,以方便进行调试。

自动检测文件类型,根据关键字显示节点,节点可自由折叠/打开,可显示缩进引导线,使代码富有层次感。

可打开双窗口,在分窗口中又可打开多个子窗口,允许快捷切换全屏显示模式,支持鼠标滚轮改变文档显示比例。

可显示选中文本的字节数,并非普通编辑器所显示的字数。提供了一些实用工具,如邻行互换位置、宏功能等。

类似的文本编辑类的工具有很多,我现在开发做的少了,平时开会主要用一些线上的平台如幕布、有道云笔记之类的。

3.画图类的工具

这部分主要用于接收到需求做系统设计或者方案用,这类工具主要是为了理清楚思路;如Visual paradigm、OmniGraffle、ProcessOn。

Visual paradigm:Visual Paradigm for UML (VP-UML)是一款UML建模和CASE工具,产品具有建模版、标准版等功能。

OmniGraffle:OmniGraffle是由The Omni Group制作的一款绘图软件,其只能于运行在Mac OS X和iPad平台之上。OmniGraffle可以用来绘制图表,流程图,组织结构图以及插图,也可以用来组织头脑中思考的信息,组织头脑风暴的结果,绘制心智图,作为样式管理器,或设计网页或PDF文档的原型。

ProcessOn:支持绘制思维导图、流程图、UML、网络拓扑图、组织结构图、原型图、时间轴等等我自己平时用的最多的其实是Xmind,这个看大家自己习惯吧,目的就是理清楚思路。

4.项目管理协作工具

项目管理协作工具也是我们开发过程中经常会用到的。这方面的产品也有很多:Slack、Asana、Teambition、Worktile、Towe、禅道等这部分就不一一赘述了,很早之前转载过一篇文章专门介绍过这个,大家感兴趣直接看这篇文章项目管理协作工具即可。

5.在线开发辅助工具

• BASE64编解码工具:https://base64.supfree.net/• MD5编码工具:https://www.zxgj.cn/g/md5• AES/DES加解密:http://www.fly63.com/tool/cipher/• JWT解码工具:http://jwt.calebb.net/• ASCII编解码工具:https://www.matools.com/code-convert-ascii• Unicode编解码工具:https://www.zxgj.cn/g/unicode• UTF-8编解码工具:https://www.zxgj.cn/g/utf8• 字符串编解码工具:https://www.zxgj.cn/g/enstring• URL编解码工具:http://tool.chinaz.com/tools/urlencode.aspx?jdfwkey=lbixz1• 在线ASCII码对照表:http://www.fly63.com/tool/ascii/• 通用进制转换工具:https://www.zxgj.cn/g/jinzhi• 在线浮点数十进制转换:http://www.binaryconvert.com/• RGB颜色转换:https://www.zxgj.cn/g/yansezhi• 时间戳转换工具:https://www.zxgj.cn/g/unix• 计量单位换算工具:http://www.fly63.com/tool/unitable/• 在线JSON解析:http://www.json.cn/• 在线JS代码格式化工具:https://prettier.io/playground/• SQL压缩/格式化工具:https://www.zxgj.cn/g/sqlformat• JSON和XML在线转换:https://www.zxgj.cn/g/jsonxml• JSON/YAML在线转换:http://www.fly63.com/tool/jsonyaml/

6.华为云平台

目前很多公司都在用低代码开发平台开发应用了,摆脱了大量的编码工作,让程序员将精力投身到业务当中来。所谓低代码开发,即无需编码或只需少量代码就可以快速生成应用程序。也就是说,企业的应用开发通过“拖拉拽”的方式即可完成。这其中比较典型的是华为云的DevCloud,推荐给大家。

· 高效易用的低代码aPaaS平台-应用魔方AppCube:https://www.huaweicloud.com/product/appcube.html· 集华为研发实践、前沿研发理念、先进研发工具为一体的软件开发平台-软件开发平台 DevCloud:https://www.huaweicloud.com/devcloud/

总结

其实开发过程中用过的各种各样的工具还有很多,只是一时间无法全部都枚举出来,后续想到其他的好用工具会持续补充到文章中,文档中涉及到的工具找不到的可以评论区留言或者私信我,希望本文对大家有所帮助。

以上内容分享自华为云社区《【云驻共创】 JAVA常用的开发工具有哪些?》,作者:再见孙悟空_。

到底有多难?

刚好最近在学习C++,以前又有其它语言的编程经验,所以对此刚好有一定发言权。

C++是所有主流编程语言中最难掌握的语言!这一点基本上得到了公认。“主流”一词不能少,大致可以认为是各类计算机语言排行榜中前50名了那些。有些搞怪的,用来“玩”的语言可能比C++还难,但是它们不主流,也几乎没有谁真正用在生产环境,所以没有必要讨论。还有少数人认为最难的主流编程语言是汇编或LISP。这也是有道理的。不过不管怎么说,说C++的难度处于主流语言中前三位,就更加无懈可击,谁也否定不了。

我们这里讨论难度,主要都是以纯语言和核心标准库函数来说的,没有包含衍生的整个生态系统。比方说说JavaScript的难度那就是纯JavaScript,而没有包含jquery、vue、node.js等。再比如讨论JAVA难度,同样不包含安卓开发、spring甚至hadoop。再比如Python就不包含numpy、django甚至人工智能。

就我接触过的一些编程语言,JAVA、C#、Python、PHP、JavaScript、Go、C、R、scala、F#,它们在纯语法上,和C++的难度完全不在一个重量级!一种小巫见大巫的感觉。我刚加入一个C++团队,凡是接触过其他语言的,都说C++太难了。而有部分成员说C++简单的,一看都是刚毕业没有几年,只玩过C++而不知道其他语言的(一种初生牛犊的感觉吧)。

说了这么多废话,下面开始讨论为什么C++难,难在哪里。写的比较随意,想到哪里写到哪里。

第一、C++直接编译成本地代码

本地代码,就是直接可以在操作系统上运行的,不需要借助其他进程去引导它。C#、JAVA是运行于虚拟机的,Python、JavaScript是需要解释器的。也就是这些语言离开了虚拟机或解释器就运行不起来。但也正因为如此,它们才变得相对简单。因为虚拟机和解释器屏蔽了底层的很多细节。比方说你用JAVA写一段代码,你甚至都不需要知道到底操作系统是Windows还是Linux,你眼中的内存也仅仅是虚拟机上(简化的)内存。而C++不得不考虑底层的很多细节,导致很难。同样需要考虑底层的还有C、Go、rust等。单从这个角度看,这类编程语言是同一难度级别的。

第二、C++没有完善的自动垃圾回收机制

当我们一提到C/C++,大概首先想到的就是它们的指针。指针是C/C++的精髓,同样也是难度的根源之一。JAVA、Python等很多编程语言都是没有指针的。因为它们的虚拟机或解释器自带自动垃圾回收。指针实际上就是内存地址。当我们新建一个对象时,必须向操作系统分配内存(内存地址、指针),而对象使用完毕后,又应当回收。最常见的问题就是忘了回收或者其他变量正在引用就提前回收了。比如一个函数申请了内存,到底是该函数负责回收还是调用方负责回收?而带垃圾回收的语言,编程者完全不用操心这些事,完全不需要知道内存是如何分配的,该谁来回收以及如何回收。自动垃圾回收有利有弊,利是对开发者简单,弊是运行效率相对低下。C/C++是注重运行效率而牺牲了简单性。

第三、C++使用大量的预编译

在没有预编译的语言中,采用if else以及函数来完成类似的功能。比如if 32位操作系统该怎么做else怎么做。但是这样的代码最后是会运行的。而预编译时,假如不是32位操作系统(编译阶段就已经知道),相应的代码不会编译,这样就降低代码大小,且少了一个if else判断,效率更高。而预编译中的宏则是直接替代,防止了函数调用。函数调用也是需要损失性能的。正是这种过分强调性能,导致预编译被大量使用,给代码阅读和调试带来极大的不方便。

第四、C++历史包袱太多

C++是上世纪80年代的发明,还是比较古老了。在长期的发展中,存在大量的历史问题。比方说,一个字符串处理,就千奇八怪,它甚至都没有字符串类型这一说法。STL里有std:string,但也不是唯一的或做多的选择。相反,在其他所有现代语言中,字符串如何处理,都有几乎唯一的选择。C++选择太多,一方面你必须面临如何选择的问题,另一方面为了看懂别人的代码,你还不得不学习其他的选择是如何做的。历史包袱,就是说为了兼容以前的代码和以前的规范,不得不使整个系统非常复杂庞大。我们就说说Python吧,大家都知道目前有一个问题就是Python2.x和3.x的问题。你看,Python就果断地抛弃了2.x这个包袱(新版不再完全兼容老版),否则也会越来越复杂。C++没有这么做,因为老系统太多了,而且用的人多,根深蒂固,基本不可能推翻重来。像Go、D、rust这些新兴语言想取代年老的C++,都一直没有成功。如果C++想甩掉历史包袱(变成一门新的语言),那和rust、Go等又有什么区别?

第五、C++没有一个唯一的大东家

我们知道很多语言背后都有一个团队在运营,它们有绝对的权力或者说叫话语权,比如微软的C#、甲骨文的JAVA、谷歌的Go。Python(准确地说是cPython),也有唯一的开源项目,统一行动。再看C++,它不隶属于任何一个团队,它没有唯一的编译器开发商。微软的msvc,Linux的g++,还有clang等等。这么多厂商,谁也不占主导地位,谁也不听谁的。最后只能成立一个C++标准协会,大家协商着来,相互妥协。这种相互妥协,导致C++变得异常复杂,既兼容这个又兼容那个,甚至可以说是个“怪胎”。

第六、C++编译器太多,风格不一致

这个其实是上一条的延续(篇幅太长)。刚说了C++没有哪个厂家一家独大,靠标准协会协调。C++标准异常复杂。甚至有个词语叫做“未定义行为”。同样的代码,在这个编译器可以运行,在另一个编译器不行或者结果不一样,这种情况太多了。迄今为止没有一个公认的严格的C++规范,C++是非常自由的。自由就意味着难度大。Python为什么简单,就是因为它不自由,连变量名如何写,代码缩进都中规中矩。风格一致。不过也有其他语言和C++相似,比如JavaScript,它也是多厂家,标准不统一,风格不一致。

第七、C++语法博大精深

上面说了那么多,强调的都是背后的原因,那具体说来,到底C++难在哪里呢?这个不好说,下边只是我的理解,简单罗列出来。复杂的const和static语义。指针运算,取地址运算,引用,比如*、&、&&。模板与泛型。函数式编程。构造函数、拷贝构造函数、赋值构造函数、移动构造函数、析构函数。多重继承。

第八、第三方库不多

相对说来,C++主张从轮子造起,第三方库不是太多。很多看似简单的功能都得自己实现或者拼命地找库。一般说来,C++使用时间长了,就掌握得更好,所谓越老越吃香。因为可以不断积累库函数。而类似JAVA、Python这种,一方面标准库就自带,另一方面,遇到问题,网上一搜索,拿来就用。像线程、XML、json、sqlite3、TCP、http访问、crc32/md5,像这些如此基础的功能都没有提供自带标准函数。

对程序员来说最难的是写代码吗?

对于大多数程序员来说,代码是最简单的,因为代码是固化的,说白了,如果不纠结于规范和性能,大多数程序员都能按需求写出业务代码来,这个我相信是所有合格的程序员都具备的基础能力,那么什么是最难的?

笔者以自己为例,谈谈自己的看法。在我刚刚入行的时候,写代码确实是最难的,对于开发语言的语法都不熟,很多东西必须有参考代码才能跟着写下去,很难加入自己的东西。

大概半年之后,我感觉代码写来写去都差不多了,常写的代码写来写去也就是那么多,并没有太大的技术含量,只需要改改传参什么的就行了,这个时候对于我来说,最难的是理解需求,当然了,我现在依旧还是处于这个情况之中,有时候我的领导也会带着我一起去客户现场听客户谈论需求,但是我经常听着听着就神游了,我也很想集中注意力,但是客户老是讲着讲着我就有点开始跟不上他的思路了,明明说的是中国话,我居然就是听不懂他想表达什么???慢慢的我就干脆不听了,等着领导给我讲解然后安排任务就好了。因为这个情况,我的领导也会经常批评我,他说想在下个项目提拔我做项目经理,但是我老是不能理解客户的需求,我只能说我也很无奈,和这些人谈需求,我宁可多写几行代码来得轻松。

而后续,我个人感觉最难的应该是保持学习的热情吧,因为程序员是最需要持续学习的工种了,现在我的技术栈大概是SSM+springboot+vue+mysql+mp+redis+git+maven+elk+MQ,后面我打算学一学docket和nginx等等,而上述所谓的现有技术栈,大多也都是停留在配置过,会用且跑得通的地步,你要问我底层一点的东西,我必然也是一问三不知的状态。但是你想要达到资深开发或者架构师的级别,很显然,你只会配置是远远够不上这种级别的,人家只会说你是码农!!!

最后,加油吧,相信努力终究是会有回报的!!!

为什么有人说每个开发者都需要学一下Markdown?

与其说每个程序员要学一下 Markdown,不如说每个程序员都要养成写文档的能力。程序员平时的日常工作中,经常会使用文档去记录一些工作方面的信息以及一些技术架构的设计等等。打个比方,我日常就会使用文档记录一些 Linux 方面的命令和一些有用的网址,这些信息有时候我不可能每个都记住,文档方面的记录,也便于我以后的回顾使用。

Markdown 本质是一门轻量级标记语言,一般使用 Markdown 用来编写文档。我刚开始写文档时,用的最多的还是 Word 进行编辑,但是用的时间一久,发现我很多精力会消耗在文档的格式编排上面。比如字体加粗、字体的大小设置、标题设置、表格、图片等等,有时候弄格式的时间比写文档还长,这也肯定不是我们程序员想要的。

后来的话,我开始使用 Markdown 语法来编辑文档。程序员日常工作中,最多的还是写代码。使用 Markdown 的好处是,在格式方面的编排全都是相关符号进行编排,全部都是自己手打各种符号来编辑格式。写一篇文档,感觉就像一直在写代码一样,这对于程序员来说,很熟悉和方便。我现在使用 Typora 这款软件写 Markdown 文档,整体编写非常顺畅。

学习 Markdown 的终极目的,还是为了日常工作的文档编写。可能你在工作中,经常听到主管们说要有工作沉淀,那么文档沉淀,也算其中一种。健全的文档,能够帮助新人快速的融入和熟悉将要从事的工作内容。自己多写文档,进行总结,其实对于自己的技术提升也是很大的一种帮助,自己未来也可以再进行回顾学习。

写文档的其他一个方面,尤其是技术文档,可以提升个人的技术影响力,尤其是你未来晋升的时候,个人的影响力是一个评判的标准。你编写的技术文档给别人看,帮助别人解决问题和技术学习,那么你的技术就会得到别人的认可,未来在这方面的技术难题时,别人都会来找你,你所起的作用,在公司里面,也会更大。

我是Lake,专注大数据技术原理、人工智能、数据库技术、程序员经验分享,如果我的问答对你有帮助的话,希望你能点赞关注我,感谢。

我会持续大数据、数据库方面的内容,如果你有任何问题,也欢迎关注私信我,我会认真解答每一个问题。期待您的关注

请问学习JAVA软件开发要安装什么软件?

今天我们来详细盘点一下Java开发一般都会用到哪些开发工具。

一.开发编程工具

1.Eclipse 官网地址

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

2.MyEclipse 官网地址

MyEclipse,是在Eclipse 基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、Java EE以及移动应用的开发。在最新版本的MyEclipse中,配合CodeMix使用支持也十分广泛,尤其是对各种开源产品和主流开发框架的支持相当不错。已支持PHP、Python、Vue、Angular、React、Java、Java EE等语言和框架开发。

3.IntelliJ IDEA 官网地址

IDEA 全称 IntelliJ IDEA,是java编程语言的集成开发环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。

我后来转Android后用的是 Android Studio工具,其实这个工具就是Google在idea的基础上二次开发出来的,所以两者非常像,只是侧重不同。

上面这几个工具我全部都用过,2011年刚入门培训的时候就是用的Eclipse,后来做Java web项目就改为用MyEclipse,后来转Android 用过一段时间Idea,说一下这几个工具的主要区别:

MyEclipse是收费的,eclipse是免费的。

Eclipse自带的插件很少,如果写web项目,需要自己配置很多东西,MyEclipse集成了很多的插件,一般Java的企业应用开发都会使用MyEclipse。

idea比myeclipse 更加智能,自带更智能的代码提示,代码检查。

MyEclipse 以前用的时候有时候经常会卡死,Idea更加稳定,而且我感觉Idea界面看起来更舒服。(个人感受)

我个人更推荐开发同学直接用idea,感觉idea集合了eclipse和MyEclipse的功能和优点,然后又在此基础上做了升级,尤其是代码智能提示,自动生成一些相关的类文件的确方便了很多。java开发工具还有NetBeans 、Visual Studio Code等其他工具,但是那些我没用过,相关介绍大家可以自行从网上搜索相关资料。

二.接口调试工具

作为一名开发人员,完成开发工作后,肯定要自己进行测试,这可能还会用到接口测试的一些工具。

1.Postman 官网地址

Postman是一款功能非常棒的Chrome扩展,提供功能强大的API&HTTP请求调试。它可以发送几乎所有类型的HTTP请求,并可以附带任何数量的参数和请求头(headers)。

2.Apipost 官网地址

ApiPost是一个支持模拟POST、GET、PUT等常见HTTP请求,支持团队协作,并可以直接生成并导出接口文档的API文档、调试、Mock、测试一体化协作平台。

3.ApiFox 官网地址

API 文档、API 调试、API Mock、API 自动化测试,一体化协作平台。平台化的产品不多说。

4.Charles 官网地址

Charles 是一个 HTTP 代理 / HTTP 监视器 / 反向代理,它使开发人员能够查看他们的机器和 Internet 之间的所有 HTTP 和 SSL / HTTPS 流量。这包括请求、响应和 HTTP 标头(其中包含 cookie 和缓存信息)。

charles更多的用在监视接口调用情况,说直白点就是抓包工具,类似的工具还有 Fiddler 和Wireshark。

三.测试工具

1.jmeter 官网地址

Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。

jmeter能够进行接口测试和性能测试,可是对于作单纯的接口测试jmeter操做起来没有postman、apipost使用起来方便。jmeter重点在于压力测试,稳定性测试和负载测试。针对于接口和程序的稳定性设计的一款以软件性能为主,接口测试为辅的接口测试工具。

2.JTest 官网地址

JTest是Parasoft公司推出的一款针对java语言的自动化白盒测试工具,它通过自动实现java的单元测试和代码标准校验,来提高代码的可靠性。

3.JUnit 官网地址

JUnit是一个为Java编程语言设计的单元测试框架。 JUnit为测试驱动开发框架的发展发挥了重要作用。它是现在被统称为xUnit的单元测试框架大家庭的组成成员之一,源于SUnit。在编译时,JUnit可以连接作为JAR,用于编写可重复的测试。

4.Arquillian官网地址

Arquillian是JVM一个高度创新性和可扩展的测试平台,支持Java开发人员轻松创建自动化集合的,功能性的和验收的测试。Arquillian允许在运行时间执行测试。Arquillian可以用来管理单个或多个容器的生命周期,捆扎测试用例,从属类和资源。它还能够部署归档到容器中,在容器中执行测试、捕获结果,并创建报告。

Arquillian集成了常见的测试框架,如JUnit 4、TestNG 5,并允许使用现有的IDE发布测试,并且由于其模块化的设计使得能够运行Ant和Maven测试插件。

四.远程连接工具

国内程序员大部分都是在windows环境开发,但是开发完毕后,免不了需要部署到服务器(Liunx);特别是Java开发的程序,几乎都是部署在Linux系统,如何把程序部署到远程的Linux服务器呢?这时候远程连接工具就派上用场了。

1.Xshell

Xshell是一个功能强大的终端模拟器,支持SSH、SFTP、telnet,rlogin和串行。人们可以使用它在Windows界面下用来访问远端不同系统下的服务器,从而达到远程控制终端的目的。

2.SecureCRT

SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件。

3.FileZilla

FileZilla是一个免费开源的FTP软件,分为客户端版本和服务器版本,具备所有的FTP软件功能。可控性、有条理的界面和管理多站点的简化方式使得Filezilla客户端版成为一个方便高效的FTP客户端工具,而FileZilla Server则是一个小巧并且可靠的支持FTP&SFTP的FTP服务器软件。FileZilla是一种快速、可信赖的FTP客户端以及服务器端开放源代码程式,具有多种特色、直接的接口。

4.Putty

PuTTY是一个Telnet/SSH/rlogin/纯TCP以及串行连线软件。较早的版本仅支援Windows平台,在最近的版本中开始支援各类Unix平台,并打算移植至Mac OS X上。除了官方版本外,有许多非官方的团体或个人将PuTTY移植到其他平台上,像是以Symbian为基础的移动电话。

五.数据库视图工具

因为我以前做后台的时候主要用的是MySql,所以这部分主要列举MySql数据库图形化工具,如果工作用Oracle或者SqlServer的同学自行从网上找相关资料,当然下面介绍的工具有些也支持oracle和SqlServer。

1.Navicat 官网地址

Navicat是一套快速、可靠的数据库管理工具,Navicat 是以直觉化的图形用户界面而建的,可以兼容多种数据库,支持多种操作系统。

2.MySQL Workbench 官网地址

MySQL Workbench是一个统一的可视化开发和管理平台,该平台提供了许多高级工具,可支持数据库建模和设计、查询开发和测试、服务器配置和监视、用户和安全管理、备份和恢复自动化、审计数据检查以及向导驱动的数据库迁移。 MySQL Workbench是MySQL AB发布的可视化的数据库设计软件,它的前身是 FabForce 公司的 DDesigner 4。 MySQL Workbench 为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。它包含了用于创建复杂的数据建模ER模型,正向和逆向数据库工程,也可以用于执行通常需要花费大量时间和需要的难以变更和管理的文档任务。MySQL工作台可在Windows,Linux和Mac上使用。

3.SQLyog 官网地址

SQLyog 是一个易于使用的、快速而简洁的图形化管理MYSQL数据库的工具,它能够在任何地点有效地管理你的数据库。

SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。

4.DataGrip

DataGrip,是大名鼎鼎的JetBrains公司出品的,就是那个出品Intellij IDEA的公司。DataGrip是一款数据库管理客户端工具,方便连接到数据库服务器,执行sql、创建表、创建索引以及导出数据等。

下载地址:https://www.jetbrains.com.cn/datagrip/

六.其他工具

1.文本编辑工具EditPlus

在程序员的日常工作中,编辑器的使用是不可缺少的,一个好用方便的文本编辑器会在一定程度上提高工作效率。

EditPlus属于轻量级的编辑器,就小编而言,用EditPlus多些。不敢说EditPlus更好,但部分回复对EditPlus存在的说法做一些纠正。

editplus提供了与Internet的无缝连接,可以在EditPlus的工作范围中开启Intelnet访问窗口。提供了多工作窗口,无需转换到桌面便可在工作范围中开启好几个文档。editplus默认支持HTML.CSS.PHP.ASP.Perl.C/C++.java.JavaScript和VBScript等语法突出显示,通过定制语法文档,可以扩展到别的程序语言。

2.文本编辑工具Notepad++

Notepad就是记事本,它用于文本编辑,在文字编辑方面与Windows写字板功能相当。

所见即所得功能、语法高亮、字词自动完成功能,支持同时编辑多重文档,支持自定义语言。

对于HTML网页编程代码,可直接选择在不同的浏览器中打开查看,以方便进行调试。

自动检测文件类型,根据关键字显示节点,节点可自由折叠/打开,可显示缩进引导线,使代码富有层次感。

可打开双窗口,在分窗口中又可打开多个子窗口,允许快捷切换全屏显示模式,支持鼠标滚轮改变文档显示比例。

可显示选中文本的字节数,并非普通编辑器所显示的字数。提供了一些实用工具,如邻行互换位置、宏功能等。

类似的文本编辑类的工具有很多,我现在开发做的少了,平时开会主要用一些线上的平台如幕布、有道云笔记之类的。

3.画图类的工具

这部分主要用于接收到需求做系统设计或者方案用,这类工具主要是为了理清楚思路;如Visual paradigm、OmniGraffle、ProcessOn。

Visual paradigm:Visual Paradigm for UML (VP-UML)是一款UML建模和CASE工具,产品具有建模版、标准版等功能。

OmniGraffle:OmniGraffle是由The Omni Group制作的一款绘图软件,其只能于运行在Mac OS X和iPad平台之上。OmniGraffle可以用来绘制图表,流程图,组织结构图以及插图,也可以用来组织头脑中思考的信息,组织头脑风暴的结果,绘制心智图,作为样式管理器,或设计网页或PDF文档的原型。

ProcessOn:支持绘制思维导图、流程图、UML、网络拓扑图、组织结构图、原型图、时间轴等等我自己平时用的最多的其实是Xmind,这个看大家自己习惯吧,目的就是理清楚思路。

4.项目管理协作工具

项目管理协作工具也是我们开发过程中经常会用到的。这方面的产品也有很多:Slack、Asana、Teambition、Worktile、Towe、禅道等这部分就不一一赘述了,很早之前转载过一篇文章专门介绍过这个,大家感兴趣直接看这篇文章项目管理协作工具即可。

5.在线开发辅助工具

• BASE64编解码工具:https://base64.supfree.net/• MD5编码工具:https://www.zxgj.cn/g/md5• AES/DES加解密:http://www.fly63.com/tool/cipher/• JWT解码工具:http://jwt.calebb.net/• ASCII编解码工具:https://www.matools.com/code-convert-ascii• Unicode编解码工具:https://www.zxgj.cn/g/unicode• UTF-8编解码工具:https://www.zxgj.cn/g/utf8• 字符串编解码工具:https://www.zxgj.cn/g/enstring• URL编解码工具:http://tool.chinaz.com/tools/urlencode.aspx?jdfwkey=lbixz1• 在线ASCII码对照表:http://www.fly63.com/tool/ascii/• 通用进制转换工具:https://www.zxgj.cn/g/jinzhi• 在线浮点数十进制转换:http://www.binaryconvert.com/• RGB颜色转换:https://www.zxgj.cn/g/yansezhi• 时间戳转换工具:https://www.zxgj.cn/g/unix• 计量单位换算工具:http://www.fly63.com/tool/unitable/• 在线JSON解析:http://www.json.cn/• 在线JS代码格式化工具:https://prettier.io/playground/• SQL压缩/格式化工具:https://www.zxgj.cn/g/sqlformat• JSON和XML在线转换:https://www.zxgj.cn/g/jsonxml• JSON/YAML在线转换:http://www.fly63.com/tool/jsonyaml/

6.华为云平台

目前很多公司都在用低代码开发平台开发应用了,摆脱了大量的编码工作,让程序员将精力投身到业务当中来。所谓低代码开发,即无需编码或只需少量代码就可以快速生成应用程序。也就是说,企业的应用开发通过“拖拉拽”的方式即可完成。这其中比较典型的是华为云的DevCloud,推荐给大家。

· 高效易用的低代码aPaaS平台-应用魔方AppCube:https://www.huaweicloud.com/product/appcube.html· 集华为研发实践、前沿研发理念、先进研发工具为一体的软件开发平台-软件开发平台 DevCloud:https://www.huaweicloud.com/devcloud/

总结

其实开发过程中用过的各种各样的工具还有很多,只是一时间无法全部都枚举出来,后续想到其他的好用工具会持续补充到文章中,文档中涉及到的工具找不到的可以评论区留言或者私信我,希望本文对大家有所帮助。

以上内容分享自华为云社区《【云驻共创】 JAVA常用的开发工具有哪些?》,作者:再见孙悟空_。

本文转载自互联网,如有侵权,联系删除