4.2 为什么作者坚持认为代码应该手写?用技术提高写代码的效率,除了造轮子,实现代码的自动生成是否也是一条出路?

GreyZeng 2022-03-18 22:19:50
...全文
355 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
GreyZeng 2023-02-07
  • 打赏
  • 举报
回复

A2:我认为在学习阶段,重复造轮子是必要的,毕竟在自己能够创造新的东西之前得先学会旧的东西,以此为基础才能继续下去。学习初期一起重复性的功夫应该要多做,有助于自己的理解。但到了后面熟练的阶段,重复造轮子就没必要了,这时在能够减轻劳动量的前提下,减少一些重复代码的编写,将更多的精力去进行重要代码的开发,可以利用代码自动生成去处理重复性的代码,这样有助于提高软件开发效率。技术也是提高效率的关键,一些涉及算法的比较复杂的代码,还是得依靠自己的硬技术才能解决。
原文地址:https://bbs.csdn.net/topics/613014605

SoftwareTeacher 2022-08-14
  • 打赏
  • 举报
回复

事实上编译就是一种代码自动生成技术,也有不少编译器是把语言编译成js的,并且有一定的实用性。


软件工具,软件工程的一个重要方面,就是要做各种工具 (IDE,编译器),帮助大家更好地做其他工具 (生产力工具),最终帮助用户。

GreyZeng 2022-03-18
  • 打赏
  • 举报
回复
  • 代码手写,从本质上来讲就没有道理。按照这种说法,我们应该直接去写汇编语言。我的理解是,机器自动生成的代码和人类手工生成的代码必须分开,同时机器自动生成的代码需要对其进行语义的概括性描述,即我们需要把机器生成的代码封装起来。原因是,人类生成的代码与机器生成代码最大的不同点就是人类代码不仅仅可以编译成低级的指令,还包含了丰富的语义信息,可以被阅读,而再高明的算法产生的代码,通常都一行一行去处理各种细节,人去阅读它们,都会深陷到细节中而无法理解。
  • 对于什么时候使用自动生成代码,我认为在以下两种情况是可行的:
    • 语言不好用,以至于描述某些有共性功能涉及到的无脑细节太多,需要机器生成来避免重复劳动;
    • 语言不好用,描述很多没有共性的功能时需要解决同一个比较繁杂的问题,比如JS里的“a == b",对于这种问题,我们通常去写一个编译器把它编译成这个不好用的语言,比如typescript。

最理想的情况当然是使用的语言表意能力足够强,而我们不需要自动生成代码就可以直接避免重复劳动。但是现实很骨感,有些领域还没有很好用的工具来避免这些重复劳动,这个时候使用代码自动生成就没用问题。事实上编译就是一种代码自动生成技术,也有不少编译器是把语言编译成js的,并且有一定的实用性。可以说,代码自动生成技术是计算机行业的根基之一,但是我们要合理使用它,不要把机器的代码和人类的代码混在一起,才能有好的可读性和好的可维护性。

原文地址

606

社区成员

发帖
与我相关
我的任务
社区描述
程序员。写过:移山之道,编程之美,构建之法,智能之门。
软件工程软件构建团队开发 企业社区 北京·朝阳区
社区管理员
  • SoftwareTeacher
  • GreyZeng
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