21
5

面向对象思想研究心得体会

0
归档:2009年5月分类:架构之路

封装、继承、多态,这三个是面向对象最重要的概念,抽象则是灵魂与核心。但是真正的面向对象决不是通过简单的继承、通过实现简单的多态来实现的,面向对象的核心在于它的几个指导原则(单一职责原则,接口隔离原则,依赖倒置原则,Liskov原则,开发封闭原则)下设计出相互作用的类。

面向对象还有两个特别的名词:类,对象。类与类之间的相关联系(聚合、泛化、依赖、关联),对象与对象之间的转换关系,这两者是真正考验一个人面向对象设计能力的指标。

在一个面向对象系统中,大量的类在一起,它们不可能都没有相互关系,如果这样的话就无法完成优秀的面向对象设计架构。在C#中,对象与之间的关系,主要在于处理好父类对象和之类对象之间的引用关系。

1、单一职责原则:一个类,最好只做一件事,只有一个引起它变化的原因;

2、开放封闭原则:软件实体应该是可扩展,而不可修改的。也就是说扩展是开放的,修改是封闭的;

3、依赖倒置原则:依赖于抽象,而不是依赖与具体;

4、接口隔离原则:使用多个小的专门的接口,而不要使用一个大的总接口;

5、Liskov原则:子类必须能够替换其基类。 以上这五个原则在面向对象设计中非常关键,只有灵活地运用了才可以真正地掌握好面向对象思想。

21
5

.NET框架简单介绍

0
归档:2009年5月分类:C#和.NET

我第一次接触.NET是在大一暑假(2005年),那时候学校有自己专门的网站,也是用ASP.NET开发的,而且全部由学生来管理开发,刚开始仅仅是出于对网站和编程的兴趣(当然也是为了能够谋求一个勤工助学的岗位)。
那个夏天很热,不过参加培训的地方很舒服,在一个大教室里,有空调。那时候对于网站开发、项目开发和.NET都是第一次。第一次接触css,第一次接触html,第一次接触C#,第一次接触.NET框架,第一次接触IIS,第一次接触项目概念... 之前我自学过面向对象,对“类、对象、继承、多态”这些概念是懵懵懂懂的,培训之后也还是一知半解。
什么是.NET?这个问题解释太多了,我还是引用微软官方的解释:
“.NET 是 Microsoft 的用以创建 XML Web 服务(下一代软件)平台,该平台将信息、设备和人以一种统一的、个性化的方式联系起来
“借助于 .NET 平台,可以创建和使用基于 XML 的应用程序、进程和 Web 站点以及服务,它们之间可以按设计、在任何平台或智能设备上共享和组合信息与功能,以向单位和个人提供定制好的解决方案
“.NET 是一个全面的产品家族,它建立在行业标准和 Internet 标准之上,提供开发(工具)、管理(服务器)、使用(构造块服务和智能客户端)以及 XML Web 服务体验(丰富的用户体验)。.NET 将成为您今天正在使用的 Microsoft 应用程序、工具和服务器的一部分,同时,新产品不断扩展 XML Web 的服务能力以满足您的所有业务需求。”
历史永远记住这一刻,美国时间2000年6月22日,全球IT界为之关注。
后来又学习C++,学习MFC,综合MFC和.NET框架,然后又看了侯捷先生的文章,终于对于框架编程有了比较深的理解,所以后来学习JavaScript框架等等都可以站在一个高度上理解了。

21
5

我知道,一个人的生命是有限的,而工作时间更加有限(我的价值观是工作和事业是为了让生活更好)。基于此,我现在只能在有限的时间里做有限的事情,下面是自己对自己的规划:
一、职业规划
首先,踏踏实实做一个技术人员,在工作总学习和提高自己;然后,能够凭借自己的能力做到项目开发经理;最后,要么能够在企业里做管理层,要么回学校讲课,无论如何最好能够出一本技术书籍。
二、深入学习的技术
1、最重要的:C#和ASP.NET技术,JQuery技术,设计模式,面向对象技术,css和页面布局技术,网站架构技术(squid,memcached等),SQL Sever数据库技术;
2、其次的:PHP技术,Linux技术、MySQL技术;
3、最为基础和技术提高的:C语言技术,数据结构,算法技术,计算机技术(cpu,内存,IO等和程序设计相关的技术)。 三、最值得我去深入研究的技术
以下这些技术是我必须要去深入研究的,而且要花功夫研究:
1、C#语言、.NET框架、C语言;
2、数据结构、面向对象、设计模式、软件工程;
3、Memcached、JQuery(相当于JavaScript)、css。

