美文网首页
文学编程相关总结

文学编程相关总结

作者: 业翔 | 来源:发表于2021-11-08 18:23 被阅读0次

    很多人刚看到文学编程这几个字,就觉得这玩意很好玩,但这些人稍加了解后,又会觉得这玩意是智商税,最后一笑而过了。
    只有很少人真正去深入尝试,在实践中探索什么是文学编程。也只有这些人才懂得文学编程的意义。
    本文主要总结一下我最近使用文学编程的一些心得。

    文学编程的意义到底是什么?在我是看来,它的意义在于能够让自己更自在地,更顺畅地写代码。

    当今时代混饭用的编程语言大多是面向对象的语言,不管啥业务需求,都得分别写在各式各样的class里面。如果不写到class,轻者被当做傻子,重者被炒了鱿鱼。因此代码的组织结构其实就是class,就是一个个分离的文件。这其实会打断编程思维的。比如说话,原本一口气把整段话完整说出即可,非要把一段话拆成几段,存成个mp3文件而且还放在不同的文件夹中,这无疑给人理解带来麻烦。写代码跟写文章一样,都存在一定的思路。写文章可以自由自在地安排段落的顺序,然而写代码却不能,数据操作相关的代码只能放在数据类的文件夹中,工具类的代码只能放在通用文件夹中。把某些代码分类放入不同的文件夹,本质上就是给代码贴标签。遗憾的在于这种方式只能贴一个标签,因为一个代码文件只能放在一个文件夹中。
    而文学编程不是贴标签,它像写文章一样,你可以自由地安排代码在文章的位置,经过文学编程引擎处理之后,却能够满足工程上的“贴标签”。

    所以我非常喜欢这种文学编程风格。

    我使用emacs来玩文学编程。emacs中有个org模式也是天生适合文学编程的。markdown应该也行,但我没有尝试过。就算markdown可以做,也需要一个不错的编辑器,能够识别代码的语法错误。不然开发效率还是低下。

    教程可以参阅:
    https://orgmode.org/worg/org-contrib/babel/intro.html

    有人翻译了一部分中文:
    https://brantou.github.io/2017/04/01/babel-intro/

    其中重点在于如何在文档中插入代码,以及如何生成代码文件。

    插入代码很简单,emacs快捷键: C-c C-, s
    emscs会插入如下字符串:

    #+begin_src 
    #+end_src
    

    如果你想编写的是javascript,那么在begin_src后面加上对应的语言名称即可。

    如果想要指定生成文件的路径,这加上 :tangle 文件路径 即可。如果不想生成代码文件,则不加。
    如下:

    #+begin_src javascript :tangle task/transTask.js
    console.log('hello world')
    #+end_src
    
    

    有时候想要将某些代码片段加入到一些代码当中,则参考以下方式:

    #+name: hello-world-prefix
    #+begin_src sh :exports none
      echo "/-----------------------------------------------------------\\"
    #+end_src
    
    #+name: hello-world-postfix
    #+begin_src sh :exports none
      echo "\-----------------------------------------------------------/"
    #+end_src
    
    #+name: hello-world
    #+begin_src sh :tangle hello.sh :exports none :noweb yes
      <<hello-world-prefix>>
      echo "|                       hello world                         |"
      <<hello-world-postfix>>
    #+end_src
    

    上面有两个代码片段名字分别为: hello-world-prefix, hello-world-postfix。最后的代码片段将会输出到hello.sh,内容引用了前面两个代码片段。

    这种方式对于复用一些代码片段是非常有用。

    代码文章已经编写完成了,应该如何将代码输出呢?

    快捷键: C-c C-v t

    就这么简单。

    相关文章

      网友评论

          本文标题:文学编程相关总结

          本文链接:https://www.haomeiwen.com/subject/twfpzltx.html