素色流年783 发表于 2020-12-28 10:01

有什么工具能帮助程序员写代码(开发)?

有什么工具能帮助程序员写代码(开发)?

银鲜目江探 发表于 2020-12-28 10:02

本文新手向,但也有老手也许能用上的插件。本回答试图一文帮你网罗各领域的开发工具。
我看到题目第一反应,不就是各种IDE吗?但毕竟我从高中开始写代码也有十几个年头了,我甚至最还在DOS系统里写过pascal,纯手动输入代码。这十几年可以说是见证了各种IDE的兴起和衰退。所以打算根据这些年IDE的变更,总结下当下过去好用和当下好用的IDE。当然,总结IDE是不够的。结合不同的开发需求,推荐一些好用的插件。
0. 程序员开发概况

虽然统称程序员,但你要知道,程序员和程序员之间的工作差别是非常大的,在某个领域非常强的程序员,可能换个领域,还得跟新人学习,当然,一般情况下,在领域A强的程序员,学习能力也是很强的,虽然技术不同,但写代码的“道”是相通的,去到领域B,会比普通程序员上手速度快很多。
那么程序员开发的领域,惯用的IDE和插件是不一样的。如果要把程序员分个类,大概是这样的(仅为列举程序员种类多样性,未能穷尽):
由于不同业务的程序员有着不同需求,所以对IDE和插件需求不一样。例如客户端的需要可视化,服务器的需要方面单元测试和压力测试,游戏开发需要显示帧速率等性能。下面的讲述可能会有点交叉,但我尽量「IDE/插件->适用群体」的思路来展开叙述,在介绍IDE或工具时,也会搭配介绍一些适合此IDE的好用的插件。
1. 版本控制工具

【适用对象:全体程序员】
我其实有点犹豫是否要介绍得这么详细,毕竟都点进这个问题来了,说明读者对程序员开发流程至少是有一知半解的。相信90%的人都了解版本控制。但为了照顾新手,也为了使得这个回答覆盖到每个角落,还是介绍下吧。
所谓版本控制,就是能对你每次提交的代码更改进行记录,你确定你的代码写完了,可以提交一次记录,万一你发现你的代码改坏了,你也可以从之前的记录恢复。
业界常用的是版本控制工具git和svn。
1.1 SVN(全称Subversion)

之所以首先介绍SVN,是为了突出git的好处(哈哈哈哈哈)。但SVN并没有消亡,我在2013年-2016年做游戏开发时,几家公司都在用SVN。主要是为了流程统一,因为美术也是用SVN来管理美术资源,美术可不会用也git这种分布式系统,而且也不适用。
SVN好处就是简单易用。毕竟集中式。添加提交涉及的步骤要少得多,因为没有任何拉/推操作。
但一个很明显的缺点就是不能支持离线操作。例如你写完了一个功能,发现断网了,提交不了版本。你此时继续改其他代码,可能会破坏你完成的工作。不改嘛,难道干等着吗?这种问题在git就不存在了
1.2 Git

git是一个分布式版本控制软件。前面说到svn不支持离线操作,在git中就不存在这个问题了,你可以在你本地保存n个版本,然后git push到远程仓库。
关于远程仓库,有不同的选择,例如
github(传说中的大型同性交友网站)gitlab自建git服务器。


2. 基于IntelliJ IDEA的各种IDE

【适用对象:非常广泛】
IntelliJ IDEA由JetBrains(简称.....没错和你想的一样)软件公司开发集成开发环境工具软件,这个公司还是强,来看看这一系列IDE:
其UI长这样,非常的顺手。
基于IntelliJ IDEA的各种IDE也是目前最流行的IDE,应用范围遍布Python开发,Android开发,Java开发,web开发等多个领域。这里就不全部介绍了,你看上图就知道他们是干啥的了。这里简单介绍两个:
2.1 PyCharm

【适用对象:Python程序员】
PyCharm的图标长这样:
PyCharm 是一款功能强大的Python 编辑器,具有跨平台性,可以帮助用户在使用Python语言开发时提高其效率,具有调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等特性。
2.2 Android Studio

【适用对象:Android程序员】
和前面一样,由于是基于IntelliJ IDEA的,调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等特性也是有的。当然,支持可视化UI那是必须的。
图源官网
2.3 基于IntelliJ IDEA的各种IDE的好用插件

2.3.1 Rainbow Brackets
写复杂的条件时,嵌套括号让程序员感到痛苦,每次都要手数括号以确定代码无误。
而Rainbow Brackets就很好的解决这个问题。安装也是很简单,例如我用PyCharm,可以在Plguins里直接搜到下载安装。
当然,括号问题其实是代码规范问题,但对于那些需要写复杂公式的人来说,有彩虹括号,那公式就好看多了。例如我这条很长很多括号的公司,如果没有彩虹括号,那真的看起来够头疼的。


2.3.2 CodeGlance
这个功能其实Sublime(等下会介绍)或Xcode(等下会介绍)相似,这个插件可以你的编辑器中嵌入了代码缩略图。
图源:https://plugins.jetbrains.com/plugin/7275-codeglance


2.3.3 Codota
这款插件是真正的「帮助程序员写代码」。Codota是一个基于AI的代码补全插件,不同于普通的代码补全,这个插件使用机器学习数百万个代码段(Java,Javascript,Python等),根据上下文建议补全代码。官方demo如下图
图源:https://plugins.jetbrains.com/plugin/7638-codota-ai-autocomplete-for-java-and-javascript


3. 基于Eclipse的IDE

【适用对象:非常广泛】
本来不想说这节的,但说到了IntelliJ IDEA,就难免想起曾经的王者Eclipse。我读书时最常用的就是eclipse了,现在越来越少人用了


