昨天,我上班后就开始查看电子邮件。我总是从查看电子邮件开始我的新的一天。 我有点喜欢电子邮件。 我阅读了一些有趣的内容,了解行业动态。我处理了一些业务事务。我处理了一些个人事务。我记下了正在发生的最重要的事情。
然后我继续工作!
我修复了一个仅影响 Firefox 的 bug。这段代码会使用 flexbox 将一些元素设置在一行中,让它们换行,然后查看所有元素以确定哪些元素换行,哪些元素没有换行。然后,它将换行的元素放入溢出菜单中。看起来很简单。但有些项目是 **粗体** 文本,有些则不是。在 Firefox 中,非粗体项目以某种方式向下推了 1.5px(但在我看过的其他浏览器中却没有)。代码检查 top
位置是否高于 0
以检查它们是否换行,从而错误地将某些元素标记为已换行。代码必须放宽以适应这种情况。
我在 Twitter 上分享了一些那天看起来特别有趣的内容。
几天前,我记录了一个 bug,其中几个小按钮在一个常见的模态对话框中没有按预期进行样式设置或对齐。在诊断问题时,看起来我们进行了一个奇怪的 git 合并,其中合并了一些较新的 CSS,这些 CSS 假设了一些尚未完全上线的 HTML。
我认为最简洁的解决方法是在新的修复分支中进行即将在新的分支中进行的小型 HTML 更改,该分支可以快速发布。另一种方法是将 CSS 回滚,我猜测这会在以后导致更糟糕的合并冲突,此外,现在利用更新、更漂亮的样式也值得。
然后,当然,这个小小的 HTML 更改导致了另一个 bug。监视这些按钮的 JavaScript 无法再找到它们,而且我未能对其进行测试,或者理想情况下,为其编写测试。因此,我不得不修复它,但遗憾的是,只有在用户报告后才修复。天哪,我必须改进我们的集成测试。
我参加了两个会议。一个是标准的每周例会。另一个是与我从未见过的新人,我们正在探索是否有有趣的方式可以一起合作。
我修复了一个后端逻辑错误(当然,是我自己编写的)。我想根据用户是否在团队中来向用户显示一些信息。我的逻辑没错,但事实证明,消息传递依赖于该团队是否处于活动状态(即未以某种方式过期),因此我必须更新逻辑以考虑这一点。我的团队成员帮助我理清了思路,因为我不太了解计费和活动订阅与用户之间的关联方式。
我修复了一个 bug,其中一个 UI 元素显示了强警告状态,但无法找到问题所在。它是一个带有感叹号的大红色方框。它甚至有悬停状态。但点击它没有任何反应。
事实证明,这只是一个事件委托问题。它是在点击处理程序尝试绑定这两个元素后添加到页面中的。我通过在附加错误 UI 后重新绑定这些点击处理程序来修复它。感觉不太好。更好的修复方法可能是更新事件委托,使其更有效地处理这种情况。但是,我过去曾被此问题困扰,因此此修复程序似乎更可靠,即使它不太优雅且效率不高。
这让我渴望将页面移植到 React,在 React 中,愚蠢的事件委托 bug 永远不会成为问题。不久之后,我修复了另一个 bug,其中一个点击处理程序已绑定到 span.class_name
,并且该 span 已更新为按钮。这是一个语义和可访问性方面的胜利,但破坏了处理程序。
同样,在 React 中不会发生这种情况。
然后我写了这篇博文并回家了。
啊哈。听起来你做了很多事情,然后还有一些其他的事情。然后传递了关于这些事情和一些其他事情的详细信息。
Chris,感谢你的工作 :) 我还没有成为专业的 Web 开发人员,但像这样的文章让我坚持下去。我收藏了你的文章“坚持不懈以一种奇怪的方式取得成果”(2017年4月21日),它对我来说非常鼓舞人心。
你可能更有机会说服人们将代码移植到 Vue。
React 最适合作为全有或全无的框架。Vue 非常适合逐步升级基于 jQuery 的代码库,并且仅在网站上部分使用。Vue 比 React 更具可扩展性。
(PS。如果你还没猜到,我是一个 Vue 粉丝)
我能理解这一点!:) 有时候我不得不熬夜修复 bug,尤其是在项目需要上线的时候。