| fan's profile好词好句PhotosBlogLists | Help |
|
好词好句记录在武大的研究生生活 February 28 C++ STL(标准模板库) 学习资源列表作者: winter STL以其独特的魅力得到越来越多的程序员钟爱,STL彻底封装复杂的数据结构,提供丰富灵活的程序接口,同时还能保证程序的运行效率。上次整理的STL技术文章列表得到许多朋友的捧场,这里整理更全面的STL学习资源列表,希望对朋友们有所帮助。 STL网站类 SGI STL ★★★★★ SGI STL是目前应用最为广泛的STL版本了。此网站提供SGI STL源码下载,还提供相应的STL编程帮助文档,以及部分设计文档。不过对于STL刚开始学习的朋友来说,可以放在第二步学习。 STLport ★★★★★ STLport STL完全可以与SGI STL媲美。此网站提供STLport STL源码下载,在线帮助,同时也提供一些STL资源列表,都是英文的,不过看看无妨。在C++ Builder中使用的就是STLport Dinkumware VC/VC.net STL.net官方网站 ★★★★ 也是常说的P.J. STL官方网站。如果使用MS的C++开发工具,这个网站是不能少的,从VC6到VC7,STL方面已经得到了质的飞跃,在随后的5年之内,MS都会使用Dinkumware 的STL版本。 Rouge Wave STL ★★★ Windows平台下的C++ Builder STL以前的版本,具有一定的声誉,但相比前几个版本来说,略落后一些,主要是在性能方面。目前在其首页已经找不到STL的资料了,只能从支持文档中得到部分资料。 Center of STL Study (最优秀的STL学习网站) ★★★★★ 以Blog的形式,提供STL学习资料,收集了大量的STL电子书,技术论文,应用实例等,而且在不断更新。对于初学者和深入研究STL的朋友,都是一个很不错的网站。 STL书籍类 (此处所列的STL书籍,均提供电子版下载): The C++ Standard Library : A Tutorial and Reference ★★★★★ 这本是最为经典的一本STL教材,可以作为自学教程,也可作为参考手册。目前已经有中文版,书名为《C++ 标准程序库》候捷和孟岩翻译,华中科技大学出版社。翻译得很不错,只是价格偏高,一百多,如果英文不错还是看英文版吧:)。 Effective STL是一本非常好的书,帮助你更好的理解STL,其作者就是《Effective C++》一书的作者。如果你已经初步了解了STL的容器、迭代器、算法和函数,而又想更好的了解STL,那么《Effective STL》是你的最佳选择。 Effective STL(中文版) ★★★★★ Effective STL中文版是由龚敏敏翻译,很不错,强烈推荐。如果你想看看其他人翻译得,也可以查看Effective STL 中文版(大全)。各有特色。 STL编程指南(Programmer's Guide) ★★★★★ 《STL编程指南》本电子书把SGI STL的相关帮助文档集合在一起,形成chm格式文档,查阅起来非常方便。使用STL编程的必备手册,比拟于VC的MSDN,Linux/Unix平台下的man命令。 STL源码剖析(候捷) ★★★★ 如果希望全面理解STL内部机制,如果希望真正精通掌握STL,如果希望从STL中学习更多的编程技巧,那么你一定要看这本书。可惜的这里只有上册电子版下载,找不到下册。 STL 中文站 ★★★★★ STL 中文站是目前最专业介绍STL的中文网站,网站收集了STL技术文章,提供STL电子书下载。并且有大量的原创文章,值得收藏。
其它 C++ STL电子书下载 ★★★★ 那里还包括各种版本的STL电子书下载,而且还在陆续更新,值得推荐。 技术文章类 STL技术文章不完全列表(STL学习使用指南) ★★★★★ 为Winter所作的,按不同类别进行整理,而且在更新中。 CodeGuru就不用介绍了吧,其收录的文章也不错。都是英文。 CodePreject网站上的STL文章。 ★★★★★ 又一个经典网站,看看就知道了,目前许多中文的技术文章其英文版,在上面都有。
STL技术文章不完全列表(STL学习使用指南)作者: winter 在网络上,关于STL使用的有许多优秀的文档,本文收集了一些经典的中文和英文文章,包含STL中的标准容器 vector list set map deque hash_map multiset multimap hash_set string Allocate stream及算法等各个方面,并会做简短的内容介绍和评价,并增加相应的链接。以后会随时更新补充新的内容,如果有朋友发现更好的文章,请回复留言,我也会加入列表中--Winter 入门教程: 标准模板库(STL)介绍 ★★★★★ 本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂。不失为STL的入门文章,新手不容错过。 STL实践指南 ★★★★★ 文章从STL基础知识讲起,逐步深入,涉及到了STL编写代码的方法、STL代码的编译和调试、命名空间、STL中的ANSI/ISO字符串、各种不同类型的容器、模板、游标、算法、分配器、容器的嵌套等方面的问题,作者在这篇文章中对读者提出了一些建议,并指出了使用STL时应该注意的问题。 三十分钟掌握STL ★★★★ 有个叫karry的网友翻译的《using stl》,可以快速浏览,从0开始了解STL。值得一看。 C++ STL简介 ★★ 文章从算法、容器、迭代器三方面简要介绍了STL,读者可以对STL有一简单映像。 C++ STL轻松导学 ★★★ 本教程介绍有关学习C++ STL的预备知识和STL的相关背景知识,适合想对STL做大致了解的初学者。 STL学习小结 ★★ 文中介绍STL基础知识,配有一个整体实例和图表说明,最后还做了简单的效率测试。 容器: 深入研究 STL Deque 容器 ★★★★★ 文章深入地研究了std::deque 容器。本文将讨论在一些情况下使用deque 比vector更好。读完这篇文章后读者应该能够理解在容量增长的过程中deque 与vector在内存分配和性能的不同表现。老外写文章确实比较严谨,值得一看。 STL vector 容器介绍 ★★★★★ 这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。又是一篇经典。 本文列出几个基本的STL map和STL set的问题,通过解答这些问题讲解了STL关联容器内部的数据结构,最后提出了关于UNIX/LINUX自带平衡二叉树库函数和map, set选择问题,并分析了map, set的优势之处。对于希望深入学习STL和希望了解STL map等关联容器底层数据结构的朋友来说,有一定的参考价值 本文描述的是一种很常见的情况:当你在某个缓存中存储数据时,常常需要在运行时调整该缓存的大小,以便能容纳更多的数据。本文将讨论如何使用 STL 的 vector 进行内存的再分配。原理说的比较详细,对于初学者比较适用。 应用: 使用STL流(stream)来简化C++“线程安全”日志记录★★★★流是一种强大的数据处理抽象机制,它允许你调用泛型的读/写函数,不必关心数据从什么地方来、到什么地方去。使用流,同样的代码可从控制台、文件、套接字等地方读取数据。STL通常不是线程安全的,本文提出了如何在线程安全的方式下使用流的方案。 本文讨论如何使用标准模板库(STL),类模板和函数模板,以及其它编程技术来解决实际问题。本文涉及到STL包含的集合和向量,函数模板,类模板,常量检验,出错处理和使用STL的文件I/O。 用STL快速编写ini配置文件识别类★★★★ini文件是技术人员经常用到的一种系统配置方法,如何读取和快速识别ini文件中的内容实现起来比较繁琐。STL强大的功能在于能快速的实现排序、查找、 识别等功能。本文通过STL中的map,string,vector,ifstream等,来快速实现ini文件的识别类class IniFile。IniFile可以实现常见查找功能,并提供完整的源码。
其他: Effective STL中文版 ★★★★★ 分为50个条款,每个条款一个主题,详细介绍了STL容器、算法、迭代器、Allocator、应用等,通过例子,通俗易懂。但是需要读者有一定的基础知识(至少知道vector是个容器吧),由不同作者翻译,Winter也翻译了几篇。共有50篇文章,每篇文章相互独立,你想看什么自己选吧。强烈推荐。 彻底学习STL中的Allocator ★★★★ Allocator是C++语言标准库中最神秘的部分之一。它们很少被显式使用,标准也没有明确出它们应该在什么时候被使用。文章详细地介绍了STL中Allocator的用法和特点。如果你有较多的STL知识,又想更深入的了解STL Alloc,这篇文章再好不过了。 STL之父访谈录 ★★★★ STL之父Alexander Stepanov接收记者的采访,文章对於STL发展历史的最完备介绍, 侯捷先生在他的STL有关文章里推荐大家阅读这篇文章。原文在SGI STL上有一个版本,在portSTL上有一个版本,Winter做了简单的整理,把两个版本的英文和中文版本都做了相应的链接。还可以参卡最近的访问:对话STL 之父Alex Stepanov。 STL的不同实现版本 ★★★ 简要介绍了STL的几个版本,包括 HP STL、P.J. Plauger STL、Rouge Wave STL、STLport、SGI STL,虽然文章比较短,如果想了解STL版本知识,还是值得一看的。 CUJ文库:STL中的Unary Predicates ★★ 标准运行库中的几个泛型算法在运行时使用了一元判定式(unary predicate)。例子是带if的算法,比如count_if()、find_if()、remove_if()、和replace_if(),但也有partition()这样[不带if]的算法。在本次专栏中,我们就近距离接触unary predicate,看它们可能以及绝不能做什么。(内容比较专业了,只是翻译得好像不够好) 体验Visual C++.NET 2005中的STL★★★★ 本文详细讲解了STL.net的特性,其优势,并有充分的实例,值得一看。 STL学习资源列表★★★★★ 本文中列举了权威的STL官方网站和STL学习网站,并提供了经典的STL教程推荐和电子书下载,不可错过。 February 21 book listK_eckel's book lists(Tech) 最近一年,多读技术书籍。每有经典著作,买之、藏之、读之、研究之,受益颇深。况置身于一日千变的IT行业,不读书,便有落后之感,而终日读书于诚惶诚恐之间。从开发语言平台(C/C++、Java系列)、OO思想、设计模式、UML、软件过程(敏捷开发等),到算法、数据结构、软件体系架构,不同层次、不同层面的书都有涉及,初略统计,购书竟达¥1000以上。
"推荐几本书: site lists学近五年,多有困于学业、开发之中。然常求学于书籍、网络,受益良多,记之。鉴于感恩,亦为后来人参考。【持续更新中.....................】 【1】www.google.com:世间万象,包罗其中。唯一的缺点就是正是因为信息太多,所以很杂乱。google已是一种文化,我更赞同google是一门学问:能够使用好google,很多事情其实也已经解决了一半。 【2】www.codeproject.com:软件开发设计必备网站,一般解决不了的问题都可以到codeproject中寻得帮助。看了codeproject中的文章,真正知道学无止境、学海无涯了。 【3】www.codeguru.com:C/C++技术的“大哥大”,比codeproject开山早n年,但是个人觉得codeproject比codeguru更偏于实践,后者则在研究方面造诣深厚。 【4】www.sourceforge.net:全世界最大的开源网站,只要你能想到的、或者你还没有想到的,你在sourceforge中都能找到copyleft的代码。学习的天堂,在sourceforge中也切实体会到了程序员的尊严。 【5】www.csdn.net:我把csdn当作计算机技术中的sina,每天都会看看最新的IT动态,无论是技术更新、还是IT企业八卦,拓宽知识面,受益不少。 【6】http://arbow.itocean.net/wakka/wakka.php?wakka=UsefulBooks:里面Java书籍的全面让我觉得不可思议,经典书籍里面基本都收集了,关键是可以免费下载,强烈推荐学习。 【7】:http://www.maththinking.com/boat/booksIndex.html:书籍的天堂paradise(Heaven),推举大家下载资源。 【8】:http://soft.yesky.com/:天极网的软件频道,以前做开发的时候经常在google上就搜索到天极Sky中的开发资料,做开发的时候值得参考。 【9】:http://tech.ccidnet.com/:塞迪网在技术上还是做的不错,开发中可以到这里获得很多的解决方案和参考资料。 【10】:http://www.developer.com/:很知名的国外关于开发和技术的网站,可以学习到很多的知识。 【11】:http://crab.rutgers.edu/icons_new/icons.html:在开发中经常就被图标郁闷,这里给了你灵感和解决方案。 【12】:http://www.zdnet.com.cn/:一个很不错的网站。 【13】:http://patternshare.org/:Community forPattern,里面有着很多的大师的专版,例如GoF、Martin Fowler,建议对模式感兴趣的可以去看看。 【14】:http://www.biplip.com/default.aspx:移动开发网,移动开发很好的网站。 February 16 c++经典下面的是学C++时要注意的。 1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》; 3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因为他们很难而我们自己是初学者所以就不看; 4.不要被VC、BCB、BC、MC、TC等词汇所迷惑——他们都是集成开发环境,而我们要学的是一门语言; 5.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点; 6.会用Visual C++,并不说明你会C++; 7.学class并不难,template、STL、generic programming也不过如此——难的是长期坚持实践和不遗余力的博览群书; 8.如果不是天才的话,想学编程就不要想玩游戏——你以为你做到了,其实你的C++水平并没有和你通关的能力一起变高——其实可以时刻记住:学C++是为了编游戏的; 9.看Visual C++的书,是学不了C++语言的; 10.浮躁的人容易说:XX语言不行了,应该学YY;——是你自己不行了吧!? 11.浮躁的人容易问:我到底该学什么;——别问,学就对了; 12.浮躁的人容易问:XX有钱途吗;——建议你去抢银行; 13.浮躁的人容易说:我要中文版!我英文不行!——不行?学呀! 14.浮躁的人容易问:XX和YY哪个好;——告诉你吧,都好——只要你学就行; 15.浮躁的人分两种:a)只观望而不学的人;b)只学而不坚持的人; 16.把时髦的技术挂在嘴边,还不如把过时的技术记在心里; 17.C++不仅仅是支持面向对象的程序设计语言; 18.学习编程最好的方法之一就是阅读源代码; 19.在任何时刻都不要认为自己手中的书已经足够了; 20.请阅读《The Standard C++ Bible》(中文版:标准C++宝典),掌握C++标准; 21.看得懂的书,请仔细看;看不懂的书,请硬着头皮看; 22.别指望看第一遍书就能记住和掌握什么——请看第二遍、第三遍; 23.请看《Effective C++》和《More Effective C++》以及《Exceptional C++》; 24.不要停留在集成开发环境的摇篮上,要学会控制集成开发环境,还要学会用命令行方式处理程序; 25.和别人一起讨论有意义的C++知识点,而不是争吵XX行不行或者YY与ZZ哪个好; 26.请看《程序设计实践》,并严格的按照其要求去做; 27.不要因为C和C++中有一些语法和关键字看上去相同,就认为它们的意义和作用完全一样; 28.C++绝不是所谓的C的“扩充”——如果C++一开始就起名叫Z语言,你一定不会把C和Z语言联系得那么紧密; 29.请不要认为学过XX语言再改学C++会有什么问题——你只不过又在学一门全新的语言而已; 30.读完了《Inside The C++ Object Model》以后再来认定自己是不是已经学会了C++; 31.学习编程的秘诀是:编程,编程,再编程; 32.请留意下列书籍:《C++面向对象高效编程(C++ Effective Object-Oriented Software Construction)》《面向对象软件构造(Object-Oriented Software Construction)》《设计模式(Design Patterns)》《The Art of Computer Programming》; 33.记住:面向对象技术不只是C++专有的; 34.请把书上的程序例子亲手输入到电脑上实践,即使配套光盘中有源代码; 35.把在书中看到的有意义的例子扩充; 36.请重视C++中的异常处理技术,并将其切实的运用到自己的程序中; 37.经常回顾自己以前写过的程序,并尝试重写,把自己学到的新知识运用进去; 38.不要漏掉书中任何一个练习题——请全部做完并记录下解题思路; 39.C++语言和C++的集成开发环境要同时学习和掌握; 40.既然决定了学C++,就请坚持学下去,因为学习程序设计语言的目的是掌握程序设计技术,而程序设计技术是跨语言的; 41.就让C++语言的各种平台和开发环境去激烈的竞争吧,我们要以学习C++语言本身为主; 42.当你写C++程序写到一半却发现自己用的方法很拙劣时,请不要马上停手;请尽快将余下的部分粗略的完成以保证这个设计的完整性,然后分析自己的错误并重新设计和编写(参见43); 43.别心急,设计C++的class确实不容易;自己程序中的class和自己的class设计水平是在不断的编程实践中完善和发展的; 44.决不要因为程序“很小”就不遵循某些你不熟练的规则——好习惯是培养出来的,而不是一次记住的; 45.每学到一个C++难点的时候,尝试着对别人讲解这个知识点并让他理解——你能讲清楚才说明你真的理解了; 46.记录下在和别人交流时发现的自己忽视或不理解的知识点; 47.请不断的对自己写的程序提出更高的要求,哪怕你的程序版本号会变成Version 100.XX; 48.保存好你写过的所有的程序——那是你最好的积累之一; 49.请不要做浮躁的人; 50.请热爱C++! 补充: 对c++学习的一点感想,希望对初学者能有些帮助 1.如果你以前从来没有接触过c++,那么选择的第一本c++教程就显得尤为重要,我认为你可以参照以下的标准进行选择: a.对标准c++进行讲解,毕竟c++比从前发生了很大的变化。 b.要求全面,但不要很深,这要有助于你对于c++有一个全面的认识,打好基础,并且易懂的教材还能加快学习的进度,让自己保持一种成就感。 c.要有完整的范例来讲解每一个知识点如何运用,请注意这里所说的完整,并不是一个个代码片断。因为由于你以前从未接触过用c++进行编程,完整的代码可以使你有一个整体的概念,并且能够很快去进行大量的实践,因为变编程是从模仿开始,完整的代码恰恰告诉你了一个完整的步骤。不必自己去揣测。 d.推荐:《c++ primer plus》 2.当你有了一定的基础以后,就要选择一些书来迅速提高自己。这类书的特点是不仅仅教你如何去运用,而且要叫你如何去思考,并且你读起来也不是那么轻松。它意味深远,并不是你读一遍就能掌握的。 推荐:《thinking in c++》《effective c++》《more effective c++》 《c++ programming language》...《c++ 沉思录》 3.接下来就是对第二步所介绍的书籍进行反复的阅读,并且进行实践。由于这些书一位深远,每个人基于自己的基础都会有不同的收获,例如如果你的基础还没有达到某一高度,那么你就对一些精深的技术视而不见,不信?你可以试试,看看当自己有了一定提高之后再来读从前的一本书,你会发现许多新的东西。 February 15 春田花花同学会 今天看了春田花花同学会,感觉还是很不错的,不像别人说的是一部烂片,导演还是很用心的。几十个演员,再加上个周笔畅。她的戏份还真是重,演的还不错,穿上女装的周笔畅还真是有点小女生的味道,很可爱,是一种不同于超女比赛上的感觉。笔畅的头发很好看,神情也蛮可爱的,导演真的是不错,我要是导演估计就累死了。不过整部电影的主角还是动画人物,两只小猪很可爱,让我发笑几次,现在能让我笑的电影还真是不多了哦。
一句话,春田花花同学会让我回忆过去,也让我期待未来,更让我想起我的同学们。现在我的所有同学们你们都在干什么呢?过的快乐吗?还记得最初的梦想吗?还想继续拼搏吗?还想继续打拼吗?
05年的经典语录之计算机科学05年的经典语录之计算机科学 by EmilMatthew(EmilMatthew@126.com) 06/02/07 1 计算机科学技术包括科学和技术两部分,不仅强调严谨的科学性,同时也注意工程性,是一门科学性和工程性并重的学科。信息科学技术的支柱学科是微电子、计算机、通信和软件,其中微电子是基础,计算机和通信是载体,软件是核心,它们相辅相成,共培培育了知识的经济。 ------杨芙清(中科院院士,著名软件专家) 评: 评价一件事情的重要性,务求客观和全面,杨院士对计算机科学学科的精当评价正是这方面的典范。
2 Three major of Computer Science: Theory: rooted in mathematics. Abstraction (modeling):which is rooted in experimental scientific method. Design: which is rooted in engineering. ------《Think like a scientist》 评: 给计算机科学的学习内容及能力要求与传统科学加以比照及借鉴, 合理而精当。
3 计算机科学与计算机技术毕竟是不同的,掩饰或者故意模糊这种区别是为了给当前的过分技术化,工匠化以及经济化时尚作辩护。对计算机而言,没有精而尖的技术(特别是先进的制造工艺)作为支持,侈谈其科学是不合适的。但反过来也有危机,容易使人沦为技术的奴隶,使科学丧失理性和人性。只重视具体实用技术而轻视甚础理论的弊病,在我国信息产业界也显露出来。 ------《大师的智慧》
4 对于我来说,计算机科学上的第一个挑战是如何把命令维持在有限个内,然而巨大的、分立的宇宙是复杂地缠绕着的。第二个也是同样重要的挑战是如何传授解决那第一个问题的方法:只培养你个人的才智(那会随你进入坟墓的东西)是不够的,你必须教会其他人如何去发挥他们的才智。你越关注这两个挑战,你越会清楚的看到它们只不过是同一枚硬币的两个面:自学是去发现什么东西是可以被教会的。 ------ Edsger Wybe Dijkstra(1972图灵奖得主,著名计算机科学家) 评: 从培养他人的成就来定义自身的成就,境界之高非我辈此等年纪可参透。
5 有的同学埋怨说现在大学里教的内容不够新,跟外面企业的要求脱轨。我要说,如果你要学最新最流行的东西,直接去读外面的培训班就是了,还来上大学干什么? ------谭浩强(著名计算机教育家) 评: 大学的四年,是为今后的人生加下坚实基础的四年,在该学的时候不学,到书到用时方恨晚时才发出”要是当时多学点… …”的感慨,是遗憾的.
6 技术这个东西,大家都知道,有时候就是一层纸,一捅就破,一开始你会比别人做的好些,但慢慢地别人也会熟悉,多翻翻书,多看看,我钻研一下,细节是可以搞清楚的。 ------周怀北(旅美PhD) 评: 技术当然很重要,但千万不要眼中只有技术,否则就是技术的奴隶了。
7 我就是搞不懂,难道C语言在中国已经没有用了?学好了C语言这个基础,再去学别的语言,就会轻松不少。 ------谭浩强(著名计算机教育家) 评: 自己感受过,才能有体会。 February 14 学习的总结学习和实践总结
自从上个学期加入到我们项目小组以来,在几个月的时间里接触到了一些新的技术,学习到了一些新的知识,也获得了一些实践的机会,在这里我对这些学到的知识和经验做一个总结和梳理。 首先,对.net的概念有了一些了解。由于自己是新手上路,没有做过什么项目,以前也没有接触过 .net,所以一切都要从头学期。
上面的这个图给我的认识.net是个什么东西启发比较大,这个图很好的表现出了,程序设计语言和.net应用程序和.net framework class library还有公共语言运行时之间和操作系统和硬件之间的关系。.net是一个很大的概念,基本上微软现在的所有的新开发软件,都被冠上聊.net的帽子。前断时间看到csdn上Richard Grimes的一篇文章,文章表示了对.net技术的一些失望,Richard Grimes是一个非常有名全球公认的COM/.NET技术专家,他的这篇文章在技术社区中引起了很大的反响。但是由于我对.net的认识还不够深刻,这篇文章的许多意思我都不是很理解,它的大概意思是.Net其实是很棒的,但是它迷失了方向,它把太多的力量都用在了提高用户的操作舒适度或其它一些技术上,偏离了微软原来提出.NET时所声称要达到的一些主要目标。在我使用.net开发项目的过程中,我个人觉得.NET还是很不错的。当然我的认识和Richard Grimes的认识不是在一个层次上面的,或许我觉得不错的地方,就是Richard Grimes觉得ms做得不适当的地方。 另外,也学习了一门新的语言——C#。C#是一门综合了C++和java的有点的新型语言,是一种完全面向对象的语言。它的语法有很多跟C++差不多,只是加了一些新的特性,例如:属性,索引器,委托等新的概念。在实际的运用中觉得的确是很方便,但是要说 C#优于其他的面向对象语言我看也不见得,如果在C#背后没有ms这个强有力的支撑,它的发展也不会像今天这么红火。 下面谈谈从我们所作的项目中得到的一些收获。原来写程序,都是一个人写,从头到尾每个字母都是自己敲进去的。如今做项目就不一样了,现在的项目是由六个人一起做,在这种情况下,编程风格就显得格外的重要了,我总结了几条经验如下: 1. 变量的名字和函数的名字绝对不能乱取,一定是要有意义。让人一看就能明白的,好的命名是不需要注释就应该能够看懂是什么意思的。这一点我是感受深刻的,原来编程的时候都是用一些简单的没有意义的字母来表示变量,程序变大了之后回头看前面的程序,自己有时都不知道自己定义的变量是用来干什么的了。这就像小时候,家里人教训我字写的差的时候说:“自己写的字自己都不认识”,这种很失败的感觉,有损士气,打击信息,而且也不好看,好的变量名和函数名是有一种美感的,自己看了都舒服。 2. 团队的编程人员,编程风格尽量能够协调一致。例如,控件的命名,变量的命名,函数命名的规则应该尽量一致,要达到几个人的代码整合到一起就像一个人写的才好。因为团队的人员组成可能是随时变化的,有时会增加人,有时会减少人,有时又会替换人。如果一个人一个风格,势必新来的人看不懂,如果他再带来一种不同的风格,那程序就会显得非常的糟糕,就像烂菜地一样。这对后期的维护人员也会增加许多的麻烦。 下面我谈谈团队的分工问题,由于现在的许多项目被分成了三层结构:用户层,业务逻辑层,数据层,因此,项目自然而然的分成了三个部分,但是我们的项目界面和逻辑联系的比较紧密,这两个层次就没有分开,由一个人专门做数据层的,其他的人再根据逻辑分工,来做上面两层,我分到了两个逻辑块。用到了存储过程,事务等一些技术,确保了系统的安全性。我觉得让一个人来做数据层的做法是很好的,这样确保了数据库的信息一致性。 其实让我觉得收获比较大的地方,就是参与到了软件的设计过程。在对数据库的设计过程中,把原来书本上学习到的一些知识运用到了实践中,在建表的过程中锻炼了分析能力和逻辑能力,也深深的体会到软件设计真是个脑力劳动。另外,这也是我第一次在这种大的项目中看到是怎么运用面向对象的方法的,怎么抽象出对象,怎么建立对象。这使我印象深刻。 其实学到的东西很多,但是比较杂,不好组织。很多感想交织在一起,每一点都写了一点,但每一点都没有完全写出来。以上的总结可以说是比较主要的一些收获了吧,先写到这里。
王凡 写于 2006年元宵节 |
|
|||
|
|