6款程序员实用工具,老少皆宜,你一定用得上!

news2024/10/7 8:27:49
从事开发行业已有4年之久,在此期间积累了不少好用的开发工具,希望帮助各位在工作上化繁为简,提升个人生产力。
这里的分享本着1个原则去做: 凡是需要重复做的,必须使用自动化工具来完成。

01、单元测试工具——PHPUnit

写程序需要验证,想要快速知道新的代码和过去写的代码不冲突,这个时候单元测试就能起到作用了。

当然单元测试的作用不仅仅是这个,还具有

  • 验证代码正确性和可靠性
  • 验证新代码不和原有代码冲突
  • 验证自己代码不合团队其他人员代码有冲突
  • 验证合并是否有冲突
  • 验证快速
  • 可以作为API使用实例
  • 跨平台和跨环境测试

单元测试的项目是现代开发流程的基本模块之一,如果没有它,将不是一个合格完整的项目。

有了单元测试,就不用担心在大项目中,自己做的小修改会有有什么大影响。开发压力大大减少

PHP,我用的是PHPunit,JavaScript用过的就多了,Jasmine,Qunit,Mocha等工具(不管哪一个,至少要用到一个)C#一般用nUnit。还有各种mock,faker辅助。

02、功能测试工具——PhantomJS

这个工具是交互界面测试,也可以是界面样式测试。代码写的方式大致过程和单元测试差不多,区别在于单元测试每个单元都是独立的,理论上不应该有任何依赖关系(只要有依赖关系就叫做集成测试);而功能测试,是最后成品的测试,必须把所有依赖打开,并且在界面上进行测试。

界面功能测试的优点:

  • 速度比人工快
  • 模拟真人操作
  • 可以录像后导出测试代码
  • 可以抓图

缺点:

  • 依赖多,依赖的环境变化可导致代码失效
  • 速度相对单元测试慢很多
  • 测试成功率可能不是100%

功能测试,也是自动测试的一种,至少解放了大量重复性劳动,大大提升界面功能开发的速度。

功能测试工具主要有PhantomJS和Selenium。我两个都用,根据不同情况使用不同策略。

03、低代码工具——JNPF(PC端更好用)

在开发内部工具的过程中,大量的页面、场景、组件等在不断重复,低代码针对这类问题,把某些重复出现的场景、流程,具象化成一个个组件、api、数据库接口,避免了重复造轮子。极大提高了生产效率。

(1)项目管理

低代码素有应用软件里的“乐高”之称,只要像搭积木一样,就能快速搭建出各种场景的应用。小到表单收集,大到项目管理、客户管理、工单管理甚至全流程管理,能实现。

结合系统中的看板视图,我们可以详细看到团队中每个成员的项目进度与团队的整体进度,方便随时了解项目进展。

2)流程协同

所有涉及到企业流程管理的问题,都可以用低代码解决,搭配其信息收集和数据分析能力,基本上能解决企业所有的流程管理问题

比如采购流程、用车申请流程、报销流程、请假流程,甚至周报日报流程,都可以用来自动化,流程搭建也很简单,只要你能梳理清楚业务逻辑,就能搭建

在线工具,无需下载APP,能集成企微、钉钉、微信等常用的通讯工具,简易方便。

04、Live Reload

Live Reload一般是和流程管理一起使用的,(也有独立使用的版本)。独立出来说也是为了体现程序员一个终极特质:懒。凡是重复的,必须使用工具完成。Live Reload就是这个体现:按F5是个重复的低效率行为,必须交给工具完成

Live Reload的功能说起来很简单:

  • 检查文件是否变动
  • 如果变动刷新页面

给开发人员带来的直接好处就是查看页面变动,只要按ctrl+s保持代码就行了,连f5都不用按了。就这好处,足以把Live Reload这个工具当作神器了。配合流程管理工具,只要保存代码(ctrl+s),就马上进行构建,构建完成自动刷新页面。

我用的Live Reload是grunt-contrib-watch。

05、代码质量分析工具——JSHint

人工检查代码的效率是比较低下的,所以质量分析这一块可以作为开发辅助工具,来提高开发质量常见的代码质量工具有:

  • 语法检查,保证代码语法正确,可以跨平台,使用最佳实践
  • 代码风格检查,保证团队代码风格一致
  • 代码压缩,减少尺寸
  • 重复代码检查
  • 无用代码检查
  • 模块复杂度分析
  • 模块连接分析
  • 等等

