自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

常高伟的专栏

关注软件开发和技术中人的因素

  • 博客(328)
  • 资源 (18)
  • 收藏
  • 关注

原创 [xia谈]做一个爱家的程序员

我说我要买车的话就买BYD F0,轻巧,油耗低,简单。我老婆说我现在是这种想法,过几年就不这样想了,那个时候会喜欢大气的车,那是男人成功的标志。“我现在就很成功了!”我老婆笑我“你怎么成功了?”。我答“我娶了你做老婆,世界上还能找出第二人吗?!我的当然是最成功的男人。”我老婆大笑。在我老婆看来,我肯定是一个怪人,整体对着电脑,有意思吗。我就给我老婆看我们的编程语言,教她写最经典的“hello world”程序。她看后不屑的说,太没有创意了,我给你写一个。然后就照猫画虎写了一个程序,点击运行:

2011-05-07 21:08:00 6319 80

原创 WebQQ3.0体验

前几天在CSDN上看到腾讯推出了WebQQ3.0,这几天便体验了一下,总体感觉还算不错。总结一下优点:1、界面做的比较漂亮,和win7风格比较像。2、比较容易上手:整体操作仿照操作系统,必然开始菜单,显示桌面,应用程序快捷方式等。3、功能比较齐全,qq所能进下的一起都可以在这里完成。4、一个非常重要的功能,可以根据自己的喜欢添加相应的应用。而且大部分都是免费的。而且应用非常的,将近2000个。正因为有上面的一些优点,所以经常不登陆qq的我这几天到时常常登陆webqq。不过也有

2011-04-27 13:00:00 9116 26

原创 调整好心态和策略,从底层做起——致2011毕业生

眼下马上快到六七月份了,又到了应届毕业生的入职高峰期。这篇文章权作对初入职场的毕业生的一个建议,希望能够对他们的学习和工作有一些帮助。本文针对的一般的普通的毕业生,天才除外——因为我不是天才,也很少遇到天才,天才的情况我不了解,他们的发展轨迹可能异于常人。正文:上周在CSDN发表了一篇文章《毕业一年不到的员工要跳槽,我的建议》。很多人进行了回复,讨论,大家占的角度不同,看问题的思路也不一样。其中还是有很多精辟的论述,比如针对发生这种现象企业方责任的一些观点。同时,我也看到有些人回复说,在刚毕

2011-04-26 23:05:00 8409 68

原创 慎重跳槽,我眼中的跳槽黄金时期

背景:今天早上刚到公司,一个员工就对我说,他想离职,他说的已经考虑了好几天了,我看他也是深思熟虑过的。本来人走人留也很正常,特别是在现在这个跳槽高峰期。但是他是去年刚毕业的应届本科毕业生,工作还不到一年。接下来我和另外一个同事和这位员工详细的谈了一下,不过这对最终的结果应该没有任何的影响。至于离职的原因,这位员工给我们的理由是工作的地方离女朋友太远,这也许是真的。但是大家都知道,人们一般不喜欢承认跳槽是因为对待遇不满意,可能是因为文化的原因,也可能是因为会给面试官留下不好的印象——因为一个为

2011-04-20 23:34:00 33599 307

原创 25 考虑写出一个不抛出异常的swap函数——effective c++学习笔记

<br /><br />std::swap是一个模板,他提供的是置换操作,即将同一类型对象a,b互换内部值。swap操作要求对象支持copying构造函数和copying赋值函数,在内部操作上,他使用了三个赋值对象。<br />这里有一个问题,就是对于特定的对象,它的效率会非常的低。所以我们要针对特定的对象进行特殊的swap。<br />总结:<br />1、 如果swap的缺省实现码对你的class或者class template提供可以接受的效率,你不需要额外做任何事情,。<br />2、 如果

2011-04-08 21:48:00 2042

原创 28 避免返回handles指向对象内部成分——effective c++

这样做有两个问题:a) 降低对象的封装性。把内部结构暴露在外面。b) 调用const函数,但是仍然可以更改对象。有一个办法可以解决第二个问题,即返回的handles加上一个const限制,这样就可以更改返回的对象了。另外,也会有一个新的问题——dangling handles(悬空的号码牌)。如果handles指向的指针已经释放,但是返回的handles却无法知道。请记住:避免返回handles(包括reference,指针,迭代器)指向对象内部。遵守这个条款可以增加封装性,帮助co

