识字编程

2024-01-06

识字编程 http://en.wikipedia.org/wiki/Literate_programming是一种软件开发方式,首先是文档,然后是编码。首先编写代码片段的文档,然后编写该代码片段的实现。软件源代码的视觉外观将是一个类似word的普通文档,其中包含代码段落。

我正在尝试将我工作的开发商店转变为仅使用文字编程,因为它为代码的可读性和可维护性带来了巨大的优势。然而,由于缺乏工具,LP 在公司内的使用受到限制。例如,编程识字的理想方法是使用单词标记编写一个段落,然后插入一个带有实现的小段落。但我似乎找不到任何好的工具可以让 VS200x 执行 LP。

理想情况下,这样的工具看起来就像 Word 2007,但集成到 IDE 中。当编码器将光标设置在代码段落上时,它将拥有提供的所有功能,就像我们现在在 IDE 中一样。

对于 LP 有哪些好的工具,特别是 .NET 和 VS200x?


感谢您尝试改进团队的工作方式。只要你尝试这样做,你就比那些不这样做的人有优势。

我曾经在一个项目中使用过文学编程。真的很辛苦,但结果也很好。似乎是一个合理的权衡。

然而,今天我宁愿采取不同的方法:我宁愿编写清晰到人类不介意阅读的代码,而不是为人类编写散文和为机器编写代码。当我想写评论时,我想“我可以让这段代码更清晰”。这意味着我编写的文档更少,而不是更多。

好吧,无论你选择什么道路,祝你好运。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