JavaScript和PHP的用的比较多,Jshint,Jscs,uglifyjs,phpcpd,phpcs,phpdcd,PHPLOC等等工具,可以帮助开发人员提高代码质量,控制团队代码风格。

6持续集成——Jenkins

有人和我说过,持续集成可以让你开发水平提高达到到另外一个层级。当我实践后,终于明白持续集成的魅力所在了。

要会持续集成,你首先必须学会以上6条(live reload除外),以上6条基本就是持续集成的几个基础模块,学会后,你自然而然就已经会了持续集成了。

持续集成的主要流程如下

  • 检查版本控制库是否更新
  • 如果更新,就下载最新版本的代码
  • 构建
  • 测试
  • 报告

当你设置好一个持续集成的项目后,以上的步骤应该就是全自动的了。还是那句老话: 凡是重复的步骤,应该用工具来完成。而持续集成就是这个终极工具。

持续集成其实就是流程管理的一个升级版本,或者说一个扩充。它们都是自动流程工具。它们的差别是:

  • 流程管理主要在本机(开发人员自己的开发环境)上执行,而持续集成则是在一个独立设置的环境下执行。
  • 流程管理继续的是本机代码,而持续集成构建的是版本控制中保存的代码
  • 团队中任何一个人push代码到版本控制中,持续集成就开始构建验证新代码的可靠性。
  • 项目流程配置完成后,流程管理需要执行命令行,持续集成应该全自动
  • 流程管理是持续集成的一个模块,属于持续集成的构建模块
  • 持续集成会有更多后续的专业功能,比如说产生报告,错误通知,构建历史,测试历史等开发新型

我们可以设想一下这样的一个情况,在有20-50个人的团队在开发一个PHP项目,每个人每天至少往版本控制中push大约10次新代码,而这个项目你又要保证在3个主流的浏览器中功能一致,样式相同,而这个项目又必须跨平台,可以在mac,window,linux上都可以运行,而且还要保证PHP5.4~5.6都可以运行。这个时候,持续集成系统的优势就会显示其真正的威力了。

结语:

文章到此算完结了。其实开发中,还有很多优秀的工具,但无法和这些主要的开发工具相比,就不在这里说了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/665717.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

7从0开始学PyTorch | PyTorch中求导、梯度、学习率、归一化

今天我们继续,接着昨天的进度。 先回顾一下上一小节,我学到了构建起一个模型函数和一个损失函数,然后我们使用人眼观察损失,并手动调整模型参数。然而看起来,我们虽然看到了损失,但我们调整参数的方案跟损失…

【Python学习】—认识Python与环境搭建(一)

【Python学习】—认识Python与环境搭建(一) 本章节思维导图如下: 一、Python解释器 首先一个基本原理就是:计算机只认识二进制,0和1 Python解释器,是一个计算机程序,用来翻译Python代码&…

十六、Docker Swarm的介绍和使用

一、Swarm简介 1、swarm介绍 Dockere Swarm是Docker公司推出的用来管理docker集群的编排工具,代码开源在https://github.com/docker/swarm, 它是将一群Docker宿主机变成一个单一的虚拟主机,提供了标准的 Docker API,所有任何已经与…

MySQL8超详细安装教程

MySQL的下载与安装 一、MySQL8下载 MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。 MySQL Enterprise Edition 企业版本,需付费,不能在线下载&#x…

VUE——Vue CLI的原理与基本使用

摘要 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 vue/cli 实现的交互式的项目脚手架。通过 vue/cli vue/cli-service-global 实现的零配置原型开发。一个运行时依赖 (vue/cli-service),该依赖: 可升级&…

互联网企业更需要线上版的产品手册

互联网企业在不断发展变化的市场中,需要更加灵活和快速地适应市场需求,因此,线上版的产品手册对于互联网企业来说是非常重要的。 互联网企业更需要线上版的产品手册的原因 互联网用户更喜欢在线文档 互联网用户更喜欢在线文档,…

中创|没人比我更懂!马斯克发出警告:人类要小心人工智能

马斯克在过去十年对AI的态度一直非常鲜明,很早就对这个问题有深入地思考: 2014 “我们对AI要非常小心,这可能是我们最大的存在威胁。” 2016 “AI的未来发展方向可能并不乐观,起码不会所有结果都是好的。” 2017 “AI会比地…

中原银行 OLAP 架构实时化演进

中原银行 OLAP 架构实时化演进 1. OLAP 实时化建设背景2. OLAP 全链路实时化3. OLAP 实时化探索4. 未来探索方向 中原银行成立于 2014 年,是河南省唯一的省级法人银行,2017 年在香港联交所主板上市,2022 年 5 月经中国银保监会批准正式吸收合…