2011-04-08 21:46:00 1530

原创 27 尽量少做类型转换——effective c++学习笔记

C++规则的设计目标之一是,保证“类型错误绝对不会发生”。转型会破坏类型系统。旧式转型风格:(T)express;T(express);新式转型:1、 const_cast(expression)。单一对象可能拥有一个以上的地址,分别是以基类指针指向和子类指针指向。由于知道“对象如何布局”设计的转型可能在某一平台上可以,但是其他的平台上却不可以。请记住:1、 如果可以,尽量避免转型,特别是在注重效率的代码中避免dynamic_casts。如果有个设计需要转型动作,请考

2011-04-08 21:46:00 2152 1

原创 为“异常安全的努力”是值得的——effective c++学习笔记

异常安全的两个条件:1、 不泄露任何资源。2、 不允许数据败坏。对fopen函数进行封装。异常安全函数提供下面的三个异常保证之一:1、 基本承诺:如果异常被抛出,程序内的任何事物仍然保持在有效的状态下。没有任何对象或数据结构会因此而败坏,所有对象都处于一种内部前后一致的状态。2、 强烈保证:如果异常被抛出,程序状态不改变。调用这样的函数需要有这样的认知:如果成功,则全部成功,如果失败,则全部失败。3、 不抛出异常:承诺不抛出异常,因为他们总是能够完成他们之前承诺的功能。不要为

2011-04-08 21:45:00 1350

原创 透彻了解inline的里里外外——effective c++学习笔记

inline背后的整体观念:将“对此函数的每一次调用”都以函数本体替换之。inline在大多数c++程序中是编译器行为。inline是个申请,编译器可以忽略。inline对virtual函数的申请一般都会失败。一个表面看似inline的函数是否真实inline,取决于你的建置环境,主要取决于编译器。编译器通常不对“通过函数指针而进行的调用”实施inline。对inline函数调用有可能被inline,也可能不被inlined,取决于实施的方式。不要将Derived(子类)构造函数

2011-04-08 21:44:00 3073 1

原创 分享我的书架:一个五年程序员的学习观

我工作近五年,看过很多书,正在看很多书,计划看更多的书。这篇文章和大家分享一下我的书架,以及我的学习状态。里面的很多书你也可以关注一下,非常好不错的。

2011-04-05 22:42:00 44243 242

原创 记录最近一些没有形成系统的思考

记录最近一些没有形成系统的思考

2011-01-20 18:11:00 1723 7

原创 一天需要把握住的六个90分

我不止在一本书上看到,时间要做整块使用,而且大小最好是90分:太长则注意力无法集中;太短则任务切换耗费精力。我整理了我一天中要把握的六个90分:

2011-01-20 18:06:00 2141 16

原创 再读《do it now 》

今天又重读了一下《do it now》,下面是我的一些感想。

2011-01-20 18:03:00 1978 2

原创 GTD时间管理理念和德鲁克时间管理理念的异同

分别介绍了GTD时间管理理念和德鲁克时间管理理念,最后得出他们的一些不同点。这两种时间管理理念可以综合起来使用,对时间管理可能会有更大的帮助。

2011-01-20 18:00:00 3972

原创 新年愿望——天下无贼

如果真的天下无贼该有多好!这算是我的一个新年愿望。因为我的手机今天被人偷了。哎,郁闷啊。我做事一向小心谨慎,没想到我的手机也会被偷。我在一个路口打了个电话,然后走到下一个路口,就发现我的手机被偷了,手法真的很厉害,我一点感觉也没有,也没有印象旁边有人和我很近。手机丢失钱是小事,自己那么多的联系方式都没有了,损失太大了。所以,没有丢失手机的朋友们,赶快备份你们的联系方式。他们拿走我的手机也只卖几百块钱,可惜了我的那些信息了。马上过年了,小偷也要过年,他们肯定要急于出

2011-01-14 21:55:00 1349 3

转载 【转】敏捷个人:内容框架之执行力