21
5

数学与应用数学专业是一个已经开设了很久的专业,国家教育部在这个学科的教育研究上积累了很多极为宝贵的经验,大学在上个世纪五十年代就开设了数学与应用数学专业,在培养人才上有很丰富的经验,在科研上也取得许多优秀的成果,现在该专业已经成功获得了设立博士点的资格。
数学与应用数学专业是一个厚基础、宽口径并注重一定工程实践训练的理科专业,设置有应用数学与应用软件专业、计算数学与应用软件专业两个方向。本专业的学生主要学习数学与应用数学的基础理论、基本方法,受到数学模型、计算机和应用软件方面的基本训练,具有较好的科学素养。数学与应用数学专业开设了大量的数学课程和跟软件开发的相关课程,这些课程都由优秀的教授来上课。
大一学习最重要最基础的数学专业基础课,任课教师水平都很高,这些课程直接请博士生导师(至少是硕士生导师)上课,教学质量相当高;大二开设学习数学专业课程,最主要的有三门专业必修课:数学模型、运筹学和数学软件,前两门课程对培养学生应用数学能力和很大的帮助,后一门课程让学生懂得利用强大的数学软件去解决应用问题,还有其他一些课程是专业基础课程,对学生未来学习作用非常大;大三主要是专业选修课,学生可以根据自己的需要和自己的人生规划来选择这些课程,如果以后想从事软件开发的可以多选计算机软件开发相关的课程,如果想读研究生或者以后从事科研可以多选数学相关的课程。大四还有一些专业选修课(如何选择跟大三的原则一样),另外还有一个很重要的任务,就是做毕业设计。
学生在大二的时候还可以参加目前全国最大的大学生课外科技竞赛--全国数学建模比赛,这是一项将数学知识直接应用到实际问题的比赛,参与者可以得到各方面的训练,对未来的发展有非常大的作用,用参加过的前辈们的话就是“一次参加,终岁受益”,而且获得全国奖的可以免试保送研究生,大学在数学建模比赛成绩也是非常好的,每年都有好几个队获全国奖。
目前大学本科正在越来越注重基础教育,许多家长希望自己的孩子本科毕业后继续就读研究生。如果在大学本科阶段把数学与应用数学专业学好了,也就是把研究生(除了数学专业)课程中的数学专业都学好了,在读研或者进行更高的深造的时候非常轻松。所以现在一些有见识的家长都选择让自己的孩子在本科阶段先读数学与应用数学,把基础打好。现在大学里很多非数学院的导师都希望数学院的学生报考他们的研究生,也非常欢迎数学专业的学生在读研究生的时候在他们院读。
即使不想读研究生,数学与应用数学专业也是一个很值得选择的专业,因为这个专业和计算机联系非常密切,本专业开设的关于计算机软件方面的课程和计算机专业基本一样(可能比计算机专业还多),学生通过数学思维的训练和熏陶之后从事软件开发是非常有前途的,目前在计算机应用领域中很强的人要么都是应用数学系毕业或者数学功底非常好的人。就算不从事软件开发,通过本专业的培养,可以很大地提高学生在工作后的后劲力,因为大学阶段已经把实际中常用到的几乎所有数学理论都疏通了,实际工作遇到的话应付起来就得心应手了。
当然本专业有一个特点就是开设课程比较多,学习也比较困难,但这并不影响学好这个专业。在大学,有优秀的教师和丰富的图书馆资源,如果脚踏实地跟老师好好学习,是几乎每个人都可以学好的(用老师的话说:以能考上大学的人的智商都可以学好)。来到数学学院,来到数学与应用数学专业后,找到自己的定位,发现自己的热爱,然后踏踏实实把每一个步走稳,毕业的时候,你就会发现自己真的实现人生理想了。

