热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

设计模式15——行为型模式之命令模式

定义:命令模式(CommandPattern),将一个请求封闭成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排除或记录请求日志,以及支持可撤销的操作。类型:行为型模

终于到周末可以有时间更新自己的博客了。果不其然,一开始上班,时间就比较紧凑,每天发生的一切感觉都是在那么短短的几小时之内就过去了。在公司有时候会感觉自己收获很多,有时候也会因为自己用几个小时解决了别人一句话就可以解决问题而懊恼。不管怎么样自己的生活就在这样日复一日的过去,直到自己突然发现每天的自己都没有对自己生活有过思考或者是反思。

自己的生活习惯是不管睡的多晚,进被窝后都会用手机到《one》(韩寒监制的一款应用,上面的文章可读性很高,推荐给大家)上去读一篇文章再睡。 前几天自己在上面读到一篇叫《日落天通苑》(点击文章名可以阅读)的文章感触很深。其实描写北漂生活的文章在网络上并不少见,其中或者励志,或者悲惨,或者苦闷等等什么都有。但是这篇文章的作者以一种不一样的经历,让我对北漂又有了深刻的认识,原来北京还有一个北漂聚集的地方,那里叫天通苑

天通苑到中观村说远也不算太远。坐地铁倒两站就可以到。文章中对租户收租的描写,对各色人物的描写,让自己觉得生活的中关村和天通苑是两个世界。

---------------------------------------------------------------分割线-----------------------------------------------------

一,坚持写博客的人都有一颗执着的心

过年公司放了七天假,自己是坚持到30号才离开的公司。放假期间自己把以前学习笔记整理成了博客文章。有这个想法也是因为自己在一次翻看笔记本的时候,发现笔记本已经快快被记得满满一本了,有些知识虽然当初记了笔记,但是还是忘记或者记不清了。所以就下定决心要把这些知识点通过整理成博客文章的方式温习一遍。在检验自己学习成果的同时把这些知识分享出去。

放假期间总共整理了七篇关于C#的系列文章,名字叫《C#小知识》。目前还有两到三篇没有整理出来(主要是没时间)。有时候人需要耐下心做一件事,这样才会有所收获。年假自己给自己的目标就是把这些学习笔记整理成博客文章。在发表到博客园,CSDN和51CTO后,效果还是不错的,有些细心的读者指出了其中的错误,自己及时的改正了这些错误,同时也学习了更多的知识。年后还成功在CSDN为这个系列申请了专栏。还有一件令自己非常高兴的事,前天收到51CTO的站内消息,说自己关于13年年终总结的文章获得了文章优秀奖,会收到一个大的阿狸抱枕的礼物。这也算是自己写博客路上的一点鼓励吧。

为什么自己一直坚持写博客?记不清自己为了写一篇博客,想示例代码,写示例代码,中间不可预期的又发现新的问题,解决这些新问题,度过了多少个不眠夜。有时候也想过干嘛这么累的一直坚持写博客呢,又没有人给自己稿费,不定时的还会收到讥讽的评论。现在想想理由也特简单,用博客记录进步的点滴,自己的目标不管有多远,只要自己一步一步的走,就算达不到目的,也不会有什么遗憾。因为自己的这些文章见证了自己曾经努力过。

对于不写博客的人,不可能切身体会到写博客的辛苦,特别是写一篇优秀的博客。有时候,一篇优秀的文章需要作者付出的不是一天或者两天的时间。特别对于技术文章来说,作者为了论证自己理论的正确,需要列举有代表性的例子来给读者看,这些都会花费很多时间。还有就是在写文章的时候,为了某个细节能够让读者看明白,进行深入解释的时候,不确定的又会发现新问题。

对于一篇文章,会有人给出客观的评价,指出你的缺点,让你有机会进步。有时候也会受到讥讽的评论,说这么简单的问题还拿来写博客,一个**命令就可以解决,是来炫耀么?说实话,收到这样的评论的时候,自己的心里是不好受的。但是想想那又有什么关系呢?走自己的路让别人说去吧,反正我也没有求着你来看我写的博客。

对于概念性问题,每个人的理解程度是不一样的,对于同一个问题,不同人的解决方法也是不一样的。既然您觉我对概念的解读有误差,解决问题的办法太繁琐,为什么不指出来大家交流一下呢,为什么非要说一些讥讽的话呢?

 

二,关于学习方法

总体来说自己这次整理的学习笔记收到读者的反馈效果还是挺不错的。有一些人让我介绍自己的学习方法。问我有几年工作经验了。我只能说平时要做一个有心人,多留心,用心。对于自己陌生不熟悉的知识多记笔记,时间长了,自己的笔记本会见证自己的进步。

