php怎么解md5,如何解决跨域问题?
现在开发项目,大部分公司采用的都是前后端分离的方式进行开发,由于现在产品形态越来越多,网页、手机端、桌面端等等,为了面对各种端,数据中心化、微服务概念的出现,我们为了集成这些服务,不得不去面对一个常见的问题——解决跨域请求的问题。
以前工作开发中,经常会有这样的问题,前端工程师的前端页面由于跨域问题报错了,来协调后端开发人员解决,后台开发人员还那解释你来看我这边的接口是正常的,应该是你的问题,这是前端开发人员的心顿时是崩塌的,如果你还不知道怎么办的时候,也许会默默的自己去寻找解决方案,一查解决方案,这个工作应该需要前后台一起配合,你还得给后端开发人员去好说歹说,让他们也看看一起解决。我很能理解作为前端的我们真是不容易啊。
关于跨域这个问题,不仅前端工程师需要了解,后端工程师也需要了解更应该重视,因为后面会提及到相关的解决方案,需要共同配合才能完成。借着回答这个问题的机会,我来把跨域的相关内容进行系统的梳理,分享给大家。
什么是跨域跨域(CORS)——跨源资源共享。换成我们前端开发人员能理解的就是指浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript的实施的安全限制。
换个通俗的比方来说,比如经常会有一些模仿金融机构的钓鱼网站,用了和金融机构类似的域名,你点击进去一看,竟然和你熟悉的金融网站一模一样,如果你没注意域名的差别,如果你在网站上输入了卡号和密码信息那就很危险了,有可能这个网站是frame了金融机构的网站,如果金融网站没有做相关的安全限制,你的信息完全有可能被非法分子获取。由此可见浏览器的同源策略存在是十分有必要的。
我顺便在给大家介绍下如何区分是否是同源,所谓的同源是指,域名,协议,端口均为相同。接下来举几个示例,方便大家进行理解:
常用方法一:使用 JSONP 进行 Get 请求这应该是我们接触到的第一个解决跨域的方法,笔者记得前端入门经典红皮书里有过介绍,JSONP有两部分主成:回调函数和数据。回调函数是当响应完成在页面中调用的函数,回调函数的名字一般在请求中进行制定。而数据就是传入回调函调函数中的JSON数据。为了解释这个,还是我们来看下面这个例子吧:
比如我们来实现一个获取当地天气数据的功能,我们需要在后端与天气接口平台交互获取天气数据,前端页面通过GET后端API的方式获取天气信息。
1、首先定义我们前端页面的回调函数功能,我们定义了一个gotWeather的函数:
2、接下来定义请求方法,请注意callback后面的参数和回调函数保持一致的名字:
3、我们后台接口最终要返回非类似这样的数据内容:
你会发现,数据能够正常返回,你也许会问为什么这样可以,不违背同源原则吗?其实之所以有效,并且不违反安全性,因为这是经过前后端共同协作,约定以这种方式传递数据。但是你会发现使用这种方法会有一个问题是,只能用于Get请求。
常用方法二:跨域资源共享(CORS)请求方式目前这种方式用的比较多,应用比较广泛,如果你的项目受部署环境限制的话,建议还是用这种。
1、什么是CORS?
CORS是一个W3C标准,全称是“跨域资源共享”(跨源资源共享)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。
CORS需要浏览器和服务器同时支持目前,所有浏览器都支持该功能,IE浏览器不能低于IE10.IE8 +:IE8 / 9需要使用XDomainRequest对象来支持CORS。
整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。
CORS 请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。
2、什么是简单请求?
2.1、首先介绍下什么是简单请求,请求方法是以下请求方法:
Head
Get
Post
2.2、HTTP 的头信息不超出以下几种字段:
Accept
Accept-Language
Content-Language
Last-Event-ID
Content-Type:只限于三个值application/x-www-form-urlencoded、multipart/form-data、text/plain
凡是不同时满足上面两个条件,就属于非简单请求。一句话,简单请求就是简单的 HTTP 方法与简单的 HTTP 头信息的结合。
2.2、简单请求的大致流程我做下解释:
加入我们的一个网站页面地址需要去请求一个服务端的API,这个页面的请求头可能是这样的:
上面的头信息中,Origin字段用来说明,本次请求来自哪个域(协议 + 域名 + 端口)。服务器根据这个值,决定是否同意这次请求。
如果Origin指定的源,不在许可范围内,服务器会返回一个正常的 HTTP 回应。浏览器发现,这个回应的头信息没有包含Access-Control-Allow-Origin字段,就知道出错了,从而抛出一个错误,被XMLHttpRequest的onerror回调函数捕获。注意,这种错误无法通过状态码识别,因为 HTTP 回应的状态码有可能是200。
如果Origin指定的域名在许可范围内,服务器返回的响应,会多出几个头信息字段。具体的请求交互流程如下图所示:
如果一切顺利正常的话,你就会看到服务端一些返回的头信息
3、什么是非简单请求
3.1、 简单的介绍下什么是非简单请求(not-so-simple request)
非简单请求是那种对服务器提出特殊要求的请求,比如请求方法是PUT或DELETE,或者Content-Type字段的类型是application/json。
非简单请求的 CORS 请求,会在正式通信之前,增加一次 HTTP 查询请求,称为“预检”请求(preflight)。浏览器先询问服务器,当前网页所在的域名是否在服务器的许可名单之中,以及可以使用哪些 HTTP 动词和头信息字段。只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。这是为了防止这些新增的请求,对传统的没有 CORS 支持的服务器形成压力,给服务器一个提前拒绝的机会,这样可以防止服务器大量收到DELETE和PUT请求,这些传统的表单不可能跨域发出的请求。
3.2、通过示例,我们来了解其实现的原理
3.2.1、比如我们在前端页面的请求代码时这样的如下所示:
上面代码中,HTTP 请求的方法是PUT,并且发送一个自定义头信息X-Custom-Header。
3.2.2、浏览器发现,这是一个非简单请求,就自动发出一个“预检”请求,要求服务器确认可以这样请求。下面是这个“预检”请求的 HTTP 头信息。
“预检”请求用的请求方法是OPTIONS,表示这个请求是用来询问的。头信息里面,关键字段是Origin,表示请求来自哪个源。
除了Origin字段,“预检”请求的头信息包括两个特殊字段。
(1)Access-Control-Request-Method 该字段是必须的,用来列出浏览器的 CORS 请求会用到哪些 HTTP 方法,上例是PUT。
(2)Access-Control-Request-Headers 该字段是一个逗号分隔的字符串,指定浏览器 CORS 请求会额外发送的头信息字段,上例是X-Custom-Header。
3.3、服务器收到“预检”请求以后,检查了Origin、Access-Control-Request-Method和Access-Control-Request-Headers字段以后,确认允许跨源请求,就可以做出回应。
3.4 一旦服务器通过了“预检”请求,以后每次浏览器正常的 CORS 请求,就都跟简单请求一样,会有一个Origin头信息字段。服务器的回应,也都会有一个Access-Control-Allow-Origin头信息字段。
3.4 文字内容有点多,把刚才描述的内容用一张流程图表述下,大家会清晰许多,如下所示:
4、与 JSONP 的比较
CORS 与 JSONP 的使用目的相同,但是比 JSONP 更强大。JSONP 只支持GET请求,CORS 支持所有类型的 HTTP 请求。JSONP 的优势在于支持老式浏览器,以及可以向不支持 CORS 的网站请求数据。
5、接下来给后端开发人员分享下如何配置跨域请求
5.1 PHP 简单示例
5.2 Node 开发人员使用 Express 简单示例:
5.2.1 首先安装 cors 中间件:
npm install cors
5.2.3 然后配置比如入口文件,server/
index.js
5.2.4 你可以对跨域进行配置,如下图所示:
5.2.5 你可以做个请求示例尝试下,如果一切正常,你可以在 web 开发者工具中看到如下所示:
java 的由于我不太熟,可以自行解决方案,原理和 PHP 的道理是差不多的。
常用方法三:nginx 反向代理这个方法应用也十分广泛,也是十分常见的,这也需要服务端配合下面还是用一段Ngxin配置来说明这个问题,如下图所示:
实现原理类似于Node中间件代理,需要你搭建一个中转nginx服务器,用于转发请求。使用nginx反向代理实现跨域,是最简单的跨域方式。只需要修改nginx的配置即可解决跨域问题,支持所有浏览器,支持session,不需要修改任何代码,并且不会影响服务器性能。实现思路:通过nginx配置一个代理服务器(域名与domain1相同,端口不同)做跳板机,反向代理访问domain2接口,并且可以顺便修改cookie中domain信息,方便当前域cookie写入,实现跨域登录。
小节以上是解决跨域问题最常用的三种方式,应该能解决你业务中遇到的问题,有点需需要提示的是方法二和方法三不要混着用,否则会报“Access-Control-Allow-Origin Not Allow Multiple value”的错误,我推荐大家用方法三使用nginx反向代理做跨域解决方案,比较简单和直接,可谓一劳永逸。当然跨域的方法还有其他的,比如使用WebSocket、postMessage API 、各种 iframe 的解决方案,由于不太常用和篇幅问题原因,就不再一一介绍了,感兴趣的小伙伴们可以自行搜索。
如果你觉得本回答分享对你有所帮助,欢迎给个赞👍支持下,分享出去让更多的人知道,如果你有其它的方法,欢迎再留言区进行分享。
注:本回答第二部部分参考阮一峰的《JavaScript 标准参考教程(alpha)》
更多前端内容分享,欢迎关注「前端达人」及其微信公众号
你认为曾经最好的语言PHP过时了吗?
谢谢邀请!
PHP不仅没有过时,反而因为PHP的优良特性变的越来越受欢迎,PHP是非常经典的快速开发语言,用来做业务开发非常合适,尤其在Web开发领域PHP占据着很大的比例。
全世界一流的互联网企业都在用PHP就像比尔盖茨喜欢Basic一样,Facebook的创始人、CEO扎克伯格非常喜欢PHP,这就让PHP成为了Facebook的主要编程语言之一。
在互联网领域PHP是比价受欢迎的,几乎是全球顶级的互联网公司都在用PHP,Facebook、WhatsApp、新浪微博、百度、腾讯都在用PHP,大家还记得去年春晚红包吗?百度能够成为第一家真正扛住了春晚流量洪峰的互联网企业,PHP功不可没,其中鸟哥的Yaf就是最重要的技术栈之一。
根据最新一期的TIOBLE编程语言排行榜单显示,PHP排在榜单的第9名,虽然跟Java/C/C++三大行业霸主还有差距,可是PHP依然是最受欢迎的编程语言之一。
PHP有哪些优点很多人说PHP基本上全是缺点,PHP能做的Java也能做,Java能做的PHP却未必能做。不少人还拿大并发来说事。
借用鸟哥的一句话说:
说PHP不支持多线程(90% of这些人不知道多线程模型和IO复用模型的不相伯仲), 烂. 说PHP不支持异步(90% of这些人, 根本不知道异步代表什么), 烂. 说PHP是屌丝语言(99% of这些人是想找寻智商优越感), 烂. 每每我看到这种的论调, 我真的很无奈, 因为你根本没办法让一个装傻的人变聪明.PHP跨平台、并且性能优越,也非常适合快速开发,PHP在快速开发方面的优势让Java都坐不住了,赶紧推进springboot和微服务。
PHP结合Linux/Unix综合性能非常强,PHP有类似于LAMP这种非常具有性价比的解决方案,相对于C#、Java来说,PHP毫无疑问是非常具有性价比的解决方案,语法非常简单,对于目前主流的技术支持非常好,也拥有众多成熟的框架,研发成本极低。
假设你是开始一个新项目、或者说你是一家创业公司,我非常建议采用PHP作为核心技术栈,等真正做得很大了,你完全可以用C最底层,PHP专注于业务就好,这会让你事半功倍。
作为一个Java程序员,我经常开玩笑,Java很棒,可是当你看完了阿里的那本Java代码规范之后,应该有个清楚的认知,需要用这么大的篇幅来写代码规范的编程语言,你真的不应该用他开始一个新项目,至于C#终归还是一个非常昂贵的选择。
程序猿0基础培训4个月?
我觉得这个很容易被拆穿的吧!你有没有墨水,很跟你聊几句就知道了。万一被发现了,你就会给人留下不诚实的印象,孰轻孰重,自己掂量吧
现在是个互联网的时代,程序员可谓是风口上的猪。
同样的毕业生,程序员的薪水就甩其他专业的学生几条街。
但是仅仅经过四个月培训就能很容易上手工作了嘛?我看未必。我有一个朋友,大学学的机械专业,毕业后干了几个月本行的,嫌弃工资低,然后去报了IT的培训班,学了几个月,我跟他聊天的时候他说自己感觉就是学了点基础,并没有学到其他很硬的本领。本来说好的是培训机构给他找工作,后来才发现推荐的工作很坑,又自己千辛万苦找了一个公司,规模也不大,进去还是新人开始,不过也算不错了,起码给了你一个转行的机会。
现在这种培训机构是真的多,而且,不管你是什么情况,他们都愿意接纳你,其实有时候我们也要自己想一想,天上真的会掉馅饼?
MD5解密到底是怎么一回事?
md5密码的意思就是通过md5加密方式生成的密码,解密就是将已经加密的密码通过一些处理,将密码还原成原来的模样。
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。
还有哪些软件写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常用的开发工具有哪些?》,作者:再见孙悟空_。