早起搞Android开发的都用过Eclipse,eclipse还是比较经典的,在Java IDE领域称霸多年(不过IDEA的用户体验更棒)。Eclipse和IntelliJ IDEA的定位很类似,都是做一个大而全的IDE。基于eclipse的IDE有:
Eclipse IDE for C/C++ DevelopersEclipse IDE for Java and DSL DevelopersEclipse IDE for Java DevelopersEclipse IDE for JavaScript and Web DevelopersEclipse IDE for PHP Developers......
这里就不继续列举了,反正还是挺多的。
4. Xcode

【适用对象:iOS和macOS软件程序员】
图标长个锤子样,这里就不发链接了,因为这个软件你需要用mac电脑去App Store下载


5. Visual Studio

适用对象:开发Windows应用和用Unity的程序员】
我最后一次用VS,已经是2016年的事情了。VS是在Windows下的功能最强大的IDE之一。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。
我之前用VS是搭配Unity(下面会介绍)来做游戏开发,VS的界面非常舒适,几年前的UI即使放到2020年也是非常的符合用户习惯。VS最新的版本是2019,从官网的demo gif可以看出,比起之前的版本,新的VS更加智能化。
说到VS,很多程序员会想起另一个IDE:VS code。马上会讲到。
6.其他轻量级IDE

前面说到的那些IDE,不得不说,太重量级了。功能大而全的坏处就是安装包大,启动时间长。有的程序员会更倾向轻量级的IDE,然后通过插件自己搭配一个适合自己的工具。
6.1 Visual Studio Code(简称VS Code)

【适用对象:非常广泛,推荐有点经验的程序员使用】
这是微软2015年发布的,历史还挺短。是微软第一次向开发者们提供了一款真正的跨平台编辑器。虽然都叫「Visual Studio」,但VS Code比起VS,那是轻多了。目前使用Vscode编码的人越来越多,凭借着免费,开源,轻量,跨平台的特点,收获了一大批忠实粉丝。


6.2 Sublime Text

【适用对象:非常广泛,推荐有点经验的程序员使用】
Sublime Text和VScode挺类似,但比VScode早诞生很多年。


6.3 NotePad++(坚决抵制!!!)

【适用对象:无,坚决不使用】
我写出这个工具,并不是为了让大家去用,而是让大家去抵制!没错!为什么要抵制这个工具呢?我其实很不想把与技术无关的东西扯进来,但如果不是NotePad++开发者挑事在先,我也不想写这段。如果不了解发生啥的,可以去这个问题下看看,看看问题描述。
大家能否不用Notepad++?反正本来就是个过时的东西,结果开发者还夹带私货在还在那里蹦哒,帮助真是可笑。
我查了下开发者,侯今吾,台湾人。一切都懂了。说实话,非常看不起这种在软件中夹带私货的人。在开源社区夹带私货,就像把臭豆腐带到图书馆吃一样,你觉得吃得香,别人觉得恶心。
如果有用NotePad++,而且现在才知道这事,我建议卸载,换成其他工具不香吗?当然这里不是绑架谁谁谁要如何做,我只是把这个事情说出来,让更多人知道而已。


7. 游戏开发工具

【适用对象:游戏开发程序员】
7.1 Unity

Unity是由是个跨平台2D/3D游戏引擎,可用于开发Windows、MacOS及Linux平台的单机游戏,PlayStation、Xbox、Wii、任天堂3DS和Switch 等游戏主机平台的视频游戏,以及iOS、Android等移动设备的游戏。
这里讲讲引擎和IDE的不同。
IDE是一个开发工具而已,你用不同的IDE写出来的代码效果是一样的,甚至你用记事本一个个字母打出来(如果你有足够耐心的话)的效果也是一样的。而引擎是一整套预定义好的资源。你可以直接把碰撞检测,图形渲染,物理等繁琐的事情交给引擎,你只需要定义两个刚体,让他们碰撞,碰撞之后怎么弹,引擎帮你计算。


Unity的主UI如图:
图源:https://learn.unity.com/tutorial/creating-basic-editor-tools
可以看到,你可以在Unity里定义资源,调整资源,管理代码等等。
前面还说到我用Unity搭配VS一起开发。由于我已经好几年没做游戏了,所以不能自己截图给你看了,这里就借用一下微软官网的一张图。
图源:https://visualstudio.microsoft.com/vs/mac/unity/
7.2 Unreal Engine(虚幻引擎)

虚幻引擎是一款由Epic Games开发的游戏引擎。该引擎主要是为了开发第一人称射击游戏而设计,但现在已经被成功地应用于开发潜行类游戏、格斗游戏、角色扮演游戏等多种不同类型的游戏。
这是个Unreal Engine 5的渲染效果截图。这是从游戏视频里直接截取的一帧。可以看到这项目简直太强了。有网友说,早晚虚幻(Unreal)引擎都要改名叫“真实(Real)引擎”。


7.3 Flash+Flex

这个不知道目前还有没人用,这是开发页游的一套搭配。不过现在2020年了,这一套搭配已经非常落伍了。现在大家都用H5开发了,很少用Flash了,Adobe 正式宣布将在2020 年停止支持Flash。所以这里仅为怀旧,不推荐想做页游的人学这套框架。我从2014年起就没做页游了,那时候我们用的是Flash+Flex组合
Flash就是大家很熟悉的那个Adobe Flash。现在已经改成Adobe Animate了。用来画动画Flex是用来管理资源,以及编写代码的。


8. Jupyter Notebook

