PHPDoc 的冗长是否带来的麻烦大于它的价值? [关闭]

2023-12-23

我今天第一次尝试使用 PHPDoc,很快就遇到了问题。

每 1 行变量声明,我至少有 5 行注释。例子:

/**
 * Holds path the remote server
 * @name ...
 * @global ...
 */
 $myvar = ...

当然,回报是不错的 - 但这会将 10 行配置文件变成 60 行文件。我花了很长时间才填写完,而且我还不相信它比简单的一行字能增加那么多。

这也给我的工作流程带来了麻烦。一切都很好,直到我需要进行彻底的改变。有了我记录良好的文档块,突然间我不再需要重构我的代码,但我需要重新编写所有这些乏味的细节。你说要等到最后吗?哈!那么文档将永远不会发生。

最重要的是 - 它迫使我在代码中间使用 C 风格的 /**/ 注释。这让我在开发过程中发疯,因为它剥夺了按需注释大块的能力。现在要注释掉一大块代码,我需要提取类似 :range,s/^/#/ 的内容;然后稍后撤消它。恼人的!

长话短说 - 我喜欢 PHPDoc,我喜欢有详细文档的代码 - 但是每行代码 5 行注释是太多了!。有我缺少的功能吗?这是个常见的问题吗?


它是否过度杀伤力很大程度上取决于应用程序的预期用途。如果您正在编写一个仅由单个公司或团体使用的应用程序,您可能不需要每个变量的详尽文档。

例如,现在我正在开发一个具有相当广泛的代码库但开发人员很少的项目(目前只有我)。我为两件事添加 PHPDoc 块:类和方法。对于其他一切,我经常发表评论,但不是以冗长的 PHPDoc 格式。大部分代码只会被三四个人看到,他们需要的信息是黑匣子信息:我要向这个方法发送什么,我希望从中得到什么。他们想知道如何从模型获取数据,而不是私有类变量的用途。

如果我正在编写一个应用程序,打算分发给其他开发人员或公司,并且我希望他们将我的应用程序与其他系统集成或扩展其功能,那么我会更重视更广泛的 PHPDoc 使用。这种细节在长期维护过程中肯定会派上用场。

举个例子,我当前的项目有时会需要创建一个可以从其他站点访问的 API。您可以打赌,API 的注释和书面文档将比代码行还要多。

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

