<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } -->
2007年个人回忆与总结
写在之前的话
您可能是无意间打开这篇文章的。
本文是88250对2007年学习、生活的回忆和所思所想。本文结构比较混乱,语言用词较为随意,虽然作者也尽量做了全文思路的整理,但一年的时间并不是一纸可以道完的,读者可以随意跳过某些段落,或者直接看最后一段。因为作者本人看书一般也是先看序言和书的最后一段的:-),下面是一些对本文需要陈述、声明的地方(建议跳过)
本文中充满了鸡毛蒜皮的小事,但并不代表他们没意义
本文中很多言语显得作者很自傲,但并不代表作者是个自大狂
本文中大量出现了一些技术词汇,但并不代表作者都掌握或运用自如
本文中多处出现了“项目”、“系统”一词,但并不代表作者做的是真实、实用的项目
本文中可能会“得罪”一些人(包括自己的恩师、好友或者不相干的人),但请记住,作者是一个爱憎分明的人
有些事说不清,如此而已。
正文
呃,又到了一年一度的年度总结时间了,由于07年底比较忙,一直忙到了前几天,发现再不写07年的总结的话08年第一季度都要过完了- -!
先说说最近在忙什么:(XX老师的远程教学系统分析;XX老师的在线考试系统设计与实现;XX老师的自动文本分类系统;自己在学校的创新基金项目;自己的开放式在线辞典竞赛项目)
1月18号软件工程课程设计的SEBank和J2EE的OnlineAuction项目结束后发烧了2天,醒来后学校人基本走完了,感觉欲哭无泪。
好了,下面进入正题。。。。
1. 思想上的转变
还记得在2006年的个人总结里提到的“坚决支持微软”的想法吗?不记得最好,记得的话忘记了最好。
-
Linux的震撼, *** 作系统的革命
Linux *** 作系统大一的时候有装过,记得装得很艰难,请了2、3个当时大四的学长帮我弄,后来我把他们辛辛苦苦的安装成果格了,继续用Win。记得正式自己装Linux是2007年2月11号左右,那几天之前(大一下的某个时间段到大二上结束的寒假)把大二下学期要上的主要课程( *** 作系统,网络原理,Java,C#.NET)都看了,实验也都做了。实在是闲得发慌(貌似是当时看系分的书也看不进去了),心血来潮,装Linux!上网看了很多介绍,决定装Ubuntu,因为传说这个Linux Distribution是for human beings的,现在看来,传说得证。3天后,参考网络上很多前辈的经验,编译Linux内核成功,好像那个内核一直用到了Ubuntu 7.04的正式发布。
开学后,无意中在学院某个FTP上看到了一部名为:Revolution Os的片子,看电影,了解了自己用的Linux原来还有这么多故事,更重要的是了解到了Open Source的理念。。。。
-
闭源->开源,商业与自由
知道Open Source的人应该都知道GNU吧,在《Revolution OS》里看到了GNU的各位达达,看到了Gates在80年代(Open Source运动刚刚发启的时候)曾经还写过批评Open Source的信。呵呵,Gates果真毅力坚定,看来成大事者,必定固执呵。不过好像2007年M$好像自己也弄了个开源门户- -!
在2007年里,我用了很多的自由软件,以 *** 作系统为首的Linux基本常用软件
一类,在学习的实践项目里用的Java,IDE,Third party APIs,各类文档等等都是Open Source的,从中我学习到了很多、很多。在写代码的时候会感觉到我正在使用或修改的开源代码原作者的艰辛,突然会觉得自己也应该为别人做点什么,顿时热血沸腾,敲键如飞。
2. 技术上的学习
-
罗列新学到的技术缩写
这里罗列的技术都用在了实践项目中,回首一看,自己只是运用了它们而已,只有少部分掌握了其技术的设计思想和原理,惭愧了。
2007年主要学习了Java相关的技术和工具:
Java Base:RMI,Swing/AWT/SWT,JDK1.5/6 Annotation,Threads, JPA,JUnit(3.8/4.x)
Java Web:JSP/Servlet,EJB2.x,EJB3,Spring2.x(including SpringMVC),Hibernate3,iBatis ,JSF1.x,XDoclet。
上半年也学习了一些C#.NET:
.NET Framework Design,.NET框架原理及其在Windows上的练习(当时是在Ubuntu下开的Virtual machine XP,在开的Visual Studio 2005。。。。)
C# invoke native(local) Windows APIs:这个做了个键盘Hook的程序:-)
在JVM和.NET的CLR上也看书研究了一下它们的GC,感觉很有价值。以后一定要看一下JVM的源代码。
数据库上只学习和使用了MySQL。呃,忘记数据库先,那个只是存贮数据的地方。
上面罗列了一大推专业缩写,希望现在把它们都忘记。
-
程序设计思想
Design Patterns,学习了经典GoF的23个设计模式,并运用了一些在实践项目中,算是对对面向对象的程序设计入门了。OO是2007年学习的重点,在看了《敏捷软件开发——原则、模式和实践》和《重构——改善既有代码的设计》后感触颇深。以前积累了一些结构化设计的思想,OO入门后对structured设计感触更深了,无聊的时候经常在想如果以前有些程序用OO来做是不是会有不同的结果,呵呵。。。。
记得暑假时候刚接触Spring的时候,了解到了AOP、IoC容器和DI模式,后来看了J2EE老师推荐的《J2EE Development without EJB》,对经典OO思想有了一些反思,后来把这些先进的思想和OO的设计原则进行了对比,发现了OO的动人之处:我们都是一个个的Object,我们都有自己的活动、社交圈子,我们都在为自己的理想而奋斗。环境可以为我们准备好各种我们需要的东西,比如衣物,食物什么的,但是最终的执行者是我们,执行的结果就必定和我们所在的环境密切相关了。
而“环境”这个东西天下的人都共有,这便无所谓了“依赖”。
这就是我们一直追求的解藕,通过IoC/DI。而AOP呢,目前没有具体运用过,无权发表评论。计划在2008年春季学期(大三下)开学后打印Spring framework的代码看看,不过这个只是计划,我的计划总是太多、太多,真正到达自己预期结果的却太少、太少。
呵呵,也许我的OO观终于算是入门了,以后更要加油哦:-)
-
软件工程思想
关于过程模型和方法论
学习了RUP,还没运用这个方法论前就感觉那个累啊,各种项目干系人,各种进度控制,需求管理,各种文档,各种。。。。本来在下半年的软件工程课程设计的SEBank项目上要用RUP作为指导思想的,后来考虑了一下,连自己都害怕这个东西,自己都不能说服自己用这个方法论,如何对项目组的其他人说?起初是考虑了项目涉及的组员较多,而且我们都很在乎上级(老师)的看法和对我们项目下的结论,所以想用一些“重量级”的方法论,以体现我们对这个软件工程课程的掌握程度。后来我仔细想了一下,这不是违背了我自己的原则吗?我以往做各种课程设计大作业都是以可用的软件产品为目标的,而不是以最后的结果为目标。自己挣扎、斗争了几天,提出了以敏捷方法的XP作为指导方法的。
RUP的确不是我们可以驾驭的,而XP呢?
对XP的思考其实从假期看《敏捷软件开发》就开始了,那本书的确是经典中的经典(我现在逢人就推荐,呵呵)。XP其实是要求个人有很高超设计思想和技术水平。要敏捷,整个团队必须要达到“智慧”的条件才能敏捷得起。在敏捷团队中,每个人都是架构设计师,每个人都是主程序员,每个人都是测试工程师。这样的团队在管理上的确很难,不过这样的团队基本也是找不到的:-)
关于项目管理
一直以来,我认为在软件开发上技术是不存在很大问题的,这个技术不行就用那个技术,实在不行大不了告诉委托方,说做不了。我认为存在很大问题的是项目管理(貌Brooks先驱的《The Mythical Man-Month》如是说),而项目管理的艰难在于人与人之间的交流与沟通。软件本身就是人类智慧的结晶,是高度复杂的东西,外加上人之间的交流障碍和各种不可控的因素,结果可想而知。没办法,环境太复杂了!
关于团队(企业)过程成熟度的评定
好了,下面说下学到的对于一个团队(企业)过程成熟度的评定方法论,当然,我离评级师起码还有20-30年的路要走(如果我一直活跃在软件工程领域的话),所以还是只能罗列一下书本上的缩写 :-)
CMM/CMMI,ISO9000,PSP/TSP
看到身边的一些软件公司,硬是要拿个CMMI评级,做了各种工作,从上到下,从内到外。这本是好的,可惜他们大多数“动机不纯”,可惜。
讲到这里,突然想起了“我心中永远的痛”——系统分析师资格水平考试>_<~~。
4. 2007上半年重大事件回忆
-
中国系统分析师水平考试
2007的寒假,在软设过了之后的第一个假期在家里看系分的书,6、7本都浏览了一下,仔细看了其中2、3本,笔记记了100多页,习题画了2、3本练习薄。汗死,5月的考试里论文以39 挂了。还记得当时论文选择了一个自己基本没有做过实践的论题——什么动态语言技术发展总结与展望之类的题目),虚构了一个图书馆的系统,结合JSP/ASP/PHP,AJAX等等Web脚本扯了一堆,挂是必定的。暂时忘记系分考试吧!
-
*** 作系统课程的学习
自己很感兴趣的一门课程,在大一的某一段时间里就开始学习了,在寒假的时候用汇编和C写过一段 *** 作系统的引导代码,并在自己的Ubuntu上测试成功,本来是决定学习 *** 作系统的时候就专心实践一下简单 *** 作系统的编写(项目代号都起好了:l0y0l 嘿嘿,我起的项目名一般都很有创意的),后来也搁浅了。
-
网络原理
开课前只是对网络有个大概的了解,比如OSI RM,Internet Model,知道他们的分层和各个层的功能,还有一些网络设备(including 中继设备and端设备)。软设和系分的教程是没白看。开课后基本没在乎过这个课,只有闲一点的时候翻翻课本,呃。。。。还好,课本是借的。还好,下班学期选了个网络工程专业的选修课——网络系统测试与评价,算是弥补了一下自己的网络知识的欠缺。
-
专业实践
开学的专业实践选择的项目是自己定的一个Java播放器项目——LivaPlayer(Linux + Java的播放器,嘿嘿,名字有创意吧^ ^)。后来还挂到了SF上,基本是能用,还有lrc歌词的滚动显示,SWT写的界面,纯仿的Windows下的TTPlayer。这个项目本是为了能让广大的Linux用户能用上类似TTPlayer这样的方便播放器的,可惜,后来搁浅了。对不起很多对这个项目关注的人了,实在对不起了!
-
Java
Java不知道逃课逃了多少,一向认为开设语言教学课程是本科软件教育极大的一向失误。Java课程设计做的是一个ATM的项目,惊讶的是教Java课程的老师检查完后对我说“你(们)这个可以上90分了”,更惊讶的是结果分数下来是87- -!,最最惊讶的是只有我们小组的项目在实现上用了RMI,进行了一些分布式的尝试,在Linux下部署的时候问题不断,还好是技术上的问题,都解决了。还记得老师(客户)验收项目的时候,我的服务器突然当了,验证了那个XXXX的定律(原因是Ubuntu6.10在的无线网卡驱动导致的内核Bug)。还好,找了个没有无线网络的地方重新开机,一切正常了。
呵呵,从此以后可以逢人就说“哥们,偶写过银行的分布式服务系统,Java RMI实现,用的是RMI-IIOP协议,Java 对CORBA Midware的ORB底层实现技术!”当然,这个只是说笑罢了,在N年后可能说的是“呃,同学,你们现在的Java课程设计怎么还是这个ATM toy啊!~~~~”
-
C# .NET
不知道逃了多少课,貌似所有课我都逃过。C#.NET课程设计做的一个网络聊天工具。
不过我没参与编码,应该说我什么也没做。当时对Java和Open Source着迷了,M$的东西直接被我忽略了。不过,我承认,在IT行业里很多先进的技术和经验只有M$这样的巨头才有,这是事实。(前几天看到M$提出以446亿美元的价格收购雅虎,我的感觉是:446亿美元。。。。可以。。。。不知道可以干什么了;现在用的我的OS用的字体也是M$的YaHei)
呵呵,这个课程设计项目要感谢赵禹同学了,他一个人奋战到了最后,可敬,可佩。感谢。
-
创新基金项目
记得大二上学期拼了命申请的项目没能通过,当时心中一个郁闷啊。而大二下的这次和几个同学在一个通宵和一个白天就把项目思想,技术,外加报告弄好并提交了。真所谓“神速”。坦诚不公的讲,我记得那个报告是抄袭了3-5篇国内论文的精华部分,外加了我们自己的“粘合语句”拼凑而成的,居然通过了审核- -!呼!据说还有2500¥的经费,不过貌似迟迟不见经费的踪影,不见也好,因为这个钱财取之无道。不过不知道项目组的其他成员的想法了,呵呵。
4. 2007下半年重大事件回忆
-
暑假
在暑假的时候本来要发布两篇文章在Blog上的——《人工智能是虚的吗?》、《人工智能与平等自然》,草稿在我的工作薄上都写好了(多数是上课时候写的,上课很无聊的,能吸引我的老师不多)。可是,后来因为比较懒,一直没整理,导致现在找不到那份草稿了,就更不想写了。哎!不能一直停留在“想”的状态了,受到信号后应该马上把状态迁移到“做”上的。可惜了,现在只能回忆起当时文章的主旨了,都成泡影咯。
暑假期间一直在学习J2EE,设计模式,重构,敏捷过程。
-
竞选班委
开学后,遇到的第一件大事就是改选班委。
对当选班委的概念貌似在10年前就没有了,不过这次我觉得我应该为别人做点什么了。看到了我们的示范性软件学院的现状,我真的想做点什么。到目前,我担任了学习委员(呵呵,一个天天逃课,考试从没那过高分的我),很感谢同学们和老师对我的信任。不过,才上任,遇到了最令我头疼的事——综合测评。
-
综合测评
为什么说这个东西令我头疼?相信经历过的同学都持有一致的观点。说近点,这个东西决定着奖学金的评定;说远点,这个东西很大一部分程度上决定着一个学生的将来。
贪念作祟
我交朋友,看的是那个人的贪念,看的是他对事物的占有欲。可惜,我自己也是greedy。物质的追求,为什么总是不能抛开?因为我们生活在现实中。只要在现实中,永远也抛不开物质的占有欲,电影《七宗罪》里揭露较为深刻。我这个大一学年,综合测评全班倒数的人,在大二突然拿了奖学金。虽然自己确实努力过,成绩上是有进步的,不过貌似进步表现得过了点。不知道大家对我怎么看的,一个从不“在乎”别人的人开始在乎别人了。
矛盾
矛盾我认为是人类进步的根本。矛盾必然长期存在,并不是什么社会体制,人为因素可以更改的。试想,如果有一天所有矛盾都解决了,什么都安乐了,什么都不用关心了,那么,这个时候就该是我们人类灭亡的时候吧。
好了,不想说关于哲理的东西,我还没那个水平。还是继续我的记忆。。。。
-
专业实践
专业实践在第一时间内动工了(学了敏捷果真有用,但是我们真的敏捷过么?)
SVN版本控制系统现学现卖,并以实验室的一台机子(被我占用了一个学期的机器上装了个Ubuntu的Server edition。应管理员要求,我设定了实验室公用帐户给其他人“体验Linux”)作为我们团队开发的代码服务器、测试部署服务器开始了项目的开发。那个项目做的是一个Wiki,说准确点是书籍类的Wiki,用户可以在上面看到书籍的网上报价,电子书下载地址。项目立意我觉得应该是不错的,技术上用的是Java Web的轻量级框架,Spring和Hibernate。结项的时候老师评价很不错的:-)。我自己感觉,这个项目虽然不可能产品化,但毕竟是自己做的一次Java Web轻量级框架实践,而且自我感觉这个项目如果以后有价值,可以继续下去。说到专业实践课程,顺带连电子商务课程也说了。
-
电子商务
学了一些较为有用的东西,也听老师罗嗦唠叨了很久的无聊的东西(譬如他苦口婆心的讲PHP)。期中考的立项报告我用的是专业实践的那个Booki项目的,硬是把那个项目改成了电子商务,可赢利模式的Web应用。期末的课程设计和我女朋友一起做的这个项目。真的很感谢她,她做了界面的设计和很多美工,没有她,我都不知道该怎么办的,也许交付给客户(老师)的时候只能说:“啊!我忘记带界面过来了!”
不过,话说回来了,因为教授电子商务课程和专业实践课程的老师不是同一人,不知道他们是否知道我用的是同一个项目,同一份实现。呵呵,不管知不知道,现在一切都过去了,感谢两位老师的教导!
-
黑暗的,软件工程
这个学期最头疼的课程是软件工程。不是说课程内容头疼,而是头疼课程设计。也许是老师太相信我们的实力了,弄了个银行的需求过来,活生生叫我们10个人一个组做全套实现。看完他(客户)给的需求后,我第一感觉就是:这个项目接不了啊!我是在念大学吗?
不过现在想想,感谢教授软件工程课程的老师了,是他给了我们如此宝贵的实践机会。
当时的情况是这样的:我们那个组好学生多(除我外,其他人都是在大一学年里拿了奖学金的,而且他们之中男生的编程能力在我们级也是不错的)是很麻烦的事。开始的时候公选项目经理,我硬生生把一个好友从项目经理的位置拉了下来。我的理由是:考虑到最后的结果,他可能没有另一个和老师走得更近的人适合。我对于结果没有多大的期望,毕竟,经历的课程设计多了,失望也不是一两次了。再来一次也没什么的,我受得住:-) 不过,还是那句话:涉及的人多了,要综合考虑。不知道那个好友现在是否理解我当初的用意。后来,我扮演的是架构设计师,好友扮演的是软件设计组组长。还好,工作一切顺利,己便是在项目最后,最缺人手的时候一个组员突然宣布离开(人家离开是有原因的,理解)我们也基本完成了我们的基线,和我认为的一个里程碑版本。
当然,最后,项目的结果是在我的预料范围内的。
-
编译技术
前面忘记说了,在暑假的时候一直边看编译原理的书边动手实现简单的PL/0编译器:看了一些基本的理论,开始看课本后面给的Pascal实现版本,也开始翻译这些Pascal的代码到Java(我那本课本3元买的旧书,后面居然只有Pascal的实现版本),再一次感受了Pascal的优雅(大一时候学习Delphi的时候有点体会),不过翻译工作没能进行完就开学了,好像是停滞在了目标代码处理的部分。
开学后,期中考,刚刚及格。读书读了15年,貌似我还是不适应考试,态度已经很端正了,复习已经很充分了,考试的时候一律忘记干净。考试的时候多半喜欢借题发挥,结果往往是惨不忍睹的,呵呵。
不过,有一次老师叫了几个实验做得好的同学上讲台上讲讲做实验的经历,我很荣幸地被叫到了。上台不管三七二十一,讲了一节课吧。呃,就像别人对我说的,一讲到技术,我就两眼放光,黄河放浪。其实我是不喜欢技术的,技术只是不得不用,我也是被迫的。
期末考的时候,我的座位刚好有一米阳光。先把会做的试题做了,算了下分数,40多分。好友就在我旁边,奋笔疾书ing,本来想问他,就是作弊之类的,不到3秒钟,打消了这个念头。
作弊可耻,应该杜绝。不会就是不会了,没办法,对得起自己了,所以不想做在挣扎剩下的N个题的空位了。晒晒那阳光,很享受的感觉。教我的老师走过来问我:“最有一个题做了吗?”“不会。”“那倒数第二题呢?”“也不会。。。。”看着老师一脸的关心和无奈,我也只能苦笑以对了。不过后来很感谢这位老师,不是他手下留情,我的编译技术是挂定了。谢谢您!
当然。。。。
实惠不是白给的
后来导致了假期要帮他做一个远程教学系统。确切地说应该是对一个现有系统的代码分析。这是个SF上开源的系统,下载完代码便开始分析。代码写得有技巧,可惜我感觉设计上比较有问题,边分析边重构。不过貌似一个系统不是一个人可以搞得定的,我尽力了。目前这个分析工作还没有结束,在逆向生成一系列类图和依赖图,还有说明编写文档,比较累。不过这个付出是必要的,毕竟,滴水之恩,当涌泉相报。
说到了后半年,又想起了系分的考试。
-
还是系分考试
痛
还是挂在了论文上,一样的39分。
这次写的题目是《论迭代软件开发》,依题意,我写的是敏捷软件过程,结合自己的专业实践项目(Booki)。考试的时候,我打了提纲,各种格式,各种段落,各种措辞,各种没有涂改,各种。。。。文中,按题意讨论了iteration和waterfull的区别,讨论了敏捷的核心原则,具体到了XP和自己的项目实践谈了遇到的问题,解决的方法,最后还有一段对敏捷与自己实践的总结。结果却和上半年那个瞎编的论文分数一样。即使项目规模、项目立意等等达不到要求,但至少给个40啊,让我看到自己的进步。可惜不是同一个专家改的卷吧,呵呵。
关于系分考试,2008年不知道还参不参加,我的想法是“事不过三”,还有最后一次机会,再挂,这辈子也不想再考了。以后有机会要去出题,只出论文的题目,嘿嘿。
后记
回忆都是美好的,因为最起码还有回忆,不是吗?
这一年太难忘记了,还记得有次在实验室通宵的时候,在对面workbench的一个同学对我说:“也许N年以后回忆起大学生活,只能看见一幅景象:你以一个典型的程序员的姿势在狂敲键盘,而我正靠在身边的workbench上睡觉,我老婆在旁边拼凑起来的椅子上呼呼。半夜三更的,屋外偶而还能听见猫的啼哭声。”
呵呵,很经典的scenario!的确,N年后我们都不会忘记这段很陶醉的时光,不是吗?
不过,以上描述可能过于美好了(但是,它是真实的,只是不够完全罢了),我的版本是酱子的:
我以一个典型的程序员姿势看着屏幕上的测试用例的output,面无表情。对桌的哥们正在靠着workbench,似睡非睡(应该是睡不着,还在想项目的事)。他的女朋友躺在拼凑起来的椅子上呼呼。半夜三更的,屋外偶尔还能听见打电话的声音。
请注意,在后面的版本中她女朋友和前面的版本是同样的状态。因为很多时候我经常过去他们那边打扰他女朋友休息,呵呵。还是她正常呼呼的样子留在我的记忆里比较好,我打扰她的情节就略过一二了。在这里,请她原谅我,经常打扰她的休息,对不起哦。
呵呵,基本有两个多月是不分白天黑夜的,困了就在实验室的椅子或者地铺上躺着,是在困了就回宿舍睡。软件工程课、编译技术的课基本是逃完了。不过我还算是好的了,另一个同学(我叫他“杨兄”,很敬佩他的^^)也是他们专业实践、软件工程、电子商务3个项目组的核心成员,看着他拼命,完全是在拼命的状态,他们软件工程组10个人,最后在某天的时候,突然只有他一个人在做设计和实现,无限敬佩他的勇气和执着。呃,经常在夜里和他一起抽抽烟,抱怨两句,蛮回味的。
还好,这段我觉得我活到现在,第一段“最黑暗”的日子熬过去了。
感觉最对不起的要是我的女朋友了,一直陪帮我做项目,陪着我熬夜,不分日夜。可是有一天看了她的Blog后发现她原来还是不了解我,我也还是不了解她。我和她在一起是一个错误的决定,在一起那么久没有分开是一个非常错误的决定。直到现在我写下这段文字的时候,我依然认为我和她的几次“分手”最后都是我去请求的复合是大错特错的。可是,明知道错,为什么还做?
什么是所谓的“错”?
世间本无对错,自从有了“现实”、“实际”这些词,便有了错。
我是应该要面对现实的,逃避无用。不过我不会忘记心中的理想,不会忘记任何关注、照顾过我的人。但是现在我只能说:“我不想考虑以后的事。” 虽然我很自信。
也许是时候和女朋友分开了,但愿她能理解,最后一次宽容我的错,忘记我那说了无数次的诺言。
“对不起”
不知道还能说什么,目前只有这句话。以后的路我难以确定,唯一不变的是变化本身。我们都在变,变得会“为人处世”,会“知人论世”了。也许很久以后,我不是我了,但我却还会记得我们之间这段美好的、刻骨的岁月。我希望我还是个求知,博爱的人。
最后
赵禹,再一次提及你的真名,希望你能理解。还记得我们的”上高楼,望尽天涯路”吗?
光光,小明,我们永远是兄弟!
Kiki,Crystal meteor,Eleven,DaBao。。。。
还有我的家人。要感谢的人太多、太多。。。。
最近突然想d钢琴,看中国传统思想(老子,孔子),还有佛学。我感觉自己已经在衰老了,
但是对于真理、平等的追求,矢志不移。
谢谢您看到这里(不管是如何看到这里的,我都很感谢您对我的关注)
:-)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)