【适用对象:数据分析师、数据科学家】
Jupyter Notebook使用非常直观,会以网页的形式打开,你可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示的程序。一般在数据分析数据科学等领域应用广泛(我也是忠实用户之一)
图源:https://jupyter.org/
Jupyter, 是Julia,Python和R的缩写,这也是Jupyter支持的语言。其实并不是只支持这三种,Jupyter支持40多种编程语言。
最后

毕竟本回答篇幅有限未能穷尽所有工具,作为本回答最后的结尾,我附上2020年12月IDE排行榜,其中有些IDE我没提到,感兴趣的可以去搜搜。

寒郁轩良 发表于 2020-12-28 10:12

用翻译的方式学习的我又来了。。。
原文链接:Handy Coding Tools - Code Conquest
原文平台:codeconquest
原文作者:佚名那些有用的写代码工具

是不是好奇过程序员的工具包会是怎么样的呀?
和其他的技能一样,写代码也是需要用到很多不同的工具的,从而让写代码变得简单一些。这些工具有编辑器,在线服务,设计框架,文件格式化工具,以及其他杂七杂八的软件。
适当的时候用一些轻便的工具,并且知道何时用何种工具,是新晋码农都应该掌握的技能。如果你只是硬生生的写代码,不使用任何工具的话,你估计写代码需要更长时间,而且估计写着写着就崩溃了。
下面咱们来看看有哪些方便快捷的工具,咱们应该考虑搞起来。当然了,这个只是个起点,大家学完之后再去搞别的。
下面是本文将讲到的工具目录:
编辑器GitHubHerokuTwitter BootstrapStack OverflowMarkdownHTML和CSS验证器
编辑器

编辑器就是你用来写代码的程序了,这个是程序员最重要的工具。你应该在这个地方花最多的时间,所以你得选一个你喜欢用的,且知道怎么用。
比较流行的编辑器有Notepad,TextEdit,Sublime Text,NotePad++以及Vim。更多的可以参考: Learn more about text editors…
GitHub

GitHub是一个可以免费寄存代码的地方。任何类型的文件都可以上传到Github上面去,但主要还是针对代码文件来设计的,而且异常的流行。
为了能上传代码到Github上面,你得先建一个Git仓库。Git是一个可以通过版本控制来追踪你代码迭代历史的系统。虽然学Git需要一些功夫,但Github提供了免费的教程来供大家入手。
把代码托管到GitHub上面有千千万万个理由。它肯定是最优秀的之一的,如果不是最优秀的方式来和小伙伴共享你的项目,从而大家能合作。而且,Git在追踪代码变化过程方面很有帮助。
Heroku

如果你用一个网页技术新建了网页应用的话,比如说用Ruby on Rails或是PHP,那你就得需要有一个服务器来帮助你提供在线的access。虽然GitHub能帮咱们寄存代码,但它并不能让别人立即使用你的软件。你也可以配置和管理自己的服务器,但这需要花费很多的功夫。而且如果你要Rails技术的话,你还得需要特殊的托管。
咱就去考察一下Heroku. Heroku 是一个云平台,也叫PaaS。你可以把你的app部署到上面去,从而不需要自己架构服务器来维护。
把网页部署到Heroku的好处就是你不再需要自己维护自己的服务器了,因为平台会帮你搞定这些。而且这些平台一般开始的时候,都是免费的。如果你需要更多的资源的话,就得开始付费了。
Twitter Bootstrap

如果你需要建网站或是网页应用的话,那你估计可以借助Twitter Bootstrap来帮忙。Bootstrap是一个前端框架,它名字的由来就是因为其可以让你的网址看起来像Twitter的风格。
所有的HTML结构,CSS造型,还有JS的函数功能都已经写好了。你可以去尝试着把他们改造成你想要的形式,也可以自己用现成的就行。如果你和大部分程序员一样,并不会太多设计方面的东西的话,这个框架还是蛮不错的。最好的是,它完全免费。
尽管大家都推荐Twitter Bootstrap, 但其也只是众多前端框架中的一个。 大家可以用其他的,比如, Zurb Foundation.
Stack Overflow

Stack Overflow 是一个最出名的编程问答论坛,由Coding Horror的博主Jeff Atwood创立。 茫茫多的程序员依赖这和论坛来寻找帮助,当他们遇到问题的时候。 咱们也应该多用才是呢。
使用Stack Overflow就很简单。你可以就你遇到问题的代码提问,等上一些时间,如果运气好的话,一些有经验的程序员就会给你写写回答,帮助你了。
当然了,Stack Overlow也不是唯一的。但这个还是最出名的,而且是使用最频繁的代码交流论坛了,所以在这里找到你想要的答案的几率也是最高的。
Markdown

Markdown 能让大家写漂亮的笔记。这个和HTML还蛮像的,但大部分程序员喜欢用MD是因为写起来简单,而且读起来也顺眼。
下面是一些例子。如果大家想要写标题,那你就在文字前面加#就好。
# This is a heading.如果是想要副标题,那就加两个##。
## This is a subheading.如果想要斜体,那就加前后加星号。如果想要加粗,就前后各加两个星号。如果既想要加粗,还想要斜体,那就加三个好了。
The following word is in *italics*.
The following word is in **bold**.
***And this sentence is both bold and italic.***MD简直是无处不在的。在GitHub写README文件的时候会用到,在Stack Overflow问问题的时候会用到,其他的论坛也是。比如知乎!
别太担心这是不是意味着要学新的编码方式呢. 其实MD比HTML还简单。MD的官方指南可以让大家快速开始 quick tutorial.
HTML 和 CSS 验证器

如果你需要写HTML和CSS的话,那你最好是去验证你写的代码是不是符合W3C标准。如果不符合标准,倒也没事儿,但验证一下也挺好的。但验证过的代码,可读性要好很多。
W3C也提供了免费验证的工具,大家可以用来验证你写的HTML和CSS是否有错误。链接在这里:
HTML ValidatorCSS Validator

