IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Framework

共 2 篇相关文章

IT 累计浏览 4,311

论“重复造轮子”

这篇文章从一个常见的技术讨论入手,探讨了“重复造轮子”这一现象。作者指出,它看似是个人偏好或技术问题,实则普遍存在于个人、团队甚至公司层面,往往导致资源浪费。 文章深入剖析了其出现的几个核心原因:程序员之间相互轻视,觉得不如自己写的顺手;因版权协议限制而不得不自研;以及部门间因进度紧张、沟通不畅而放弃代码复用。作者还提到了一种“战略级”的造轮子,并以自己前公司的实践(如自研类似Hadoop的系统)为例,分析了其与拥抱开源路线在业务发展上的不同结果。 作者的核心观点是,重复造轮子在大多数情况下并不值得,除非是为了有意义的创新或受限于客观条件。他特别对创业公司提出务实建议:应尽可能采用开源技术,将有限的精力聚焦于业务本身,避免陷入研发底层框架的“奢侈”消耗中。文章通过具体案例和经验,为技术决策提供了清晰的参考视角。

IT 累计浏览 3,067

Yii框架的Log系统的分析

这篇讲的是 Yii 框架中日志(Log)系统的内部实现。作者从 logging 目录下的源代码出发,梳理了这个灵活且强大的日志模块是如何工作的。 文章的核心在于剖析其解耦设计:负责“打日志”的 CLogger 和负责“记录日志”的 CLogRouter 是两个独立的对象。CLogger 充当生产者,通过单例模式提供全局调用接口,并将日志信息存入一个内存缓冲区。当缓冲区满时,它会触发一个 onFlush 事件,而不是直接处理。 真正的处理逻辑由订阅了这个事件的 CLogRouter 等路由类来完成,它们作为消费者,在事件中将日志分派给不同的目标,比如文件、邮件或数据库。这种基于事件的发布-订阅模式,将日志的收集与分发完美解耦。文章还展示了如何通过 category 参数对日志进行灵活过滤,确保只处理需要关注的信息。 作者通过阅读源码,不仅展示了如何简单地调用 `Yii::getLogger()->log()`,更揭示了框架在简单接口背后,如何通过精巧的架构实现高性能和高扩展性的日志管理。