PHPDoc 的冗长是否带来的麻烦大于它的价值? [关闭] 的相关文章

  • PHP 相对于 ASP.NET 有什么优势? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • str_word_count 似乎不适用于俄语

    当我在俄语中使用 str word count 时 我的字数统计很差 我配置为 UTF 8 运行 php 5 5 28 以下代码返回 1 echo str word count 1963 60
  • 会话变量从 while 循环发送特定变量

    我有这个简单的while 循环它从 mysql 查询中检索数据并在我的主页上显示几个链接 我想避免使用 php get 函数并将查询字符串添加到我的网址中 我正在考虑使用会话变量 但我需要帮助 而且我很确定这是无法完成的 当访问者单击 wh
  • 人类可读的 JSON:又名向 json 转储添加空格和换行符

    是否有一个 简单 脚本可以获取 json 数据并对其进行格式化以使其更具可读性 例如 response is a json encoded string var dump response 上面的内容在一行上输出所有内容 我希望将其缩进并加
  • Amazon Linux 上的 Nginx + php-fpm = 在信号 11 上退出

    亚马逊 Linux 最新 PHP 5 4 19 cli 构建时间 2013 年 9 月 3 日 23 19 23 nginx版本 nginx 1 2 9 安装 PHP FPM PHP 5 4 19 fpm fcgi 构建时间 2013 年
  • 如何在 PHP 中知道种子/对等点的数量

    当您放置一个 torrent文件在您的网站上下载 您如何获取该 Torrent 的种子和同级数量并通知用户 您必须联系 torrent 文件中显示的跟踪器 如果跟踪器支持 抓取 这可能就是您想要的请求 否则 由跟踪器决定要返回多少个对等点给
  • wordpressfunctions.php - 为每个帖子类别使用不同的页面模板

    我想连接到 save post 函数 找出帖子所属的类别 然后为每个类别中的帖子分配不同的页面模板 我已经尝试了大约 30 个不同的版本 但都没有成功 有人可以帮我指出正确的方向吗 add action save post assign c
  • 正则表达式匹配IP地址[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是正则表达式的新手 我想使用preg match函数用于查找字符串是否为 IP 地址 例如 string 10 0 0 1 preg m
  • 将多个单词类别显示为带破折号的 1 个单词

    我有一些具有与其关联的类别的子页面 对于超过 1 个单词的类别 例如 测试类别 我需要输出为 1 个单词 空格用破折号分隔 例如 测试类别 如何重写函数来处理这个问题 public function CategoriesList if th
  • $_POST 不包含所有数据

    几天前 我们的一家网上商店遇到了问题 Gambio基于xtC 我们有一个包含 3000 多个文本字段的公式 其中大约前三分之一工作正常 其余的都是空的 看来 POST 已正确填充 但在服务器上 应用程序获得了一个缩减的数组 我在不同的计算机
  • Memcached 获取慢、CPU 使用率高

    我在机器上运行了一个 memcached 实例来承受数据库的压力 目前 通过 PHP 每秒约有 350 个请求 根据 memcached 文档 这应该是完全可行的 但我发现 get 时间慢得离谱 平均约为 60 毫秒 双向都有峰值 0 1
  • PayPal Express 在沙盒模式下返回 4011 错误消息

    我在 PHP 脚本 curl SOAP 中以沙盒模式使用 PayPal Express 我有一个简单的购买表格 带有 1 个 购买 按钮 当它被点击时 我发送初始 SetExpressCheckout 请求并从 paypal 获得成功响应
  • php 验证十进制格式的纬度/经度字符串

    好吧 我有一个巨大的经度和纬度坐标列表 也就是说 我还有一些来源来提取这些坐标 其中一些来自 get post 方法 这可能会导致我的网站 服务中存在潜在的安全漏洞 所以我想弄清楚如何通过 PHP 验证经度和纬度 我正在考虑通过 preg
  • session_regenerate_id(true) ajax 请求或快速刷新时的无效会话

    为了避免会话固定 我在每个 PHP 页面的开头使用以下代码 session set cookie params 900 domain 1 1 session start session regenerate id true 但如果页面刷新太
  • 如何限制注册用户尝试投票两次[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 php 编码和网站设计非常陌生 我正在尝试开发一个在线投票系统 只允许注册用户投票 已完成所有操作并且工作正常 但我需要的帮助是
  • 在 Woocommerce 结帐中启用特定状态的交货时间选项

    基于 在 WooCommerce 结帐中添加自定义复选框 其值显示在管理员编辑订单中 https stackoverflow com questions 45905237 add a custom checkbox in woocommer
  • 使用PHP将大文件上传到谷歌云存储

    我正在尝试将大文件从服务器上传到云存储 文件超过 500mb 但 PHP 超时 我尝试查看 Google 客户端库文档 并在 stackoverflow 中进行爬行 但找不到任何可以帮助我的内容 还有有什么办法可以跟踪上传进度吗 这是我目前
  • 编辑表单以清理/验证电话号码

    我对 PHP 的经验非常有限 我真的希望有人可以帮助我 我想要做的是清理 验证输入的电话号码 以便只允许使用数字 我想我需要使用FILTER SANITIZE NUMBER INT但我不确定在哪里或如何使用它 这是我的代码
  • Highcharts 异步服务器加载多个系列

    我正在尝试按照其示例使用 Highcharts 的延迟加载 http www highcharts com stock demo lazy loading http www highcharts com stock demo lazy lo
  • python 格式日期时间,带有“st”、“nd”、“rd”、“th”(英文序数后缀),如 PHP 的“S”

    我想要一个 python datetime 对象来输出 并在 django 中使用结果 如下所示 Thu the 2nd at 4 30 但我在python中找不到输出的方法st nd rd or th就像我可以使用 PHP 日期时间格式一

随机推荐

  • Angular 2 自定义验证器用于检查何时需要两个字段之一

    我正在尝试实现一个自定义验证器功能来检查是否输入了电话号码 家庭电话和手机 我想在两个字段都被触摸并且没有有效值时在这两个字段上显示错误消息 由于某种原因我的代码无法按预期工作 请帮我完成这件作品 谢谢 这是 stackblitz 链接ht
  • 使用可从 Excel(或非 VFP)读取的 C# 代码创建 .DBF

    语言 C 系统 Windows7 Excel 2007 我想从一些数据创建一个 DBF 并且我想从 Excel 2007 打开它 它可以是 dBase 或 Foxpro 我目前正在FoxPro9中做 顺便说一句 这段代码来自互联网 OleD
  • Haskell 中函数的序列化

    有没有办法在 Haskell 中序列化 读取 显示 函数 例如 考虑到 t 1 1 Num a gt a gt a 我希望能够拥有类似的东西 read 1 Num a gt a gt a 不幸的是这会引发一个错误 Could not ded
  • 我可以在其他类中创建 Activity 的对象吗?

    我定义了一个函数MainActivity现在我想从我的应用程序中的另一个类访问该函数 我创建了一个对象MainActivity我用这个对象调用了该函数 虽然没有错误 但是没有执行 每次我尝试执行时 应用程序都会崩溃 Activity A 应
  • 在 C# 中使用多种表单

    我正在尝试制作一个小项目 该项目针对不同的状态使用多种表单 对话框 并遇到一些问题 我的对话框是登录 设置和显示 当应用程序启动时显示登录表单 Application Run new login 用户可以从中打开 设置 表单 或者如果满足某
  • 高效退出多线程应用程序(具体)

    我已经阅读了一些有关将消息从线程冒泡到所有其他线程以优雅退出的正确方法的资料 每个线程执行其自己的退出例程 其中 我喜欢全局原子布尔值的想法 它可以从任何线程进行标记 并且所有其他线程检查此标记以执行退出例程 当所有线程都加入时 主线程可以
  • 为单选按钮组中的每个单选按钮添加图片

    我想实现一个单选按钮组 其中每个单选按钮旁边都有一张图片 在单选按钮的左侧 那可能吗 如果是这样 怎么办 html div class form group div
  • 更改监听器而不提交表单

    我有一个列表框 我想捕获选择的更改 以便根据它填充另一个列表框 我已经尝试过以下方式
  • 如何解决“CASCADE() 缺少必需的位置参数”TypeError

    我是 Django 和 Python 的新手 我已经在 Django 中创建了一些模型 现在由于以下错误而无法再运行该应用程序 TypeError CASCADE 缺少 4 个必需的位置参数 collector field sub objs
  • Mongoose 版本控制:什么时候禁用它是安全的?

    来自docs http mongoosejs com docs guide html versionKey versionKey 是每个文档首次创建时设置的属性 由猫鼬 该键值包含的内部修订 文档 该文档属性的名称是可配置的 这 默认为 v
  • 随机自定义视图选择器[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我创建了一个视图控制器 其中包含一个滚动视图 在滚动视图上我水平添加 5 个不同的自定义 UIView 我希望自定义 UIView 应根据自
  • 在执行快照的进程遍历后,如何获取所有进程的完整命令行?

    所以 我的目标是获取所有当前正在运行的进程的完整命令行 为此 我所做的就是使用CreateToolhelp32SnapshotAPI 然后执行一个流程来存储PROCESSENTRY32在名为的数组中键入进程process list BOOL
  • iOS 7.1 UITextView 在新行后仍然无法滚动到光标/插入符

    从 iOS 7 开始 UITextView当用户键入流到新行的文本时 不会自动滚动到光标 这个问题在 SO 和其他地方都有详细记录 对我来说 这个问题在 iOS 7 1 中仍然存在 我究竟做错了什么 我安装了 Xcode 5 1 目标是 i
  • HttpUtility.HtmlAttributeEncode 的缺点

    我必须对一个字段进行编码 以确保脚本注入的安全 我知道我可以使用 HttpUtility HtmlEncode 和 Decode 但是这种用于 HI ASCII 字符的方法超出了数据库中字段大小的范围 并且我不想更改数据字段列的大小 相反
  • Oracle 12c XML 从响应中获取值

    我是 PL SQL 新手 我需要使用 SOAP Web 服务 我无法从此响应中提取 p 地址值 response xml
  • 跨域限制和子域

    子域有跨域策略限制吗 如果我有一个申请paint xxxx com这是操纵图像image xxxx com 有跨域问题吗 我问这些问题是因为我正在考虑在子域上放置代理 是的 跨域限制适用于子域 解决方案是把 document domain
  • IntelliJ IDEA 可以在完成后自动格式化代码块吗?

    一些 IDE 提供在完成一行或代码块后自动格式化它的功能 例如通过写结束花或分号 我很难相信 IDEA 不提供这种功能 或者确实如此 如果您知道如何打开它 或者如果我可能需要一些插件 请让我和全世界知道 If it s a single l
  • Emacs 中的代码折叠[重复]

    这个问题在这里已经有答案了 可能的重复 emacs中如何实现代码折叠效果 https stackoverflow com questions 1085170 how to achieve code folding effects in em
  • 无法将 String 用作 Spring Data 的 @Id

    我想使用此类在数据库上创建新表 Entity Table name currency rate public class CurrencyRate Id private String id Column name source curren
  • PHPDoc 的冗长是否带来的麻烦大于它的价值? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我今天第一次尝试使用 PHPDoc 很快就遇到了问题 每 1 行变量声明 我至少有 5 行注释 例子 Holds path the remote