编程思想随记

102 阅读2分钟

说道编程思想可能最多就是面向过程和面向对象了。你们认为什么是面向对象。是有class关键字吗?

答:不是,说一个语言是否面向对象,很多时候要是看有没有class关键字。实际上就拘泥于形了。本质是思想,class只是能比较好表达这种思想。实际上c也是可以写出面向对象的。

举例

在Linux内核中,结构体被广泛使用,例如task_struct结构体就封装了进程的状态信息和操作函数,从而实现了面向对象的编程思想。而springboot里面是java代码,面向对象,但是大部分代码一点面向对象的感觉都没,一点点的写下去不还是面向过程吗。本质上其实就是无边界,只要有思想自然写出面向对象的味道。

这个还体现在分包上。主流的风格就是这样

image.png

但是实际上在模块一多的时候,你的功能就给各个包隔离很开你要滚动,然后在众多的文件看到你对应功能的类。你可以想象上百个模块按这种风格写得多累。

image.png

说的所谓的springmvc风格,一样的道理,为啥你不能这样划分呢。

image.png

这难道不是mvc.难道mvc就是得放一个controller包下,一个service包下才叫mvc? 为啥不用功能名作为包名,后缀区分,这样一目了然,不会说以后模块一多你还得点开那么多别人写的模块,别人写的代码就是不想多看。

关于ddd

这个恕我直言这种你尽量别用。扯的很多玄乎高大上的东西,实际上千人千面,每个人都有自己的理解。你没法说你这个到底是不是,思想理解不同自然有不同的表现。如果一定觉得想用,是要注意你这个风格会不会让你舒适,让开发过程是否顺畅,拓展之类,而且还要时间验证你的模式。其实变则通。不是说ddd后就是ddd.思想是共融交汇的。你是可以混着用的。面向过程,面向对象,ddd风格,mvc风格谁说不能再一起、ddd好的地方的用。不好的地方mvc。图的就是方便开发。复杂业务得以拓展。有时候要面向结果编程,好的结果自然不会是差的设计。

再次建议别用,玩玩就可以了,原因看这

【IT老齐340】DDD为什么难以落地?_哔哩哔哩_bilibili

当然以上是我的思考,不喜勿喷。欢迎讨论!