导读:执行力是敏捷个人需要学习的一个内容,本篇主要介绍执行力相关的内容,大家在读后可以采用介绍的一些指南开始行动。执行力的三个层面 1. 按照命令和规则做事的过程,简单讲就是能够听话照做 2. 按照预定的计划行为的过程,简单讲就是做事章法 3. 将想法变成现实的过程,简单讲就是规划实现对第一个层面来说,要做的事情是片段的、非连贯的,但对第二个层面来说是连续的、整体的。一个计划并不是一两个步骤做好就行,而要将整体的顺序都做好才能达成效果。有了第二个层面的执行

2011-01-07 12:30:00 1177

原创 应该如何正确对待员工的抱怨

在上一家公司的时候,一次新员工培训的主题是员工的工作态度。当时有一个案例:有两个员工,能力不相上下,都合格的完成了工作任务,其中一个员工完成任务的同时中总是抱怨,发牢骚。案例的问题是“给这两个员工进行绩效考评,一个是A,一个是B,你会怎么评?”。我记得当时我们都豪不犹豫的把总是抱怨的员工评了B,理由是抱怨对团队氛围和工作效率的危害很大。现在想来当初的这个判断很草率,不够深刻。管理者如何正确对待员工的抱怨?首先应该对员工的抱怨足够重视。其一是抱怨对团队的危害性。其二,可以把员工的抱怨理解成

2010-12-28 17:32:00 3535 5

转载 【转】华为员工必选题:做奋斗者,还是劳动者?

原文地址:http://www.infzm.com/content/53863#copy今天看的一篇文章。崇尚“狼性文化”的华为试图一直让员工保持着奔跑的姿势。 (CFP/图)“奋斗者”与“劳动者”,若老板要你在这两个“标签”中选一个,你会怎么办?25岁的周林最近就遇到了这个选择题。他所在的华为公司,这家被称为中国最神秘的通信制造企业,正在掀起一场轰轰烈烈的“奋斗者宣言”活动——员工们被要求提交一份申请,“自愿”成为“奋斗者”。不提交者,则自动划入普通“劳动者”之列。

2010-12-26 18:55:00 4391 7

原创 面对大公司和小公司,应届毕业生如何选择

大学毕业择业的时候,除了工作的行业(通信,互联网),职位(研发,销售),工作地点职位,公司规模(大公司,小公司)也是一个比较纠结的问题。这篇文章主要根据我自身的经验,谈一下大公司和小公司的一些不同的地方,希望对即将总出校门的毕业生有所帮助。本文所指的大公司是指规模在500人以上的公司,小公司是指规模在100人以下的公司。我毕业后在一家大公司工作一年,然后到一家小公司工作。下面主要根据我自身的经历谈一下它们之间一些不同的地方。1、企业文化。大公司的企业文化在经历了很长一段时间的发展后,一般

2010-12-22 20:29:00 22562 71

原创 哪些行为和心态妨碍你的沟通

有没有感觉在工作中,和有些人沟通会非常费劲?当然,沟通双向双向的,需要双方共同的努力。但是如果有很多人感觉和某个人沟通都存在障碍的话,可能就是他的问题了。我在工作中也遇到过类似的人,这里总结一下妨碍沟通的几种行为或心态,看看你有没有这个问题,也欢迎你的讨论。1、语言粗鲁,容易激动。这是最常见的问题。有些人一开口就满嘴脏话,火药味十足,或者慷慨激昂。本来一次很普通的交流,结果好像被搞成世界大战。对方如果有涵养,有胸怀,不和他一般见识,或者知道他就是这样的人,也许

2010-12-15 23:26:00 3012 3

原创 做IT想不加班真的很难

