• 写在最前

    本次尝试浅析Node.js中的EventEmitter模块的事件机制,分析在Node.js中实现发布订阅模式的一些细节。完整Node.js源码点这里。

    欢迎关注我的博客,不定期更新中——

    EventEmitter

    大多数 Node.js 核心 API 都采用惯用的异步事件驱动架构,其中某些类型的对象(触发器)会周期性地触发命名事件来调用函数对象(监听器)。例如,net.Server 对象会在每次有新连接时触发事件;fs.ReadStream 会在文件被打开时触发事件;流对象 会在数据可读时触发事件。所有能触发事件的对象都是 EventEmitter 类的实例。

    Node.js中对

  • jiayishejijiayisheji/blog· 1 天前

    前言

    使用Angular CLI开发Angular应用程序是一个非常愉快的体验!Angular团队为我们提供了惊人的CLI工具,支持大部分开箱即用的构建项目所需要的功能。

    标准化的项目结构,具有全面的测试功能(单元测试和e2e测试),代码脚手架,支持使用环境特定配置的生产级构建。这是一个强大功能的脚手架,为我们每个新项目节省了大量的时间。这里要感谢Angular团队

    虽然Angular CLI从一开始就非常好用,也有很多吐槽点(吐槽在最后),但是我们可以利用一些潜在的配置改进和最佳实践来使我们的项目更加完善!

    我们需要了解什么?

    1. 如何规划我们的模块
    2. 如何使用应用程序和环境文件夹的别名来支持
  • 问题复盘

    在公司的一个项目中,有几个子系统用SpringBoot运行,期间出现了一个问题:

    由于我们的服务器用的是自建的MongoDB副本集,而MongoDB是出了名的 吃内存,由于系统内存被耗尽,导致一些基础设施的无法正常运行。

    然后我们的几个子系统就狂打错误日志,就直接吧磁盘给占满了。真是无语了~

    3640765df92c24b526a47e5aec9c4ba8

    解决方法

    目前SpringBoot的日志,使用Logback,原先的配置如下:

     <appender name="ROLLING_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filte

  • 之前 GitIssue 主要提供了三种方法关注订阅相关博客仓库,但用户在浏览 Github 时发现有意思的仓库想要订阅,还得重新打开 GitIssue 进行添加,十分不方便。

    操作上多了1步,大多数的用户就会流失。

    这很让我殚精竭虑,于是立刻马上撸了个 chrome 插件 iGitIssue, 功能很简单,在 Github 的仓库页面添加了一个 GitIssue 订阅或者取消订阅的按钮。代码开源在 Github,行码仓促,直接用 jQuery 撸起了,也没压缩打包什么的。

    Chrome web 商店 下载地址,若无法翻墙可直接点击这里进行下载,从浏览器打开 chrome://extens

  • zwhuzwhu/blog· 3 天前

    Changelog

    Branch-Name (0.0.2)

    branch summary

    Container Name (input)

    summary

    • [type](Taone-id): summary
    • [feat](T1999999): add validate mode
      • [feat]: add number validate
      • [feat]: add price validate
      • [fix]: fix some bugs
      • [fix](T 200000): fix that some bugs bug

    Container Name (select)

    summary

    • [feat](T