dxf17 发表于 2020-12-28 10:20

最新最全的阿里程序员常用的 15 款开发者工具(2020 版)来啦!

本文精选了一些阿里经济体内部最受开发者欢迎的开发者工具,筛选出一些带有普适性同样适合外部开发者的,希望能助力开发者们提高开发效率。
1. Java 工程脚手架 Java Initializr

官网:Aliyun Java Initializr
简介:2020 年由阿里巴巴中间件团队发布的定制版 Java工程脚手架,快速搭建工程应用。
工具使用场景:
难道每次创建工程,都需要拿现有项目做裁剪吗?引入新组件需要四处搜索,组件的坐标真的记不住!网上的案例可以运行,为什么我照着做了就不行?组件使用还需要在我自己的电脑上搭建完整工程和运行环境,真的很麻烦!
支持 Spring 官方脚手架的全部功能,且增加了丰富的典型配置和使用案例。多种标准应用架构供选择,让你生成完工程就可以直接写代码。基于浏览器的运行环境,进一步降低功能体验和试用的复杂度。
2. Java 线上诊断工具 Arthas

官网:Arthas 用户文档 - Arthas 3.4.4 文档
简介:Arthas 是阿里巴巴 2018 年 9 月开源的一款 Java 线上诊断工具。
工具的使用场景:
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!是否有一个全局视角来查看系统的运行状况?有什么办法可以监控到 JVM 的实时运行状态?
Arthas 支持 JDK 6+,支持 Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。
3. Java 工具集 Dragonwell

官网:Dragonwell-Java 开发工具包 (OpenJDK) - 阿里云
简介:Alibaba Dragonwell 是一款免费的, 生产就绪型 Open JDK 发行版,提供长期支持,包括性能增强和安全修复。阿里巴巴拥有最丰富的 Java 应用场景,覆盖电商,金融,物流等众多领域,世界上最大的 Java 用户之一。Alibaba Dragonwell 作为 Java 应用的基石,支撑了阿里经济体内所有的 Java 业务。Alibaba Dragonwell 完全兼容 Java SE 标准,您可以在任何常用操作系统(包括 Linux、Windows 和 macOS)上开发 Java 应用程序, 运行时生产环境选择 Alibaba Dragonwell。
4. Java 代码规约扫描插件

官网:https://github.com/alibaba/p3c
简介:该插件用于检测 Java 代码中存在的不规范的位置,并给予提示。规约插件是采用 Kotlin 语言开发。
5. 应用实时监控工具 ARMS

官网:应用实时监控服务ARMS_秒级业务监控_实时运维监控_实时监控大屏_实时销售监控 - 阿里云
简介:ARMS 是一款 APM 类的监控工具,提供前端、应用、自定义监控 3 类监控选项,可快速构建实时的应用性能和业务监控能力。
工具的使用场景:
晚上 10 点收到 37 条报警信息,你却无从下手?当我们发现问题的时候,客户/业务方已经发起投诉?每个月花几十万买服务器,却无法保障用户体验?
6. 性能测试工具 PTS

官网:PTS性能测试_全链路压测_压力测试_API Monitoring_负载测试_云原生性能测试工具 - 阿里云
简介:PTS 可以模拟大量用户访问业务的场景,任务随时发起,免去搭建和维护成本,支持 JMeter 脚本转化为 PTS 压测,同样支持原生 JMeter 引擎进行压测。
使用场景:
大促活动准备前,想模拟真实多用户高并发访问场景?产品版本迭代,想观察流量洪峰时产品表现?产品交付
7. MSE

官网:最低每月50.16元,开源注册和配置中心全托管
简介:依赖 ZK/Nacos/Eureka 等开源注册和配置方案进行自建会中引起依赖复杂、建设和运维成本高的问题,同时,也会遇到 Hbase、Spark 或 Kafka 等大数据的环境下的分布式系统协调难题,MSE 提供了注册和配置中心的托管功能,提供高可用、免运维的 ZooKeeper、Nacos 和 Eureka 等集群,完全兼容开源产品标准接口,同时提供了离群实例摘除、无损下线、服务鉴权、应用列表和标签路由的功能。
使用场景:
微服务注册发现:在快速发展的云计算时代,微服务应用越来越广泛,MSE 为采用 Dubbo 和 Spring Cloud 框架开发的微服务提供了高可用、免运维和稳定的服务注册中心。分布式配置管理:托管的 Nacos 在做微服务注册的同时,并能提供配置管理的能力。分布式调度(支持非微服务场景):如果企业使用 HBase、Spark 或 Kafka 等开源软件,则使用 MSE 提供的 ZooKeeper、Eureka 和 Nacos 可以实现分布式系统的协调,助力企业降低成本和提高效率。
8. 架构可视化工具 AHAS

官网:AHAS应用高可用服务_高可用_流量防护_架构感知_故障演练_功能开关 - 阿里云
简介:AHAS 为 K8s 等容器环境提供了架构可视化的功能,同时,具有故障注入式高可用能力评测和一键流控降级等功能,可以快速低成本的提升应用可用性。
使用场景:
服务化改造过程中,想精确的了解资源实例的构成和交互情况,实现架构的可视化?想引入真实的故障场景和演练模型?低门槛获得流控、降级功能?
9. 容器镜像服务 ACR

