• 第三十章 编程工具


    设计工具

    目前的设计工具主要就是那些能创建设计图表的图形化工具。

    源代码工具

    编辑

    • 集成开发环境(IDE);
      • 在编辑器中进行编译和错误检测;
      • 与源代码控制工具、build工具、测试工具、除错工具集成;
      • 显示程序的扼要视图或大纲视图;
      • 跳转到类的定义、子程序定义、变量定义处;
      • 跳转到使用某个类、子程序、变量的全部位置;
      • 针对特定语言的编排格式;
      • 针对正在编辑的语言的交互式帮助;
      • 花括号匹配;
      • 常用语言的结构模板;
      • 智能缩进;
      • 自动化的代码转换或重构;
      • 可以用熟悉的编程语言进行宏编程;
      • 列出查找的字符串,使常用的字符串无需重新键入;
      • 在查找和替换时可用正则表达式;
      • 在一组文件中进行查找和替换;
      • 同时编辑多个文件;
      • 双列式的diff对比;
      • 多级编辑动作撤销;
    • 针对多个文件的字符串查找和替换;
    • diff工具;
    • merge工具;
    • 源代码美化器;
    • 生成接口文档的工具;
    • 模板;
    • 交叉引用工具;
    • 类的继承体系生成器。

    分析代码质量

    • 吹毛求疵的语法/语义检查器;
    • 尺度报告器。

    重构源代码

    • 重构器;
    • 结构改组工具;
    • 代码翻译器。

    版本控制

    • 源代码控制;
    • 依赖关系控制,类似UNIX下提供的make工具;
    • 项目文档的版本管理;
    • 将项目的工件关联到一起,这样当需求发生变更时,你能找出收影响的代码和test cases。

    可执行码工具

    产生目标码

    • 编译器与链接器;
    • Build 工具;
    • 程序库;
      • 容器类;
      • 信用卡交易服务;
      • 跨平台开发工具;
      • 数据压缩工具;
      • 数据结构与算法;
      • 数据库操作工具与数据文件操控工具;
      • 图解/图示/图表工具;
      • 图像工具;
      • 许可证管理器;
      • 数学运算;
      • 网络与互联网通信工具;
      • 报表生成器与报表查询生成器;
      • 安全与加密工具;
      • 电子表格和数据网格工具;
      • 文本与拼写工具;
      • 语音、电话与传真工具;
    • 代码生成向导;
    • 安装;
    • 预处理器;

    调试

    下列工具有助于程序调试:

    • 编译器的警告信息;
    • 测试用的脚手架;
    • Diff工具;
    • 执行剖测器;
    • 追踪监视器;
    • 交互式调试器——软件版和硬件版。

    测试

    下列功能特性和工具有助于你进行有效的测试:

    • 自动测试框架,如JUnit、NUnit、CppUnit等;
    • 自动化的测试生成器;
    • 测试用例的记录和回放工具;
    • 覆盖率监视器;
    • 符号调试器;
    • 系统扰动器;
    • Diff工具;
    • 脚手架;
    • 缺陷注入工具;
    • 缺陷跟踪软件。

    代码调整

    • 执行剖测器;
    • 汇编代码清单和反汇编。

    核对表:编程工具

    • [ ] 你有一套有效的IDE吗?
    • [ ] 你的IDE继承了:源代码控制、build/测试/除错工具,以及其他有用的功能吗?
    • [ ] 你有能自动进行常用的重构操作的工具吗?
    • [ ] 你是否使用版本控制工具,对源代码、内容、需求、设计、项目计划及其他的项目构件进行管理?
    • [ ] 如果你正面对超大型的项目,你是否使用了数据字典或者其他“包含系统中使用的各个类的权威描述”的中央知识库;
    • [ ] 当你用到代码库时,你是否考虑用它来代替“编写定制的代码”?
    • [ ] 你是否充分利用了交互式除错器?
    • [ ] 你是否使用make或其他“依赖关系控制软件”,用来高效并可靠地build程序?
    • [ ] 你的测试环境包含有自动化的测试框架、自动测试生成器、覆盖率监视器、系统扰动器、diff工具,以及缺陷跟踪软件吗?
    • [ ] 你有没有制造过定制工具——能满足特定项目需求的那种,特别是能自动执行重估任务的工具?
    • [ ] 总而言之,你的工作环境有没有从“充足的工具支援”中获益?

    要点

    • 程序员有时会在长达数年的时间里忽视某些强大的工具,之后才发现并使用之;
    • 好的工具能让你的日子过得安逸许多;
    • 下面这些工具已经可用了:编辑、分析代码质量、重构、版本控制、除错、测试、代码调整;
    • 你能打造许多自己用的专用工具;
    • 好的工具能减少软件开发中最单调乏味的工作的量,但它不能消除对“编程”的需要,虽然它会持续地重塑“编程”的含义。
  • 相关阅读:
    Cypress系列(74)- each() 命令详解
    Cypress系列(73)- within() 命令详解
    实战-电力窃露漏电用户自动识别
    谷歌colab切换使用tensorflow1.x版本
    解决pip安装tensorflow下载缓慢问题
    如何将tensorflow1.x代码改写为pytorch代码(以图注意力网络(GAT)为例)
    graph attention network(ICLR2018)官方代码详解(tensorflow)-稀疏矩阵版
    graph attention network(ICLR2018)官方代码详解(tensorflow)
    DGL中文文档
    graphSAGE的python实现
  • 原文地址:https://www.cnblogs.com/liam-ji/p/11604083.html
Copyright © 2020-2023  润新知