php游戏源码怎么用,怎样用php打开源代码?
PHP本身提供了几个函数可以对源代码进行格式化并输出为HTML代码,你可以把要输出的代码段或者代码文件用这些函数处理一下,直接输出为HTML即可。例如:
怎样在php源码中添加关键字还有描述?
找到顶部header.php这个文件,然后打开这个文件,找到</title>,然后把你的关键字还有描述的代码添加进去就行了,保存的时候注意编码
用什么工具系统查看源代码比较好?
静态源代码安全检测工具比较
1. 概述
随着网络的飞速发展,各种网络应用不断成熟,各种开发技术层出不穷,上网已经成为人们日常生活中的一个重要组成部分。在享受互联网带来的各种方便之处的同时,安全问题也变得越来越重要。黑客、病毒、木马等不断攻击着各种网站,如何保证网站的安全成为一个非常热门的话题。
根据IT研究与顾问咨询公司Gartner统计数据显示,75%的黑客攻击发生在应用层。而由NIST的统计显示92%的漏洞属于应用层而非网络层。因此,应用软件的自身的安全问题是我们信息安全领域最为关心的问题,也是我们面临的一个新的领域,需要我们所有的在应用软件开发和管理的各个层面的成员共同的努力来完成。越来越多的安全产品厂商也已经在考虑关注软件开发的整个流程,将安全检测与监测融入需求分析、概要设计、详细设计、编码、测试等各个阶段以全面的保证应用安全。
对于应用安全性的检测目前大多数是通过测试的方式来实现。测试大体上分为黑盒测试和白盒测试两种。黑盒测试一般使用的是渗透的方法,这种方法仍然带有明显的黑盒测试本身的不足,需要大量的测试用例来进行覆盖,且测试完成后仍无法保证软件是否仍然存在风险。现在白盒测试中源代码扫描越来越成为一种流行的技术,使用源代码扫描产品对软件进行代码扫描,一方面可以找出潜在的风险,从内对软件进行检测,提高代码的安全性,另一方面也可以进一步提高代码的质量。黑盒的渗透测试和白盒的源代码扫描内外结合,可以使得软件的安全性得到很大程度的提高。
源代码分析技术由来已久,Colorado 大学的 Lloyd D. Fosdick 和 Leon J. Osterweil 1976 年的 9 月曾在 ACM Computing Surveys 上发表了著名的 Data Flow Analysis in Software Reliability,其中就提到了数据流分析、状态机系统、边界检测、数据类型验证、控制流分析等技术。随着计算机语言的不断演进,源代码分析的技术 也在日趋完善,在不同的细分领域,出现了很多不错的源代码分析产品,如 Klocwork Insight、Rational Software Analyzer 和 Coverity、Parasoft 等公司的产品。而在静态源代码安全分析方面,Fortify 公司和 Ounce Labs 公司的静态代码分析器都是非常不错的产品。对于源代码安全检测领域目前的供应商有很多,这里我们选择其中的三款具有代表性的进行对比,分别是 Fortify公司的Fortify SCA,Security Innovation公司的Checkmarx Suite和Armorize公司的CodeSecure。
2. 工具介绍
2.1. Fortify SCA(Source Code Analysis)
Fortify Software公司是一家总部位于美国硅谷,致力于提供应用软件安全开发工具和管理方案的厂商。Fortify为应用软件开发组织、安全审计人员和应用 安全管理人员提供工具并确立最佳的应用软件安全实践和策略,帮助他们在软件开发生命周期中花最少的时间和成本去识别和修复软件源代码中的安全隐患。 Fortify SCA是Fortify360产品套装中的一部分,它使用fortify公司特有的X-Tier Dataflow™ analysis技术去检测软件安全问题。
优点:目前全球最大静态源代码检测厂商、支持语言最多
缺点:价格昂贵、使用不方便
2.2. Checkmarx CxSuite
Checkmarx 是以色列的一家高科技软件公司。它的产品CheckmarxCxSuite专门设计为识别、跟踪和修复软件源代码上的技术和逻辑方面的安全风险。首创了以查询语言定位代码安全问题,其采用独特的词汇分析技术和CxQL专利查询技术来扫描和分析源代码中的安全漏洞和弱点。
优点:利用CxQL 查询语言自定义规则
缺点:输出报告不够美观、语言支持种类不全面
2.3. Armorize CodeSecure
阿码科技成立于2006年,总部设立于美国加州圣克拉拉市,研发中心位于台湾的南港软件工业园区。阿码科技提供全方位网络安全解决方案,捍卫企业免于受到黑客利用 Web 应用程序的漏洞所发动的攻击。阿码科技 CodeSecure可有效地协助企业与开发人员在软件开发过程及项目上线后找出 Web 应用程序风险,并清楚交代风险的来龙去脉 (如何进入程序,如何造成问题) 。CodeSecure内建语法剖析功能无需依赖编译环境,任何人员均可利用 Web操作与集成开发环境双接口,找出存在信息安全问题的源代码,并提供修补建议进行调整。CodeSecure依托于自行开发的主机进行远程源代码检 测,在保证速度稳定的同时方便用户进行Web远程操作。
优点:Web结合硬件,速度快、独具特色的深度分析
缺点:支持语言种类较少、价格不菲
3. 对比
Fortify SCA简写为SCA,Checkmarx CxSuite简写为CxSuite,Armonize CodeSecure简写为CodeSecure。
SCA CxSuite CodeSecure
厂商 Fortify Software Checkmarx 阿码科技
支持语言 Java,JSP,ASP.NET,C#,
VB.NET,C,C++,COBOL,
ColdFusion,Transact-SQL,
PL/SQL,JavaScript/Ajax,
Classic,ASP,VBScript,VB6,PHP JAVA、ASP.NET(C#、VB.NET)、JavaScript、Jscript、C/C++、APEX ASP.NET(C#、VB.NET)、ASP、JAVA、PHP
风险种类 400种 300种 参考CWE
风险类型参考来源 CWE、OWASP CWE、OWASP CWE、OWASP
漏报率 最低 低 低
误报率 稍高 低 低
是否支持SaaS 否 否 是
软硬件类型 纯软件 纯软件 Web结合硬件设备
运行平台 无限制 WindowsNET Framework 2.0 无限制
运行速度 取决于电脑配置速度不定 取决于电脑配置速度不定 由主机配置决定速度恒定
报告格式 PDF PDF、XML、CSV、HTML Web、PDF
报告内容 完整按照风险级别不同分为多个文件 核心内容完整扫描信息等缺失 非常完整但修改建议放于最后
报价 100万/软件 70万/软件 100万/软硬件
性价比 中 高 低
从软件支持的源代码语言上来说,Fortify SCA(下文简称SCA)支持多达17种语言,Checkmarx CxSuite(下文简称CxSuite)其次,而Armonize CodeSecure(下文简称CodeSecure)在三款软件中支持的最少,仅仅支持几种最常见语言,不过这几种基本涵盖了绝大多数应用中使用的编程语言,基本上可以支持现在大多数应用的源代码扫描。
从风险的分类来说,各个厂商都有其自己独特的分类方式和不同的种类数量,不过从实际应用中可以看出,总体上仍为OWASP公布的几类风险,如SQL注入、跨站脚本等,已经可以满足实际中开发人员和测试人员的需求,对于各个厂商不同的部分,一般来说主要的区别在于理解不同,看问题的角度不同,并无谁错谁对之原则性问题。
从运行平台 的角度,CodeSecure这个产品目前看来已经将SaaS的理念很好的融合进来,整个软件的操作界面为Web方式,用户可以通过网页进行操作,B/S 的方式可以将操作系统的影响降到最低,只要有一台可以上网的电脑和浏览器,无论什么操作系统都可以使用CodeSecure远程进行源代码扫描,CodeSecure依托的是一台Armonize自行研制的主机,使用硬件设备的好处在于可以适用于多种场合,不会因为测试人员或是开发人员的电脑配置影响扫描速度,扫描的速度完全取决于主机的性能。而SCA和CxSuite主要还是单机软件,但目前也在不断地向SaaS的方向进行过渡,并且提供了相当全面的贯彻整个软件开发流程(SDLC)的解决方案与服务给用户。其中CxSuite这个产品标明了使用该软件的硬件配置,为Windows操作系统 和.NET框架,这个产品目前应该为利用.NET框架进行开发,所以运行环境有一定的局限性。同时,SCA和CxSuite因为是单机软件,一方面在使用 前需要安装,另一方面其运行速度取决于运行软件的电脑性能,对于使用该软件的电脑配置有一定的要求。
三种产品都使用了各自的技术对于威胁进行检测,SCA使用的是已获得专利的X-Tier™数据流分析器,这三种产品中只有CxSuite声称可以达到零误报率,因为 其对于风险的理解是风险必须在外形上呈现出来才被考虑为实际的风险,这种理解方式可以说是别出心裁,从代码安全的角度来说,检测的目的是为了发现问题并及时改正,同时要针对于最关键的问题进行改正,这也是这三款软件都包含TOP X的统计的目的,从这一点上讲,CxSuite的风险报告是非常谨慎的。SCA在以前的使用中发现有一定的误报率,不过换个角度想,误报相比漏报是可以容 忍的,规则越严格,误报率就会相应的上升而漏报率就会相应的下降,源代码检测工具目前均为静态的进行代码的扫描,即所有的检测均是按照“规则”来进行,任 何一款产品都不可能达到真正的零误报、零漏报。所以可以说SCA的规则检查稍显简单,CxSuite和CodeSecure的检查比较谨慎。
而从漏报率上来看,谨慎的查找势必会导致漏报率的提升,这一点上SCA和CodeSecure只说明了低漏报率,而CxSuite内部包含了一种类似于C#称为 CxQL的查询语言,支持使用这种语言进行查询,方便用户进行特定的查找。另两款软件使用的都是规则的方式,其本质上应该是相类似的,这一点上规则似乎更 容易被用户接收,但是CxQL的方式确实增强了用户的操作性。
从结果输出 上来说,三款软件都支持多种输出方式,而作为报告PDF格式可以说是最书面的一种格式。在这一点上,三款软件输出格式略有不同。
SCA报告构成如下:扫描概述、按风险的分类进行详细描述,包括每个风险的发现位置,代码上下文,风险源和风险输出,以及改进方法,各类风险描述之后是按照风险类别 的所有风险的统计和按照风险等级的统计图表。SCA的每种类型的文件生成一个PDF文件,便于用户对于风险严重程度的不同采取不同的策略。
CxSuite 报告构成如下:风险按照不同分类方式的统计图、风险的数据统计情况、风险最高的文件TOP 10、按照类别进行风险详述,包括风险的名称、描述、常见危害、在软件开发各阶段的相应处理方式、详细示例,列举每一个风险的传输路径和相应位置代码。
CodeSecure 报告构成如下:目录、重点精华,包括检测信息、弱点密度规范分布趋势、弱点最多的文件TOP 5,弱点索引,弱点的详细信息,包括弱点的全程跟踪,最后是弱点信息及修改建议、所有的进入点。
三款软件的 报告中以SCA的最有特色,将不同级别的风险分文件显示对于程序员进行修改是极为方便的;CodeSecure的报告最为规范,整个文档包括目录,结构完 整,唯一的不足是将风险的修改建议放在了最后,查阅有些不便;CxSuite的内容可以说是最概要的,只包含了风险的最关键内容,对于程序员来说应该是最 简洁的。
4.
这三款静态源代码扫描工具都有其各自特色,SCA支持的语言多达17种,基本上涵盖了绝大多数的应用,具有相 当广泛的适用性,但同时也使得其价格非常昂贵;CxSuite支持的语言包括常见Web应用的语言,适用范围基本上包括了大部分的应用,其使用独创的语言来自定义规则非常有特色,价格较之SCA有一定的优势;CodeSecure支持的语言较少,不过基本上可以适用于当前大多数的B/S结构应用,它是唯一 的软硬件结合的产品,在免除用户安装步骤的同时将扫描运行于特定设备之上,有助于提高运行速度,也因为包括硬件的缘故,其价格不菲。
SCA极广的适用性使其适用于横跨多种语言的开发和测试人员,CxSuite的较高性价比使其适于基于Web 的开发人员和测试人员,CodeSecure稳定的速度和B/S的独特结构使得Web开发或测试的多人同时使用变得极为方便。
随着应用的安全性越来越受到人们的重视,静态源代码扫描和动态扫描将逐渐融合,未来将会有更多更优秀的源代码扫描工具诞生,让我们拭目以待吧。
附录A 其他静态源代码检测产品
公司 产品 支持语言
art of defence Hypersource JAVA
Coverity Prevent JAVA .NET C/C++
开源 Flawfinder C/C++
Grammatech CodeSonar C/C++
HP DevInspect JAVA
KlocWork Insight JAVA .NET C/C++,C#
Ounce Labs Ounce 6 JAVA .NET
Parasoft JTEST等 JAVA .NET C/C++
SofCheck Inspector for JAVA JAVA
University of Maryland FindBugs JAVA
Veracode SecurityReview JAVA .NET
FindBug PMD/Lint4
什么样的代码叫好代码?
送大家以下java学习资料
简介: 我们每天都与代码打交道,但当被问道什么是好的代码时,很多人可能会先愣一下,然后给出的回答要么比较空泛,要么比较散,没办法简单明了地概括出来。显然,这个问题并没有唯一的标准答案,谁都可以谈论自己的理解,今天谈谈我对于好代码的理解。
我们每天都与代码打交道,但当被问道什么是好的代码时,很多人可能会先愣一下,然后给出的回答要么比较空泛,要么比较散,没办法简单明了地概括出来。显然,这个问题并没有唯一的标准答案,谁都可以谈论自己的理解,今天谈谈我对于好代码的理解。
一句话概括衡量代码质量的唯一有效标准:WTF/min —— Robert C. Martin
Bob大叔对于好代码的理解非常有趣,对我也有很大的启发。我们编写的代码,除了用于机器执行产生我们预期的效果以外,更多的时候是给人读的,这个读代码的可能是后来的维护人员,更多时候是一段时间后的作者本人。
我敢打赌每个人都遇到过这样的情况:过几周或者几个月之后,再看到自己写的代码,感觉一团糟,不禁怀疑人生。
我们自己写的代码,一段时间后自己看尚且如此,更别提拿给别人看了。
任何一个傻瓜都能写出计算机可以理解的代码。唯有写出人类容易理解的代码,才是优秀的程序员。—— Martin Fowler
所以,谈到好代码,首先跳入自己脑子里的一个词就是:整洁。
好的代码一定是整洁的,给阅读的人一种如沐春风,赏心悦目的感觉。
整洁的代码如同优美的散文。—— Grady Booch
好代码的特性很难给好的代码下一个定义,相信很多人跟我一样不会认为整洁的代码就一定是好代码,但好代码一定是整洁的,整洁是好代码的必要条件。整洁的代码一定是高内聚低耦合的,也一定是可读性强、易维护的。
高内聚低耦合
高内聚低耦合几乎是每个程序员员都会挂在嘴边的,但这个词太过于宽泛,太过于正确,所以聪明的编程人员们提出了若干面向对象设计原则来衡量代码的优劣:
开闭原则 OCP (The Open-Close Principle)单一职责原则 SRP (Single Responsibility Principle)依赖倒置原则 DIP (Dependence Inversion Principle)最少知识原则 LKP (Least Knowledge Principle)) / 迪米特法则 (Law Of Demeter)
里氏替换原则 LSP (Liskov Substitution Principle)接口隔离原则 ISP (Interface Segregation Principle)组合/聚合复用原则 CARP (Composite/Aggregate Reuse Principle)这些原则想必大家都很熟悉了,是我们编写代码时的指导方针,按照这些原则开发的代码具有高内聚低耦合的特性。换句话说,我们可以用这些原则来衡量代码的优劣。
但这些原则并不是死板的教条,我们也经常会因为其他的权衡(例如可读性、复杂度等)违背或者放弃一些原则。比如子类拥有特性的方法时,我们很可能打破里氏替换原则。再比如,单一职责原则跟接口隔离原则有时候是冲突的,我们通常会舍弃接口隔离原则,保持单一职责。只要打破原则的理由足够充分,也并不见得是坏的代码。
可读性
代码只要具有了高内聚和低耦合就足够好了吗?并不见得,我认为代码还必须是易读的。好的代码无论是风格、结构还是设计上都应该是可读性很强的。可以从以下几个方面考虑整洁代码,提高可读性。
命名
大到项目名、包名、类名,小到方法名、变量名、参数名,甚至是一个临时变量的名称,其命名都是很严肃的事,好的名字需要斟酌。
► 名副其实
好的名称一定是名副其实的,不需要注释解释即可明白其含义的。
/** * 创建后的天数 **/ int d; int daysSinceCreation;
后者比前者的命名要好很多,阅读者一下子就明白了变量的意思。
► 容易区分
我们很容易就会写下非常相近的方法名,仅从名称无法区分两者到底有啥区别(eg. getAccount()与getAccountInfo()),这样在调用时也很难抉择要用哪个,需要去看实现的代码才能确定。
► 可读的
名称一定是可读的,易读的,最好不要用自创的缩写,或者中英文混写。
► 足够短
名称当然不是越长越好,应该在足够表达其含义的情况下越短越好。
格式
良好的代码格式也是提高可读性非常重要的一环,分为垂直格式和水平格式。
► 垂直格式
通常一行只写一个表达式或者子句。一组代码代表一个完整的思路,不同组的代码中间用空行间隔。
public class Demo { @Resource private List<Handler> handlerList; private Map<TypeEnum, Handler> handlerMap = new ConcurrentHashMap<>(); @PostConstruct private void init() { if (!CollectionUtils.isEmpty(handlerList)) { for (Handler handler : handlerList) { handlerMap.put(handler.getType(), handler); } } } publicResult<Map<String, Object>> query(Long id, TypeEnum typeEnum) { Handler handler = handlerMap.get(typeEnum); if (null == handler) { return Result.returnFailed(ErrorCode.CAN_NOT_HANDLE); } return handler.query(id); } }
如果去掉了空行,可读性大大降低。
public class Demo { @Resource private List<Handler> handlerList; private Map<TypeEnum, Handler> handlerMap = new ConcurrentHashMap<>(); @PostConstruct private void init() { if (!CollectionUtils.isEmpty(handlerList)) { for (Handler handler : handlerList) { handlerMap.put(handler.getType(), handler); } } } public Result<Map<String, Object>> query(Long id, TypeEnum typeEnum) { Handler handler = handlerMap.get(typeEnum); if (null == handler) { return Result.returnFailed(ErrorCode.CAN_NOT_HANDLE); } return handler.query(id); } }
类静态变量、实体变量应定义在类的顶部。类内方法定义顺序依次是:公有方法或保护方法 > 私有方法 > getter/setter 方法。
► 水平格式
要有适当的缩进和空格。
► 团队统一
通常,同一个团队的风格尽量保持一致。集团对于 Java 开发进行了非常详细的规范。(可点击下方阅读原文,了解更多内容)
类与函数
► 类和函数应短小,更短小
类和函数都不应该过长(集团要求函数长度最多不能超过 80 行),过长的函数可读性一定差,往往也包含了大量重复的代码。
► 函数只做一件事(同一层次的事)
同一个函数的每条执行语句应该是统一层次的抽象。例如,我们经常会写一个函数需要给某个 DTO 赋值,然后再调用接口,接着返回结果。那么这个函数应该包含三步:DTO 赋值,调用接口,处理结果。如果函数中还包含了 DTO 赋值的具体操作,那么说明此函数的执行语句并不是在同一层次的抽象。
► 参数越少越好
参数越多的函数,调用时越麻烦。尽量保持参数数量足够少,最好是没有。
注释
► 别给糟糕的代码加注释,重构他
注释不能美化糟糕的代码。当企图使用注释前,先考虑是否可以通过调整结构,命名等操作,消除写注释的必要,往往这样做之后注释就多余了。
► 好的注释提供信息、表达意图、阐释、警告
我们经常遇到这样的情况:注释写的代码执行逻辑与实际代码的逻辑并不符合。大多数时候都是因为代码变化了,而注释并没有跟进变化。所以,注释最好提供一些代码没有的额外信息,展示自己的设计意图,而不是写具体如何实现。
► 删除掉注释的代码
git等版本控制已经帮我们记录了代码的变更历史,没必要继续留着过时的代码,注释的代码也会对阅读等造成干扰。
错误处理
► 错误处理很重要,但他不能搞乱代码逻辑
错误处理应该集中在同一层处理,并且错误处理的函数最好不包含其他的业务逻辑代码,只需要处理错误信息即可。
► 抛出异常时提供足够多的环境和说明,方便排查问题
异常抛出时最好将执行的类名,关键数据,环境信息等均抛出,此时自定义的异常类就派上用场了,通过统一的一层处理异常,可以方便快速地定位到问题。
► 特例模型可消除异常控制或者 null 判断
大多数的异常都是来源于NPE,有时候这个可以通过 Null Object 来消除掉。
► 尽量不要返回 null ,不要传 null 参数
不返回 null 和不传 null 也是为了尽量降低 NPE 的可能性。
如何判断不是好的代码讨论了好代码的必要条件,我们再来看看好代码的否定条件:什么不是好的代码。Kent Beck 使用味道来形容重构的时机,我认为当代码有坏味道的时候,也代表了其并不是好的代码。
代码的坏味道
► 重复
重复可能是软件中一切邪恶的根源。—— Robert C.Martin
Martin Fowler 也认为坏味道中首当其冲的就是重复代码。
很多时候,当我们消除了重复代码之后,发现代码就已经比原来整洁多了。
► 函数过长、类过大、参数过长
过长的函数解释能力、共享能力、选择能力都较差,也不易维护。
过大的类代表了类做了很多事情,也常常有过多的重复代码。
参数过长,不易理解,调用时也容易出错。
► 发散式变化、霰弹式修改、依恋情结
如果一个类不是单一职责的,则不同的变化可能都需要修改这个类,说明存在发散式变化,应考虑将不同的变化分离开。
如果某个变化需要修改多个类的方法,则说明存在霰弹式修改,应考虑将这些需要修改的方法放入同一个类。
如果函数对于某个类的兴趣高于了自己所处的类,说明存在依恋情结,应考虑将函数转移到他应有的类中。
► 数据泥团
有时候会发现三四个相同的字段,在多个类和函数中均出现,这时候说明有必要给这一组字段建立一个类,将其封装起来。
► 过多的 if...else 或者使用 switch
过多的 if...else 或者 switch ,都应该考虑用多态来替换掉。甚至有些人认为除个别情况外,代码中就不应该存在 if...else 。
本文首先一句话概括了我认为的好代码的必要条件:整洁,接着具体分析了整洁代码的特点,又分析了好代码的否定条件:什么样的代码不是好的代码。仅是本人的一些见解,希望对各位以后的编程有些许的帮助。
我认为仅仅编写出可运行的代码是远远不够的,还要时刻注意代码的整洁度,留下一些漂亮的代码,希望写的代码都能保留并运行 102 年!
后续增加一些实际的例子来说明好的和坏的代码;分享下如何编写整洁代码——自己认为有用的一些编程技巧。
开发独立EXE桌面应用程序?
摘要:在我认识的所有程序员里,每个人几乎都有专属于自己的常用工具和相关资源,今天给大家奉上数十个程序员硬核工具,我相信这里总有一款工具是属于你的!
程序员生产力工具大全如下:
1. Idea-Intellij IDEA (java 编程语言 开发的集成环境)
业界排名第一的java开发工具,非常非常好用,如果还在用eclipse的朋友,赶紧来体验一把,你一定会爱上她的。
2. SecureCRT (SSH终端仿真程序)
SecureCRT是一款终端仿真程序,支持SSH(SSH1和SSH2)以及Telnet和rlogin协议。SecureCRT用于连接运行包括Windows、UNIX和VMS在内的远程系统的理想工具。
3. Termius (全平台的远程终端)
termius是一款全平台的远程终端,Termius不仅涵盖了Windows、Linux、OSX,还变态得支持Android和iOS(以后在地铁、公交上都可以随时拿出手机来排查线上问题啦,还真是广大程序员的福音呢。
4. Google Chrome (谷歌浏览器)
Google Chrome是一款由Google公司开发的网页浏览器,该浏览器基于其他开源软件撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。
5. iTerm (为Mac OS X编写的终端仿真程序)
iTerm是一个为Mac OS X编写的,功能齐全的终端仿真程序;目标是在为用户提供OS X下最佳的命令行体验;字母i代表了本地苹果的外观和风格的程序界面,并把重点放在完整的国际支持; 它合并由两个项目, CTerminal和TerminalX ,而这两者都是基于JTerminal项目;该软件非常有实用和易用性。
6. Visual Studio Code (简称“VS Code”,编写现代Web和云应用的跨平台源代码编辑器)
重新定义和优化了代码编辑,以便生成和调试新式 Web 应用程序和云应用程序。也是著名的文本编辑器,它是轻量级的,vSCode的一大特点就是你可以通过多种方式来调整设置,而且Vim可以和VScode集成在一起,它还带有一个集成终端,可用的扩展太多,使开发人员的工作变得更加轻松。我最喜欢的一些扩展是AWS Toolkit, ESLint,Live Server, Live Share, Prettier-代码格式化程序,YAML,Live Sass编译器,Docker等。
7. VMware Fusion & VMware workstation (为计算机开发的虚拟机管理程序)
是在计算机上无缝运行 Windows 的最佳方式,可确保 Windows 应用程序在计算机上实现无缝运行可以在基于 Intel 的计算机上无缝运行 Windows、Linux 以及其他 PC等多个操作系统,进而构建、测试或演示软件。
8. Navicat Premium (数据库管理工具)
Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle 及 PostgreSQL 资料库,让管理不同类型的资料库更加的方便。
9. Postman (api调试工具)
简单来说,四个词,简单、实用、大方、美观!postman这款网页调试工具的windows客户端,功能强大的HTTP调试与模拟插件。使用Postman可以进行API开发、请求、调试,除了它,还可以使用lnsomnia和Insomnia Designer作为API文档。
10. RedisDesktopManager (一款可视化 redis管理工具 )
Redis Desktop Manager是一款简单快速、跨平台的Redis桌面管理工具,也被称作Redis可视化工具,Redis Desktop Manager官方版是一款开源软件,支持通过SSH Tunnel连接,支持windows、mac等多平台。
11. Dash (基于MAC的 API文档浏览器和代码片段管理器)
“开发者不可或缺的杰作。”Dash 可让您的 Mac 即时离线访问 200 多个 API 文档集。立刻搜索离线文件集200层+的API ,100+备忘单和 href="">更多 功能。您甚至可以"">生成自己的文档集 或 href="">请求 包含href="">文档集 。
12. Fiddler & Wireshark (http抓包工具)
Fiddler和Wireshark都是进行抓包的工具:所谓抓包就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。作为开发者,经常想调试一下http请求发送的数据的详情,那么可以使用这2款软件。用抓包工具wireshark的人相对来说更多一些。
13. HBuilder X (HTML5的Web开发工具)
当前最快的HTML开发工具,强大的代码助手帮你快速完成开发,最全的语法库和浏览器兼容性数据让浏览器碎片化不再头痛。作为HBuilder下一代的全新编辑器,HBuilderX被定位为ide和编辑器的完美结合,除了对某种语言的语法分析、提示、转到定义、调试,同时加强了对通用文本处理能力,界面更加清爽,拥有比上一代更加有效的快捷键体系。
14. MobaXterm (远程终端控制软件,集串口,SSH远程登录和FTP传输三合一的工具)
多功能终端MobaXterm Professional Edition 是一款豪华、全功能的终端软件。MobaXterm带来了所有必要的Unix命令到Windows桌面,在开箱单便携式exe文件。MobaXterm允许您启动远程会话。远程shell,MobaXterm远比Putty好用,您可以选择创建SSH,远程登录,Rlogin,RDP,VNC,XDMCP,FTP,SFTP或串行会话。
15. Sublime Text (跨平台代码编辑器)
http://www.sublimetext.cn/
Sublime Text 是一款用于代码、标记和散文的精致文本编辑器。Sublime Text 中文网致力于为广大国内开发者提供详尽的中文文档、使用说明等,助力开发者快速掌握这个编辑器。
16.webstorm (专业的HTML编辑工具)
web开发的必备的一款开发神器,比如写js、页面、css,那么这款软件用起来非常顺手。此软件和idea出自于同一家公司,这家公司做了很多异常好用的软件,基本上你需要的各种开发相关的IDE,这家公司都生产。可以说是“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”。新版对JavaScript,TypeScript和CSS支持更好,改进了Vue.js的体验,并为Jest集成增加了新功能。
17.Xshell (功能强大的终端模拟器)
linux原创控制软件,完全免费且非常稳定的 SSH 客户端 ,支持多种远程协议,提供了很多特色与高级功能,简体中文界面也让你轻松管理远程服务器。 Xshell 的 Screen 会话不闪屏,而且可以回滚;Script 的执行顺序可以调整;可以同时发送指令到多个 session;支持布局切换等。
18. SwitchHosts (修改Hosts文件的工具)
这是用于在多个HOSTS之间进行切换。可在公用hosts文件 、当前系统hosts、本地方案和在线方案间进行切换。作为一名开发人员,经常需要修改本地host,你还是通过修改host文件来操作的么?那样太慢了,这里建议大家使用switchhosts这款软件,可以快速修改本地host,非常好用。
其他工具:
1. CodeIf(智能命名) : https://unbug.github.io/codelf
大部分开发者都或多或少遇到过变量命名的烦恼,如果命名不规范,不仅会影响开发的效率,而且对后面维护的同学来说也是一个不小的挑战,因为他要去揣摩你这个变量的含义。随着项目越来越复杂,变量和函数数量越来越多,虽然每个编程语言都有各种命名规范,但是也不能解决所有的问题。
“计算机科学里两件最难的事:缓存失效和命名。” Codelf通过搜索在线开源平台Github, Bitbucket, Google Code, Codeplex, Sourceforge, Fedora Project的项目源码,帮开发者从中找出已有的匹配关键字的变量名,从而帮助为变量名苦恼的开发者命名。这个搜索服务支持直接搜索中文。
同时可以在自己用的编辑器里安装插件,支持 VS Code、Atom、Sublime Text 和 Chrome。
2. DocsChina-印记中文 : https://www.docschina.org
这是一个前端中文文档合集,进入网站可以看到开发中经常使用的前端中文文档。如果你的英文实在不怎么好,还在为找中文文档而烦恼,这里将是你非常好的选择。记得放到自己的浏览器收藏夹里哦!
3. any-rule(正则表达大全): http://github.com/any86/any-rule
any-rule 维护了一个常用正则表达式合集,并且本身是一个支持 Web/VS Code/idea/Alfred Workflow 多平台的正则表达式工具。
4. tool.lu(在线工具): https://tool.lu
程序员总是有很多小工具要使用,比如图片、Base64编码、Markdown编辑器时间戳转换,进制转换等,在线运行各种语言代码。这个网站包含了太多程序员需要用到的小工具了。比如你想运行点JAVA代码,又不想麻烦的在系统中安装JAVA环境,可以使用里边的在线运行代码工具,然后选择JAVA,写点JAVA代码就可以直接运行了。
5. Baomitu(前端静态源库): https://cdn.baomitu.com
这个静态资源库是支持HTTP/2的CDN服务,有了它,如果你是自己的小型项目或者是做测试就不用下载任何的代码库,直接粘贴地址过来用就可以,因为是国内的CDN库,速度还非常的快。
6. Typora-Markdown(编写工具):https://www.typora.io
一款实用的 Markdown 编写工具,所见即所得,用Markdown编写文章是一个程序员的标准配置,也就是标配。现在有很多在线工具都支持Markdown,什么有道云笔记、雀语,、印象笔记等。这种简单的界面,沉浸式的编写,清晰的大纲,它就像一件称手的兵器,让你一旦拥有就爱不释手。
7. Snipaste (简单便捷的截图软件):https://zh.snipaste.com/download.html
一款免费的桌面截图软件,功能强大,使用方便,支持任何屏幕位置截图,支持窗口截图,支持快捷方式截图。您可通过截取贴图,使两张图合并为一张图,还能调整截图文字图像等等,是一款非常强大的贴图软件,喜欢此款贴图软件的朋友不要错过。
8. Captura (最好用的开源录屏、gif动态图片制作工具)
官网:https://captura.updatestar.com/ github:https://github.com/MathewSachin/Captura
通过这款工具可以帮助你轻松录制各种视频。支持全屏录制、区域录制两种方式,全屏录制可以录制全部的电脑屏幕,将电脑屏幕上所有的动态都录制下来,该软件还拥有视频编解码器,可以对视频进行解码,支持mp4、avi、GIF、webm等格式,可以满足一般的解码需要。还支持屏幕截图、剪贴板,简单的图像编辑等功能,是一款非常好用的屏幕录像工具。
9. 向日葵 (远程控制软件): https://sunlogin.oray.com/
向日葵远程控制是一款提供远程控制服务的软件。向日葵远程控制支持主流操作系统Windows、Linux、Mac、Android、iOS跨平台协同操作,在任何可连入互联网的地点,都可以轻松访问和控制安装了向日葵远程控制客户端的设备。整个远控过程,可通过浏览器直接进行,无需再安装软件。
10. Everything (本地文件检索工具):http://www.voidtools.com/support/everything/
由voidef="">tools 开发的一款文件搜索工具,这款软件是基于名称实时定位文件和目录。Everthing功能强大,体积小巧,第一次安装使用时会建立一个索引数据库,将所有文件和文件夹的名称导入其中,后续使用能够以极快的速度快速搜索,查找到你所需要的文件。
11. StarUML (UML画图工具)
画uml图的一款神器,类图、时序图、流程图、状态图等等,都可以用这款工具轻松应对。
12. uTools (生产力工具集):https://u.tools/
一个极简、插件化、跨平台的现代化桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。这个工具,我只能说他是一款神奇,太牛逼,这款工具中汇集了很多好用的工具,可以通过这款工具秒开电脑上的各种软件。
搜索资源网站工具:
1.Bing
Bing 国际版:https://cn.bing.com/ 感觉比某度要好用多了。
2.DuckDuckGo
DuckDuckGo:https://duckduckgo.com/ 从官网的介绍来看这个搜索引擎不收集用户信息,而且没有广告。
3.Stack Overflow
Stack Overflow:https://stackoverflow.com/ 我们如果常用 Google,很多技术问题的答案就在这个网站上,如果你无法使用 Google 可以在这个网站上直接检索就好了。
4.Gitlogs
Gitlogs:https://www.gitlogs.com/ Gitlogs 是专门针对 GitHub 项目的搜索引擎,我们通过他可以快速找到想要项目。
5.jiumo search
文档搜索引擎 jiumo search 鸠摩搜书:https://www.jiumodiary.com/ 可以用来找一些技术文档手册,很多在百度网盘里。
6.Ebooke
Ebooke:https://ebookee.org/ Ebookee 是一个基于互联网并提供免费电子图书下载的搜索引擎网站。
7.Iconfinder
图标搜索:https://www.iconfinder.com/ 用来查找 logo 图片。
8.TinEye
TinEye:https://www.tineye.com 用图片来检索图片,我们可以上传图片或输入图片的 URL 来检索。
9.SemanticScholar
SemanticScholar:https://www.semanticscholar.org/ SemanticScholar 是一个免费学术搜索引擎,其检索结果来自于期刊、学术会议资料或者是学术机构的文献。
10.LibreStock
LibreStock:https://librestock.com/ LibreStock 上可以检索一些优质的高清图片。
11.CC Search
CC Search:https://ccsearch.creativecommons.org/ CC Search 上搜索到的图片资源都是无版权的,我们可以免费的使用。
12.Pexels
Pexels:https://www.pexels.com/ 高质量的图片网站,可以免费使用。
13.Unsplash
Unsplash:https://unsplash.com/ 免费高清素材网站。
14.The App Store
The App Store:https://theappstore.org/ The App Store 是一个针对苹果手机、iPad、Mac 设备的应用搜索工具。
在线画图工具:
• 在线画图工具ProcessOn:https://www.processon.com/
• 在线画图工具draw.io:https://app.diagrams.net/
• 在线思维导图工具:http://www.mindline.cn/webapp
• PlantUML在线编辑器:http://haha98k.com/
在线开发辅助工具:
日常开发经常会用到一些辅助工具我为8大类,包括:编解码工具、转换工具、正则工具、编译工具、网络工具、格式化工具、可视化工具、在线生成器、以及其他工具等等。 具体列表如下:
在线编码工具:
• 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/
• 人民币大小写转换工具:http://www.fly63.com/tool/renmingbi/
正则表达式工具:
• 正则表达式调试工具:https://regexr.com/
• 正则表达式可视化工具:https://jex.im/regulex/
网络工具:
• IP地址归属地查询:https://www.ip138.com/
• IP地址查询:https://www.ipip.net/ip.html
• HTTP在线接口测试工具:http://www.fly63.com/php/http/
在线编译运行工具:
• C#在线编译运行:https://rextester.com/
• C/C++在线编译调试:https://www.onlinegdb.com/
• 在线编译工具套装:https://c.runoob.com/
可视化/格式化工具:
• 在线前端编辑器: https://codepen.io/
• 在线数据可视化:https://flourish.studio/
• 在线JSON解析:http://www.json.cn/
• 在线CSS代码可视化工具:https://enjoycss.com/
• XML格式化工具:https://www.zxgj.cn/g/xmlformat
• 在线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/
在线生成器:
UUID在线生成器:https://www.zxgj.cn/g/uuid随机数生成器:https://www.zxgj.cn/g/suijishu其他常用工具:
在线Nginx配置工具:https://nginxconfig.io/在线对比工具:http://www.fly63.com/tool/textdiff/在线Chrome浏览器插件:https://www.crx4chrome.com/在线接口文档管理工具:http://www.docway.net/在线素材工具:
如果你写文章,或者做视频,那就一定少不了要找素材,包括各种图片、背景、emoji表情、表情包、壁纸、视频、gif图等等。
• 免费透明背景图片素材:http://pngimg.com/
• Emoji表情搜索:https://emoji.svend.cc/
• Emoji表情包下载:https://emojiisland.com/
• open source icons:https://feathericons.com/
• 表情包在线网站:https://fabiaoqing.com/
• 免费PNG图片库:https://pluspng.com/
• ICON图标在线下载:https://www.iconfinder.com/
• 极简壁纸:https://bz.zzzmh.cn/
• Wallpaper Abyss壁纸:https://wall.alphacoders.com
• Pixabay图片素材库:https://pixabay.com/zh/
• Unsplash图片素材库:https://unsplash.com
• Pexels图片素材库:http://www.pexels.com
• NASA图片视频素材库:https://images.nasa.gov
设计制作类工具:
对于那些文章创作者和视频创作者而言,设计封面,做海报,设计LOGO,图片美化等等基本也是刚需。
这样大概率日常会用到一些简易好上手的在线设计制作类工具,比如在线P图、音/视频轻量化剪辑、logo制作、海报设计制作、图片美化、在线图片转换或生成等等。
• 在线PS:https://www.uupoop.com/
• 在线音频剪辑:https://www.weixinsyt.com/
• 在线视频剪辑:https://www.kapwing.com/
• 免费logo在线制作:http://www.uugai.com/
• 艺术字体在线生成:https://www.qt86.com/
• 在线表格转换工具: https://tableconvert.com/
• 在线海报设计工具: https://www.designcap.com/
• 图片智能放大工具:https://bigjpg.com/
• 二维码美化器:https://mh.cli.im/
• 在线代码截图工具:https://carbon.now.sh/
• 在线抠图工具:https://www.remove.bg/zh
• ICO图标在线生成:http://www.fly63.com/php/ico/
• SVG转PNG工具:http://www.fly63.com/tool/svg2img/
• 视频转GIF工具:http://www.fly63.com/tool/giftxt/
• 二维码在线生成器:http://www.fly63.com/tool/ewm/
• 二维码在线解码:http://www.fly63.com/php/decoder/
写辅助工具:
写文章的过程中经常会用到和写作相关的辅助工具,比方说:字数统计工具、Markdown格式的文章排版工具、图床网站、代码截图工具等等,所以下面这些在线工具就能很好地满足我的需求。
• 在线字数统计:https://www.eteste.com/
• mdnice markdown排版工具:https://mdnice.com/
• md2all markdown排版工具:http://md.aclickall.com/
• 在线图床神器:https://picx.xpoet.cn/
• 在线免费图床:https://sm.ms/
• 图壳图床:https://imgkr.com/
• 在线代码截图工具:https://carbon.now.sh/
• 在线短链接工具:https://urlify.cn/
• 在线文本替换:http://www.fly63.com/tool/textreplace/
在线办公工具:
部分在线工具主要用来处理一些和文档以及文稿相关的事情,经常用到的比如:在线的全套pdf处理和转换工具、各种各样多媒体文件间的相互转换工具、在线识别工具、在线压缩工具等等。
• pdf在线处理工具1:https://smallpdf.com/cn/pdf-tools
• pdf在线处理工具2:https://tools.pdf24.org/zh/
• pdf转word在线工具:https://www.pdftoword.com/
• 在线多媒体转换器合集:https://cn.office-converter.com/
• 在线文字识别工具:https://ocr.wdku.net/
• 在线文件压缩工具:https://docsmall.com/
文档笔记工具:
好记性不如烂笔头,作为一个学习者,我觉得记笔记是必不可少的步骤。当然现在基本都做电子笔记和电子文档比较多。 现如今各式各样优秀的文档工具和笔记软件鳞次栉比,好用的也有很多,整理成如下列表,这东西各有长处,使用哪个最合意还得看个人习惯和需求了。
• 印象笔记:https://www.yinxiang.com/
• 有道笔记:https://note.youdao.com/
• OneNote:https://www.onenote.com/
• 幕布:https://mubu.com/
• 为知笔记:https://www.wiz.cn/
• 石墨文档:https://shimo.im/
• Simplenote:https://simplenote.com/
• 语雀:https://www.yuque.com/
编程学习网:
• 哔哩哔哩:https://www.bilibili.com/
• C语言网:https://www.dotcpp.com/
• cppreference:http://zh.cppreference.com/
• 中国大学MOOC:https://www.icourse163.org/
• 牛客网:www.nowcoder.com
• 网易公开课:open.163.com
• CodeGym:https://codegym.cc/
• BeginnersBook:https://beginnersbook.com/
• JavaSED:http://www.javased.com/
• codecademy:https://www.codecademy.com/
• Coursera:https://www.coursera.org/
• StackOverFlow:https://stackoverflow.com/
• LeetCode:https://leetcode-cn.com/
• LintCode:https://www.lintcode.com/
在线教程文档:
这部分主要集中了在做开发过程中随手参考所要用到的几乎所有在线教程和官方文档,有中文版文档的基本都优先列出来了,但更多时候是英文的官方文档。
• Git中文教程:https://git-scm.com/book/zh/v2
• SVN中文手册:http://svnbook.red-bean.com/nightly/zh/index.html
• jQuery API中文文档:https://jquery.cuishifeng.cn/
• Nginx中文文档:https://www.nginx.cn/doc/index.html
• Kafka中文文档:https://kafka.apachecn.org/
• Mybatis中文文档:https://mybatis.org/mybatis-3/zh/index.html
• 微信小程序官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/
• Nodejs中文教程文档:http://nodejs.cn/learn
• Apache Web Server文档:http://httpd.apache.org/docs/
• Spring文档中文版:https://www.springcloud.cc/spring-reference.html
• Golang标准库文档中文版:https://studygolang.com/pkgdoc
• Java 8官方文档:https://docs.oracle.com/javase/8/docs/api/index.html
• Maven官方文档:http://maven.apache.org/guides/
• Tomcat 8官方文档:http://tomcat.apache.org/tomcat-8.0-doc/index.html
• Spring Boot官方文档:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
• RabbitMQ官方文档:https://www.rabbitmq.com/documentation.html
• RocketMQ官方文档:http://rocketmq.apache.org/docs/quick-start/
• Dubbo中文文档:https://dubbo.apache.org/zh/docs/
• Netty官方文档:https://netty.io/wiki/index.html
• Elasticsearch官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
• Spring Cloud官方文档:https://spring.io/projects/spring-cloud
• Docker官方文档:https://docs.docker.com/get-started/
• kubernetes中文文档:https://kubernetes.io/zh/docs/home/
• thymeleaf官方文档:https://www.thymeleaf.org/documentation.html
• Vue.js中文文档:https://cn.vuejs.org/v2/guide/
• React.js官方文档:https://reactjs.org/docs/getting-started.html
• Jenkins中文文档:https://www.jenkins.io/zh/doc/
华为云平台:
高效易用的低代码aPaaS平台-应用魔方AppCube:https://www.huaweicloud.com/product/appcube.html集华为研发实践、前沿研发理念、先进研发工具为一体的软件开发平台-软件开发平台 DevCloud:https://www.huaweicloud.com/devcloud/以上内容分享自华为云社区《吐血整理:程序员都在用什么工具?》,作者: 考过IE励志当攻城狮 ,部分内容整理自互联网~