Main Idea of functional language

最近开始了解一种新的函数式+对象式语言scala,以后我会分篇在这里记下自己的心得。 本文主要内容摘自《Programing in scala 2nd Edition》。

Functional programming is guided by two main ideas: The first idea isthat functions are first-class values.

In a functional language, You can

  • pass functionsas arguments to other functions
  • return them as results from functions
  • store them in variables
  • define a function inside anotherfunction

functions that are first-class values provide a convenient means for abstractingover operations and creating new control structures.

The second main idea of functional programming is that the operationsof a program should map input values to output values rather than change data in place.

In other words, methods should not have any side effects.They should communicate with their environment only by taking arguments and returning results.

A method without any side effects are called referentially transparent. Functional languages encourage immutable data structures and referentiallytransparent methods.

随想

抽象

复杂的问题有各自的复杂的形式,但是都可以被抽象出它们的共性,针对这些共性找出解决方案,所有类似的复杂问题都迎刃而解了。 最近发现我在解决问题时很喜欢用抽象这个方法论来把问题简化,大大提高来工作效率。

换位思考

生活中会遇到各式各样的人对TA们不满意的人和事发出各式各样的抱怨,实际上,我们再深入地思考一下,为什么对方会有那样的行为呢?经过换位思考,或许你就能理解TA了。

随笔

<随笔一>

早上起来打开电视机,刚好在放凯尔特人和公牛队的比赛,好久不看球赛的我竟然来了兴致,津津有味的看起来。

比赛结束后,有两点感触:

1.  自从广电叫停 “NBA”这样的缩写称呼后,我们的篮球解说员就好痛苦,一句一个“美国男子职业篮球联赛”、或者“美职篮”。

2.  最近几场比赛,我想谁赢,于是谁就输了……

上周湖人打灰熊,我喜欢湖人,于是湖人输得很惨。

这周我喜欢凯尔特人,于是凯尔特人也输了……  

不到最后一刻,任何人都无法确定比赛的最终结果,这就是它的魅力所在吧。

<随笔二>

在看比赛的过程中,无意识地伴着比赛场上拉拉队的音乐,做着各种机械的动作,哼着小曲,非常之Hi,

老婆突然来了一句:“有什么事啊,怎么看你这么高兴?” 我突然意识到,自己的心态、性格比之前要开朗了好多,

很少有情绪比较低迷的时候,跟之前的我有很大的差异。细想一下,应该是受老婆的影响比较大,

她是那种从任何地方都能发现好玩的东西的人,在这一起生活的几年里,我也被她感染了。我们就一直这么幸福地活着。

<随笔三>

中午阳光很好,搬了个椅子,坐在阳台上,听着音乐,晒着太阳,抱着笔记本看文章,实在是太惬意了。

活到老、学到老,我想这个习惯我肯定会坚持下去的。只是目前过于关注自己的领域,知识面还是有点窄,视野得再广一点。

 

<随笔四>

最近比较喜欢的几个歌手:许巍、五月天、Within Temptation、 Linkin Park

 

2010年度总结

已经是2011年的第三天了,这几天在家疯狂地玩,现在才慢慢静下心来,回顾一下这一年的付出与收获,也得做 一下下一年的规划了。