21
5

“这群孤独的人,他们在黑暗中探索,他们拔开笼罩在人类人类头上的迷雾,让真理的阳光照进人类的心灵。”
“你是否知道,一千八百年前,一个伟大的希腊数学家构建起完美的圆锥曲线理论,曾经被人遗忘在历史角落。然而在近代科学的发展中,它成了行星运动理论的基础。”
“也许你不知道加罗华、阿贝尔这两个名字,他们是数学王国里英年早逝的天才。在他们的时代里他们的伟大理论没有得到别人的认可,但是谁会知道,它们是现代数学的根基和量子物理学的理论基础。”
“拉马努扬,一个生被贫困纠缠的传奇数学家,在印度那个小小的村庄里写下了一个一个轰动数学界的公式、定理。”
“非欧几何的创立者之一,亚.鲍耶,因为追求自己的理论被作为数学家的父亲赶出家门,却依然不放弃。”
“我们完全有理由相信,人类智慧碰撞出来的火花终有一天会将世界燃起。”
“我们不应该忘记他们的名字,更不能忘记他们的精神。”

21
5

这个学期开学初是进入大学最黑暗的时候,在打击后,我还是老老实实看书,图书馆已经是我的乐园。三月份过来,把《深入浅出MFC》和《设计模式》(就是美国“四人帮”写的那本)都通读了一遍,期间读了许多关于面向对象方法、分析和设计的书,就如我同学说的一样,“我发现了新的天地”。
软件设计,我最终还是选择了,其实与其说是我选择,不如说是被迫的,或者可以用我的话说是“抵制不住市场经济的诱惑”。但我知道我是为了自己的梦想,虽然已经不再是儿时的那个纯粹的梦想,但是这已经不重要了,因为真的是“理想如果不向实际做点妥协,理想就会归于尘土”,但我清楚现在最主要的还是如小熊说的“打扎实基础”。
读《深入浅出MFC》,感想很多,不想在这里谈什么体会(因为会是很粗陋的),还是引用书中打动自己的话以做些纪念:

“ 程序设计领域里,每一个人都想飞;
但是,还没学会走之前,连跑都别想!”

“ C++是一种扭转程序员思维模式的语言;
一个人思维模式的扭转,不可能轻而易举一蹴而就!”

“ 如果MFC是箭,
Visual C++ IDE(集成开发环境)便是弓,
强壮的弓,让箭飞得更远!”

“ 只用一样东西,不明白它的道理,实在不高明。
演化(evolution)永远在进行,
这个世界却不是每天都有革命(revolution)发生,
Application Framework在软件界确实称得上具有革命精神。”

“ 带艺术气息的软件创作行为将在Application Framework出现后逐渐成为工匠技术,
而我们都将成为软件IC装配厂里的男工女工,
但,不是亨利.福特,我们有如何能够享受大众化的汽车,
或许以后会出现“纯手工精制”的软件,
可我自己从来不嫌机器馒头难吃!”

“ 消息映射机制与命令传递,
活像是米若托斯的迷宫,
是MFC最曲折幽深的神秘地带!”

21
5

数学建模比赛之后的感想

0
归档:2007年5月分类:数海泛舟