我一直觉的看书是学习的最快途径。特别是阅读经典图书,同时又能锻炼人的耐性。对于初学者刚开始看书可能会有很多不懂,但是一定要坚持弄懂,搞明白,多写一些Demo来练习。要不然刚开始一知半解,后来学习更深的知识就更加一头雾水了。会造成恶性循环。但是一味的看书只是在被动的学习,只有通过实践才可以出真知,才会有原来如此的感觉

就好比我觉自己的c#语言已经算是熟练程度了,但是在实际的工作中还是会遇到很多问题。自己现在的体会是语言在特定环境或者业务背景下的使用是变化多端的就跟令狐冲的独孤九剑一样,剑法总共只有九招,但是在实战中却可以千变万化。

所以熟练了编程语言,万里长征才开始第一步。

 

三,事情真的那么简单么?

在学校的时候,自己身边充斥着太多说这简单说那简单的人,原因是他们自己根本不会去做。对于有一定经验的人都知道,除非你对所要解决的问题特别的熟练,有些问题想着很简单,但是在解决它过程中总会遇到新的问题。作为程序员,我觉得应该把“这很简单。。。”这句话从大脑里面根本剔除。要不然这只能显示自己的无知。

进公司时候后,耳边几乎没有听到过什么人说过这样的话。除了总监大人!我觉的总监大人说这话也是有理由的,它要让你对所要解决的问题有信心。因为公司招人不是让你来说一句这很简单就算完成任务了,简单不简单老板不关心,老板只关心你什么时候能把问题解决了。

自己前几天就犯了这样的一个错误。在团队里我负责后端开发,前端代码经验很少(看得懂的水平)。过年后,因为做前端的孩子来的晚了一些,我就主动把他的工作给揽了下来。对于一个没有多少前端代码编写经验的我,现在很是痛苦,写代码很多时候是在尝试,有了错误也不知道从哪里下手解决它们,所以进度非常很慢。更糟糕的是,自己还给老大承诺,要在**时间完成。现在是那个后悔啊!

所以,在自己对某件事没有太多把握的情况下,不要认为那是多么简单的一件事。要不然那只能显示自己的无知。

 

四,新手该怎么写代码

曾经在微博上看到一张程序员实际写代码的时间分配图,原图找不到了,自己就大概画了一个,如下:

bubuko.com,布布扣

我觉得这非常符合我写代码的时候的状态。大部分的时间都耗费在了瞎搞上面。

我现在总结出的写代码的经验是,首先要根据自己要实现的场景把逻辑理清楚,最好先大概的画好一个流程图,,跟周围的讨论一下(或者找老大征求意见

),确定自己的思想没有问题。时间充裕的话,就把它们制作成思维导图,这样也便于自己理解。然后再开始写代码。这样写代码所花费的时间是事半功倍的,而且其中也会收获很多。

 

五,做一个知道付出的人

“当感觉自己的能力距自己的理想太遥远时,说明你该努力了。”生活中有太多人只看到了别人取得的好成绩,应聘到的好工作这些表面现象。谁也不会关心他们背后为之付出的努力。

有梦想并不能代表你拥有什么,值得你去自豪。但是也不代表距离太遥远而显得多么可怕。如果想有所成就,你必须做一个知道努力的人。有很多碌碌无为的人觉得自己需要一个机会,我以前也这么想,只要给自己一个机会,自己绝对可以比现在活的更好。现在自己明白了,机会是眷顾给有准备的人的。没有机会需要努力提高自己的能力,有机会更要加倍努力。因为你要对得起给自己机会的人,他本可以把机会给别人,但是他却给了你。

而且永远不要觉得自己是最努力的,不管如何总有比你更加努力的人存在。来北京之后我感觉自己每天休息的已经够晚了(这里不是比拼谁休息的晚),直到有天听同事说,总监和其它两个组的老大,每天加班到凌晨都是很正的事情。可能他们是领导我们是“小弟”,属于两种不同的人。但是目的都是一样的,领导需要为自己负责的工作努力,“小弟”需要为提高自己的能力努力。

 

六,我也谈“过劳死”

前几天看到一篇文章叫《复旦女博士的生前反省:为什么是我得癌症?》(点击名字看原文),感触很深。其中我体会到的很多意思都是说,人应该活得快乐一点不能太拼,为了事业牺牲自己的健康。

我不否定她在人生最后的日子对人生的解读。试想把我们自己放到“人生快到尽头”的环境下,我们都会回顾自己的人生。如果有机会也会告诫别人一些自己觉得曾经做错了的事情。

人生没有办法,人活着就是为了活得更好,能够有所成就。如果有一天发现身边有无数人比自己优秀。如果自己还是以一副过的平平淡淡就好的心态来要求自己,注定自己也会一生默默无闻,当然了高富帅,富二代除外。

