• 奇舞推荐

  • 一文看懂云原生时代 DevOps 如何选型

    当前互联网组件生态中,DevOps 工具和系统林林总总,令人眼花缭乱。选用与当前企业发展阶段不适配的 DevOps 组件会导致很多问题,比如:​工具能力溢出,大量功能闲置,同时增加使用人员的上手成本;工具能力不足或功能过于泛化,无法满足企业研发体量需求或无法灵活定制细节;工具本身质量欠佳,后续相应的社区支持或服务保障缺失,导致稳定性风险。基于以上问题,本文致力于为企业提供 DevOps 工程效率和运维环节 (后续简称效维) 工具说明及全景图,并结合典型中国互联网研发场景,提出适配不同体量和阶段的企业的效维工具链选型,希望能帮助企业快速满足数字化变革的要求,加速业务发展,引领业务创新。

    奇舞推荐
  • 通过几行 JS 就可以读取电脑上的所有数据?

    你听说过 Spectre 漏洞吗,它的存在让浏览器不得不频繁地更新策略。如果一个漏洞很难构造,就算他能够造成再大的危害,可能也不会引起浏览器这么大的重视,那么我们今天的主角 Spectre,是又容易构造,而且造成的危害也很大的,利用 Spectre,你可以:通过几行 JavaScript,就可以读取到电脑/手机上的所有数据,浏览器中的网页可以读取你所有的密码,知道其他程序在干什么,这甚至不需要你写出来的程序是有漏洞的,因为这是一个计算机硬件层面上的漏洞。

    奇舞推荐
  • React Native 原理之跨端通信机制

    在移动端开发场景中,能使用一份代码就能同时在安卓和 iOS 系统上运行 APP 的方案,熟称为跨端方案。而 Webview,React Native 都是常用的跨端方案,这些方案虽然能提高开发效率,但它们不能像原生语言一样直接调用系统的能力,于是在做 HTML5 (以下简称 H5) 或者 React Native (以下简称 RN) 需求的时候,开发者们经常碰到要调用 Native 能力的情况。Native 能力用原生语言编写,有自己的运行环境,RN 页面使用 JS 编写,也有独立的运行环境,这种跨越运行环境的调用被称为跨端通信。

    奇舞推荐
  • 技术实践

  • 如何优雅地给对象的所有方法添加异常处理

    代码不会全部按照我们的预期运行,可能会有意料之外的情况,为了保证程序的健壮性,要进行异常处理。比如一个对象的所有方法,都应该做异常处理,但是,如果每个方法都加 try catch 又太麻烦。有没有一种方式既能对所有方法做异常处理,又不用重复写这么多次呢?有,那就是代理模式。

    技术实践
  • 实现在浏览器中 import 内联 JS 模块

    现代浏览器支持了 ES Modules,也就是浏览器原生支持的 JavaScript 模块化方案。虽然考虑兼容性,我们还很少能够把 ES Modules 用于生产环境,但是在开发、测试、学习的场景中,ES Modules 发挥了越来越大的作用,比如构建工具 Vite,就利用 ES Modules 来快速提供开发调试环境。React 和 Vue 框架的学习中,也都可以利用 ES Modules,而不用安装本地构建工具,直接在浏览器上体验这些现代框架。

    技术实践
  • 突破限制,CSS font-variation 可变字体的魅力

    可变字体 (Variable fonts) 是 OpenType 字体规范上的演进,它允许将同一字体的多个变体统合进单独的字体文件中。从而无需再将不同字宽、字重或不同样式的字体分割成不同的字体文件。我们只需通过 CSS 与一行 @font-face 引用,即可获取包含在这个单一文件中的各种字体变体。

    技术实践
  • 拓展边界

  • 防御性设计和开发

    防御性编程 (Defensive programming) 是防御式设计的一种具体体现,它是为了保证,对程序的不可预见的使用,不会造成程序功能上的损坏。它可以被看作是为了减少或消除墨菲定律效力的想法。

    拓展边界
  • Web 端短视频编辑器的设计与实现 - 像做 PPT 一样做视频

    对于视频的生产,一般的方案是交由专业机构去创作,但这将花费很多预算,如果我们能提供一个工具,基于知识的通用结构沉淀一些视频模版,让用户快速创作出视频知识内容岂不美哉?让想法再奔放些,如果我们能直接从知识库中抽取结构化的知识内容直接生成视频或是半成品视频,用户只需要稍作调整就能发布,这想想就很酷吧?

    拓展边界