## Eclipse Collections 与原始类型:总结 Eclipse Collections 故意缺乏某些原始类型的集合类型(如 `BiMap` 或原始类型的 `SortedSet`),这是出于设计选择和关注解决*实际*需求的结果。 值得注意的是,它避免了 `BooleanMap` 类型,尽管 Java 在 `partitioningBy()` 等方法中使用 `Map<Boolean, V>`,但仍认为它们是一种设计异味。 相反,Eclipse Collections 提倡使用 `Pair` 类型(包括原始类型/对象组合,如 `IntObjectPair`)作为 `BooleanMap` 的更安全替代方案。 该库在 Java lambda 出现*之前*(自 2012 年以来)就支持原始类型集合,并具有丰富的 API。 然而,Java 缺乏针对原始类型的泛型——这一特性可能随着 Project Valhalla 的到来而实现——阻碍了对原始类型的完全 lambda 支持。 为了不等待,Eclipse Collections 实现了诸如 `Procedure` 之类的函数式接口来处理原始类型。 Eclipse Collections 提供广泛且无与伦比的原始类型集合支持,包括可变性/不可变性选项和 lambda 集成,在十多年前就解决了这些挑战。 作者鼓励开发者*现在*就利用可用的工具,而不是等待未来的语言特性。 博客、代码练习和书籍“Eclipse Collections Categorically”等资源可供进一步学习。
## URL 的被忽视的力量
最近一次从单个 URL 重建 PrismJS 配置的经历,凸显了 URL 作为状态管理工具的常常被低估的力量。与其仅仅依赖复杂的前端状态解决方案,URL 可以优雅地存储和共享应用程序状态——这是自网络诞生以来就内置的功能。
URL 不仅仅是地址;它们是接口,提供可共享性、可书签性和深度链接能力。URL 的不同部分——路径段、查询参数和锚点——可以编码不同类型状态,从分层导航到过滤器和特定内容部分。像文本片段这样的现代功能进一步增强了这种能力。
有效的 URL 设计涉及周到地决定*要*保存什么状态,确保清晰度和可预测性。好的候选者包括搜索查询、过滤器和 UI 偏好设置,而敏感数据或临时 UI 状态应避免。最佳实践包括优雅地处理默认值、节流更新,并使用 `pushState` 和 `replaceState` 尊重浏览器历史记录。
通过将 URL 视为契约,开发者可以创建具有弹性、可缓存性和用户友好性的应用程序。最终,记住 URL 可以*是*状态,而不仅仅是*指向*状态,可以释放 Web 开发中强大且常常被忽视的方面。
受一个关于英国道路交叉口视频的启发,泰丝和她的同伴开始了一个临时的万圣节服装项目:成为贝利沙信标——那些标志性的黄色顶端、黑白条纹杆,用于标记人行横道。这个想法源于泰丝喜欢用正确的名称来识别横道。
随之而来的是十个小时的忙碌,包括电路搭建、用铜片即兴制作印刷电路板,以及大量的焊接。她们的目标是制作闪烁的黄色(安全)和红色(可怕)LED灯,由AA电池供电。她们面临着元件故障和缺乏合适材料的挑战,最终使用了快干胶和电工胶带。
尽管结果粗糙简陋,她们还是完成了头饰和杆状服装。起初对不完美的完成效果感到失望,但这个独特的概念在万圣节活动中大受欢迎,使她们很容易被认出,并赢得了朋友们的欢笑。虽然她们质疑斑马线是否*真的*符合万圣节主题,但她们欣然接受了对英国道路安全设计的古怪致敬。