记录一个Typescript的IoC容器的实现

前段时间在写一个玩Minecraft游戏的Agent项目maicraft-next ,它是原python项目maicraft的typescript重构。原项目中各种组件的依赖已经非常复杂了,于是重构的时候就打算引入类似Java Spring一样的IoC的实现。

为了学习相关的概念和实现,我并没有引入第三方的现成的框架,而是和Cursor 加Claude Sonnet 4.5协作写了一套轻量化的IoC容器。本文记录下这个实现,方便后续回看。

阅读更多

通过切换Service实现类来切换看板数据来源

最近做BI看板的时候遇到个需求,就是有时候需要切换看板所展示的数据(懂的都懂),但每次都手动改数据库视图后面再改回来比较麻烦,于是需要做一个快速切换公司内部看的真实数据模式和给客户看的演示模式的功能。

每个看板数据接口都加个参数侵入性太大肯定不行,通过配置来切换也比较麻烦,最后想到了大多数情况下都是一个接口对一个实现类的Service层。只需要根据配置的变动改变实现类,就能很轻松地实现数据来源切换。

有了想法之后,就和豆包讨论方案接着实施了,最后可以实现只需要加注解和新的Service实现类就能为看板添加新的数据来源的效果,还可以通过修改Nacos管理的配置来动态更新。

阅读更多

《算法笔记》C与C++语言相关

这是一篇学习笔记,基于胡凡主编的《算法笔记》的第二章“C/C++快速入门”。

在学习那一章的过程中,我将其中之后用的到的内容整理为这篇笔记,适合了解C和C++语言的人用于复习其语法中与做算法题相关的特性与技巧。

本文中部分内容经过顺序调整和补充,不完全按照原书内容。详细内容请看原书。

阅读更多

【毕业实习总结】(2)mybatis框架的基本使用

前言

大三暑假有个毕业实习,是企业的人来我们学校带我们做项目,为期三周。

前半部分是教我们一些框架的基本使用,后面几天就是组成小组利用前面学习的知识开发一个商城项目。感觉和课设其实没有差的太多。

学习到的框架有 mybatis、springmvc、spring、springboot、shiro、mybatis-plus,还在一开始学习了如何建立 maven 项目。

2020 年 7 月 15 日,我们小组完成了答辩。在之前因为要学习框架、做项目,甚至中间夹杂着几场考试,所以抽不出空来写博客,现在结束了,我现在通过 git 提交记录以及幕布学习笔记、工作日报等记录来尝试还原这一次经历以及学习到的技术。

一开始想的是本系列先整理学习笔记,最后对本次项目进行总结。不过碍于时间不足,可能会直接将以前的旧项目改为 springboot 架构,实习最终完成的商城项目就不进行分析了,项目开源链接:SpringBootMall

笔者也是刚刚才学习这些东西,所以如果有问题可以给我留言。

阅读更多

【毕业实习总结】(1)maven环境配置

前言

大三暑假有个毕业实习,是企业的人来我们学校带我们做项目,为期三周。

前半部分是教我们一些框架的基本使用,后面几天就是组成小组利用前面学习的知识开发一个商城项目。感觉和课设其实没有差的太多。

学习到的框架有 mybatis、springmvc、spring、springboot、shiro、mybatis-plus,还在一开始学习了如何建立 maven 项目。

2020 年 7 月 15 日,我们小组完成了答辩。在之前因为要学习框架、做项目,甚至中间夹杂着几场考试,所以抽不出空来写博客,现在结束了,我现在通过 git 提交记录以及幕布学习笔记、工作日报等记录来尝试还原这一次经历以及学习到的技术。

本系列将会先整理学习笔记,最后对本次项目进行总结。

笔者也是刚刚才学习这些东西,所以如果有问题可以给我留言。

阅读更多

Scrapy爬虫框架(1)一个简单的可用的爬虫

很久没写爬虫了,又重新开始使用 scrapy,之前学习的内容基本上都忘了,重新复习一遍,发现对它的理解又加深了一些。

本文将初级知识点简单梳理,实现了一个 HelloWorld 级别的 Scrapy 爬虫。

本文适用于 Scrapy 1.6.0,结合了自己的理解,可能理解有错误,欢迎在下面评论区指出。

不包含安装教程。

阅读更多

老鼠和毒药问题

昨天在上完课回宿舍的路上,楠哥提起了一道他在某个基础知识竞赛上遇到的题目,我觉得解法很巧妙,分享记录一下。

题目

有 1024 瓶水,其中一瓶有毒,你有 10 只老鼠用于试毒(这里是题目假设,所以别下不了手让老鼠试毒 OVO),老鼠如果喝到毒药,会在一星期后死亡。你有一周时间,如何找出这一瓶毒药?

阅读更多