n5321 | 2024年10月13日 16:55

Tags:


总结

过年的时候看人月神话获得了很大的共鸣。coding的时候遇到的最大的问题,感觉就是过几天就不知道自己原来写了些什么东西,这个问题自己开始到底是怎么想的,结果就是前天的自己有点难跟今天的自己做更好的配合。自己跟自己都配合不好,一堆码农凑在一起不一定能做出更好的东西。

大神的Idea是documentation.

按这个思路,就是要把source code配套的文档要准备好。将信将疑。然后看到了CAE首席的那几本书,看了一下CAE的大历史,再看那几本document,实在是有点头大。

这个问题是怎么样的呢?

软件是一个工具,一个被用来解决真实世界问题的工具。一个真实的世界总是很复杂的,如何把真实世界,恰当、准确的抽象出来,需要相当的脑力。这个脑力思考的过程是类似搭纸牌的过程,一边搭一边忘,纸牌越来越高。最重要的事情是这个时候不能被打扰。可是编程更麻烦的地方在于维护,在于世事总在意料之外情理之中,于是这个纸牌塔需要维护。也就是说这个塔可能要改,里面是有一些bug需要来应对的。

30年前的应对思路是documentation.

现在、蓬勃的开源界的应对思路好像是这样的,OOP&UML

OOP改变了应对bug的方式。UML提供了一个更好的协作方式。

OOP把编码编程了机械结构的设计。把程序设计的过程变成了搭乐高积木的过程,把代码的维护、升级的方式简化了。按业内的讲法,大家叫解耦,decouple!decouple了以后,哪里有问题就直接换某个零件就可以了,不至于影响全局,不需要去recheck所有的代码。

UML的价值是提供了一套更好的视觉化符号。一图胜千言。提供了一种可能性。在很短的时间里,就能够get到自己原来是怎么想的,软件背后的业务逻辑是什么!

通过这样两个东西,对于complexity的问题就有了一个crack的可能性。

要学的东西:

django

uml

oop

好像真的有点多。

要做的东西: blog