作为数学院的一员,像其他很多有梦想有激情的同学一样,刚刚来到大学的时候,我也是怀着自己半成熟的激情和梦想,在一片掌声走进大学的校门。来到一个新的环境,新奇、激动,那种心理是只有新生才可以体会的。当慢慢静下心来,在匆匆的、缓慢的、平静的、热烈的大学校园里,我选择做一个观看者,同时也在寻找自己大学的立足点。看着很多同学进学生会我也蠢蠢欲动,看着别人加入某某协会我也想加入进去,看着大家努力地学习我也背着书包往自习室图书馆跑......
在经历了一段时间的大学生活的洗涤后,经过自己的漫漫寻求,我遇到了数学建模,我兴奋,怀着饱满的热情,我全力投入,我为她通宵达旦,为她成为图书馆的常客、成为数模论坛的网虫......为她我投入了是很多很多,一步一步摸索,向前辈学习,和同学(我的同班同学小蔡)讨论,然后慢慢地走进了数模的世界。于是我真的找到了自己大学的热爱,并且她真的给了我很多,在学习中我掌握了网上快速收集资料的能力,包括在Google、Baidu、论坛、网页;在准备数模的过程中,我看到了应用数学的重要性,更看到了计算机软件在数学的强大作用,Mathlab、Mathematica、Maple、Lingo无疑是延长数学工作者寿命的良方、是搞科研的强有力工具;在参与数模中我学会了队员之间的团结协作,懂得了什么叫团队,而且更重要的是我的人生画下了重重的一笔,因为国赛那三天三夜的全力投入中我只睡了八个小时,而且也挺了过来,在美赛的那四天四夜我带领队友走过一道道坎,在想要放弃的时候走出低谷,打开路子......数模结束了,但是对我来说又是一个开始,对于参赛的队员也是如此,不管是否获奖,结束后都是一个新的旅程。
在我探索数模的过程中,我多么希望有一群人在一起讨论,有人给我提示和解读数模。我是有想法就要尽力实现的人,所有决定在自己参加数模之后组织数模的热爱者,创立我们自己的组织,并且要传承下去,让后来者能够获得益处。于是有了今天的这份策划,希望参与过的和想参与的人员加入进来,这里是参赛过的队员实现自己梦想的又一个天地,这里是没有参加过数模的人的起点。
“一次参与,终生受益”这不是我自己说的,这是中国科技大学的第一、二批参赛过的队员的获奖感言中提出来的,而后来者,每每问到参加数模最大感想是什么,他们都说:一次参赛,终生受益。
年轻是资本,但我们不能挥霍,梦想需要有承载她的东西,加入我们吧,不管现在人家怎么评论数模,说她变质,说她没有能反映能力,但是请记住:这是连续几年国内最大课外科技竞赛活动、参与者逐年上升、她的获奖排名是大学排名的专项指标、几乎每个高校都为获奖者提供很多机会继续深造,而最重要的是:在你参与的过程中,你已经学到了极为价值的东西(只要你是抱着学习的心态,当然获奖是每个人的目标)。作为过来人,我可以保证,只要你用心投入,真正去体会数模的真谛,在这里你一定可以放飞你的理想,当你参与进来,并且坚持到最后的时候,回头看看自己走过的路,你会发现你已经成功了。

21
5

应用数学主要就是三大块:统计、优化和数值分析。
数学模型,交给我了建模的思想和方法,特别让我知道了如何将数学理论实际化,数学建模给予我的是太多太多,一言难尽。
数学软件,Matlab几乎是无法超越的,数值计算的老大;Mathematica也不甘落后,符号计算的强者;SPSS是统计软件中正在称霸天下的霸主。数软节省了我的很多时间,并且交我要另外一种角度思考数学。
运筹学,优化计算是实际中必不可少的,并且带来的就是经济收益。线形规划、非线性规划、动态规划、网络计划图、库存论、排队论等都是经典理论。
数值分析:科学与工程计算的基础,在韩旭里老师这位计算数学“牛人”的指导下,现在正在学习中。
多元统计分析:自然科学与社会科学比不可少的分析工具,拥有了这个工具,再大的海量数据也可以找到眉目.
另外还有数值计算三大非经典算法:模拟退火算法、遗传算法、神经网络算法,为鲁莽计算提供了方法;以及图论、科学与工程计算、数据挖掘应用数学分支,下一学年即将学习。
应用数学,现在学得都还很肤浅,所以未来两年的任务就是这方面了。

公告栏

欢迎大家来到我的博客,我是dodoro,希望我的博客能给你带来帮助。