🚧 Symphony(引起 || 处理)Bug 日志 & PR 日志

本贴最后更新于 2901 天前,其中的信息可能已经时移俗易

由于几乎每次贡献代码,都能引起点儿 bug 出来,让我深感惭愧,故觉有必要做一下记录,避免日后重复掉坑。给 D 大添麻烦真是太不好意思了 😭
顺便记录下自己处理的 bug(两种应该都不会很多,故而 Merge 了)

🐛 查看他人主页时标签页多出匿帖
错误原因:编辑此处代码时为了解逻辑,造成标签错误闭合
此处代码定义了四个标签页,分别是帖子、回复、匿帖、匿回。代码中嵌入了显示个数的标签。少写一个,此处显示就少一个(神奇的 FreeMarker,恕我并不了解)。写错的 if 标签,是用来判断是否在查看自己的主页,只有在自己的主页下才能查看匿帖和匿回。

🐛 编辑更新帖子报 500 错误
错误原因:在添加同步开关时,针对新增文章导向的页面 post.ftl 添加了新的字段,但没有在编辑文章处对新加的字段进行赋值
此外,判断值的时候,由于 CV 代码,对值进行了错误的判断,真是蠢哭……
在做此功能时,明明搜过 post.ftl,即知道不止一个 controller 导向了 post.ftl,却没有在相应的方法上加上需要的值,导致该 controller 导向这个页面时,引用了空对象导致异常。至于 CV 代码,实在是容易引发错误啊,
日后就算 CV,只要不是同一个东西,就手敲改写

🐛 同步文章失败
错误原因:蠢。。。瞎。。。
明明不到两行的位置下面就有自己打算添加的代码,没看到,添加重了不说,还特么添加错了 orz
太毛糙,急于提交代码,没有改后进行基本的测试。
缺少艺术家那种再小的细节也要认真处理的匠心、耐心……

🐛
错误原因:pegdown 对于纯 html 解析的不够完善,会进入死循环,可参考:PegdownIssue
这个问题一开始我跑偏了,试图从 pegdown 入手解决(心真大。。。),然而纠结了两三天的代码,并没有什么很好的解决办法(实际上,由于 eclipse 对于 maven 项目源码查看的问题,我跟踪代码困难重重,基本靠猜……),最终反过来还是在 sym 上入手,然而问题来了,虽然连蒙带猜的发现,对于纯 html,如果外面包裹上一层 < p > 标签,就可以解决,然而对于非纯 html 的 MD 语法就不行了(然而我由于太激动以为解决了就 PR 了,给自己造成了代码不同步的麻烦。。。说多了都是泪。 下次 PR 前一定要自己测清楚,之前的用例必须通过再说,一旦 PR 了,要改的话最好先合并了再改)

💄 升级 emoji 表情
TAPR(Thinking After PR):这次改动主要在图片文件上,原 emojify 是基于 gemoji 的,故而支持 alias 解析,而 twemoji 并没有 alias 一说,表情多达两千,看解析似乎是通过 unicode 码,具体怎么取调用,我是没看懂,不过感觉可能是那种选图的方式,其 emoji 图片命名是通过 codepoint,所以一开始的方案是,转换 alias 到 unicode,然后再转换为 codepoint,再转换为路径(sym 使用图库的方式比较偏门,不按他们的套路来,等同于只用了图片素材)。由此纠结了很久,诸如如何处理转换不了的,有没与可能通过 codepoint 转换为 alias 的,多余的图片是否保留等,一一搞定,到了最后,处理弹出快捷表情列表的时候,发现之前的方法统统不行了。。。强行做也行,无非就是再加一个 ajax,去后台获取 alias,然而为了这么个功能,在前端加了两个 ajax 请求,刚在看 web 性能的我觉得有点蛋疼,于是放弃了,同时回滚了两天的修修补补,在五点快下班的时候,用了大概三个小时,进行了图片文件改名,也是之前讨论的第二方案。一开始就感觉改名对代码改动最小,是比较靠谱的一个方案,但是 codepoint 不知到如何转换为 alias,后来做的时候已经通过 alias 生成了 codepoint,现在只要对应一下,写个脚本改就行了(脚本写的很丑陋就不放了,多谢 sublime 列编辑……)
说这么多,总结一下就两点: 对原逻辑改动最小的总是最优办法;重点是如何达到目的,而不是考虑解决办法看起来是否炫酷优雅。。

  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3453 回帖 • 202 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 697 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    408 引用 • 3575 回帖
  • Bug

    Bug 本意是指臭虫、缺陷、损坏、犯贫、窃听器、小虫等。现在人们把在程序中一些缺陷或问题统称为 bug(漏洞)。

    75 引用 • 1737 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 千万不要有愧疚感。你能一起帮忙维护这个开源项目已经很好了,我们这个不是火箭上天的工程,所以上线后再测试也是可以有的。

    说起细心、耐心来,确实是个习惯,但不一定这样做就是好的或者对的。我们都知道看待事情应该分多个角度,非要衡量对错的话我想唯一标准就是看“大部分人”是否都能接受罢了。讲道理就事论事,这几个 bugs 其实也增加我们之间的沟通,并且也有其他人发现了 bug 并且报告给了我们,对于我个人来说倍感欣慰啊。说大了,这才是一个生态系统的价值,我们的目标不是产出一个 Sym 程序,而是将对这个程序、对我们在做的事情感兴趣的人连接起来,这个代谢过程才是真正的价值。

    总之,还要谢谢你的。天冷了,多喝开水~

    1 回复
  • 其他回帖
  • ZephyrJung

    相比愧疚感,更多的还是烦恼自己水平问题
    希望能在不断贡献代码中,让自己成为代码的艺术家 💰

ZephyrJung
一切有为法,如梦幻泡影,如露亦如电,应作如是观 北京

推荐标签 标签

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1434 引用 • 10054 回帖 • 489 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 384 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 10 关注
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 1 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 660 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 453 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 26 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 633 关注
  • H2

    H2 是一个开源的嵌入式数据库引擎,采用 Java 语言编写,不受平台的限制,同时 H2 提供了一个十分方便的 web 控制台用于操作和管理数据库内容。H2 还提供兼容模式,可以兼容一些主流的数据库,因此采用 H2 作为开发期的数据库非常方便。

    11 引用 • 54 回帖 • 652 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 483 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 178 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 29 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 629 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖 • 2 关注
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖 • 4 关注
  • 反馈

    Communication channel for makers and users.

    123 引用 • 911 回帖 • 247 关注
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 547 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 4 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 3 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    75 引用 • 258 回帖 • 621 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 1 关注
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖 • 2 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 260 关注
  • SQLite

    SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是全世界使用最为广泛的数据库引擎。

    5 引用 • 7 回帖 • 2 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    83 引用 • 37 回帖
  • 一些有用的避坑指南。

    69 引用 • 93 回帖