官网:容器镜像服务_镜像构建_镜像授权_镜像托管 - 阿里云
简介:容器镜像服务 ACR(Alibaba Cloud Container Registry)默认实例版提供基础的容器镜像服务,包括安全的应用镜像托管能力、精确的镜像安全扫描功能、稳定的国内外镜像构建服务以及便捷的镜像授权功能,从而方便用户进行镜像全生命周期管理。
容器镜像服务简化了 Registry 的搭建运维工作,支持多地域的镜像托管,并联合容器服务等云产品,打造云上使用 Docker 的一体化体验。
10. Serverless 开发者平台 Serverless Devs

官网:https://www.serverless-devs.com/
简介:Serverless Devs 是一个开源开放的 Serverless 开发者平台,致力于为开发者提供强大的工具链体系。通过该平台,开发者可以一键体验多云 Serverless 产品,极速部署 Serverless 项目。Serverless Devs 包含 Serverless Devs Tool (Serverless 开发者工具)和 Serverless Devs App Store(Serverless 应用中心):
Serverless Devs Tool 让开发者可以更简单、更快速的进行应用创建、项目开发、测试、发布部署等,实现项目的全生命周期管理。Serverless Devs App Store 是一个集 Serverless 应用在线搜索,一键部署以及资源可视化编辑于一体的应用中心产品。应用中心拥有海量的生产级项目模板,案例模板,开发者可以自由选择,并将项目一键部署到指定的云平台上。
11. Android 平台上的秒级编译方案 Freeline

官网:https://github.com/alibaba/freeline
简介:Freeline 可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。Freeline 最快捷的使用方法就是直接安装 Android Studio 插件。
12. 云效开发者工具 KT

官网:https://github.com/alibaba/kt-connect
简介:KT 可以简化在 Kubernetes 下进行联调测试的复杂度,提高基于 Kubernetes 的研发效率。
13. 数据处理工具 EasyExcel

官网:https://github.com/alibaba/easyexcel
简介:EasyExcel 是一个用来对 Java 进行解析、生成 Excel 的框架,它重写了 poi 对 07 版 Excel 的解析,原本一个 3M 的 Excel 用 POI sax 需要 100M 左右内存,EasyExcel 可降低到 KB 级别,并且再大的 excel 也不会出现内存溢出的情况。03 版依赖 POI 的 sax 模式。在上层做了模型转换的封装,让使用者更加简单方便。
14. iOS 类工具 HandyJSON

官网:https://github.com/alibaba/HandyJSON
简介:HandyJSON 是一个用于 Swift 语言中的 JSON 序列化/反序列化库。
与其他流行的 Swift JSON 库相比,HandyJSON 的特点是,它支持纯 Swift 类,使用也简单。它反序列化时(把 JSON 转换为 Model)不要求 Model 从 NSObject 继承(因为它不是基于 KVC 机制),也不要求你为 Model 定义一个 Mapping 函数。只要你定义好 Model 类,声明它服从 HandyJSON 协议,HandyJSON 就能自行以各个属性的属性名为 Key,从 JSON 串中解析值。
15. 数据库落地 Druid

官网:https://github.com/alibaba/druid
简介:Druid 是 Java 语言下的数据库连接池,它能够提供强大的监控和扩展功能。

天一教育培训寐 发表于 2020-12-28 10:27

程序员应当熟练掌握Excel。
我在开发时有两种状态。
一种是正常状态,大约每星期产生100行左右的代码,
另一种是傻逼状态,一般会在一两天之内产生几万行代码。
后者的时候,Excel是必不可少的。

123456833 发表于 2020-12-28 10:28