性能优化:从09年末开始,我开始接手产品性能优化的工作,一开始,我对性能优化的知识几乎是一无所知,跟着一个设计管理部的专家慢慢摸索,我渐渐找到了一套定位性能问题的思路。然而,在参加了两个版本的性能优化工作后,我发现我遇到瓶颈了:产品所用的技术、架构有了瓶颈,靠修改代码、调整系统参数的方式已经无法解决,也没有人可以求助。因此,11年我的计划是:加深操作系统、网络方面基础知识的学习,了解业界其他先进的产品的架构设计经验,提升自己对高并发系统架构把控的能力。

 

 

    敏捷实践:从一开始接触敏捷概念时,我就疯狂的迷恋上这样的软件开发理念;它可以尽可能地减少产品开发过程中的浪费,而且可以让开发、测试人员很“爽”地去工作。于是我一本本读了敏捷开发的经典书籍:Kent Back的《TDD》、Bob大叔的 《敏捷开发:原则,模式与实践》以及Martin Folwer的《重构:改善既有代码的设计》,阅读这些大师的作品的过程,也是与这世界上顶尖的程序员、架构师进行心灵对话的过程,从他们的字里行间,可以看出他们对于软件开发优秀实践的执着的追求,而且,他们很乐意把自己的想法分享给更多的人。在平时的开发过程中,我也在尝试这样的实践,曾经有机会得到一个ThoughtWorker的指点,虽然只有短短的一小时,他那严谨的态度,对事情精益求精的态度,着实令人敬佩,作为一个代码的完美主义者,我希望有一天也可以成为像他们一样顶尖的Coder,加油。

     做人:人进入社会以后,他就是个社会人,他对他周边的每个人,无论是认识的,还是不认识的人,都会产生影响,我的最基本的原则是:“尊重别人,然后让别人尊重自己”。 无论他是你的同事,还是你的朋友,还是你的家人,还是公交车售票员、还是10000号的话务员、还是路边的一个可怜的乞丐。带着一颗博爱、感恩的心,尊重他们,爱护他们。今年,看过一部温暖、感人的电影——《唐山大地震》,今天又重新温习了一遍,在大灾大难面前,普通人之间的互助、友爱感动着我,希望平时能够看到更多这样的感动。

    个人:2010年春节在家订婚了,今年家里开始催着结婚,感谢我亲爱的她,每天工作累的时候,回家与她逗逗嘴,一切不开心就烟消云散了,她就是我的开心果,她真的是一个很漂亮、很可爱、很体贴的女孩,还有我的岳父岳母、小姨子,都是性格很好的人,能够娶到这样的好老婆,心满意足了。10月份拍了婚纱照,挺漂亮的,计划明年结婚,后年养娃。只是——买房的事情还没有着落,家里条件一般,肯定帮不上忙,只有靠自己,到现在首付还没凑齐,继续努力。

 

总结就写到这儿,工作、生活都有了,最后送自己一句话: 提升视野,开阔眼界,突破瓶颈、继续成长、努力工作,快乐生活。

 

 

 

梦想/目标

今天项目组例会中,老大发起了一项写出你的梦想、目标的活动,在想了一会儿后,我写下了下面三个梦想、目标:

1) 找个安静、漂亮的地方和老婆一起去散散心,陶冶一下心灵。

2)能够拥有一台自己的油动飞机模型,并且有时间去玩。

3) 在目前工作的领域能够有所建树,能够成为一名成功的coderarchitect

对于第一个目标,我有很深的体会:在今年10月份的时候,我们的项目还处在一个比较紧急的时期,我们去安徽石台玩了两天,满眼的青山绿水,那两天刚好都在下着毛毛细雨,几乎所有的山上都是云雾缭绕,像是到了仙境,再深的水也是清澈见底的,偶尔会碰到买山货的纯朴山民,我被眼前的美景吸引着,压在心头的各种烦心事也很快烟消云散了。很遗憾没能带老婆去,要是能有她一起来看这样的美景,那就太好了。所以,想找个机会和老婆一起出去散散心,暂时逃离这喧嚣的城市,平静一下自己浮躁的心灵。

    我时常对老婆说起一个让我神往的场景:当我累了的时候,能够在一个有着温暖阳光的冬日里,在老家的院子里,裹着个大棉袄,眯着眼睛晒太阳,哪儿痒了就拿个痒挠儿挠两下……  多么惬意。

 

第二个目标,小时候就非常喜欢飞机,由于家里条件不好,只好自己做模型飞机,做了无数个纸飞机、木飞机,有橡皮筋动力的、有滑翔机等等,高考时候还差点填报了西工大的飞行器专业,最终出于“计算机学出来好找工作”的考虑,报了计算机,入了软件这行。然而,儿时的梦想依然在心头萦绕,今年买了个电动的直升飞机,由于工作时间紧张,没有时间练习,只在屋子里飞了几次就摔坏了,很是心疼。希望自己能够有机会拥有自己的油动飞机,并且能有时间去飞,完成自己的儿时梦想。

第三个目标,工作也已经3.5年了,算是有了一定的经验积累,目前感觉像是到了第一个天花板,无法再进行一次大的提升。前阵子找老大交流的时候,我也提起此事,老大给的建议是:拓宽视野、提升高度。

 

同事们写的梦想也是千奇百怪:有梦想不工作天天玩游戏的,有梦想周游世界,甚至去太空旅游的,有想减肥的,有想生个漂亮宝宝的。每个人都有自己的梦想,聪明的人都会制定计划,努力实现梦想,在实现梦想的过程中,他的人生就有了意义,他也获得了快乐。祝我亲爱的同事们、朋友们都能够实现自己的梦想,获得自己的快乐。

 

2010年就要结束了,是时候写个总结了,做好计划,迎接新的一年。