老话说,工欲善其事,必先利其器。

那么,作为编程人员,你都用过哪些“兵器”呢?你的”兵器“够”锋利”吗?

近期,有很多新朋友问,都有什么画流程图的工具,给推荐推荐?

索性,就静下来,好好梳理一下,从事编程十余载中,用到了哪些工具?尝试汇总分享给大家,希望对大家有所帮助。

Tips:

1. 考虑方便收藏,文末已经把文中提到的工具整理成图。

2. 曾经用过的,以及目前在用的工具梳理,势必会有适合你的款。

01. 设计原型

 

代码写久了,也会客串一下产品的角色,画点原型。按照接触时间,主要分享两款。

一款是安装后,便可进行设计原型的 Axure RP。

(Axure RP 效果图,图片来源于官网)

 

另一款是在线进行产品原型设计的磨刀(没错,名称就叫磨刀),是当下远程办公的好帮手。

(磨刀效果图)

 

02. 制定计划

产品同事把产品原型画完,往往会喊上开发的兄弟们,组会进行评审,待产品需求评审完,就要进行大致的排期,而排期的工具也有很多,在这里主要提我用过的两款。

之前,用的比较多的一款是 Microsoft Project,排出来的效果,个人感觉整体是比较正式的。

(Project 计划效果图)

现在,经常用的是 Microsoft Excel(没错,就是 excel 表格),用 Excel 排完之后,团队的兄弟几乎都能看,无需安装其它软件,主要是图个方便。

( Excel 简易的排期效果图,复杂的要比这复杂的多)

03. 流程设计

 

当产品需求明确,大致周期也定了,按照规范化的流程,那便是进入设计阶段,此时往往会用到画图工具,在这里,按照我用的时间先后顺序,罗列几款出来,希望对你有用。

第一款是 Office Visio,此款是我用的最早的一款,而且画起图来也很简单,清晰明了。只要我用 Windows 系统,都会用 Visio 进行画架构图以及详细业务流程图,已经形成了肌肉反应。

有些时候,也会用一款超好用的 UML 画图工具 StarUML,来画画类图,时序图等等。

(StarUML 效果图,来源于官网)

不过,自从切换成苹果电脑,开始使用 ProcessOn 进行在线画图,无需安装,打开链接就能用,而且各种图都支持。无论是工作,还是平时写文章做分享时,经常会用到这款工具。从以往分享的文章中摘两张丑图,看看效果。

(ProcessOn 效果图,来源于以往分享“矛与盾,如何造好系统的盾”)

(ProcessOn 效果图,来源于以往分享“监控实战Prometheus+Grafana”)

但是,倘若在 ProcessOn 不花 Money 的情况下,能画图的张数是有限制,所以偶尔也会用 draw.io,它也是一个强大简洁的在线的绘图工具,用它来凑两张图也未尝不可。

(draw.io 效果图,来源于以往分享“这些技术轮子,让监控落地成为现实”)

 

04. 代码研发

 

当业务流程设计图画好时,喊上产品汪,组会评审一下,看看需求理解的有没有问题,若是没啥问题,那就进入了编码研发阶段。

作为一枚 Java 程序员,编程工具从记事本、Editplus、JCreator、Eclipse 到现在用的最多的 IntelliJ IDEA。

业务需求实现过程中,很多场景需要进行三方系统对接,有时三方会给你一个调用的 jar 包。但是有些时候怎么调,都不通,就想知道 jar 包里面都写了点啥?在此,推荐一款用的最多的反编译工具 JD-GUI。

在代码研发过程中,代码质量贯穿始终。之前我都会采用 Eclipse 集成 FindBugs 的插件进行扫描一下,看看有没有潜在的 Bug,不过现在 IDEA 的代码规约校验插件(阿里开发规约插件)已经很好的满足了此需求。

在这里,还是要提一下 SonarQuable,它是一个用于代码质量管理的开源平台,也有助于帮你进行代码审查,提升代码质量。

