闲来没事,总结下最近学习的知识。由于项目需要,最近与c#接触上了,可学习的过程中,总感觉不能融会贯通。就像练乾坤大挪移一样,有人一辈子没接触过乾坤大罗移,有的人只听过,没那个命接触,像杨晓有机会接触,练了一辈子才练到2层,就连阳顶天也只练到4层还是5层,可你看看人家张无忌啊,半天不到,直接练到9层通关,话说还是人家之前有九阳神功的家底。程序员的武林就像金庸的江湖。
而我就开始接触这个c#这个秘笈,可练着练着,就是没什么长进。我个人理解这里面的东西太多了:
从数据结构的角度看,应用程序对现实世界的抽象中,最终都抽象出了一个个的类,但是类又是由一个个的数据结构进行存储的,有字符串、数组、表、链表、哈希表等这些东西构成的,而这些也是类,也就是类与类的嵌套。
从程序设计的角度来看,有了上述的结构构件对象实体后,我们就可以利用逻辑控制进行运转了,if 、 for、switch 、对象和对象之间可以通过传递参数信息进行通信了,程序的世界就此运转起来了,像现实世界一样生动。
从计算机体系结构的角度讲,这里面有底层硬件、硬件上面有操作系统、操作系统上面有各种类库、类库上面又有各种工具库、最上层才是所谓的应用程序库。
从编译原理的角度看,应用程序需要经过预编译、编译成可执行的格式,在操作系统上运行。从操作系统的角度看,编译好的程序需要从外存调度到内存,这其中就涉及到分页、页面调度算法,由于每个程序是以进程作为最小的工作单元,以线程作为最小的之执行单元的,但是由于应用程序的并发执行,有涉及到进程的调度,原因是CPU 、IO等资源的是稀有的,所有又有进程间的防死锁。
从软件工程学的角度来看,应用程序的集合——项目,谈到项目就得谈到开发模型、有瀑布模型、螺旋模型、增量模型,当然常用的是瀑布模型、增量模型。就此之外,就像一个人,有个轮廓,有了肉体,剩下的就是给他赋予灵魂,赋予精神、赋予各种装饰,让他帅、让她可爱。这样你在现实世界受欢迎、在程序的世界也会强大、有活力。