程序员与自动化相关的项目讨论

自动化 幸运的是,作为程序员,我们所处的行业天然适合引入机器来提升工作效率。机器能够高效地执行任务,并且可以不间断地工作。

代码生成器 对于程序员而言,代码生成器是日常工作中实现自动化的重要工具。

然而,一提到代码生成器,可能会遇到一些质疑的声音。如果你曾使用过早期的代码生成器,你可能也会对它们抱有负面印象。

大约十年前,我当时的公司购买了一套代码生成工具,该工具宣称配置好业务逻辑后即可同时生成ASP、PHP和JSP代码。但公司推广两个月后发现难以实施,因为工具无法处理我们特有的业务逻辑,且每个部门有自己的编码规范和库,这些都与该工具不兼容。

此后,我们对代码生成器产生了抵触情绪。

不过,后来为了偷懒,我还是不断尝试并逐渐意识到,要开发一个全球通用的代码生成系统可能非常困难;但为自己定制一个专用的代码生成器却相对简单,只要遵循以下两个原则。

只为自己设计 第一个原则是“只为自己设计”。

由于每个公司、部门甚至岗位的需求千差万别,通用的工具往往难以满足特定需求。如果我们自己开发工具,就可以完全根据个人的工作流程和编码需求来设计。

我们清楚知道元数据如何存储、处理以及最终生成何种代码,因此可以创建非常适合自己的代码生成器。

能自动化的自动化,不能自动化的半自动化 第二个原则是“能自动化的自动化,不能自动化的半自动化”,尤其是后半句非常重要。

许多程序员在设计代码生成器时过于追求完美,希望系统完成所有工作。但由于开发环境和办公软件间缺乏交互接口,很多情况下无法实现全自动。面对这种情况,完美主义者可能会选择手动处理。

但是,我们开发代码生成器的根本目标是提升生产效率,而非创造一个完全自动化的产品。即使有些部分无法完全自动化,我们也可以采用半自动化的方式。

半自动化有两种思路。一是通过交互方式解决无法自动化或需要花费大量时间的细节问题。

例如,早期做网站时,编辑提供的资料都存储于Office软件中,那时没有好的Office格式解析包,许多人选择手工输入数据。我的解决方案是在Office中复制表格数据,粘贴到textarea中,然后使用PHP分析tab和换行符来提取数据。

尽管不是全自动,但比起手工输入,效率提升了数十倍。

另一种思路是对小操作进行自动化以生成代码片段。

例如,写输入处理时通常需要根据数据表字段进行验证,这是重复性劳动。我写了一个小工具,可以直接读取数据表字段及注释,根据注释自动生成验证代码。将这些代码粘贴到编辑器后稍作修改,就能迅速完成验证工作。这虽然技术含量不高,但显著提升了生产效率。

这只是我想到的一些思路,实际上还有更多方法。有的同学通过工具链和命令行交互来实现自动化。

相关推荐

  1. 程序员自动化相关项目讨论

    2024-04-13 14:38:03       42 阅读
  2. python自动化运维相关库有哪些?

    2024-04-13 14:38:03       21 阅读
  3. 关于FBPINN讨论

    2024-04-13 14:38:03       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-13 14:38:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-13 14:38:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-13 14:38:03       87 阅读
  4. Python语言-面向对象

    2024-04-13 14:38:03       96 阅读

热门阅读

  1. Android 下载、显示图片

    2024-04-13 14:38:03       34 阅读
  2. 使用simulink进行汽车软件建模的经验介绍

    2024-04-13 14:38:03       130 阅读
  3. 【示例】MySQL-索引失效的情况

    2024-04-13 14:38:03       39 阅读
  4. Etcd 故障节点修复

    2024-04-13 14:38:03       39 阅读
  5. QSQLITE QODBC QODBC3 QPSQL QPSQL7这些分别是什么?

    2024-04-13 14:38:03       34 阅读
  6. 职场新员工倒挂老员工工资

    2024-04-13 14:38:03       111 阅读
  7. for in 和 for of 的区别

    2024-04-13 14:38:03       39 阅读
  8. ES6的模块化

    2024-04-13 14:38:03       34 阅读
  9. 10个经典Python设计模式解析

    2024-04-13 14:38:03       40 阅读
  10. centos7 安装 rabbitmq3.8.5

    2024-04-13 14:38:03       33 阅读
  11. 时空大数据引擎-GeoMesa

    2024-04-13 14:38:03       31 阅读
  12. 便携式汽车充气泵方案开发设计研发

    2024-04-13 14:38:03       31 阅读