(SonarQuable 效果图

当代码研发差不多时,不可避免的就是充分的自测,那么如何对自己写的接口进行请求调试呢?

一种方式写各种 Test 进行模拟发包,一段测试代码,反反复复修改参数;另外一种方式,避免反复修改代码,用 Postman 模拟发请求包,而且能把历史访问都存起来,超级好用。

(Postman 效果图)

敢问,你们开发过程,代码版本管理工具都用啥?我用过的代码版本管理工具,主要是 SVN 和 Git,但是逐渐开始都转向 Git。

另外,开发过程中,往往会进行合并代码,冲突时需要进行找不同,用 SVN 和 Git 这些代码版本管理工具可以做到,不过有些时候,紧急使用时,为了尽快定位不同,也会用 Beyond Compare 直接比较。

(Beyond Compare 效果图)

 

05. 代码评审

 

代码研发完成,冒烟自测没啥问题,接下来就会组织会议,进行代码评审。

代码评审的主要目的,在我看来主要是两方面。第一:看看需求理解实现上有没有问题;第二:看看代码实现上有没有潜在的 Bug。

代码评审时,为了记录 Review 中的问题,现在用的最多的是 Excel。

(Review记录单,效果图,仅供参考)

 

06. 提交测试

 

当代码研发完成,经过代码评审后,进行代码反复调优,再经过充分的自测与联调,当信心倍增的时候就可以提交测试啦。

经历过的小作坊,打个包用 Xshell 或 SecureCRT 放到测试环境,发个邮件或者在 Jira 上通知一下测试组就 ok 啦。

经历过的大作坊,首先用 Jenkins 进行编译发布版本,部署到测试环境;若测试人员发现 Bug,会把 Bug 提到 Jira 上,研发人员修复完 Bug,再用 Jenkins 打包发版,这样每次提交测试的版本号都会 +1。这么一来,可以衡量开发人员的开发质量,若是提测版本过高,那肯定是风险系数稍高一些,稍微严格一点,会根据测试版本来算绩效呦。

(Jira 效果图)

经历过的由各公司抽技术人员,临时组成项目组去干一件大事,用过一款在线协作工具 Teambition,简单拖拽就能完成任务分配、认领,同时也非常适合测试提 Bug,研发人员进行认领 Bug 进行修复。

(Teambition 效果图)

07. 进行上线

当测试组完成测试时,会发送测试报告,当研发人员看到测试报告时,就可以发起上线申请啦。不过在上线前会与运维同事一起制定上线计划,制定计划的工具简单点的是 Excel,稍微正规点就在 Jira 上发起上线申请时,把上线注意事项写清楚,然后线下再沟通,确认无误再安排进行上线。

08. 写在最后

从事编程十多年,其中那些经常打交道的工具,本次就梳理这儿,希望你们能够喜欢。

最后,用 XMind 思维导图工具给大家汇总一下,便于各位收藏。

都知道,要使车子走得快,就得给轮子勤上油,但前提是要给车子装好轮子。

 

效率,是做好工作的灵魂。希望分享的这些工具,这些利器都能助你提高效率,有限的时间内,实现更多的价值。

Java程序员拥有这些工具,还怕干不出好活的更多相关文章

  1. JAVA程序员常用开发工具

    1.JDK (Java Development Kit)Java开发工具集 SUN的Java不仅提了一个丰富的语言和运行环境,而且还提了一个免费的Java开发工具集(JDK).开发人员和最终用户可以利 ...

  2. java程序员烂大街为何还不便宜?

    最近跟一朋友聊天,他是做c#开发的.他答应了老板带领一帮java工程师开发网站.披星戴月终于搞定,现在已经盈利.但是他公司的那帮搞c#的同事不淡定了. 在招聘java程序员的时候2年有开15k的.5年 ...

  3. Android Java 程序员必备开发工具

    对于Java,有两种截然不同的观点:一种认为Java是最简单功能最强大的编程语言之一,另一种则表示这种编程语言既难用又复杂. 下面这些工具或许功能和作用不同,但是有着一个共同的主旨,那就是——它们都是 ...

  4. 【图灵学院01】Java程序员开发效率工具IntelliJ IDEA使用

    1. 什么是IDEA? IDEA, Java智能IDE. 2. 为什么要使用? IDEA的优点: 1)智能选取 2)导航模式 3)历史记录 4)重构 5)编码辅助 6)智能排版,控制 7)智能代码,查 ...

  5. Java程序员必备的6款最佳开发工具

    工欲善其事,必先利其器.每一个Java程序员都有其惯用的工具组件.对于Java程序员,各种有用的软件和工具泛滥成灾.初级开发人员要么找不到合适的工具,要么在寻找过程中浪费了大量的时间.下面,我将为大家 ...

  6. Java程序员必备的 15框开发工具

    15款Java程序员必备的开发工具 如果你是一名Web开发人员,那么用膝盖想也知道你的职业生涯大部分将使用Java而度过.这是一款商业级的编程语言,我们没有办法不接触它. 对于Java,有两种截然不同 ...

  7. Java程序员常用工具集

    我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了.我想列下我能想到的一个Java程序员会用到的常用工具. 一.编码工具 1.IDE ...

  8. 一个10年Java程序员的年终总结,献给还在迷茫中的你

    我越来越担心我作为一个Java程序员的未来. 恍然间,发现自己在这个行业里已经摸爬滚打将近10年了,原以为自己就凭已有的项目经验和工作经历怎么着也应该算得上是一个业内比较资历的人士了,但是今年在换工作 ...

  9. 每个Java程序员需要了解的8个Java开发工具

    每个Java程序员需要了解的8个Java开发工具 Java是计算机应用程序编程语言,被广泛用于创建Web应用.服务器处理.用户端的API开发乃至数据库等多个领域.下面列出了8个有助于你开发Java应用 ...