网络上有太多这样的文章,阅读的过程中自己的同情心也确实会让自己感动甚至流泪。但是我觉的看问题应该辩证的看。就好比网络上有很多励志文章,主人公都是通过付出**的艰辛取得成功,看过后立马觉得自己如果这么做也会成功。自己也这么做过,直到突然有天发现,任何人的成功都有其独特的一面,自己不可能去效仿别人,复制别人的成功。

时间不会为了任何一个人而停顿,就算自己真的过劳死,相信也不会有太多的遗憾,因为自己并没有虚度光阴。

 

七,工场的一些体会

李开复作为大学生心灵导师,影响了80后甚至现在的90后。所以创新工场在很多大学生眼中,还是比较有影响力的。有些人文自己工场的招聘条件高么,是不是需要在某些方面有特别突出的特长。

曾将创新工场在自己心中确实是一个神圣的地方。但是当自己身处时,发现也没什么。对于我所接受的招聘和我所理解的工场招聘就是,需要一定的经验和优秀的解决问题和自我学习的能力。工场里孵化的都是创业团队,项目工期比较紧凑,就算是周六也会发现有很多团队还在加班。所以,团队不可能招聘一个没有任何经验的人,然后花费大流量时间去培训你。所以,只要你想进工场体会,只要自己在某些方面有一定的经验和能力,还是很容易进的。

在工场确实可以学到自己去大公司和小公司都接触不到的东西(博主在小公司和大公司都实习过)。技术就不用说了,接触新的项目肯定有很多技术和软件设计思想可以学习。其它的包括创业中遇到的各种问题,带领团队的问题,这些都能够让自己有机会接触得到。所以在工场,不尽可以学习得到新知识,也会有机会去修身,去学习创业中遇到问题该怎么解决,带领一个团队需要什么素养。

创业是很辛苦的,以前只是在电视上或者书本上看到,很多事情都是在酒桌上谈成的。现在自己是深有体会,也不要想着老板们都愿意这样去干,但是为了团队,没有办法。其实我觉得这才是中国式最大潜规则。

前天吃饭我觉得我犯了两个错误。因为工场是大锅饭,平时我盛完饭都是找个地方一个人吃。那天老板刚好路过我身边看到我在一个人吃饭,就跟我说他也在那里吃了,我就说了声好。更不可思议的是在整个吃饭过程中我就没跟他说一句话。

还有一个细节做的不好,就是在吃饭的过程中我去拿了一张餐巾纸。事实上不管老板需要不需要我都应该给老板也带一张的。直到老板自己去拿餐巾纸的时候,我才发现了这个生活细节。如果抓住这些细节,本可以给自己的个人素质加很多分的,但是自己却没有发现。

到最后自己也才发现,也许只有在创新工场自己才有机会,让老板跟自己坐到一起吃饭。所以生活中应该注意细节。

 

八,我佩服的三个人

在我眼中做技术的有两种人:一种叫大牛,一种叫大神。

一个人如果技术牛X可以被称为大牛,但是你要被称为大神,不仅要技术牛X更要人品OK。自己佩服的大神有三个人:

第一个,“左耳朵耗子”—陈浩。怎么说呢,可能大神们对于自己的世界都是比较孤傲的吧。他的技术博客《酷壳》是自己收获最多的博客之一。

第二个,“圣殿骑士” 。一个用技术游历各国。不紧让自己的人生有意义,而且很精彩。

第三个,王垠。怎么说呢,有网友评论他是“狂人”。看王垠的文章,确实是,他思考问题的方式确实跟别人不一样。而且每次读他写的文章自己都会收获很多。

 

尾声:

好吧又到结尾了,用一位同事空间日志里面的话,作为结尾吧。“青春的尾声悄然敲响,我站在尽头送别剩下为数不多的光阴。婚礼上同学聚会上,越来越多的人开始为人妻为人母,我们在经受着一场不可逆的转变。转变以前是快乐的,转变后也会是另一种快乐,但是转变的过程是痛苦的,面对终将失去的,我们有一万个舍不得却又不得不接受。”





毕业实习交流群:221376964。你也可以关注我的新浪微博进行交流。

bubuko.com,布布扣


推荐阅读
  • 本文内容为asp.net微信公众平台开发的目录汇总,包括数据库设计、多层架构框架搭建和入口实现、微信消息封装及反射赋值、关注事件、用户记录、回复文本消息、图文消息、服务搭建(接入)、自定义菜单等。同时提供了示例代码和相关的后台管理功能。内容涵盖了多个方面,适合综合运用。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
author-avatar
白骨精哥哥_350
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有