题主说的“帮助程序员写代码”,指的应该不是编辑器这样的工具,而是应用快速开发平台。
应用快速开发平台,是指在一定的业务场景下,通过各种基础设施和方法,让开发者快速搭建出快速开发出一套软件的工具。近年来,随着产业互联网的兴起,人们发现B端应用的体量和变更节奏,都不适合“刀耕火种”式生产,于是快速开发平台再次成为热门技术领域。国内国外,这个领域的创业公司如雨后春笋,比如workday、outsystem等。日前,飞算全自动软件工程平台的发布,更是给这个领域带来了新的格局。
本文通过回顾历史,分析各种快速开发平台之间的异同,与大家分享从“所见即所得”到“全自动开发”的思想流变和业界趋势。
RAD,桌面软件时代的快速开发
RAD(Rapid Application Development)是“快速开发”概念最早被提出时的英文缩写。当时软件行业正处于桌面软件时代,RAD的概念还比较狭窄,聚焦于快速搭建桌面GUI应用这一个领域。当时的主流产品,比如Visual Basic、Delphi、Power Builder,都采用了“所见即所得”的界面开发模式,配合高度封装的数据库连接件,可以高效完成业务流程类应用。
应该说RAD类产品针对企业信息化对于软件系统低成本、大批量、快速迭代的的诉求,在简单信息化场景提供了较高的投入产出比。但是这些产品无一例外遭遇了两重尴尬:
首先,这RAD工具对非GUI搭建环节的提效效果有限,甚至会因为造成其他模块的开发不便,比如业务能力接入需要特殊的封装,要付出额外的成本。对于逻辑比较复杂的产品,很可能是得不偿失的。当年RAD工具普遍被诟病不适合开发中型应用,其实RAD本来就不应该被用来开发重型应用,但是当年的市场导向主要聚焦在重型应用领域,对于信息化领域重视不足。
传统ERP系统中的快速开发
企业对ERP系统的高度定制化需求,导致ERP产品很早就开始重视定制化需求的快速开发。不管是SAP还是国内的用友、金蝶等厂商,其历代产品更新中,定制化开发能力都是重中之重。
但是同时,由于ERP系统的高度规律性,ERP的快速开发能力,更确切地说是一种“二次开发能力”,或者说“高级配置能力”。其定制化能力集中在“配字段”、“配联动”、“配流程”上,对于复杂应用,ERP厂商给出的专用语言(比如SAP的ABAP语言)或者API接口,普遍比较复杂,与快速开发理念南辕北辙。
Saleforce,一切基于元数据
Saleforce可能是企业信息化领域最成功的的企业,他们将Saleforce平台一步一步从一个支持一定程度上定制的saas化CRM系统,打造成了一个可以支撑各类企业应用开发的通用快速开发平台。
Saleforce的设计思想,一言以蔽之,就是“元数据”。元数据是Saleforce平台最核心的概念,开发企业应用时最常用的数据映射、数据验证、表单展示等环节,在Saleforce平台都依赖于元数据,可以说Saleforce平台是一个元数据驱动的平台。
元数据给Saleforce带来了很多好处,围绕元数据衍生出的数据模型沉淀,真正好用的持久化系统,以及基于元数据的业务能力社区化运营,为Saleforce带来了海量的开发者和巨大的商业成功。但是Slaeforce在新兴行业以及中国这样的新兴市场,始终没有亮眼的表现,说明Saleforce的里面,也并非包打天下。
首先基于元数据设计系统,还是太复杂了。一般的业务人员或者BA,无法驾驭如此复杂的模式,以至于Saleforce催生出了一个行业:Saleforce平台咨询公司,以及Slaeforce顾问。就算是在这些人的帮助下,基于元数据设计一套系统也并非易事。实际上真正让Saleforce开发提高效率的,不是元数据,而是现成可用的预制件以及业务能力。在全新开发一套系统的时候,Saleforce并无太多优势。
飞算,全自动软件工程平台
从GUI拖拽、代码生成,到配置优于开发,再到一切基于元数据,快速开发这项技术依然没有完全脱离代码,近年来流行的“低代码”概念,也说明了这一点——低代码,不是无代码。那么,如何真正摆脱代码,实现从需求到成品软件的全自动呢?日前发布的国产飞算全自动软件工程平台,给出了一种答案。
飞算全自动软件工程平台之所以能够给出答案,是因为他们抓住了问题的核心:
第一,不要局部的快速开发,要全流程,全生命周期的快速开发。局部功能的快速开发(比如GUI拖拽)智能提高一部分工程师的效率,在大团队协同的背景下,这样的效率提升没有价值,并且很可能因为交接问题带来额外的成本。
第二,不要元数据,不要DSL。这些东西适合工程师和咨询顾问,但不是和业务人员。一套快速开发平台,在实际运行中往往会发现,效率瓶颈除了业务需求实现成本,还有实施工程师合咨询顾问不够用的问题,在这种情况下,业务方除了提需求之外,什么都做不了,只能干着急。
针对这两个问题,飞算全自动软件工程平台给出的答案是:流程图。
相比于复杂的元数据,流程图也可以完整串联需求环节到交付环节,但是流程图的优势在于它要简单直观的多,只要是具备一定业务经验的人员,都能看懂,都能画。所以使用流程图串联开发流程,使得业务人员可以真正参与到开发中,实施工程师和顾问只需要解决问题,提供建议,终于不再是项目实施的瓶颈。
只有流程图,事情只完成了一半,如果只解决了业务逻辑生产问题,却不能保证交付物的质量,也不算是一套真正可以商用的快速开发平台。飞算全自动软件工程平台为了解决交付物质量的问题,给出的方案是:流程图生成微服务。
微服务是一种近年来在互联网领域流行的服务端架构,用来实现服务解耦,防止单点故障。飞算全自动软件工程平台利用微服务分布式的特性,将流程图编译成一个一个分立的微服务,通过统一的框架自动调度运维,保障稳定,从而解决了交付物质量的问题。
综上所述,快速开发领域经历了所见即所得,配置化,低代码,0代码之后,全自动开发的理念,必然是业界发展的趋势。飞算全自动软件工程平台给了我们一个样本,接下来业界在全自动开发时代会出现什么新产品,新模式,新技术,我们拭目以待。

李志敏 发表于 2020-12-28 10:33

那肯定是 IDEA 啦!
如果一个新手,刚碰到 IDEA,边度娘边使用,那心里一定是MMP。
但只要你坚持使用 IDEA 一周,你就会发现“卧槽,真香”