随机推荐

  1. MacOS麦克风输入监听的方法

    Windows上很多人都知道,然而实际上并没什么用——延迟太大,根本没法用. MacOS上有两种方法: QuickTime Player新建音频录制(不需要真的录音),如下图: 这个方法和Window ...

  2. 图像IO

    图像IO 潜伏期值得思考 - 凯文 帕萨特 在第13章“高效绘图”中,我们研究了和Core Graphics绘图相关的性能问题,以及如何修复.和绘图性能相关紧密相关的是图像性能.在这一章中,我们将研究 ...

  3. 网络|N1盒子做旁路由刷OpenWRT系统(小白专用)

    N1盒子做旁路由刷OpenWRT系统(小白专用) 为什么要用N1盒子 现如今新上市的路由器,市面上能买到的300元以内的路由器大多数都是双频(5G Hz和2.4G Hz)和几年前相比无论是速度还是性能 ...

  4. MongoDB复制集概念架构浅析

    一.复制集的作用 (1) 高可用 防止设备(服务器.网络)故障. 提供自动failover 功能. 技术来保证数 (2) 灾难恢复 当发生故障时,可以从其他节点恢复. (3) 功能隔离 用于分析.报表 ...

  5. 基于linux下的NIST数字测试包安装过程

    基于linux下的NIST数字测试包安装过程 1. 首先解决windows文件不能粘贴到Ubuntu的问题 选择利用VMware Tools进行解决 打开虚拟机VMware Workstation,启 ...

  6. element中的树形组件,如何获取父级菜单的id

    一般多选的树形组件,使用getCheckedNodes()方法只能获取到本级的菜单id,只有在子菜单全部选中的情况下才会选中上级.但我们想要不全选中子级的情况下也要获取它的上级,甚至上上级等,怎么办呢 ...

  7. 【Python】2.16学习笔记 运算符,位运算符,if-else语句

    复合运算符 a *= b # a = a * b a += b # a = a + b a -= b # a = a - b ... 位运算符 对数字进行二进制运算 按位与 &,二进制位都为一 ...

  8. 一、create-react-app的安装及使用

    一.安装create-react-app 1.在全局环境中安装create-react-app npm install -g create-react-app 2.在您所需要的目录(盘)下生成一个项目 ...

  9. Natas2 Writeup(水平越权)

    Natas2: 查看源码,发现页面隐藏了一个图片的连接,分析图片,无隐写内容,联想到目录权限问题,访问同级目录http://natas2.natas.labs.overthewire.org/file ...

  10. HTTPS加密传输过程

    HTTPS加密传输过程 HTTPS全称Hyper Text Transfer Protocol over SecureSocket Layer,是以安全为目标的HTTP通道,在HTTP的基础上通过传输 ...