【问题解决】 网关代理Nginx 301暴露自身端口号

一般项目上常用Nginx做负载均衡和静态资源服务器,本案例中项目上使用Nginx作为静态资源服务器出现了很奇怪的现象,我们一起来看看。 “诡异”的现象 部署架构如下图,Nginx作为静态资源服务器监听8080端口,客户浏览器通过API网关…

跟晓月一起学:mysql中常用的命令汇总

前言 本文主要讲解了MySQL中常用的命令,感谢师父的耐心指导,师父博客:https://zmedu.blog.csdn.net 本文是对MySQL常用的两个命令的总结,一个是select ,一个是show命令,很多时候我们监控MySQL需要监控MyS…

ABB 5SHY35L4520 AC10272001R0101/5SXE10-0181 IGCT模块

ABB 5SHY35L4520 AC10272001R0101/5SXE10-0181 IGCT模块 ABB 5SHY35L4520 AC10272001R0101/5SXE10-0181 IGCT模块 2、DCS的软件系统 DCS的软件体系如图2所示,通常可以为用户提供相当丰富的功能软件模块和功能软件包,控制工程师利用DCS提供的组态软件&…

STM32 USART串口

什么是串口 串口是串行接口 (Serial Interface)的简称,它是指数据一位一位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信(可以直接利用电话线作为传输线),从而大大降低了成本&#xf…

优秀的 Verilog/FPGA开源项目介绍(三十七)- MATH库

DSP介绍 数字信号处理( Digital Signal Processing)技术广泛地应用于通信与信息系统、信号与信息处理、自动控制、 雷达、军事、航空航天、医疗、家用电器等许多领域。DSP 技术可以快速地对采集的信号进行量化、变换、滤波、估值 、增强、压缩、识别等处理&#xff…

2023 linux驱动中probe函数的返回值,返回0成功。返回负数则失败,这个时候驱动向系统申请的有关资源都会被释放,如中断号,申请的内存等。实际测试。

一、在linux 驱动里面申请一个gpip&#xff0c;&#xff0c;gpip2b4 变换是 76 &#xff0c;dts 如下&#xff1a; m117b45 {compatible "xxx,m117b";reg <0x45>;pinctrl-names "default";pinctrl-0 <&m117b_gpio>;pwdn-gpios <&a…

数据库数据更新:从内存到磁盘,一步步揭开数据的神秘面纱!

大家好&#xff0c;我是小米&#xff01;今天我要和大家分享一下数据库数据更新的流程。作为一名热衷于技术分享的小伙伴&#xff0c;我希望通过本篇文章&#xff0c;帮助大家更好地理解数据库数据更新的过程。废话不多说&#xff0c;让我们开始吧&#xff01; 获取数据 在数据…

PM3328BP-6电源模块PIONEER MAGNETICS

PM3328BP-6电源模块PIONEER MAGNETICS PM3328BP-6电源模块PIONEER MAGNETICS DCS中的先进控制技术 DCS在控制上的最大特点是依靠各种控制、运算模块的灵活组态&#xff0c;可实现多样化的控制策略以满足不同情况下的需要&#xff0c;使得在单元组合仪表实现起来相当繁琐与复杂…

基于GO实现的简易博客,附源码

1、简介 此博客系统主要是基于GO、Gin、Gorm进行开发&#xff0c;以及采用lay-ui框架进行前端界面的开发&#xff0c;项目包含功能众多&#xff0c;基本上涵盖了博客系统的大部分需求。 此项目适合开发者练手学习&#xff0c;同时也适合高校毕业设计的作品。 以下对作品进行…

#经验分享#消防电源强切故障

工业园火灾报警控制器显示&#xff0c;13#厂房电源强切报故障&#xff0c;经过紧急处理&#xff0c;成功解决了故障问题。 据了解&#xff0c;故障原因是71#强切模块被修复大门时损坏模块破碎无法进行修复&#xff0c; 只留有接线底座&#xff0c;测试并检查底座线路正常。 坏…

如何查看jar包的官网地址

https://mvnrepository.com/ 使用artifactId搜索 点击要查看的版本 查看HomePage LicenseApache 2.0CategoriesJSON LibrariesTagsformatjsonOrganizationAlibaba GroupHomePageGitHub - alibaba/fastjson2: &#x1f684; FASTJSON2 is a Java JSON library with excellent…