识字编程 的相关文章

  • 在 .NET 中使用 Settings.settings 文件时,配置实际存储在哪里?

    在 NET 中使用 Settings settings 文件时 配置实际存储在哪里 我想删除保存的设置以返回到默认状态 但找不到它的存储位置 有什么想法吗 这取决于您选择的设置是在 用户 范围还是 应用程序 范围 用户范围 用户范围设置存储
  • WPF 元素宿主内存泄漏

    我在 Windows 窗体上使用元素主机时遇到奇怪的内存泄漏 我有一个主窗体 它打开另一个窗体 该窗体上只有 elementhost 控件 此时 它没有 wpf 控件子控件 只能打开 1 个主机表单 每次我打开窗体时 应用程序内存都会增加2
  • 使用 ITextsharp 将 Html 导出为 PDF

    我已经尝试了下面的代码 我也遇到了错误 我正在使用最新的 DLL String strSelectUserListBuilder h1 My First Heading h1 p My first paragraph p String ht
  • WinApi:获取 COM 表单的控件名称

    我想用 Net 框架替换我当前的 UI 自动化工具 QTP 我需要测试 VB6 COM 应用程序 框架的基础之一是使用表单名称 到目前为止 我未能找到使用 Win API 获取这些数据的方法 该解决方案只有一个约束 即该解决方案必须依赖 N
  • 为什么自定义类型变量不保存值MVC

    我正在尝试使用 MVC 5 构建一个网站 我有一个包含 3 个变量的控制器类 public class WorkerController Controller public ViewModel viewModel new ViewModel
  • Visual Studio 2022 - 编译旧应用程序时出错

    我们正在尝试在 Visual Studio 2022 中使用 VB6 32 位应用程序 编译 2002 年以来非常旧的应用程序 我们需要调试此应用程序并能够在 Windows 10 计算机上运行此应用程序 编译时 我们发现以下错误 这似乎是
  • 并行应用程序的可变与不可变[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我正在编写的应用程序中 我需要编写大量基本类型 这些类型很可能是不可变的 但我想知道并行应用程序中可变类型与不可变类型的比较如何 您可以对可变
  • 运行 t4 脚本作为 resx 文件的自定义工具

    我有一个资源文件MyResource resx 我想改变MyResource Designer cs文件生成 我有一个 t4 脚本 它接受 resx 文件作为输入并给出结果转换 但是 我必须手动运行此 t4 才能使其工作 我看到 resx
  • 如何将智能感知添加到我的应用程序中?

    我们的一款产品拥有一种专有的宏语言 通过我们的 Windows 软件进行编辑 我想添加智能感知 但我不知道如何去做 至少不完全重新发明轮子 是否有任何示例代码或第 3 方包至少可以让我开始 它不一定是免费的 该应用程序使用 NET 用 C
  • Confuser .NET 混淆器。安全吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在开发一个应用程序 其中阻止用户反编译代码非常重要 现在 我意识到 如果由经验丰富的程序员执行 大多数 exe 都是可反编译的
  • 如何成功使用 VIM 作为 Code::Blocks 的外部编辑器?

    我真的很喜欢 Code Blocks 的构建系统和单步调试能力 也就是说 我真的很喜欢使用 gcc gdb 的包装器 而不是从 Makefile 或命令行使用它们 问题是 多年来使用 VIM 使我的大脑受到了严重损伤 或者有些人可能会说被宠
  • C# - 方法必须有返回类型

    我在调用 C 中的方法时遇到问题 不断收到消息 方法 计算 必须有返回类型 using System Diagnostics namespace WindowsFormsApplication1 public partial class F
  • 为什么当要求修剪“PRN.NUL”时,TrimStart 会更多地修剪字符?

    这是代码 namespace TrimTest class Program static void Main string args string ToTrim PRN NUL Console WriteLine ToTrim string
  • .NET“默认行终止符”?

    有什么方法可以弄清楚 NET 使用什么作为其 默认行终止符 例如 StringBuilder AppendLine String 的文档表示 附加指定字符串的副本 后跟默认行终止符 NET 中的几个与文本相关的类引用相同的概念 有什么方法可
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • Delphi 2009 IDE结构视图折叠功能

    现在有谁知道折叠 Delphi 2009 IDE 结构视图中的所有项目吗 我不知道折叠所有项目 这使我很难从视图中找到我的课程 Thanks 选择根节点 类 并按数字键盘上的 除号 那会让一切崩溃 然后按数字键盘上的 加号 键 第一级将展开
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org

随机推荐

  • 在 C++ 中使用 sort() 对二维字符数组进行排序

    我有一个 2D 字符数组 我不想使用 std string 数组 如何使用 std sort 根据字符串的长度对字符串 char 进行升序排序 我已经尝试过以下方法 但这不起作用 char names 100 30 bool comp co
  • Spock 和 Groovy 保证 REST [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 Spock 的新手 想使用 Spock 和 REST assured 为 REST 接口编写测试
  • Firebase - 使用 Firebase admin sdk 跨子域共享身份验证

    我做了一些关于分享的研究auth object跨我的应用程序的子域 显然 firebase 的 web sdk 是这样设置的 我的想法是拥有一个单一登录网站login myapp com我的其他应用程序可以使用它app1 myapp com
  • 用于具有多个参数的 webapi 方法的自定义模型绑定器

    我拥有的 我有一个 api 控制器 ASP NET Core MVC 具有以下方法 HttpPost Route delete public Task
  • 在matlab中拟合二维曲线

    曲线拟合工具箱有一个名为 cftool 的工具箱函数 可让您将曲线拟合为一维数据 有二维数据的东西吗 杰瑞提出了两个非常好的选择 不过 如果您想要更公式化的模型形式 还有其他选择 当前版本中的曲线拟合工具箱允许您将曲面拟合到数据 而不仅仅是
  • 使 UITableView 看起来更像一个“传统”表格,具有多个列

    我有一个相当标准的UITableView 但我想将其更改为看起来像 iOS 开发之外的普通表格 使其具有更多列 但只有一行 并使单元格呈方形 我考虑过制作更多的表格 每个单元格一个 然后将它们彼此相邻放置 但这不太方便 是否有一种简单的方法
  • 如何限制android ListView中文本的长度?

    我可以知道如何限制文本的长度吗listView 下面是listView from wechat 这是我的listView 如何限制文本的长度 使其显示如下这是 工作描述 请 任何帮助将不胜感激 如果您设置TextView二者皆是单线 htt
  • 如何在 Eclipse 中查明某个方法是直接还是间接从另一个方法调用?

    如何在 Eclipse 中查明某个方法是否可能从另一个方法调用或可访问 直接或间接 假设我想重构A one 这可能会受到副作用的负面影响D four 因此我想知道是否D four 可能会被调用A one 我可以看到调用了哪些方法A one
  • 在 Apps 脚本中将文本关键字替换为“分页符”元素

    我想用分页符替换特定的文本关键字 这是我尝试过的 body findText PAGE BREAK getElement appendPageBreak and body replaceText PAGE BREAK asBody appe
  • Rx Java Observable 执行直到某个条件

    我正在尝试找到一种执行可观察的方法 直到满足某些条件 考虑以下示例 myDelayedObservable createListenerObserver public Observable
  • 如何在 Firefox 插件 sdk 扩展中使用 main.js 中的 XMLHttpRequest。 (或类似的东西)[重复]

    这个问题在这里已经有答案了 我有一个 Firefox 扩展需要检查 onUnload 事件 基本上我想在用户禁用扩展时向我的服务器发送一条消息 我尝试做的是将消息发送到我的内容脚本之一 然后该脚本将调用 XMLHttpRequest 这对于
  • 在 Coq 中,重写适用于 = 但不适用于 <-> (iff)

    我在证明期间有以下内容 我需要替换normal form step t with value t因为有一个已证明的定理存在等价 H1 t1 gt t1 normal form step t1 t2 tm H2 t2 gt t2 normal
  • 在 Scala 中使用累加器映射列表的函数式方法

    我想编写简洁的代码来映 射列表 累积一个值并在输出列表中使用该值 使用递归函数和模式匹配这很简单 见下文 但我想知道是否有一种方法可以使用函数编程系列的组合器 如映射和折叠等 来做到这一点 显然 映射和折叠是不好的 除非您使用在调用外部定义
  • 固定顶栏与命名锚点

    我有一个顶栏position fixed其中还包含锚链接 a href someid jdjd a 问题在于目标放置在视口的顶部 固定顶栏后面 如何修复浏览器滚动以便目标显示在顶栏下方 据我所知 没有干净的解决方案 如果使用内联滚动条也可以
  • xcframework不包含内部框架

    我正在尝试创建一个 xcframework我正在使用的一些第三方库的文件 按照以下指示https appspector com blog xcframeworks https appspector com blog xcframeworks
  • 将输入更改为大写,光标不会跳到文本末尾

    我使用以下代码将输入值更改为大写
  • AWS 服务无法承担角色

    我有两个 AWS Cloudformation 堆栈 一个用于 IAM 角色 第二个用于创建 AWS 服务并使用 Cloudformation 将相应的角色导入其中 当部署 10 个以上服务时 其中 1 个或 2 个服务会随机出现以下错误
  • Appium XCUITest 中的代码签名证书错误

    我正在尝试使用 Appium XCUITest 实现 IOS 10 的 UI 自动化 在运行脚本时 它尝试构建 WebDriverAgent 但此时失败 我已经添加了配置文件并通过 UI 在 Xcode 中添加了帐户 但不确定 XCUITe
  • 如何使用 Espresso 测试适配器中特定位置的项目

    我正在尝试使用 Espresso 2 0 来验证给定位置的列表适配器项中的文本是否正确 但在我的一生中 我无法找出要调用的正确方法 我的适配器类型 IconRowAdapter 包含一个列表IconRow对象 每个 IconRow 有一个g
  • 识字编程

    识字编程 http en wikipedia org wiki Literate programming是一种软件开发方式 首先是文档 然后是编码 首先编写代码片段的文档 然后编写该代码片段的实现 软件源代码的视觉外观将是一个类似word的