`
歆渊
  • 浏览: 307780 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

关于”代码既文档“的新思考

阅读更多
我原来也很赞成”代码既文档“的想法,认为有很大的可行性,只是没有发展出相应的流程和工具机制,才没有成功。

最近的一些思索让我发现这方面还没有那么简单,主要是在抽象级别方面。代码描述的是系统的内部实现构造,而文档描述的是系统的外在表现。

即使是加在代码上的结构化的注释,主要表达的也是系统是如何实现的,它可以说明一段代码,一个方法,一个类,甚至一个组件是做什么的,但这些依然不是系统最终用户所能直接理解和受益的资料。

对于软件工程来说,文档的作用是告诉不了解实现技术的人(如最终用户),系统是做什么的;或者告诉了解实现技术,但没有时间和必要性去深入细节的人(如实施人员),系统的实现思路。

系统的内在机制和外在表现之间需要知识介质联系起来,目前这种知识就体现在软件文档中。
分享到:
评论
9 楼 congdepeng 2011-09-22  
代码既文档 还是 文档既代码。

DSL!
8 楼 huhang1986 2011-04-26  
文档是代码的冗余,所以同时维护代码和文档很痛苦。
7 楼 uda1341 2010-01-20  
1楼想法正点,现有的计算机语言抽象能力太弱,才导致文档必须与代码分离。

不仅如此,那样的理想语言会导致计算机软件体系的重大变革,从目前的各自为营的状态变成一个整体。
6 楼 xieshaohua 2009-11-14  
文档是代码的抽象。
5 楼 qqwjz 2009-06-03  
极限编程推荐的是:维护最小的文档集,不到迫不得不写文档的。对系统架构、系统分析等全局结构描述的文档是必不可少的。
4 楼 rubynroll 2009-05-14  
“代码即文档”,而不是 “代码即全部文档”,有些层次的文档是一定需要的。
3 楼 suifeng 2009-04-20  
集中在一起便于积累和维护,现在维护最大的问题就是文档不全,文档和代码不一致,修改之前,要理解原来作者的设计意图,如果所有相关文档都有,修改起来就很清晰.
2 楼 liujunsong 2009-04-20  
代码就是代码
文档就是文档
非要把两种东西搞一块,只能是搞的不伦不类,乱七八糟.
Java的doc就是典型例子,从里面找点东西出来,这个费劲啊
1 楼 suifeng 2009-04-20  
"代码既文档"的想法很好,很超前,极有可能是以后的发展方向.如果以后能出现一门抽象级别更高的语言,它能直接支持这想法,而现在的语言不支持这种想法(可能有,或许没发现),现在的语言大都依靠注释去完成用户接口.
  如果有种语言能支持多视图:购买者视图,使用者视图,管理者视图,开发者视图,测试者视图,维护者视图,...;那么"代码既文档",也许会可行.

相关推荐

    jain-sip代码介绍文档

    文档的描述部分提到,此文档是个人收集的资料,关于用Java进行SIP开发的资料在国内较少,暗示该文档具有一定的稀缺性,并且对于需要文档但无积分的读者,可以通过发送信息来索取。标签中的“gb28181”可能是指在特定...

    编译原理课程设计(源代码+报告文档)

    这份资源包含源代码和报告文档,它们是学习和完成编译原理课程设计的重要组成部分。 源代码部分可能是用某种编程语言(如C、C++或Java)实现的一个小型编译器。编译器通常分为几个主要阶段:词法分析、语法分析、...

    哲学家就餐问题代码及文档

    同时,文档中的参考资料也会引导你深入学习更多关于并发控制和操作系统原理的知识。 在学习过程中,你可以尝试修改代码,比如增加哲学家的数量,看看算法是否仍然有效;或者尝试不同的解决方案,比如使用其他同步...

    iOS代码规范文档1

    虽然有些人可能会认为编码规范限制了他们的创造力,但实际上,规范让代码更易理解,反而突出了开发者的技术水平和思考深度。同时,尽管可能并非每个项目都适用相同的规范,但在大型公司或团队中,有一套通用的规范是...

    ASP五子棋源代码+文档

    【ASP五子棋源代码+文档】是一个针对网络开发爱好者的资源,主要涵盖了使用ASP(Active Server Pages)技术实现的一款在线五子棋游戏。ASP是一种经典的服务器端脚本语言,常用于构建动态网页应用程序。这款五子棋...

    java停车场代码加文档

    阅读这些文档可以帮助我们了解代码背后的思考和实现逻辑。 8. **测试**:为了确保代码的正确性,开发者可能会编写单元测试和集成测试。JUnit是Java常用的测试框架,可能在项目中被用到。 9. **版本控制**:项目...

    java新手文档

    实践中遇到的错误和问题可以促进学习者的思考,并通过查阅文档、书籍或询问他人的方式解决问题,这本身就是编程学习中的一个重要环节。 文档中还提到了对Java概念的学习,比如对象、类和继承等面向对象编程的特性。...

    android studio课程设计作业PPT+设计文档+可运行源代码+设计思路.rar

    通过深入研究PPT、设计文档、源代码以及设计思路,不仅可以掌握基本的Android开发技能,还能了解到如何将理论知识应用于实际项目,这对于提升开发者技能和理解项目开发流程都极其重要。无论你是初学者还是有一定经验...

    人工智能导论大作业-黑白棋AI+源代码+文档说明 (高分项目).zip

    人工智能导论大作业-黑白棋AI+源代码+文档说明 (高分项目).zip,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为毕设、课程设计期末大作业...

    AndroidCodeStandard:Android代码规范文档

    也研究了很多关于谷歌源码的编码规范,同时我也在无时不刻在思考,如何能写出让别人更好的理解的代码,自打入行以来,我就在一直在这个问题上面探索。 为什么要做成一个开源项目?因为项目会长期更新,大家如果对...

    ACM最全资料(代码+文档)

    每个团队由三名队员组成,他们需要共享思考、讨论策略,甚至分工合作,一人负责输入、一人负责编写代码、一人负责测试,这需要高度的默契和沟通能力。 总的来说,这个压缩包中的资源是一套完整的ACM学习资料,包括...

    游戏,大嘴鱼吃豆豆游戏,Java完整源代码,内含详细设计文档,代码说明文档,游戏包括计分计算,关卡升级伴随着速度升级,鱼也会变大

    游戏,大嘴鱼吃豆豆游戏,Java完整源代码,内含详细设计文档,代码说明文档,游戏包括计分计算,关卡升级伴随着速度升级,鱼也会变大。 一、 背景描述 在完成面向对象、Swing、线程的课程后,可以开始练习本项目的...

    Java编程思想参考答案代码及文档

    本压缩包包含两部分主要内容:Java编程思想的答案代码和英文版的答案文档。 1. **答案代码**: 这部分通常是对书中各章节习题的解答,涵盖了类的设计、对象的创建与使用、继承、多态、接口、异常处理、集合框架、...

    软件文档管理指南,软件文档管理指南

    - **知识传承**:文档记录了开发过程中的思考和决策,有利于团队交接和知识积累。 2. **文档管理流程**: - **创建**:文档应由负责相应工作的人员编写,确保内容的准确性和专业性。 - **审查**:通过同行评审或...

    C#语言定义文档.zip

    文档的5.0版本是C#语言的一个关键里程碑,它引入了许多新特性,如async/await异步编程模型,使得处理I/O密集型操作更加简洁和高效;泛型的增强,支持协变和逆变,提高了代码的复用性;以及动态类型,允许在运行时...

    java 小型游戏项目(文档与源代码)

    Java小型游戏项目通常涵盖了许多...源代码分析将帮助你学习如何将理论知识应用于实际项目中,而文档则能引导你理解开发者的思考过程和决策。无论你是初学者还是有一定经验的开发者,这样的项目都能为你带来宝贵的提升。

    PHP文档编写和编码规范

    文档编写在软件开发中占据着至关重要的地位,因为它不仅是向用户传达如何使用程序的关键途径,也是确保未来程序维护和扩展时能够理解开发者的思考过程和设计决策的重要手段。良好的文档可以帮助开发者在回顾项目时...

    源代码就是设计,真的

    ### 源代码就是设计 —— 关键知识点解析 #### 一、源代码作为工程文档的重要性 ...通过深入理解这一理念,开发者可以更好地进行设计思考,编写出既高效又优雅的代码,从而推动软件行业的持续发展。

    人工智能导论大作业-黑白棋AI+源代码+文档说明

    实验基于python tkinter库实现了一个图形化黑白棋人机对局程序,并实现了实时显示AI落子位置及思考时间等功能。其中AI部分实现了基于Minmax和Roxanne优先级策略的MCTS算法,在与人类玩家的对局中有较好的表现。 - - ...

    算法文档无代码逻辑推理中“思维嵌套”问题的研究

    然而从可用信息中可以看出,这是一个关于算法文档无代码逻辑推理的资源链接,研究者可能需要通过这个链接访问到相关的算法研究资源。由于内容不完整,无法提供更深入的分析。 综合上述信息,这篇文档所涉及的知识点...

Global site tag (gtag.js) - Google Analytics