# 真正的软件开发高手,都会用这个方法预测未来

总有狐友问:直接告诉我,面向对象是什么,可以快速完成一个功能?

世界最直接的方式,能把我的思维方式,而不是具体的知识点教给其它人,大概只有意识传输了。

事实上,目前还没有意识传输,所以没有单独的直接,可以告诉你,面向对象是什么?因为用面向对象的思维开发软件,是一个系统性思维,而不是孤立思维。要完成一个功能,需要多节课的知识点,以及方法。

我看过一些狐友的代码,每个功能都是从创建数据库连接开始,其中各种维护状态,各种IF,动不动几千行。

# 这种代码有价值吗?

有!商业上有价值,技术如果每个功能都是这样的代码,会造成越来越多的技术债务。

最终会导致看懂一个业务流,是一个非常痛苦的事情,太多的IF,太多无关业务流的代码。如果是新人,根本无法接手这样的代码。

利用面向对象的思维,是可以预测未来功能可能会增加,会变化,在程序设计上面就可以进行预留位置,提供最佳的扩展性。

# 那如何减少这种技术债务呢?

学习,交流,很多人写了十几年的程序,就以为掌握了写软件的真理了,恰恰相反,我们总要不断提升自己,功夫在诗外,掌握了面向对象,写程序变得更加轻松了,大家有了规范之后,新人就可以按这个规范来开发,这不团队就搭起来了。 如果你有新人,不会带,猫猫可以教,可以帮你带。

也有人问原来的软件可以不可以融入祺佑三层开发框架(猫框),答案是肯定的,后面我会更文写一下如何融入。

# 代码放在数据库中是不是个好主意

现在祺佑三层开发框架(猫框)已经打通了BS CS APP 小程序 公众号 支付 对象存储 短信等等功能。

录制了几百G的视频,无论你想从哪里入门,猫猫的课程都能让你进入真正的现代的软件开发模式。

有些人喜欢把代码放在数据库里存放,然后动态执行之类的,我个人是不喜欢的。 互联网应用,很大一部分的瓶颈是数据库带来的,所以优化的第一步是读写分离,所以代码放在数据库里面好不好呢?

# 学习的心态

面向对象的思维是包括面向过程的,比面向过程的思维层次更高一级,请你不要陷入点对点的比较,这样容易钻牛角尖。

我们任何学习一个知识体系,它的课程里的内容,是有一定的顺序。就是 ——

后面一节课的内容,

必须在听完、掌握前面一节内容的基础上,

才能听懂。

于是,半桶水最容易——

想要快速得到,但能力不够。

想要快速学会,但又不可能。

这种现象,在生活中也经常见到,就是碰到中年危机,或者失业,想要找一个副业赚钱。但突然发现,别人「轻松」能做到的事情,自己好像啥也不会。

于是,买各种课,学各种方法,加各种社群,企图快速弥补这块的缺失。

但结果是,没啥用。

因为花钱只能买到方法、技巧、知识,这些都属于知道。

但知道和做到之间,相差十万八千里。

做到需要能力。 而能力,需要刻意练习。 刻意练习,需要投入大量的时间,枯燥的重复。 很明显,这不可能速成。

《把时间当做朋友》有一个例子

“理论上讲,一个人积累脂肪花了多长时间,那想把那些脂肪消耗掉,大致也要花同样的时间。”所以,如果一个人25岁开始发胖,35岁来健身房的时候身上有40斤脂肪,然后要求教练帮他在3个月之内减掉脂肪、回归标准身材,简直就是痴人说梦。当然,努力一点,可以把10年缩短为5年,甚至两三年,但这个时间肯定要比那些打算一蹴而就的人想象的时间长出许多。

这也就解释了为什么有那么多的人总是幻想什么“速成”的方法? 因为躺平太久了,突然就大考了,发现时间不够了,最后期限马上就到了,所以只能寄希望于“速成”方法的存在。 以前考试我们还可以突击一下,现在在真实社会上,没有60分,只有能成或不能成。

《把时间当做朋友》

书中还给出了应对方法 ——

所以,正确的策略应该是:想办法提前预知自己需要掌握哪些技能,再确定它们是自己可以通过练习真正熟练掌握的技能,而后制定长期计划,一点一点稳步执行。

这个策略,适合每个人,每个领域,每个职业。

还有最重要的一点,跟身边最优秀的人学习,可以是你的老板,朋友,亲戚,至少掌握一种提高工作效率的计算机语言。