首先了解一下 IDEA 的包括哪些:https://www.jetbrains.com/zh-cn/products.html
基本覆盖了你在编程生涯中可以接触到的所有语言...Python开发,Android开发,Java开发,Go语言开发等等等等
大概就长下面这个样子:
然后如果我够骚,也可以让它长这样:
另外,IDEA 强大的插件库,也可以让你在同事面前无限风骚!
比如你想按照 阿里编程规范 来编写代码:
又或者你只是想享受一下 Vim 编程 (顺便说一句,配上 HHKB 真香):
其他的,就是 IDEA 的细节。
简单的工具分栏:如 project 或 package , run 等, 都可以缩小成一个图标,在需要的时候点开查看,可以在写代码的时候让工作区间尽可能的最大化。智能的选取:在选取某个方法,或某个循环或想一步一步从一个变量到整个类慢慢扩充着选取,IDEA就提供这种基于语法选择,在默认设置中Ctrl+w,可以实现选取范围不断扩充,这种方式在重构的时候尤其显得方便。丰富的导航模式:IDEA提供了丰富的导航查看模式,在最基本的project试图中,你还可以选择多种的视图方式。历史记录功能:不用通过版本管理服务器,单纯的IDEA就可以查看任何工程中文件的历史记录,但版本恢复时你可以很容易的将其恢复。JUnit的完美支持。对重构的优越支持:IDEA是所有IDE中最早支持重构的,其优秀的重构能力一直是其主要卖点之一。编码辅助:java规范中提倡的tostring(),hashcode(),equals(),以及所有的get/set方法,你可以不用进行任何的输入就可以实现代码的自动生成,从而把你从无聊的基本方法编码中解放出来。灵活的排版功能:基本所有的IDE都有重排版功能,但仅有IDEA的是人性的,因为她支持排版模式的定制,你可以根据不同的项目要求采用不同的排版方式。XML的完美支持。简洁易用的GUI界面。与文件系统自动同步。自定义的快捷键:强大的快捷键设置,基本可以让程序员离开鼠标工作。动态语法检测:任何不符合java规范,自己预定义的规范,累赘都将在页面中加亮显示。代码检查:对代码进行自动分析,检测不符合规范的,,存在风险的代码,并加亮显示。对JSP的完全支持:不需要任何的插件,完全支持JSP。智能编辑:代码输入过程中,自动补充方法或类。EJB支持:不需要任何插件完全支持EJB。列编辑模式:减少了很多很多的无聊重复工作,而IDEA完全支持该模式,从而更加提高了编码效率智能模板:预置模板可以让你把经常用到的方法编辑进模板,使用时你只用输入简单的几个字母就可以完成全部代码的编写。完美的自动代码完成:智能检查类中方法,当发现方法名只有一个时自动完成代码输入,从而减少剩下代码的编写工作。Ant 支持:不需要任何的第三方插件。不使用代码检查:自动检查代码中不使用的代码,并给出提示,从而使代码更高效。智能代码:自动检查代码,发现与预置规范有出入的代码给出提示,若程序员同意修改自动完成修改。则表达的查找和替换功能:查找替代支持正则表达,从而提高效率。JavaDoc预览支持:支持JavaDoc的预览功能,在JavaDoc代码中ctrl+q显示JavaDoc的结果,从而提高doc文档的质量。程序员意图支持。当程序员编码时IDEA时时检测你的意图,或提供建议,或直接帮你完成代码
总之,对大部分程序员而言, IDEA 就是最好的开发工具。
同意的,下面点个赞支持一下。谢谢。

墙和鸡蛋 发表于 2020-12-28 10:34

程序员可以用来做开发的工具很多,
在此,我整理了14种最佳编写代码的辅助工具,走马观花的简单介绍下,以供参考。




1.Eclipse
价格:免费
平台: Linux,macOS,Windows Eclipse是一个IDE,它支持用于自定义环境的可扩展插件系统。尽管它主要用于开发Java应用程序,但是也可以使用其他编程语言(通过插件)来编写应用程序。
Eclipse有效地管理多个文件和项目,并支持广泛的文件格式。它为多个数据库提供连接器,并支持常见的数据库访问方法。


2. Geany
价格:免费
平台: Linux,macOS,WindowsGeany是一个开源的轻量级文本编辑器,加载时间短,并且对外部库或单独程序包的依赖性小。
它支持许多编程和标记语言,包括C,C#,C ++,PHP,HTML,CSS JavaScript,Python,Perl,Haskell和Pascal。还支持其他常见文件类型,例如Diff-output,SQL文件和ini样式的配置文件。
与其他代码编辑器不同,不必搜索多种语法样式就可以更改所使用的字体。


3. gedit
价格:免费
平台: Linux,macOS,Windowsgedit是GNOME桌面环境的轻量级但功能强大的通用文本编辑器。按照GNOME项目的理念,它具有一个干净而简单的GUI,用于编辑源代码和结构化文本(例如标记语言)。
除了突出显示各种编程语言的语法外,它还具有拼写检查功能以及所有其他基本功能,例如查找和替换。
该工具可以在低端PC上快速运行:它使用很少的内存和CPU资源,同时读取非常大的日志。


4.Brackets
价格:免费
平台: Linux,macOS,WindowsBrackets是由Adobe Systems开发的开源代码编辑器。它主要关注HTML,CSS和JavaScript编辑功能。
实时预览可将代码编辑立即推送到浏览器,以在您修改代码时显示更新的网页。另一个有用的功能称为“分屏”。


5. NetBeans
价格:免费
平台: Linux,macOS,WindowsNetBeans是一个开放源代码的IDE,可以使用Java,C / C ++,PHP等快速开发移动,桌面和Web应用程序。
该工具不需要任何许可,并且很容易使用。可以毫不费力地缩进代码:只需为每种语言的代码缩进定义规则,它将相应地遵循。还可以比较不同文件中的代码,以了解不同开发人员代码之间的差异。
NetBeans与多个Web应用程序服务器(例如GlassFish和Tomcat)无缝集成。它也可以与GIT之类的版本控制工具配合使用。


6. Vim
价格:免费
平台: Unix,Linux,macOS,WindowsVim是开源软件,旨在通过命令行界面和GUI中的独立工具使用。
为了获得更好的可视化效果,可以更改窗口的大小或水平/垂直拆分它们。它有许多命令可以用键盘而不是鼠标来完成,这样可以提高速度。
尽管它看起来像一个基本的纯文本编辑器,但它是具有大量有用插件的出色生产力工具。在Stack Overflow开发人员调查(2019)中,Vim是第五个最受欢迎的开发环境。


7. TextMate
价格:免费
平台:macOSTextMate是专为macOS设计的轻量级GUI文本编辑器。
它可以交换一段代码,并轻松地将常用代码段转换为片段。可以通过宏消除重复的任务:记录临时宏以立即重播,或者保存它们以供重复使用。
这对初学者非常友好,格式化对于编写和调试代码非常有帮助。


8.Emacs
价格:免费
平台: Linux,macOS,WindowsEmacs是可自定义和可扩展的文本编辑器,能够实现用户期望的任何功能。它包含了10,000多个内置命令,可以与宏结合使用自动执行工作。
该工具可通过Lisp进行扩展,因此可以通过安装插件来获得现代IDE的所有新优势。


