leo学习系列之一——leo介绍

2024-01-21 13:59
文章标签 学习 介绍 系列 leo

本文主要是介绍leo学习系列之一——leo介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

--一些介绍

随着时间的推移,相当多的读者向我推荐 Leo。Leo 是与我所提到的其他编辑器/IDE,或者大多数读者将要使用的任何东西都很不相同的一类应用程序。Leo 的根本特点在于 Donald Knuth 的“literate programming”的概念——也就是那种认为源代码只是构成程序的一小部分的想法。程序的真正主体是对它的算法、结构、目的和用法的描述——实现它的源代码并不是主要的。总之,这是一个概念;我并没有对此深信不疑,我也并不确认这种想法是错误的。

图 3. 欢迎使用 Leo

Leo 界面的屏幕快照

一个 Leo 工程被组织为一组要点,这些要点基本上是一个对应到程序中的分层的可折叠的 内容(节点)树。一些节点包含有源代码片段,一些节点包含的是文档,还有一些节点主要是组织深层的子节点。在树中选择一个节点可以在编辑区中显示出代码或者相关内容。例如,一个 Python 模块通常会作为一个节点,并包含对应于它的类的子节点。每个类节点可能包括一些文档,还会有一组方法节点。结果是,这种对节点的组织在编辑环境中产生了深层次的折叠;但是一个节点远不只是一个折叠点——例如,节点可以被克隆,所以在一个大的工程中,同一个节点可以出现在多个相应的位置。

可以通过 tangling和 untangling 工程来在 Leo 工程外部创建实际的源代码,或者将其导入到 Leo 工程。例如,Leo 可以很好地从一个存在的 .py文件中自动生成要点。当然,您还可以从头开始一个 Leo 工程,并指定哪些内容被写入到哪些文件 (用什么语言、代码或文档)。节点的描述详细说明了当 untangle 时哪些需要被写入,以及这些部分的外观和行为。

对编辑者来说,Leo 的内容区与 IDLE 是等同的。Leo 中的交互式 Python shell 实际上看起来是直接借用于 IDLE。但是 Leo 并没有真正致力于传统的代码编辑问题——而是作为组织者、工程工作空间以及结构化开发环境。Per Knuth 的观点认为实际的代码只不过是外围的东西。

事实上,我还没有真正充分使用 Leo,以完全 理解它所推崇的开发风格。我觉得它可能对很多类工程来说是确实有用的,包括应用程序和文档——但是这需要去适应 Leo 的风格。尽管如此,我的许多读者对它还是非常推崇。



选自:http://www.ibm.com/developerworks/cn/linux/l-cpyide/

http://www.open-open.com/lib/view/open1324649712030.html




  • Leo is ...

  • 这个纯Python 的编辑环境用最简单的代码实现了如此丰富的编程思想
    • Leo 可以是 一个通用的数据管理环境

    • Leo 可以是 一个柔韧性的项目,程序或是其它数据的浏览器

    • Leo 可以是 一个项目管理器

    • Leo 可以是 一个提纲式的程序编辑器

    • Leo 可以是 ....
  • 下载帮助文件来学习 _sbooks.chm

    • 在线阅读 : The Leo Tutorial — Leo 4.11 documentation

    • Slides — Leo 4.11 documentation

    • Leo’s Users’ Guide — Leo 4.11 documentation

开发体验


这篇关于leo学习系列之一——leo介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/629776

相关文章

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Python实现html转png的完美方案介绍

《Python实现html转png的完美方案介绍》这篇文章主要为大家详细介绍了如何使用Python实现html转png功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 1.增强稳定性与错误处理建议使用三层异常捕获结构:try: with sync_playwright(

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.