做IT想不加班真的很难。前几天接到国内某知名通信设备制造商B公司西安研究所HR的电话,说是西安那边正在招聘LTE基站软件开发工程师,问我有没有兴趣过去。因为最近我们也在招聘,所以和他多聊了一会。我有以前的同学在那边,听说那边加班比较厉害,所以这次也确认了一下。我问他们的加班情况,他说他们最近项目比较多,所以会有加班。具体加班时间如下:1、每周一,二,四要加班到晚上八点到九点左右。2、每周六也要上班,时间从早上九点半到下午四点。3、如果项目特别急,做不完,还要在申请加班(这个看具体情况,可

2010-12-08 22:48:00 30076 206

原创 创业的首要因素

从他们的出身地点来看,上面有六个人均出身于沛县,另外在加上刘邦和吕后,让我们看看沛县总共出现了多少的英雄豪杰:一个伟大的皇帝——刘邦;一个厉害的皇后——吕后;一个被封为首功、列为汉初三杰的丞相——萧何;一个被推为功劳第二的丞相——曹参;一个军功显赫,关键时刻“安刘氏天下”的将军——周勃;一个军功显赫,仅次于项羽的第二猛将——樊哙;一个战功显赫的将军——夏侯婴;一个耿直敢言的御史大夫——周昌;……上面这些人都是在史记当中有记载的人物,沛县肯定还有很多一开始就追随刘邦,后

2010-11-28 23:26:00 9200 20

原创 如何成为一名专家级的开发人员——读后总结

今天在CSDN首页上看了一篇文章:如何成为一名专家级的开发人员文章相当不错,感触很深,总结一下:1、专注。要选择一个平台,一个行业,然后在这个领域内专注一段时间(最少要6年)。我现在应该是linux 上C/C++开发,要专注这一领域。我的一个同事做了三年,后来跳槽到HW后转java了,可惜了。2、深入。深入的了解我的这个平台,以及语言,行业。比如,我要能掌握linux操作系统,linux内核;深入掌握C/C++;掌握通信行业知识。3、扩展。“当你开始掌握当前的平台,要开始学习独立于平台的

2010-11-22 18:48:00 5541 11

原创 宁以non-member-and-non-friend替换member函数——effective c++学习笔记

宁以non-member-and-non-friend替换member函数(Prefer non-member non-friend function to member functions.)non-member-and-non-friend表示非成员且非友元。之所以这样做,是为了减少能够访问private成员的代码的数量,以此来提高封装性。 namespace的使用:1、 namespace的定义可以累加。2、 namespace既可以包含声明,也可以包含定义。3、

2010-11-19 23:08:00 3160

原创 将成员变量声明为private——effective c++学习笔记

将成员变量声明为private(Declare data members private.)不采用public成员变量的理由:1、 语法的一致性。所有对成员的访问通过函数来进行。2、 使用函数可以让你对变量的处理有更精确的控制。3、 封装:如果使用函数访问,万一成员变量发送更改,对客户来说没有影响。封装他们可以确保class的约束条件总会获得维护,因为只有成员函数可以影响他们,也保留了日后变更的权力。 同时,protected 变量使用于上面的1和2。对于封装性,publi

2010-11-19 23:04:00 2407 5

原创 给CSDN的几个建议

你好,给你反应三个个问题:1、最近一段时间csdn老是无法登陆,我摸索的规律是用IE是不行的,然后换成Google浏览器就可以了。有的时候有事反过来的。最近一段时间相当频繁,已经快无法忍受了。2、建议CSDN倡导一个文明评论活动。有不同的意见很正常,但是不要太粗鲁。有些博客(比如袁萌)里面的评论简直是不堪入目。希望CSDN能够从技术上也支持一下这个活动。3、CSDN首页的推荐博客更新的太慢。CSDN的资讯还是不错的,但是博客更新的太慢了。有的时候一篇文章停留在首页好几天,很占位置,我希望能够更新

2010-11-19 23:02:00 1540 3

原创 必须返回对象时,别妄想返回其reference——effective c++学习笔记

必须返回对象时,别妄想返回其reference(Don’t try to return a reference when you must return an object.)reference是对象的另一个名称,它指向一个实际存在的对象。如果reference指向local 对象,则对象在函数返回前销毁。如果reference指向new 对象,则函数返回的地方需要进行delete操作,给客户带来不便。特别的: const Point& operator * (cons

2010-11-18 22:11:00 1713

原创 宁以pass-by-reference-to-const替换pass-by-value——effective c++学习笔记

20 宁以pass-by-reference-to-const替换pass-by-value(Prefer pass-by-conference-to-const to pass-by-value.)pass-by-conference-to-const:class Point{ public: Point( ) : xval(2), yval(2){printf("%d,%d/n", xval, yval);} void SetXval(int i

2010-11-18 22:04:00 1914

原创 设计class犹如设计type——effective C++学习笔记

设计class犹如设计type(Treat class design as type design.)设计class要带着和“语言设计者当初设计语言内置类型时”一样的谨慎来设计class。class也是一个types,好的types具备自然的语法,直观的语义,以及一或多个高效实现品。class设计checklist:1、 新type的对象应该如何创建和销毁?2、 对象的初始化和对象的赋值该有什么样的差别?这决定了class的构造函数和赋值(assignment)操作符的行为,以

2010-11-18 22:00:00 1614

原创 让接口容易被正确使用,不易被误用——effective c++学习笔记

如果客户企图使用某个接口而却没有获得他所预期的行为,这个代码不应该通过编译;如果代码通过了编译,它的作为就是客户想要的。1、 好的接口很容易被正确使用,不容易被误用。你应该在所有的接口中努力达成这些性质。2、 “促进正确使用”的办法包括接口的一致性,以及与内置类型的行为兼容。3、 阻止误用的办法包括建立新类型,限制类型上的动作,束缚对象值,以及消除客户对资源的管理责任。4、 tr1::shared_ptr支持定制型删除器,这可防范DLL问题。可被用来自动解除互斥锁。

2010-11-18 21:55:00 1576

原创 如何在不同的阶段选择合适的学习资料

做IT学习非常重要,但是学习的资料同时又非常多,如何选择资料对学习的效果影响也是相当大的。选择资料是质量的内容是一方面,何时学习资料也是一个非常重要的方面。我学习时机最为合适的两本资料是《代码大全》和《Effective c++》。最后总结一下:1、那种方式学习最快?一定是有工作需求的,并且能够和实际的开发经验结合起来的时候学习的最快,2、如果一本书读不下去,不一定是自己的意志力有问题(技术学习是一个IT人的一项基本需求,就像人要吃饭一样,不需要意志力),可能是这本书不适合你,至少是不适

2010-11-18 21:51:00 12001 55

原创 从Google招聘公告看自身技术差距

Google 招聘广告最近做的很多,今天看到了Google的招聘公告,思考自身的不足:

2010-11-18 21:48:00 3117 4

原创 给部分培训学生的建议

近几年 IT 培训似乎非常火,各种各样的培训学校层出不穷,而且据我说知,学费好像也非常高。这几年面试下来,都能碰到很多培训学校的学生。我们更喜欢招聘这样的学生,无论他有没有参加过培训:1 、对编程充满兴趣;我认为,这是前进最持久,最根本的源动力。2 、自己经常编程,经常提出一个小的需求并且用代码实现。或者经常参与程序设计竞赛,ACM等。3 、对编程知识点深入学习。不但要知其然,还要知其所以然。4 、积极学习学校课程之外的编程知识,比如《 c 和指针》,《 c 缺陷和陷阱》,《c专家编

2010-11-16 22:49:00 64449 686

原创 C++的垃圾回收——以对象管理内存

1、以对象管理内存(Use Objects to manager resources.)这一条款主要说的是如何进行动态内存申请释放。RAII原则:Ø 获得资源后立刻放进管理对象内;Ø 管理对象运用析构函数确保资源被释放;我自己也写过一个动态申请释放的类。这个类的一个假设是,一个资源在被申请后会马上被使用,而在函数返回后就需要释放。为此我写了一个基类,每个资源类都要继承这个基类。每个资源子类的构造函数和析构函数都是private,这样就杜绝了new和delete

2010-11-16 22:40:00 3895 4

转载 【观点】风雨20年:我所积累的20条编程经验

【观点】风雨20年:我所积累的20条编程经验

2010-11-15 11:44:00 1788 1

原创 面试太累人

今天面试一天,太累人了。面到最后发现合适的人不多,真够郁闷的。

2010-11-13 20:08:00 2037 1

原创 12 复制对象时勿忘其每一个成分

设计良好的面向对象系统会将对象的内部封装起来,只留两个函数负责对象拷贝。如果对象增加了一个新的成员,则需要在所有的构造函数,拷贝函数中进行处理。否则会造成局部拷贝。如果要为derived class写coping函数,则必须小心的复制base class成分。当你编译一个copying函数是,你必须(1)复制所有的local成员变量(2)调用适当的base class的copying函数。如果copy构造函数和copy assignment操作符函数有同样的代码,则你可以用一个新的函数将

2010-11-11 22:04:00 1661

原创 8 别让异常逃离析构函数

异常我目前对异常有些抵触。感觉他不是十分的使用。主要两个方面,一是我对它了解不够深入,另一方面,更重要的是,我认为他可能会破坏程序结构。这一章暂时保留。注意:析构函数绝对不要吐出异常。如果一个被析构函数调用的函数可能抛出异常,析构函数应该捕捉任何异常,然后吞下他们(不传播)或结束程序。如果客户需要对某个操作函数运行期抛出的异常做出反应,那么class应该提供一个普通函数(而不是在析构函数中)执行该操作。

2010-11-11 22:02:00 1484

原创 9 绝对不要在构造函数和析构函数中调用virtual函数

在derived class对象的base class对象构造期间,对象的类型是base class ,而不是derived class。所以virtual函数是base class中的函数,而不是derived class中的函数。对象在derived class构造函数开始执行前,不会成为一个derived class函数。同样的道理也适用于析构函数,一旦derived class对象开始执行,对象内的derived class成员变量便呈现未定义值。进入base class就是base cla

2010-11-11 22:01:00 1580

原创 若不想使用编译器自动生成的函数,就应该明确拒绝

明确拒绝的方法:1、 将copy构造函数和copy assignment函数声明为private。2、 上面的方法不是一个完全方案:因为类的members成员函数和friends函数还可以访问。一点改进就是指声明而不定义他们,这样有地方使用它们的时候,就会产生连接告警。3、 声明一个baseclass,并且将其copy构造函数和copy assignment操作符指定为private。但是这种方法会增加继承层数。我不是很认同。注意:为驳回编译器自动(暗自)提供的功能,可以将相应的成员

2010-11-11 21:59:00 1466

python开发总结——c程序员python之路

python开发总结——c程序员python之路 我在工作中写的python总结,适合学习python的c程序员。

2012-09-21

python开发总结

自己的开发总结,适合初学者。 页数大概有四十页,后面慢慢更新。

2012-05-23

google-reader-subscriptions.xml

我关注的技术博客列表。是我最近一两年收集的博客列表。 博客是学习一个非常重要的重要手段。

2011-11-03

:The C Programming Language 中文版

:The C Programming Language 中文版: The C Programming Language 中文版

2009-11-07

周一清晨的领导课,领导能力

周一清晨的领导课周一清晨的领导课周一清晨的领导课

2009-10-21

OSGI进阶.pdf

OSGI进阶 开发 教程,更深入介绍OSGI

2009-08-25

Google Android SDK开发范例大全

Google Android SDK开发范例大全

2009-08-25

Android开发教程英文版.rar

Android开发教程英文版.rar 英文资料。可以看看。

2009-08-25

android+Programming.pdf

android+Programming.,英文的开发资料。技术越前沿,深入,中文资料越少。还是慢慢的习惯英文资料吧。

2009-08-25

android应用框架原理与程序设计

android应用框架原理与程序设计,高焕堂的作品。

2009-08-25

IBM android技术文档——从入门到精通.rar

IBM的android资料,对android感兴趣的人可以学习一下。

2009-08-17

全部的SCA&SDO中文规范

满江红社区翻译的中文规范,是目前最新的。也是全部的。

2009-08-17

演化架构与紧急设计——IBM架构资料

演化架构与紧急设计,IBM的资料,是IBM一位资深架构师写的资料。对于提升架构能力还是有帮助的。

2009-08-17

SCA Assembly Model V1.00.pdf

SCA中文规范,主要描述装配模型。v1.0

2009-08-17

IBM SCA培训资料

IBM SCA培训资料,属于基础性的。可以看一下。应该有帮助。

2009-08-17

技巧:在 C-C++中如何构造通用的对象链表

技巧:在 C-C++中如何构造通用的对象链表

2009-04-08

c++标准库文档,chm格式,包含c

c++保准库文档,详细介绍c++库函数。chm格式,包含c

2009-04-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除