9. AWS Cloud9
价格:免费| 90小时的使用时间为2.05美元
平台:在线IDE AWS Cloud9允许仅使用Web浏览器来编写,运行和调试源代码。无需安装文件或配置开发机器即可启动新项目。它包含了流行编程语言所需的所有重要工具。
该编辑器带有内置的终端和图像编辑器、协作编辑和聊天功能,因此无需离开IDE即可与团队进行交流。


10. IntelliJ IDEA
价格:免费| 每月$ 49.9
平台: Linux,macOS,WindowsIntelliJ IDEA用Java编写,集成了数百种功能,使编程更加容易。对微服务框架的支持以及内置的开发人员工具(例如版本控制和终端)使该工具非常特别。
从前端JavaScript应用程序到后端Java,IntelliJ IDEA已经证明它是最通用的IDE之一。
对于具有其他JetBrains工具经验的开发人员来说,它是完美的选择。对于新手来说,用户界面可能会令人困惑,因为有太多的选项和复杂的功能。


11. Xcode
价格:免费
平台: macOSXcode包含一套软件开发工具,其中包括Apple的大多数开发人员文档和内置的Interface Builder。它用于开发iOS,iPadOS,macOS,watchOS和tvOS的软件。
界面生成器显示代码的实时呈现,立即反映在代码中所做的更改。插件对于此工具并不是那么重要:只需保持IDE的更新即可获得无缝的体验。


12. Visual Studio
价格:免费| 每月$ 45.00
平台: Windows,macOSMicrosoft Visual Studio是用于创建网站,Web服务和移动应用程序非常强大的工具。它通常用于中小型企业开发计算机程序。
代码编辑器具有IntelliSense(可感知上下文的代码)、代码重构和集成的调试器,该调试器既可以用作计算机级调试器,也可以用作源级调试器。


13.Sublime Text
价格:免费| 每个许可证80美元
平台: Linux,Windows,macOSSublime Text是用于代码和标记的高级文本编辑器。它有侧面的小map,可为大多数操作提供文件和键盘快捷键的分层视图。
这是用C / C ++和Python编写的轻量级软件。可以做很多繁重的工作,而不会遇到问题。有一个不错的命令选项板,可以深入利用编辑器。
Sublime Text允许用户自定义工具,并快速高效地编写代码。这也使将代码链接到其他代码页更加容易。总体而言,它在本质上做得很好。


14.记事本++
价格:免费
平台: Windows Notepad ++不仅仅是编辑器:它是Notepad的替代品,支持许多不同的编程语言。它使用C ++编写,并使用Win32和STL。
借助其多标签编辑功能,可以同时处理多个文档。


先分享这些,之后发现了其他好用的编辑器再做补充。

寒郁轩良 发表于 2020-12-28 10:40

程序员这个职业如果做的优秀,会接触到很多的工具;写代码的,帮助写代码的,解决代码中的问题的;很多;
先说说代码管理工具:
一、 Visual Source Safe( 简称 VSS )
二、 SVN(Subversion) - CVS(Concurrent Version System)的替代和升级版本
三、 ClearCase
四、GitHub
五、GitLab
写代码的工具就更多了,要根据不同的语言来分的:
Microsoft Visual stdudio
Visual Studio(VS) 是一套非常完备的工具和服务,可帮助小伙伴为 Microsoft 平台和其他平台创建各种各样的应用程序。Visual Studio 还可将您所有的项目、团队和利益干系人联系在一起。现在您的团队可以从任何位置以虚拟方式进行更为敏捷的合作,无论他们采用何种开发工具。
Dev-C++
Dev-C++ 是一个C++ 开发工具。它包括多页面窗口、工程编辑器,在工程编辑器中集合了编辑器、编译器、连接程序和执行程序。它也提供高亮度语法显示的,以减少编辑错误。
mingw
MinGW是Minimalist GNU on Windows的简称,是指只用自由软件来生成纯粹的Win32可执行文件的编译环境。
WIN-TC
初学C的一款比较好的软件,也是学习C的一款比较官方标准的软件
Cygwin
Cygwin是一个用于在Windows上模拟Linux环境的软件。它可以作为那些虚拟机软件的一个部分替代品。
CodeBlocks
codeblocks是一款功能强大的C/C++集成开发环境,软件支持应用程序的开发、也可以对现有的程序进行编译,在设计过程中,您可以随意调试软件,codeblocks带有调试的环境,可以自由控制对程序的调试、停止、生成并运行等,功能非常丰富;
帮助写代码的:
思路梳理:Xmind、MarkDown
小编从事软件编程十余年,欢迎私信小编,一起聊聊编程中的那些事儿;

十二音阶囤 发表于 2020-12-28 10:47

以下都是我用过的工具,真实可靠,好用不花钱!
IDE

快速进行软件开发,一个好的 IDE 必不可少,首推 jetbrains 全家桶,教育网账号免费!
退而求其次 VS Code,你需要自行安装各种插件来满足需要。
Dash

“Indispensable masterpiece for developers.”
Dash 是一款 API 文档浏览器,同时也是代码补全工具,可以离线使用。官方提供 200+ 不同的离线文档,如果不满意,还有第三方文档可以下载。
还为各种软件提供了插件支持哦~
插件支持列表
怕你找不到官网。
Caffeine

只需轻轻一点,就能防止 Mac 自动休眠,再也不怕带薪拉 的时候跑程序中断啦。
还是怕你找不到官网。
好困啊,我要午休了,想到再更吧~
页: [1] 2 3
查看完整版本: 有什么工具能帮助程序员写代码(开发)?