Skip to content

lanicon/CosyNest

Repository files navigation

问:这是什么项目?

答:这是弗朗西斯的个人自用类库,封装了一些工作和生活中经常使用的API,以避免重复的劳动

问:那么,这个项目是工具类库吗?

答:不是,虽然本框架中的很多模块都叫“某某工具模块”,但那只是习惯叫法,工具类库只进行了简单的封装,而本项目是结构清晰的框架,它是完全模块化的,对如何抽象问题提出了自己的理解,但是与商业项目不同的是,由于个人精力有限,本项目遵循用进废退原则,本人经常使用的功能会反复修改和优化,很少使用的功能会慢慢停止更新(即便其他人需要这个功能)

问:这个项目使用什么语言写成?可以运行在哪些平台上?

答:在目前全部使用C#开发,但如果以后有些模块比较适合使用其它语言,作者会学习并用这些语言编写它们

至于可移植性,作者非常重视模块与平台的解耦,如果某一模块不需要调用特定平台的API,那么它不会依赖于任何特定于某一平台的模块或BCL,这保证了本项目中的大部分模块可以运行于任何平台

问:这个项目可以解决什么问题?

答:本项目不是为了解决特定问题专门设计的,而是遵循这样的原则:越基本的模块越通用,越复杂的模块越专用,你可以这样理解本项目中不同模块的分工:上层模块是开发工具,底层模块是开发开发工具的工具

问:设计这个项目时侧重什么?

答:作者最重视的是低耦合,可扩展,因为这是当代软件工程中最需要的东西,但同时作者也很重视性能,会尽量优化掉执行过程中不必要的步骤,当这两者发生冲突时,前者优先级更高

问:这个项目注释齐全吗?

答:由于本项目是自用项目,而且经常被重构,因此作者非常重视可维护性,所有公开API和大部分私有API都有完整的文档注释,如果某个代码片段看上去比较奇怪,作者还会在旁边注释说明为什么要这样写,因为作者希望这个项目不仅仅是一个可以运行的程序,还是对作者宝贵工作经验的记录

问:你刚才说这个项目绝大多数API都有完整的文档注释,但是为什么我看到的不是这样的?

答:因为派生类的API可以自动继承基类和接口的注释,请克隆本项目,并用VS2019 16.4以上版本打开,注释就会出现

问:我看到这个项目似乎没有什么高端的技术,那么它有什么意义?

答:软件工程发展到今天,几乎任何需求都有完善的封装,很少有什么功能是不能实现的,因此作者认为,与其想办法做别人做不到的事,不如想办法简化大多数人每天的工作内容,这是很有益处的

问:这个项目承诺向下兼容吗?

答:本项目性质特殊,它只基于个人兴趣和方便工作的需求,所以它不遵循通常使用的发布模型,事实上,作者在闲暇时间只要看到需要修改的部分,就会顺手去改一下,你可以这样理解本项目的发布策略:那就是它永远处于开发阶段,永远不会发布一个稳定的版本,因此它根本没有版本这个概念,也不存在向下兼容这种说法,本项目中的所有API都随时可能被修改,重构,删除,如果你需要使用它,请悉知这一点,同时因为这个原因,本框架无法发布稳定的文档,有关如何使用本框架的说明只能直接放在代码注释中

完全抛弃向下兼容并非愚蠢或缺乏计划,它对代码质量有极大的好处,所以本项目从17年8月开始构建,至今不存在任何遗留问题(俗称屎山),除此之外的任何手段因为投鼠忌器,不可能产生如此良好的效果

问:本项目的名称CosyNest是什么意思?

答:意为“安乐窝”,作者看待它就像宅男看待自己的房子一样,是一个很小,但是自成体系的世界

About

自用项目,严格遵循OOP和FP范式,基于MIT协议

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages