一生都没有做自己想做的事工作是什么感觉

& 2005-, all rights reserved 北京豆网科技有限公司做自己,过自己独一无二的一生
不管别人怎么说,不管别人怎么做,我只坚持做自己。
在这个物欲横流的世界,坚持做自己真的不是件容易事,太多太多来自外界的声音,外界的阻力,那又能怎样呢?我本就不是一个随波逐流的人,而且一直以来,我就是孤独的,就是特立独行的,我始终走在一条自己的道路上。
一直在听从内心的声音,大多数的时间也是自己在陪伴自己。
是啊,这些年来,也没有感到孤独啊,自己跟自己处的很好。
昨天我还在想,如果把我放到一个荒山野林,或者一个人迹罕至的地方,我会做什么?
有太多的事要做了,可能我会看书,那你可能会说,没有书,那我就思考,然后记录。
你可能说没有笔,那我就思考,我不会讨厌跟自己相处,我也不会感到孤独,因为我有太多的事要做,根本没有时间孤独。
或者我会养花,养很多花,弄一个小花园,路上铺上鹅软石。
养只小狗,只有小时候我家有只大黄狗,长大以后我还从来没有养过狗,它是人类最忠诚的朋友,而且动物身上也有很多我们人类没有的品质。
或者我会去种树,把小山坡上种上满满的树,春天到来的时候,一片绿色,会有满满的成就感。
或者我会去跑步,练瑜伽,让自己每天都精神抖擞,气定神闲。
或者我会去画画,画那一片绿油油的稻田,一望无际的油菜花海。
我不会用我大部分的生命去换一份众人眼中的安稳,我会去做自己喜欢的事,无论多少人出来阻挠,我还是会坚持自我。
人活三生,为父母,为自己,为孩子。
很多人好像从来没有为自己活过,不想在老了的时候,回想自己的一生,你做过什么,什么,你为自己做过什么?从来没有,我没有为自己做过一件事,那你不是白白来世上走了一遭吗?
找到自己的使命感,活着为了什么?每天都想想,如果我的时间不多,我会最想去做什么?那应该才是你最想做的事。
生活不只现在的苟且,还有远方的诗和田野,不知道谁说了这么句有哲理的话。
我想说的是,生活不只是为所有人而活,唯独没有你自己。
只有一个人生,按照自己喜欢的方式去度过,即使失败了,也没关系,最差也就是从头再来。
一天,他偶然给我说了句话,这辈子为你自己而活,不是为了我,也不是为了孩子,我说还用你说,我一直为自己而活,我还以为你没有这觉悟呢。
原来有一个朋友,他孩子上托儿所,他就去做小饭桌,孩子上小学他去开小饭店,孩子上中学他就去孩子学校附近工作。就这样自己的人生走了一大半,完全没有自己。
这样的人生有意思吗?孩子会长大,总有一天会离开你,难道他以后结婚生子你也要一直陪着,孩子能独立吗?你还有自己吗?
到底是孩子离不开你,还是你管的太多,你离不开孩子?
在你离开这个世界的时候,你回想的起来什么才是你最喜欢,最想做的事呢?而你一直不肯撒手,孩子不能独立,你也没有做一件实现自身价值的事。
到时是你该后悔,还是孩子该惋惜?说我妈妈或者爸爸为我付出了整整一生的时间,从来没有他自己,我想孩子也不会开心吧!
我希望父母不要为我们再费心了,好好的为自己活一次吧!
也希望自己可以一直做自己,坚持做自己,无论世事如何,无论你身边有怎样的人,做你心底想成为的那个人,不为金钱,不为取悦任何人,不受任何外界的人和物的干扰,聆听来自你内心的声音,按照那个声音的引导,去度过你的一生,按照你喜欢的方式,去度过你独一无二的一生。
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
在这里我们一起攒钱,早日拥有属于自己的第一个10万、100万。
我怎么没想到呢!这样攒钱也可以~一生想做浪漫极客 - 知乎专栏
{"debug":false,"apiRoot":"","paySDK":"/api/js","wechatConfigAPI":"/api/wechat/jssdkconfig","name":"production","instance":"column","tokens":{"X-XSRF-TOKEN":null,"X-UDID":null,"Authorization":"oauth c3cef7c66aa9e6a1e3160e20"}}
{"database":{"Post":{"":{"title":"Lxxyx:2016,一生想做浪漫极客","author":"huxpro","content":"这是一篇来自
的投稿很高兴专栏才开通几天就收到不少投稿的意向,我相信这个世界上「一生想做浪漫极客」的人绝不止我一个,所以我决定将该专栏重新设定为「发现更有趣的程序员们」,而不再局限于我自己,欢迎所有愿意写字的程序员投稿或者加入这里。 是一名大二的文科生,在本文中讲述了他因为兴趣走上程序员之路的故事。摘一段乔布斯的话作为寄语吧:「Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart, you’ll know when you find it. 」如果你也对做前端有兴趣,不妨看看 他们说程序员这辈子最烦恼的事情,就是给变量取名。所以,在给这篇文章取名时,思考了很久。最后还是选定了专栏的名字,一生想做浪漫极客。在看了黄玄学长的“年终总结“后,总觉得自己也该写点什么来纪念2015年,这最勇敢也是最折腾的一年。最勇敢是自己终于做出了想要的选择,转行学编程。最折腾是自己在自学的过程中,一路跌过无数的坑。感觉只要是新手自学会踩的坑,我全都踩了一遍。但是却一次又一次,乐此不疲。选择HR时间倒流回2014年的夏天,高考后面临着选专业的情况。当时因为自己作为文科生,可选择的专业不多,又不愿意去凑经济类的热闹,就选择了人力资源管理这个专业,于是理想便是大学四年出去后,成为一名优秀的HRBP。然后大一上学期也过得极为平淡,参加社团活动,写写工作简报或者做做海报或视频。本以为会向学院中的大多数一样,平静的读四年书,然后或工作或读研,又或是考公务员。但网易云课堂中一节课的出现让我的生活泛起了波澜。那是翁恺老师讲的《C语言程序设计》,从这门课开始,人生变得不一样。遇见C语言看见翁恺老师那门课的时候,已经是快放假了。当时自己用的又是台式电脑,过年不能带回家。于是各处去搜索能在安卓上运行C语言的软件。最后还真让我找到了来着。软件的名字叫C4Droid。运行界面是这样的: 然后当时的我,在寒假一个月的时间内。开始了每天听课,思考。然后把代码输进手机慢慢运行的过程。当时最开心的就是图片的这一段代码,一次性编译运行通过。在学习过程中,也去百度了各种编程的学习路径。于是决定把C语言作为编程基础,寒假后再学一门Java语言。这便又是另外一个故事。Java与工作室学Java时候,去图书馆借了一本《疯狂Java讲义》,自己又买了一本《Head First\nJava》,并且不断的为此而纠结。我到底学哪本书好呢?哪本书才真正的适合新手呢?好不容易确定了学《疯狂Java讲义》,又开始纠结哪个IDE更好,Sublime text还是Notepad++还是Eclipse?选定了Eclipse后,又在纠结Eclipse的代码补全功能怎么不自动出现而要自己按快捷键?现在想想,真是啼笑皆非。在学习一段时间后,机缘巧合下,认识了学校家园网工作室的一位同学。他叫kk,家园网工作室是个社团,简单的来说就是负责学校网站建设和学生工作宣传的。当初开学九月社团招新时,因为已经加入了一个社团。所以就没有去工作室那儿投简历,过了之后还是有些懊恼的。然后在三月份时候,刚学完Java的面向对象基础知识。便被kk邀请去听他的安卓分享讲座,地点就在工作室内。当时兴冲冲的就去了,去了之后才发现,里面有一个开发部门,里面大概二十多号人。各个都算是志趣相投然后加入的。当时对Java的多态和继承不太了解,在那儿也问了问开发部的部长。一番交流下来,感觉到十分满意和憧憬,于是暗暗的下了决心,那就是自己一定要加入这个工作室。回去的当天晚上,向kk要了部长的QQ号,于是开始向部长申请,希望能加入家园工作室。意外的是,我过了。人生在悄然之间开始了转折。工作室与语法糖在工作室的前两个月,其实压力是挺大的。自己刚进去,自然是兴冲冲的想做点事情出来。仔细一想却发现,自己Java还只是半吊子,然后C语言也只是打了个基础。于是开始在网络上疯狂的寻找能让自己做出东西来的语言。当时的成果就是:“会用20门语言输出Hello World!”“Python在Sublime下的Snnipets要好于Pycharm.”“PHP不用学习都可以用Wordpress建站。“这也算是新手经常犯的一个毛病,掉进语法糖里却无法深入的学习一门语言。总想着速成点什么东西。就现在回想,那两个月可谓是极尽折腾。基本上市面上有的IDE,我电脑里都装了一个。还有各种各样插件与运行环境,甚至听说Mac开发比较好,还给自己的电脑折腾上了黑苹果。(到现在还留着,因为字体渲染漂亮和不能玩我的游戏,所以常用于看小说和期末复习。)不过好处的话也有。至少对各门语言的优缺点,各个IDE的长短处有了林林总总的认识,踩过的坑足够多了,也积累了一些经验。工作室在那两个月,没有给我安排任务,让我自由发展。然后在四月末尾时候,我提出了自己的问题,当时一位学长便自告奋勇的说带我一把。导师与前端之路说是学长,很多时候我更愿意称呼为导师。其实那时候的我。已经有些撑不下去了,学习编程四个月,却发现什么都做不了。然后尝试各类语言,发现不管哪一门,好像自己学不会。当时就是在那种情景下,学长出现了。学长大二,物理专业。在工作室内担任前端。是个温文尔雅且极其细心的理科生。在工作室内学习开发,有两种方向,第一是前端,第二是后台。但无论是前端还是后台,都得学习前端的基础。当时因为我加入时,前端与后台的培训已经结束了,所以跳过了这个步骤。学长先是很耐心的听我讲完自己的问题,然后给我详细分析了一下。最后决定先带我学前端。当时是先给我介绍了下前端的知识,然后发给我一个资料包和一个W3SCHOOL的链接。告诉我先去看HTML,再去看CSS。看完之后去资料包里看那些HTML命名规范和细节的文件。(新手的话,学HTML还是推荐W3SCHOOL,很多HTML书太厚了,看着就没有欲望。而且W3SCHOOL可以在线调试)大概花了四天。把HTML+CSS+JavaScript的内容看了一遍。然后联系学长。学长看了看我的进度,觉得挺满意的。(毕竟学过用20门语言输出Hello World,入门还是挺快的。)然后让我着手开始仿写网页,第一个仿写的页面,是Baidu。在仿写页面的三天内,发现自己很多的不足。之前在W3SCHOOL上学的好好的浮动,位置,CSS盒模型等知识。组合在一起就全乱了。然后就是不断地查资料,看W3SCHOOL。那三天也是废寝忘食的三天。基本上每天一下课就冲回寝室,去写自己的页面。偶尔也会对着写了一半的页面,傻傻的欣赏着。又或是为了1px的视觉效果,反复的调整CSS。三天之后,把仿写的百度网页提交给了学长。当时做的,属于放在那儿不动还好,一旦变换浏览器窗口,定位就全乱了。学长在工作室内看了我的网页,然后从源代码那儿,一行一行的去Review。告诉我哪里写的不好,出了什么问题,为什么会这样。然后叫我回去修改。大概反复几次后,仿写的百度首页也算是终于过关了。(下图是最后的作品)学长很高兴的交给我第二个任务,仿写Google首页。在仿写Google首页时,明显能感觉到自己进行页面布局时比之前要流畅很多。但是也遇到了很多新问题,比如说固定在窗口底部的底栏,当时就是怎么样也写不出来了。后面查找资料时才知道,position属性还有相对于浏览器进行定位的fixed参数。这是仿写的谷歌首页图:仿写完Google和Baidu首页图后。学长让我开始仿写工作室的产品:跳蚤市场。跳蚤市场对于当时的我来说,是个很大的挑战。页面结构可谓是极其复杂(对于当时的我来说)。最后花了一个礼拜,算是使出了浑身解数,才算是完成了这次作业。最后的页面的动画效果用了jQuery来实现,也算是第一段真正实用的JS代码,想想还有点小激动呢。仿写完这个页面的时候,已经是六月份,工作室也暂时停止了工作,全员开始备战期末考试。暑期与《JavaScript高级程序设计》暑期因为第三学期的缘故,所以留校和老师做了一个月的项目,负责的教材编订。七月就这样过去了。编纂的教材,也在十二月末尾时递交给出版社了。八月份时过得算是充实,买了一大堆的企业管理的书籍和一本《JavaScript高级程序设计》,白天对着JS高程敲代码,晚上就看看企业管理的书籍。感觉不亦乐乎。看《JavaScript高级程序设计》到对象原型,继承部分,就感觉云里雾里了。一方面是自己没有实战经验,另一方面是自己一直只是看书,虽然偶尔也切图做网页来练练手感,但JS部分没有实践,所以晕头了。到暑假结束的时候,自己已经能做出静态网页了,但是因为没有和后台合作过。所以对服务端交互是一无所知。顺带一提的是,我在六月选课时候,选择了《计算机网络》作为大二上学期的选修课。只是没想到,这门课正好是前端的必修课。算是机缘巧合。幸运十月与第一个项目还记得上文提到的kk了么?他在工作室内负责做后台。工作室是有淘汰机制的,每个学期末,不能做项目的会被清退。当时的我算是会被清退的那一批(只会写写静态页面,不懂动态交互)。kk是来通知我可能会被清退的。听到他说的,我仿佛身处寒冬。但接下来的一句话,却让我欣喜若狂。我到现在还记得这一句话:“我想写个博客,我当后台,你来做前端吧?“当时的我欣然应允。第一次Ajax与蜕变十月一号,正式开始写页面。那同学把后台程序打包发给了我,让我在本地运行且进行调试。过了两天,页面首页写出来了。但因为不懂Ajax,所有东西都是静态网页中写死的。递交首页给kk的那一天,他很奇怪的问我为什么不用Ajax去调用Api。当时的我腆着脸说我不会Ajax。于是在他和另一端学前端的同学的帮助下,我完成了人生中第一次Ajax调用。看到xhr对象出现在Chrome控制台的时候,我坐在椅子上长吁了一口气。我知道我自己突破了,开始变得不一样了,不再是只会做做静态页面的切图仔,不再对自己是个文科生,能不能学好编程产生怀疑。Ajax像条线一般,链接着前端与后台的同时,也链接了自己与整个编程世界。在那几分钟内想通了很多事情,感受到了编程世界的无边绚丽。在那一刻,我下定决心:“我要一直学下去,永不放弃。“在写kk的博客时,前端的学习开始踏上正轨。边做边学的过程中,学到了非常非常多。包括各种各样的布局知识,JS技巧等。从一个写完代码,用压缩软件打包放在U盘里到熟练使用Git来管理代码。从一个写代码时候,只知Node大名而从未用过的人,到熟练使用Node和Npm来管理项目依赖和加速开发。(不得不说前端发展太快,第一次接触bower时,还没用几天。Bower的作者就宣布不再维护了。)从用jQuery拼接字符串来进行列表渲染到使用Angular,Vue等MVVM框架进行开发。
这样的学习和经历太多,几乎每一个都让我有发现新天地的感觉。新项目与团队合作
完成博客项目后,工作室让我去做内网重构的工作(终于来了~)。在这个项目中,学习的不仅是技术,还有更为重要的团队合作。整个开发过程中,既和设计探讨过某个效果在网页上的具体实现,也向后台报告过BUG,还有被项目追在屁股后头,问页面什么时候能写好的,当然,也少不了产品对我说:“这个地方有个功能我们觉得不好,所以改了改设计图,你回头改一下吧~”。然后整个页面的一半都被重写了。做的过程中,有遇到BUG,一个礼拜都没解决,吃饭睡觉都在想的。也有莫名其妙的报错的,还有因为自己代码不够规范,专门去看《编写可维护的JavaScript》的时候。在开发中的感觉,用俩字来形容。是幸福。因为自己真真切切的做着自己喜欢的事情。独立开发之路十二月份时候,看了余果大大的《Web全栈工程师的自我修养》,里面有关于“野生程序员”的描述和对技术学习的指引。于是开通了技术博客(),准备慢慢积累。同时一直觉得自己学院的官网不够好看,于是自己就决定从前端到后台,全部自己重写一遍。功能很简单,用了个爬虫抓取数据,以JSON格式储存在本地的JSON文件内,访问时候通过Ajax。前端再进行处理就行。具体的在我知乎中的提问中有涉及。()然后同时在圣诞节当天,开始第二次看《JavaScript高级程序设计》,这次看感觉大部分都能理解了。之前看的云里雾里的地方,这次却看的无比顺畅。我知道我的前端之路,踏上正轨了。学校的图书馆也给了我极大的惊喜。基本最新的JS图书,图书馆都会第一时间购入。简直大爱图书馆。下面图片就是我借的书,有些书已经看了一半,或者第二遍了。回顾与展望回首2015年,或许前期跌跌撞撞的编程学习让人感觉可笑,但对我来说,那是最宝贵的财富。虽然可能绕了最远的圈子、掉了最多的坑。学习中有迷惑、有痛苦、有绝望也有狂喜等各式各样的情绪。但现在我依然还在写代码,还在做自己喜欢的事情。展望2016年,年度计划是打好基础,学好规范。基础包括计算机组成与运行、算法、数据结构、操作系统、原生JavaScript、Linux的操作等。曾经有人和我说过,前端要学什么算法和数据结构?但是我并不认为前端不需要算法导论之类的知识,在我看来前端具备坚实的计算机基础,对自身发展是极其有利的。规范则是代码的规范性。希望在工作中,能写一手缩进有序,注释完善的代码。(有代码洁癖来着)我想做程序员。而不是一辈子的初级前端和码农。同时非常感谢那些在我学习编程路上,支持和鼓励我的人。正是因为你们,我才有机会去选择自己真正想要的生活。最后贴一句自己很喜欢的话,作为自己2016年的寄语。“苦练七十二变,才能笑对八十一难。演戏如此,人生亦如是。” (希望以后能与大家多多交流!~)","updated":"T13:36:00.000Z","canComment":false,"commentPermission":"anyone","commentCount":4,"likeCount":25,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T21:36:00+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/e89cb5fa8e7361c_r.jpg","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":4,"likesCount":25},"":{"title":"张之蔚:2015,朝花未夕拾","author":"huxpro","content":"这是一篇来自
的投稿,一位文艺的安卓工程师。哦不,全栈。 是我非常佩服且欣赏的一个人。第一次认识他是在微博上:一个同校同级广告新媒体专业的学生,UI 设计与安卓开发居然样样精通。跟他互相关注一段时间后,忍不住私信认识了他,成为了好基友。那年我们大二。2015 年,他从 Python 安卓写到 web 前端后端,从 UI 设计玩到图形学算法概率论,还在最后爆了一个大料。好啦,还是让他亲口讲述他的故事吧。2015, 就其非偶非素的特征来看,似乎再平凡不过,偶尔迷信的我在年前也这般瞧它。只未料到这年份居然这般争气,临走时重重地打了我一脸。上半年\n剖析我的学业亦或是爱好,逃不过写代码、看书、画画这几件事。然而说来惭愧,很长的时间\n里,我都没有最基本的目的性。写代码是从大二开始,但临近大四,并没有强烈的渴望去成为\n程序员。我甚至一度想申请定量传播类的研究生,那正是我痴迷于 Python 和被它的诸多工具包搞得眼花缭乱的时候。\n所谓向之所倾,俯仰之间,已为陈迹。我的言行可配不上这严肃的句子。整个上半年,在编程上是彻底的懈怠的。我一面在准备雅思,一面折腾奇奇怪怪的结课作业,唯独在闲隙,好歹做了两件事,不算彻底抛下旧有的喜好。一是借来一本裴礼文的《数学分析中的典型问题与方法》。这本书里面有大量例子和习题。我\n只囫囵吞枣,又甚为艰难地过了《一元函数极限》和 《一元函数积分学》两块内容。说艰难\n是因为其中所用到的理论体系和解题的技巧性确实比那两本绿皮的高数高了很多。我只是尊从\n友人的建议,将之作为旧有知识体系的延伸和思维训练。\n说来,这本书后来伴随我至下半年,倒不是看的内容多了多少,而是看过的内容又一遍遍过,可见看过、算过也不见得扎实。随意提一句,《算法导论》中许多的证明都可以在这本书中找到数学模型,对推敲前者有所裨益。二呢,就是涂鸦!大二的很长一段时间,我都痴迷于绘画写实类的图标,当时的画风是这样的:然而大三一忙碌,抄起数位板就没那么随心所欲了。于是这时而瘙痒的小心思就在了在各类笔记本的涂鸦之中,画风变成了这样:下半年实习我的实习工作,从 Android 开发开始,尽管是新的项目,但沿用旧的工程架构。这块工作持\n续了两个月左右。我所总结的收获大概在这几点:\n熟悉工作流与工具链开始理解设计模式与架构大量地写业务并踩坑与其它程序员的沟通工作流之类并不多做赘述,git 之类恐怕是基本功了,而设计模式与架构,大概是我在熟读旧\n项目结构,并付诸实践后的领悟。文气又温柔的小哥,写代码风格相当整洁,我的许多坏毛\n病,和考虑的不周全,他都耐心指出,在此要格外谢过~\n因而,Android 开发的经历,是慢慢为我打下在实际工作中最基本的底子:时日不长,不见\n得多深,但好说好歹,避免了工作中过于幼稚的错误,俗话来说,就是上道了。\n创业公司的特质,让我抽出半个月,写了个官网,画了个小图标,之后就转入服务端的开发中。服务端的开发,对我的锻炼在于培养严谨的构思和长远整体的设计。团队里采用了 Spring\nMVC 作为开发框架(成熟而高度封装),加之我所做的仅是业务层的内容,所以说在技术层面\n有多大磨砺,是谈不上的。但站在我所在的技术层面,服务端开发确实对业务逻辑的梳理,对\n各种极端情况的考虑,对于基础知识的要求(网络、数据库等)有着更高的要求。在一月左右\n的时间,从设计实现最简单的接口,到根据业务流程重构部分代码,再到新需求加入后的兼容\n性设计,还算脚踏实地,有了一定的进步。\n其中挫败也是不少。例如辛苦写的代码被 review 后都不见了...不见了...\n从 10 月上旬到年末,我被分配参与到了微信版产品与一个纯网站的前端开发之中。几乎零基\n础的我,最早接触 angular,大概是其确实很给传统的客户端 or 服务端开发者亲切感,然\n为此 hux 曾多次善意嘲笑,除此之外,我也开始了解前端工程及工具链相关。说来,一直并\n为抱有太多热情的前端方面,我居然做了甚久,期间也干过登上测试服务器修改临时脚本文件\n这样污的事,以及彻底沦为 vim 党。而至新年,依旧焦头烂额,也是有点弄人呢~\n总结起来,我的研发实习没有太亮眼之处。专注度还是很匮乏,只是接触面确实广了些。其中利弊,一时也说不清吧。书\n下半年,正经书,只认真看了《算法导论》一本。参考着许多知乎前辈的经验贴,看证明,做课后题,敲例子。完整走过一套的,大概到动态规划与贪心部分。未有严格写题、写算法,但看过,写过笔记的,则到图算法之前。这本书,我个人的体会大概是:内容有深有浅,每样都不要懈怠。书中数学证明与细节,初看可能显而易见(隐约记得某条一笔带过的论述隐含调和级数的发散性,这一往往被人错记的事实),但细细琢磨都是可以深究的,比较理论的部分可能不那么实用,但嚼一嚼,理解原理也是必要的。至于较复杂的数据结构,例如红黑树,B-树(前者的插入、删除后的旋转,后者的分裂操作,\n理解起来不复杂,但实现起来需要小心、细致),或是一些牵扯知识较多的算法(如\nKruskal 算法需要兼而实现不相交集合森林以及相关的按轶合并、路径压缩)可能敲代码会\n尤为要紧,很多边界问题都是干想的时候考虑不到的,很多实现时的扩展性考虑也是如此。\n最基础的数学知识也是有用的哟,例如证明随机化快速排序时,有一个小步骤可以用到很基本的拉格朗日中值定理:与正经书相对,下半年靠着每天上下班总共 3 个小时的地铁时间,刷完了盐野七生 15 本的\n《罗马人的故事》,一本蒙森的罗马史和几本闲书。不深究地讲,罗马人的许多特质,还是蛮\n值得以工程科学作为职业的人学习的。至于今年呢,现在开始看起的是一本李航的《统计学习方法》,一本陈希孺的《概率论与数理统计》,同样有深有浅。因为确定了继续学业,看书的时间也是有所保证,大概会继续慢慢磨吧。生活我谈恋爱了, 女朋友是产品经理。由此可见,本文不需要结尾。","updated":"T10:04:36.000Z","canComment":false,"commentPermission":"anyone","commentCount":7,"likeCount":22,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T18:04:36+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/39a20a9dc0c18e18a681baeb7641c1ef_r.jpg","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":7,"likesCount":22},"":{"title":"郭达峰:我只想创造一点价值","author":"huxpro","content":"今天我们发一个大 V,Strikingly CTO & Co-Founder ,滑板运动员(雾“会不会让大家误解,以为我是搞运动的?” 由于觉得原来的题图不能表现达峰的帅气,我叫达峰重新挑了一张,也就是你看到的这张。作为工程师,达峰在国内 web 开发圈尤其是 React 生态圈里赫赫有名:Strikingly 是 2015 ReactEurope Conf 的赞助者之一,D2 2015 也有来自他们的演讲。达峰的
与他 都干货满满。而作为 Strikingly 的联合创始人与 CTO,做技术仅仅是达峰的冰山一角。更多的背后故事,还是让下面的采访喂饱你吧本文正文授权转载自 CUMA(香港中文大学内地生校友会)原文链接:如转载格式违反了,请告知。题记:郭达峰,香港中文大学计算机科学本科;本科毕业后加入摩根斯丹利从事编写交易程序方面工作;不久即辞职与另外两位合伙人前往美国旧金山全职开始创业。三人创造的互联网公司Strikingly成为进入YC*的首个华人团队;随后在两周之内完成了价值150万美元的种子轮融资,投资方包括创新工场,SV Angel等。Strikingly现落户于上海,郭达峰担任Strikingly的CTO职务。*【YC:即Y Combinator,美国著名创业企业孵化器】(原题图:郭达峰)你很难不在第一时间发现人群中的郭达峰。他一身硅谷型创始人搭配——蓝T与牛仔裤,而与众不同的是他胸前的白色大字——Strikingly,他与另外两位联合创始人于2012年开创的DIY网站制作平台。这间初创公司心怀一个简单目标:做点人们想要的东西。3年前,当郭达峰他们三人挤在美国旧金山一间破旧的小房间里,没有任何收入,每个月只用1500刀时,也是这个简单的想法——做一点人们想要的东西——支持着他们废寝忘食地开发产品。活跃的思维,辛勤的工作,再添上一点运气,便有了后来的峰回路转:Strikingly成为了进入YC的第一家华人团队,之后又获得SV Angel,Index Ventures,FundersClub,创新工场等的投资,产品在世界上超过两百多个国家都有众多使用者。谈到当时做出的创业的选择,郭达峰坚定地回答,“并非我没有能力做其他事,只是因为Strikingly能带来更多价值,所以我愿意投入所有去做这件事。”《红色警戒2》郭达峰与编程开发结缘,是个无心插柳的故事。时光回到2000 年初,有一款游戏火遍了整个中国,几乎每一台个人电脑上都有它的存在——《红色警戒2》。当时在读中学的郭达峰也正如同龄人一样,正在玩着这款经典的游戏。不过郭达峰的好奇心可能比同龄人稍微多了一点点。通过网上搜索,他找到了一个新奇的玩法,通过下载“mod”并放入游戏文件夹中,整个游戏就会发生改变,出现新的兵种和国家。“那如果直接修改下载的‘mod’的内容呢?”郭达峰简单地修改了能看得懂的英文部分,惊奇地发现游戏内产生了相应的变化,“现在来看这不就是编程嘛。”安装“mod”带来的快乐体验并不只有郭达峰深有体会,那时候的“mod”发烧友为了制作更多有趣的“mod”自发成立了一个网络论坛。郭达峰很自然地发现了这块宝地,加入了一个写“mod”的小团队,并且把每天放学后的时间全部投入进去。“我自己玩红警‘mod’可以很快乐,我也可以让别人玩红警‘mod’很快乐。”这种感受郭达峰此前从未体会过,“这是我第一次感受到我可以创造出新东西,而且这个新东西还是人们可以使用的。”这就是一切的开始。在“mod”之后,郭达峰又发现了一个新东西“论坛源代码”。有了“论坛源代码”,郭达峰可以在一天内就搭建出一个功能齐全,界面美观的论坛,“做一个网站原来那么简单”。初尝甜头的他跃跃欲试,很快加入了一个论坛源代码制作团队,帮助他们开发一个论坛游戏插件“宠物中心”,让人们可以在网络上拥有自己的虚拟宠物。这个产品的用户数是以百万计量的。16岁的郭达峰就已经达到了很多人可能一辈子都无法达到的高度,这就是互联网的力量。“这是第一次让我感受到,我写的东西可以让那么多人去使用,我有能力去做这么厉害的事情”,他对于能带给他人快乐的事情总是那么兴奋。在成长道路上,郭达峰也迷茫过。大学一二年级,他曾分别萌发过当教授和前往知名互联网公司工作的想法,然而在经历过真实的科研环境和进程缓慢的雅虎公司实习之后,这两个梦想先后破灭。缺乏梦想的生活是灰暗的,这对于郭达峰这样总是充满劲头的人来说更是如此。带着满脑子的迷惑,郭达峰来到美国交换。美国学校的课业不重,闲不下来的他“想随便找点事做”,于是他和他的同学做了一款基于Facebook的社交游戏。而这款“随便”做的游戏,用户数竟达到了恐怖的千万级别。提及这个无论谁都会觉得惊奇乃至仰慕的数字,郭达峰却并未显得兴奋,“这一次我达到了人生中的最高峰,但坦白说,我并没有很开心”。在郭达峰眼中这个社交游戏完全没有价值,他认为他们所做的努力就是为了无谓地消耗用户的时间,“我会想我为社会做了什么”。郭达峰和朋友做了下一个尝试:开发Facebook的投票插件,结果几个星期后应用上线,却无人问津。“我既迷惑又郁闷。我开发一个没意义的东西,结果上千万人在使用;我开发一个有意义的东西,结果居然是没人理睬”。随着郭达峰编程技术一起增长的,还有那颗想为社会创造价值的心。单纯的用户数量上的成就已经无法满足他,他希望寻求数字背后更深刻的意义。正是这份对于社会价值的执着,造就了后来带给无数人快乐与机遇的Strikingly。Strikingly的开端Strikingly的前身是JoinStart,这是郭达峰和Strikingly现在两位合伙人陈海沙和鲍腾的第一次合作。(左一:郭达峰,左二:陈海沙,右一:鲍腾)郭达峰与陈海沙相识于高盛实习期间,对于创造有社会价值的产品的相同追求让他们一拍即合。在实习结束后,他俩旋即拉上鲍腾和其他两位芝加哥大学的伙伴开始合作第一个产品JoinStart。JoinStart有很好的理念,它致力于帮助连接有创业想法的大学生和有投资需求的投资者,也就是现如今正火的股权众筹。然而光有好想法对于互联网创业来说是远远不够的,技术、资金、团队与运气缺一不可,JoinStart在团队构成上就埋下了隐患。JoinStart的创业历程经历了七八个月,过程中郭达峰还特别前往芝加哥呆了三个月,但是最后产品没有做出来。原因之一便是团队中有人的出发点只是希望拿到创业的经验,以换取日后高收入的工作。这样的团队无法长久,志不在此的两个人在产品仍未成型时便离开了团队,只剩下现今的三位Strikingly创始人苦苦坚持。经历了不愉快的团队合作,以及长期缺乏用户反馈的闭门造车,创业之初的热情和信心已经被消磨殆尽,心灰意冷的郭达峰给创业判了死刑。他很快回到香港,老老实实找了份投行的工作。循规蹈矩的投行工作不是郭达峰心水的东西,他怀念与JoinStart其他两人一起创造东西的美妙感觉。“我想和他们一起做点东西,无论什么事情都可以”。于是,郭达峰选择了最辛苦的一条路,过上了白天通勤至傍晚八九点钟,晚上编程至凌晨一两点,毫无社交活动的生活。与此同时,另外两个合作伙伴也在大洋彼岸兼职开发,Strikingly开始在他们三人手中缓慢成长。Strikingly致力于为人们提供最简单的建站工具,让人们可以在完全不懂编程和设计的情况下做出美丽动人的网站。这个想法来自于JoinStart与潜在用户的接触,他们发现很多创业者前期并不需要金融支持,他们反而更需要一种可以简单地建设网页的工具。越是简单的工具,制作难度就越高,对于他们三人这样的兼职团队更是如此。现在想起来那兼职的八个月,郭达峰依然唏嘘不已:“当时真的很痛苦。每天都只有上班,编程和睡觉三件事,真是一个挺煎熬的过程。而且你身边人不会认可你,因为你什么东西都还没做出来。任何人想这么做,我会建议他放弃,因为真的挺难的。”“有两种东西支撑着我”,郭达峰告诉我们,“第一是有时候我特别特别累了,我会打开Skype,听对面两个人打字的声音,什么也不说。我会有‘Ihave a team, I am not alone’的感觉,这种team的存在感支撑着我”。他们很清楚,创业热情会随着时间不断消逝,为了应对这种无奈,他们巧妙的设立了多个节点,每完成一个节点的任务,他们都能重新汲取力量前往下一个节点。“这也是第二种支撑我的东西。”而其中一个节点,就是Y Combinator,即大家熟知的YC。两闯Y CombinatorY Combinator成立于2005年,是美国著名的创业孵化器,为创业之初的公司提供办公场地、设备、咨询意见以及资金等等。关于YC流传着一种说法:在硅谷有两种孵化器,一种叫Y Combinator,一种是其他。也许略显夸张,但也反映出Y Combinator在创业圈与众不同的地位。从YC毕业的创业企业的总融资额达到30亿美元,而总市值更是达到了300亿美元,大家耳熟能详的Airbnb、Dropbox都是YC曾经孵化过的企业,因此创业者们都挤破头去申请Y Combinator。有趣的是,YC的资源并不是Strikingly三人组决定申请YC的目的,他们仅仅是希望YC的申请截止日期能够推动他们加速完成开发,进而踏入下一阶段。他们的“如意算盘”奏效了,随着申请截止日期的临近,代码量也暴增,他们成功地在截止日前提交了申请,并且拿到了面试机会。后面的故事顺利得让人觉得有点不真实。三人飞到了硅谷,见到了各种偶像级别的人物,与各种同龄的创业者聊各自的想法和产品。面试也异常顺利,三人与面试官聊得非常开心,并没有感觉到任何不妥。“还记得当时面完了我们觉得应该是成了,就叫了一大桌寿司庆祝,非常开心地聊着各种可能发生的事。”这时,一个来自YC的电话,瞬间冷却了三人激动的心情,他们得知他们没能通过筛选。当时Strikingly有两个重要方向:一是制作可以在移动端优化的网站;二是简化建站流程,让15分钟建站变为可能。对于这两个角度是否能帮助Strikingly杀入建站工具这一市场,YC仍然抱有疑问,因此拒绝了他们的申请。沉默。三人都说不出话来。“因为太**痛苦了。因为JoinStart失败了,然后我们远程在Strikingly上工作那么久也没有进展。本以为已经阶段性成功了,结果又失败了,”郭达峰说,“我们三人那一刻都想到了如果要把Strikingly做好,我们必须全职。但是没人敢说,因为有太多失败的经历了。”五分钟后,郭达峰终于打破了沉默:“我要全职做Strikingly这个事儿。”对梦想的无比执著感染了两位创业伙伴,他们很快也表示愿意全职投入Strikingly。提及下决心的缘由,达峰告诉我们:“因为我进入硅谷的时候,就有种强烈的感觉,我属于这个地方,我属于创业圈。从我十几岁开始写程序起,身边没有几个像我这样的人,中学没有,大学里也寥寥无几。但我来到这里,接触来自不同地方的程序员,亲临小时候看着长大的公司,我第一次感觉到这些人就在我身边,我找到了归属感。”两个月后,告别父母与女友,三人义无反顾地买了单程机票飞赴硅谷,开始了全职创业之路。他们三人挤在一间小破房间里,过着只有吃饭、睡觉和开发的日子,但却是“人生中最快乐的一段时间之一”。回忆当时的情景,郭达峰仍然非常怀念:“感觉就像《春天里》所唱的,身无分文,一无所有,却是我最快乐的时光,因为我拥有的都是最纯真的,最简简单单的东西,也最能专注。”极简而专注的生活彻底激发了他们的想象力和创造力。他们用一两个星期的时间做出了新的版本,上线两个星期之后就有了第一个付费用户。 (陈海沙,鲍腾,郭达峰与他们的小屋)恰逢此时,YC的报名又开始了,上一次与YC失之交臂的他们终于成功。在YC,郭达峰见到了很多不在硅谷这个圈子就难以接触到的创业者,接触到了在互联网历史上举足轻重的人物,比如网景(Netscape)创始人,硅谷创业教父PeterThiel等等,跟他们的交流让郭达峰受益颇多。“很多人都在谈去硅谷,但如果只是在Google、Facebook里面打工,是很难接触到真正的硅谷圈子的。但在YC里可以,大牛们也很愿意和你交流,因为你是YC人。” 梦在路上YC毕业后,Strikingly继续在残酷的市场中默默耕耘,逐渐成为了在多个国家有一定影响力的平台。然而YC并不是成功的代名词,很多与Strikingly同期从YC毕业的初创公司并未熬过最危险的时期,无可奈何地走向了死亡。郭达峰他们深知创业的艰难以及初创公司的脆弱,这让他们在实践的同时也在深入地思考Strikingly赖以生存的东西。他们希望能够寻找到能支持Strikingly走下去,能让Strikingly在未来做得更好的基石。而公司文化就是其中一块基石。“公司文化是国内很多公司忽略的东西,而我们恰好特别重视,”郭达峰谈到,“回国以后我们发现,很多中国互联网公司的文化我们都无法认同。我们想把硅谷学到的东西带回来,创造一家我们会为之骄傲的公司,所以我们花很多时间去整合理念,并形成公司文化,然后寻找对的人加入我们。”郭达峰尤其强调激情,“作为一个程序员,你只有对某件事充满激情,才可能专注并且把产品做到极致。”他认为,一家创业公司要想成功,只能集中精力把某一点攻破,并且把这一点做到极致。“对初创互联网公司而言,做的一般好是没有用的,你必须做得比别人好十倍,二十倍,做到极致,你才能打败别人。”因此,Strikingly必须是一家有激情的公司。为了保持激情和专注,他们要求公司所有人,包括工程师,都轮流去做客户服务,去了解用户体验,关注用户反馈。“因为你做的东西本来就是给他们用的,只有亲自了解他们的痛点在哪里,你才能做出客户真正想要的东西。而一旦击中了用户的痛点,对于工程师来说是一件很开心的事情。”郭达峰如是说,“第一时间感受用户的开心,感受用户的痛点,这是做产品的主题,也是激情的来源”。让员工“拥有”产品也是Strikingly追求的目标。“比如一个Strikingly工程师要做一个项目,我们不会把具体要求详细写下来要求他去做,我们只会说,‘嘿,用户在这里,他需要这个东西,你去跟他聊吧,你自己去想怎么把它做好’。我们会启发所有人去‘拥有’他开发的产品。”郭达峰介绍到,“接下来,他需要的支持,我作为CTO都会提供给他,甚至帮他联系身处硅谷,发明这些技术的人。但他必须明白自己需要什么,必须要‘拥有’整个过程,产品的成败就在他手上。”凭借着独特的运营理念,Strikingly 的影响力有了持续稳步的提升,但郭达峰的团队并不满足于拿到融资那么简单。郭达峰说,帮助用户释放自己的创造力和个性才是Strikingly想为社会带来的价值。他给我们分享了几个Strikingly用户的故事。有盲人借助Strikingly找到工作的故事,诺贝尔和平奖获得者马拉拉通过 Strikingly 宣传自己基金会的故事,还有一个流浪狗之家的管理者借助Strikingly另一产品“微贴”为狗狗筹集善款的故事等等。为什么可以一直那么有激情的做Strikingly?“很简单,这些故事就是原因”。“这些故事让我们知道我们在赋予他们力量。他们都是一个个独一无二的个体,They are doing something great!我们希望借助Strikingly帮助他们做成他们想做的事情,实现他们心中的想法。这就是Strikingly存在的意义。”如果你认同 Strikingly 的理念,有兴趣成为其中的一份子,欢迎直接和
联系先上一张Strikingly工作环境照~ :P采访:唐博撰文:姜巍 郭超宇编辑:唐畅 曾凯策划:王雪平图片系采访者提供本文版权为 CUMA 所有,如需转载,请务必联系他们或达峰哟","updated":"T09:22:49.000Z","canComment":false,"commentPermission":"anyone","commentCount":1,"likeCount":39,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T17:22:49+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/e71ac3cb6_r.jpg","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":1,"likesCount":39},"":{"title":"悲猪:和过去那糟糕的生活说再见吧","author":"huxpro","content":"这是一篇来自
的投稿。sadpig,人称「悲猪」,资深阿里前端实习生+创业实践者:从大二开始连续在阿里实习了两个假期,在大学期间靠自己建立的网站月入一万,相当厉害。再加上女友 Buff,简直人赢。今年年底他来北京散心,我们边喝酒边扯淡。2015 年对他来说并不顺心,如果没有变故,自然也不会是这样的标题,一篇以负能量起笔的文章。但是你要相信,自嘲为「悲」者,往往最能在千折百回与千疮百孔中柳暗花明。你们点进来的时候就已经上当了,这就是一片万恶的2015年的总结篇。我的2015年只有一个词可以形容 - awful . 糟糕,糟糕的我自己都不想去记得这一年发生了些啥。当年高考成绩出来以后我都没有那么烦心过。糟糕的工作刚过完年,我就开始去找实习了,计划着暑假出去实习完就早早的把自己的工作定了吧,考研是不打算了。结果一到学校就开始了重感冒,拖着重重的身体面试的感觉非常不好。在纠结是努力回到去年实习的地方还是挑战下自己去尝试更新的东西的时候我选择了前者。14年刚到追梦兼职的时候,我也就是个半吊子写 Php 顺带写写 jQuery插件 和 页面 的。后来,去了阿里实习我就开始疯狂的补基础,看文章。那段时间觉得总有学不完的东西,满脑子就是想让自己学的更多,做的更好。机缘巧合,7月如愿以偿的又到了杭州,到了支付宝大厦里工作了两个多月。工作很充实,但是却在我一心想留在口碑的时候,阿里校招缩招的事情就发生了。消息公布前网易通知我去滨江二面我还傲娇的拒绝了。匆匆收拾好东西回学校,开始疯狂的投简历面试,看到周围的人一个个都拿到了想要的offer以后,我渐渐的都丧失了对自己的信心。不过还好,后来好消息不断,拿到了几个offer,最终任性的选择了上海。我现在都不知道我到底为什么要选上海,可能就是因为妈妈的一句她喜欢上海,也有我不想再去杭州的原因。然而不管我选哪里,都没有留在南京。糟糕的尝试我的密议荚一直是依赖人人、微博等社交平台的流量运营的,然而最大的流量入口人人网的活跃度越来越低,我就一直在尝试做一些新的东西。寒假的时候,做了一个匿名的校园社交web应用,取了个名字叫做 “ 密洞 ”。类似各种学校表白墙。然而一个人并不能做到很好的运营,在自己学校里的社团里玩了玩就放弃了。尝试失败。后来又想把密议荚做成app,在@林翔宇 的帮助下,用ionic做了个简易的webapp,发到了App store。人的精力是有限的,用户粘性不够造成安装量和日活根本没法看。又一次尝试失败。9月回学校,我又努力了一把,把密议荚的趣味测试功能重写了一遍,做了一个更完善的管理后台,体验更好,运营效率更高。开发完成以后,也认真做了一些测试题,但是并没有更好的数据可以看~~尝试还是失败。每次尝试失败的时候,我都在安慰自己,虽然产品没有做成功,但是每次尝试我的项目工程变得越来越完善,编码越来越规范,尝试的东西越来越多,也算是一种进步了。糟糕的生活前天在西单吃呷浦呷浦的时候,左边坐着个女生一直在说,她现在听到 IT 男她就恐惧,每天除了工作工作就是工作。我的生活确实很糟糕,而且我以前还不以为意。其实谁不想过高质量的生活。只是这几年我太过于把重心放在我的另一个目标上。我不想像以前那样,连给自己喜欢的女孩子买关东煮都得向别人借钱买。细细的想,确实我是做的过了。应该在未来和当下之间保持一个平衡,而不是走极端。未来很重要,当下也很美好,把我不住现在,即使有未来,也不知道未来的自己是不是真的很好。我害怕和陌生人沟通,害怕去认识新的人,即使在路上问路,和服务员沟通,哪怕是和人争执,我都会选择退一步。能查地图的不问人,能自己解决的不找服务员,能闭嘴不和别人争的时候我就闭嘴做自己的事了。上大学几乎不买衣服,不逛商场,如果不是因为前女友的陪伴,我可能大学就不怎么出宿舍门了。她有想吃的,想去的,想买的,想看的电影,都会和我说,然后我们一起去,她吃的开心玩的开心看的开心我就开心。以前觉得普普通通的我就算再怎么打扮也就是那样,不如洒脱点不要那么在乎穿着打扮,能穿能用就好,做一个高度的实用主义者。其实我错了,实用不等于将就,精致不等于浪费。现在看看那些被我穿破了好多年的衣服裤子我都觉得我是怎么穿到今天的。2333333以前的我,一样东西不用到它不能再用了,就不会去换;不到头发油的难受了,就不会去洗;不到衣服实在没有的穿了,就不会去晒洗完的衣服。真的是很糟糕啊。更糟糕的是,我居然除了每天在宿舍上网,写代码就没有其他任何的爱好了。不跑步,不出门,不唱歌,不旅行,一个人对吃穿住行都没有任何的要求,只想有根网线、一台空调和一张床就可以过日子的想法一直在我心里。刚上大学的时候体育老师说,不要上了大学四年把身体上垮了。那时候真的觉得不可能,现在发现还是被大学上了。还好,还有半年,趁着现在有时间可以让自己过的好一点,跑跑步,打打球,出去旅行旅行,买点自己喜欢的衣服。到毕业,说不定还能找到一个陪我跑步旅行逛街的人呢。糟糕的感情这里的感情,不止有爱情,还有亲情。15年,可能就是因为我过的太糟糕,然后让我结束了一段四年半的感情。15年,可能就是因为我过的太糟糕,然后让我几乎没有在家里陪过家人。其实到现在我都不知道发生了些什么事情,就12月的最后半个月,一切都发生的太快了。完全没有准备,等一切都定了,然后再来通知我,你被甩了,我要和别人在一起了。哈哈哈哈哈。这半个月我找遍了我能找的人倾诉,跑到北京去野了一圈,把自己想买的东西都买了回来。她需要人陪,我没法陪着她。仔细翻过了她的微博微信,发现她早就被繁重的学习和巨大的压力压的喘不过气。我问了我学土木的好基友,都说大三是个坎儿,计算画图,熬夜做题到内心崩溃。她不是一个爱学习的人,她更想自由自在的生活,但是父母对她的关心让她不希望自己让父母失望。我们彼此很了解对方,却因为太过了解,却缺少了必要的沟通。我以为她可以像大一大二一样靠自己努力过去,结果她好像并没有做到,我也并未给她太多关心,以至于有人趁虚而入了。我们走了四年半,才有今天这样的了解和亲近。却只过了半个月就吵到再也不用联系了。不过在一起的时候确实是满满的开心,每天都很充实,她一开始只是需要一个鼓励她从高中那悲催的事情里走出来的人,那时候刚好我出现了。现在不需要我了,只怪距离太远,缘分太浅。和糟糕说再见我知道长长的文字现在没多少人还看了,写出来不知道谁愿意看。但是我还是要和糟糕的生活说句再见。整理整理,做好眼下的事情,对自己好,对家人朋友好,多出去走走,多培养兴趣,享受生活。","updated":"T06:32:21.000Z","canComment":false,"commentPermission":"anyone","commentCount":25,"likeCount":40,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T14:32:21+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/d3d16fb5a2ba13f60b0b0d973be7677f_r.jpg","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":25,"likesCount":40},"":{"title":"冯天然:工作和秀恩爱,还是秀恩爱更重要","author":"huxpro","content":"这是一篇来自
的投稿如果你们听说过
,大概会知道他是一名阿里、资深、前端、实习生 - -,从大二开始,历经淘宝旅行、支付宝工程技术组+大凤蝶组共计三个团队的历练;如果你们接触过
,大概会觉得他是一个对外低调谦虚略带码农羞涩、在工作与技术上却踏实能干、有激情有想法有追求的典型工程师;而如果你们关注了这货的知乎或者微博,雾草。这货的秀恩爱能力,你们自己看吧
前言说老实话,本来是不太想写年终总结的,毕竟这么多年了,也从来没有养成过这种习惯。不过2015这一年也确实发生了很多的事情,所以还是想写点什么纪念一下自己的2015。说老实话,我以前一直觉得自己特别幸运想去的学校,去了想去的专业,去了想做的事情,做了深爱的人,有了想要去工作的公司,也很随意的就进去了总觉得一路上顺风顺水,自己也从来都不喜欢追忆过去,因为一直觉得自己遇到的已经是最好。如果拿玄幻小说的修行来比喻的话,自己修的就是顺心意,按心之所想,一路前行。早早的就认识到自己的局限性,确实很多事情都不是自己能够做的到的。金庸的《白马啸西风》中有这样的句子。那些都是很好很好的,可是我偏偏不喜欢恩,我呢,只追求自己喜欢的一部分就好了,算是比较知足的类型。不过虽然如此,但是我也有自己的技术追求的,只是相对来说看得没有那么重了吧。我仍然是最看重家庭。能和喜欢的人在一起就好。不过虽说一路上顺风顺水的样子,但是在2015这一年,自己也经受了不少波折,不过自己也获得了很多,说实话,自己很感激所呆过的所有团队。总结从哪里开始写呢,不如,就先从工作开始理起来吧。工作2015这一年,最早是2月份的时候,让之前在阿里的师兄内推了自己,不过因为自己想要和更多的前端一起共事,放弃了老部门,转投了蚂蚁金服。这次实习面试其实挺坑的。一开始的时候,上海的面试官发现我投的是杭州而非上海,告知要将我的简历转到杭州的部门去,结果手滑把我的面试给挂了。恩,怎么说呢,当时挺烦躁也挺尴尬的吧,毕竟自己都去过一次阿里了,而且这次有帮忙推别的同学,结果别人过了,自己挂了,实在是尴尬。不过所幸最后朋友帮忙联系了支付宝的 HR,解决了问题。另外,自己真是对阿里爱得深沉,实习面试只投了阿里一家,这也和自己的自信也有关吧,基本上投了就过,不太想投别的,毕竟别人面试也挺辛苦的。然后在7月的时候,结束了学校的工程实训。说起工程实训,虽然是个很坑的东西,但是自己每次都会选用自己没用过的技术,然后去做一个产品出来,所以最终感觉也没那么亏,只是老师确实什么忙都没帮上。恩,话接上文,结束了工程实训,然后就怀着忐忑的心理又去了支付宝,这是我,第二次以实习生的身份来到杭州。在那边去了一个介于基础建设和业务的小组,主要是负责做一些基础建设的工具平台或者业务中台。蚂蚁金服的体验技术部是一个很棒的地方,而且有着很完善的前后端分离经验和 React 开发经验。在支付宝这里,我度过了难忘的四个月时光,恩,四个月。大部分人都在得知阿里缩招的消息就离职了,但是说实话,leader 的看重和这里完善的基础建设,先进的架构思想,愉快的技术环境,都让我无法舍弃,一直等待着希望。最终,还是没等到。不过自己也不后悔,在这里自己做了很多,也学到了很多。负责了一部分后端的前端培训工作,制作的视频教程也受到了多方赞赏,leader 还推荐我去做新人培训的讲师。在这里,留下了很多难忘的回忆,项目组里的核心大项目自己的代码提交量排到了第三,也是开发的主力之一。并且在后期,有了良好的产品意识,得到了玉伯的认可,感觉自己不虚此行。在这里,大牛云集,对我这样一个小前端来说,真的是很棒的地方呢。同事也都 nice。自己换了一次组,第一个 leader 是个很漂亮的姐姐,人非常和蔼,做饭也很好吃。在这边工作基本每周末都会大家一起去某个同事家里吃饭或者外出野营,大家的关系真的很好呢。第二任 leader 是个看起来比较严肃的人。不过虽然说严肃,但是并不算是凶的类型,很认真,也很有幽默感,非常赞的 leader,经常帮我各种忙。之前跟张秋怡他们聊天的时候,经常会说到一句话,公司不是家。是的呀,公司不是家,不过我觉得,体验技术部算是我的一个小家呢。这里给了我外界难以给予的视野,让我看到了很多有趣的想法和架构。还记得第一次和玉伯他们去饭店吃饭,向玉伯敬酒,感谢他接受自己来这里,以及明年再次来这里。哎,没想到,这句话,只实现了个开头,却没有如期结束。还记得那天,leader 早上找我聊天,说应该留不了了。说实话,自己已经做了两个月的心理准备了,原以为可以很平淡的接受,没想到还是忍不住哭了。哎,真的很喜欢很喜欢这里。临走的那天,发了封内网的告别帖,看到同事们,朋友们为我祝福,看到大家一个个的用旺旺安慰我。真的很温暖,恩,很温暖呢。然后,辗转来到了另一家公司,这也是我多年的实习里,最后一份实习工作。初来到新公司,内心其实是崩溃的。有的同事的代码水平差,新写的代码全是问题,自己碍于面子也无法全部告诉对方,新思想难以推进。自己一度产生了毁三方再找工作的念头。不过因为有别的组的人说可以转岗的事情,自己又有了那么一点点期待。后来新 leader 来了,全权负责这里的前端工作。新 leader 和自己一样是个激进派,革新派,自从来了以后就不停的推进前端的分离化和工程化,而且新 leader 对我也很看重,会让我去负责很多有趣的事情。这个时候,别组的转岗通知过来了,这时候自己很纠结。不过没想多久,还是明白,自己还是想更多去学习。随后便同意了转岗,只是没想到,转岗因为公司政策的原因,卡到HR的地方失败了。恩,虽然失败了,不过其实自己没有刚来的时候那么在意了。新 leader 是个很 nice 的人。并且愿意让我去发挥自己的能力,我没什么可抱怨的了。并且在新公司这里,第一次,第二次,以及第N次,以一个实习生的身份,做了社招面试官的身份。说实话,虽然已经不止面过一次了,但是每次面试前总觉得很惶恐,担心自己被碾压,担心没面好。不过结果基本都是,那些工作了四五年有名企经历的人,漏洞百出。我总觉得他们只去完成工作的螺丝而已,并不爱着技术。另外自己也负责一部分 wiki 文档的编写。这一年经历的东西很多,事实上,自己每年都在经历不同的事情,不过我是很幸运的。不管是难过还是快乐,事后总是证明,那些,都使我更加强大。自己是个很懒的人,希望自己能勤快点。感情熟悉我的人其实都知道,我这个人看起来没什么情绪的样子,其实对感情这回事,是很看重的。我对于谈恋爱这件事是很慎重的,如果我不确定自己喜欢对方的话,是不会准备去开始的。也许趁着年轻玩玩也好,不过这对我来说总是难以接受的。所幸的是这样的我很快的碰到了我亲爱的另一半。我和她在2014年相识,相互爱恋着度过了2015这一年,发生过很多事情,开心的,惊讶的,难过的。而我们总是越爱越深。因为真的很爱她,所以不舍得她难过,从来不会和她吵架。如果一个人说永远不会和另一个人吵架,这个基本上不会有人相信的吧,毕竟,这个世界上没有什么是永远的。不过我还是要说,我永远都不会和她吵架。如果我永远不生气的话,那么,一个人是,怎么也没办法吵起来的。我想,只要她还爱着我,我就没有会生气的理由,不管怎么样,她爱我就好。尽管是这样说,不过这过去的一年里,自己也并没有做到最好,有的时候还是会让她伤心,但是自己绝不会不理她。毕竟,伤心的是她,也是我,不把她哄回来,我怎么开心呢。2016,自己努力做的更好吧,毕竟是要让我娶回家的人。最后的最后最后的最后,说点闲言碎语。不管怎么样呢,这一年,过得很有趣很充实,说实话,2016可能会因为自己给自己挖的一些坑变得有点艰难,但是我想困难总是可以克服的,这点信心还是有的。不管怎么样,我很幸福。那么,让我一直幸福下去吧。不要太贪心,只要小小的满足就好。","updated":"T13:22:42.000Z","canComment":false,"commentPermission":"anyone","commentCount":4,"likeCount":16,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T21:22:42+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/fcfa03a7d9072_r.jpg","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":4,"likesCount":16},"":{"title":"Lynn:由「程序员没机会接触人该怎么交朋友」说开去","author":"huxpro","content":"这是一篇来自
的投稿。呐,今天我们发一个妹子。啊不对,发一个妹子写的文章。她写了这么一篇神神叨叨神神叨叨的文章,但是你看标题跟本专栏「一生想做浪漫极客」的主旨很有关系嘛,所以我就勉为其难的发上来了。不过,肖某人的文风过于跳跃以及蛇精病……所以你们要是有哪里看不懂的就评论一下,我就在文章里帮你们注释一下,帮助你们看完全文 - -前两天为了给母上大人过50大寿回了一趟家,何曾想回家第二天就倒下了,还不轻不重的开了个刀,住了个院。这些事情倒没什么可讲的,有趣的是在我过着调戏小护士,给隔壁老奶奶卖乖的病号生活的时候,收到了一个回答问题的邀请。要知道在我回答两个个关于程序员的问题之前,我收到的邀请都是清一色的询问如何化妆护肤的!(那些要修复痘印,淡化疤痕和缩小毛孔的亲真的别邀请我了,你们总不想看我回答一句,本人非疤痕体质,且天生丽质不见毛孔,实在无法解答您的问题…)所以我认认真真的记下了这个问题——“程序员没机会接触人该怎么交朋友”,并进入了深沉的思(tuo)考(yan)中…直到今天,也就是收到邀请的五天后,一件有趣的事情突然让我想起了这个问题的邀请。事情是这样的,打从黄老爷开了专栏后,就做着一件有趣的事——志同道合的程序员或非程序员朋友们,咱们一起发文章。一开始我也没太注意,直到今天晚上黄老爷问我:/*我就不该……*/“诶?Lynn,你说要给那种写开始新生活主题的文章配图,配什么样的好?”出于我一贯不走寻常路的风格,我大胆的给黄老爷引荐了这么一张图。这图是在拍的一本叫做的书的一页,这本书一直是我茶余饭后的最爱。不仅如此,这张图还贱贱的契合了那篇文章的故事(当然如果我这篇有幸得见天日,大概往前翻翻就知道这里提到的文章是哪一篇了)。当然看到这里,你们也就知道我这幅图并没有被选作封面。黄老爷从构图以及选图合理性等多个角度论证了为什么这幅图不适合作为封面。我心里倒是非常认同他的说法,的确选这幅图也是出自我一贯的一时兴起,但是本着不作妖不成活的本性,我还是延伸出了以下对话:L:“可你不是要在每篇文章开头写点什么编者按吗?你可以说是你女朋友撒泼耍赖逼着你使用了这幅图!”H:“但这不是重点啊,一方面是这个图不适合当封面,另外这个梗太深了,别人get不到怎么办…”L:“但这不是重点呀,现在我不是以一个神奇的身份在掺合吗,这个时候听我的不就好了,又不是什么特别重大的事情…”H:“可是这个图在PC上做封面很影响整体观感啊…”话毕,打开PC版排的整整齐齐的文章列表给我看。L:专做认真看的我,已经压抑不住自己爆表的演技,装作若有所思的说:“好像的确是,那重新挑一张吧。”随即,帮着选图。看到这里,有两个点可以随意的理解一下:这幅图的梗是什么?要不有奖竞猜一下当时是针对哪个文章的选图?故事中的黄老爷还有更好的什么方式可以达到不用这幅图做封面的目的?第一个点大家就自己看看就好,第二个点聪明贤淑的我当下就有了答案。以黄老爷对我的了解以及对我审美的信任,这个故事应该这样发展——黄老爷毫不犹豫的选择了这幅诡异的作品做了封面,并且给我预览效果(之类的)/*很麻烦的啊*/,这时Lynn良心发现悔不当初,让黄老爷马上把这幅图换下来,并且自觉主动的给黄老爷找合适的图。说到这里好像还是和“程序员没机会接触人该怎么交朋友”这个问题没什么关系。没事,暂且把这个故事放在这里,先来说这个问题。为了方便我胡说八道,我把提问者的描述摘了过来:“我是一个程序员,是在网接单,在家工作已经2年了,没有机会接触到人,搞得好孤单啊木有朋友,喝酒都找不到人我应该怎么办?自己想过去上班,但是上班钱太少不如自己单干,我应该怎么才能在这个城市多多的交友呢?”乍一看,这个问题很好答,我可以洋洋洒洒的给出100条如何交友小诀窍,不然再神奇一点组织一个大家一起来交友的活动?但再仔细想想,好像这个困惑的解法还真没这么简单。为什么这么说,就好比关于人生导师的提法那样,你在逆境的时候,失落的时候抑或是不顺心的时候,也许暗暗希望有一个“人生导师”这样的人出来开导自己,但事实是你只是想要有个合适的人把你心知肚明的“道理”说出来给你听。可见这个关于程序的问题,不是难在方法论,而是难在个人。所以这道题的问题,草率的说,不出在如何与人交往上,而是在于如何创造机会上。说到这里好像又可以多啰嗦两句,如果我是这位提问者在远方的朋友,我给他列举一系列的增加交友机会的活动(不改变他现在的工作性质的),是不是就解决问题了呢?设想一下一个部分人熟悉的问答场景——\t女:好烦啊,我饿了,我们吃饭吧。\t男:好啊好啊,那吃什么?\t女:随便。\t男:海底捞?\t女:太辣了,没看我长痘痘吗?!\t男:那吃西北?\t女:都是面食会长胖啊!!\t男:那吃云南菜,很补养的。\t女:好烦啊,一点味道都没有。\t男:那吃粤菜?\t女:昨天就吃的粤菜啊,能不能有点创意?!\t男:那宝贝你想吃什么?\t女:都说了随便啊!!我负责任的告诉广大男性同胞,这妹子烦躁的原因绝不是你没给出解决“饿”这个问题的方法,而是问题的关键不是“饿”,是“烦”!顺着提问者的的病因——无聊 /*这是怎么跳跃过来的*/,我又妄言这世界上有三种不无聊的人:能与自己好好相处的人,能与人好好相处的人和能与世界好好相处的人。与自己好好相处的人,很懂得自己需要什么,及时补给,不大会无聊;与人好好相处的人,很懂得如何打发无聊;与世界好好相处的人,哇噻,所有东西都好有趣哦,他的字典里恐怕很难找到无聊。这就是有趣的形式各不相同,无聊的感受却大致相像。所以真要说有一个好的解决方式,那就是像我在开头讲的封面故事的第二个点一样,变一下咯。你如果真是在家工作的极其无聊,那就到咖啡厅去工作,实在不行你就把家里大门打开工作,有一点改变,都会有一点效果。然后我要说的是,相似的思路,可能可以启发以下问题:\t程序员总是找不到女朋友 or 不知道该如何和女生相处,应该怎么办?写在最后:\t你真从头到尾看到这里的话,我只有给你行大礼了,真是辛苦你了。/*辛苦你了*/\t这是一篇干货甚少,思路散乱的文章,但就我个人而言,很多情况下我更喜欢知乎上那些絮絮叨叨,神神叨叨的答案,真理或者正解这种东西于我而言是有些可怕的,它一旦光芒万丈的出现在那里了,就很可能让我再也看不到正解之外的其他有意思的东西了。所以于很多资深的知乎用户不同,我倒不觉得知乎现在千奇百怪的问题和千奇百怪的答案有什么不好,就像一千个读者眼里有一千个哈姆雷特,如果把哈姆雷特作者眼里的哈姆雷特假设为“真理”,那么哈姆雷特的真正魅力所在可能正是另外999种解答。\t知乎,亦然。题外话:\t都看到题外话了,你们也真是不烦我,好吧,我就是让你们眼熟一下我,习惯一下我,因为2.12号本总攻大人要带领3个程序员去美西玩儿1个月,你没看错,我1个人带3个程序员。到时候如果你们真的不嫌我啰嗦,我还可以长篇大论的给你们讲好多好多图文并茂的Lynn奶奶睡前故事,Lynn奶奶厕所读物,或者是Lynn奶奶告诉你 和程序员出门旅行需要做哪些准备等等。 /*可以在评论区举手 */\t当然你们也可以去勾搭黄老爷,看之后有没有机会组织一起去玩,那都是后话。\t以上,感谢。","updated":"T09:00:05.000Z","canComment":false,"commentPermission":"anyone","commentCount":13,"likeCount":13,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T17:00:05+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/fd07eefdf0dab3d_r.jpg","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":13,"likesCount":13},"":{"title":"祝程序猿们本命年快乐 ;)","author":"huxpro","content":"对于猴子,我第一个想到的居然是程序猿。祝大家新的一年:Zero error, zero warning. No exception, no bug.Code Monkey Save World.2016 年的春晚太难看了。","updated":"T15:50:23.000Z","canComment":false,"commentPermission":"anyone","commentCount":8,"likeCount":73,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","sourceUrl":"","publishedTime":"T23:50:23+08:00","links":{"comments":"/api/posts//comments"},"url":"/p/","titleImage":"/eebfcef29b6_r.jpg","summary":"","href":"/api/posts/","meta":{"previous":null,"next":null},"snapshotUrl":"","commentsCount":8,"likesCount":73},"":{"title":"天镶:本命年一定要记得穿红裤衩","author":"huxpro","content":"这是一篇来自
大大的投稿。呐,这是一篇满满干货的年终总结。如果您由于本文技术名词过多而感到不适,你可以跟我一样,直接滑到页面底部点赞就好 ;)
,王令宇,天猫前端,毕竟是大大,我们就不多做介绍了。大家可以在文中找到大大的各种链接然后 follow 他,题图来自 。不要问我为什么这个时间发……因为有!时!差!年终总结结果到这个时间才写,其实也是无奈。本来计划过年写的,没想到Steam竟然开了个农历春节特惠,然后就被各种游戏打了,辣鸡平台,敛我钱财,颓我精神,耗我青春,害我单身以下全都是个人看法,如果有不认同的地方,请大吼一声“傻逼写的啥”然后关闭页面转职本命年终于快过去了,不知道是不是因为没有穿红裤衩,这一年有很多不顺心的事情,不过也有很多好事。这一年最重要的事情就是顺利从一只学生狗转职为一只社畜。四月份毕业之后以前端工程师的职位入职天猫,到现在也差不多工作一年了。这里写一下干这行以来对于“前端”这个行业的看法和感悟。前端工程师在校园里是一个复杂度和地位都被严重低估的职位。老师们对发展迅猛的前端技术不够了解,更是有不少“师兄师姐”在介绍自己找工作经验时“xx天速成就找到一份前端工作”、“公司招聘前端也不问会什么,就问你肯不肯踏实干这行,肯干进去再教你”。当然学校里的项目里也会有页面,但由于老师和学生对前端各种技术的陌生,大多数都是使用jQuery堆积代码完成功能了事。在大家眼里,写页面没啥技术含量。前端的很多基础知识,都无法在学校学到。学校老师交给学生的大多都是基础知识,比如算法、数据结构、编译原理、操作系统、计算机网络这些,而针对于特定领域就很少涉及了。见过学校开设C、C++、Java、PHP等语言的课程,却从来没有看到过开设JavaScript、CSS、HTML的课程。网页设计的选修课倒是有(我报了,很遗憾整个教室只有20人不到),但这里所谓的网页设计并不是前端那一套技术栈,而是Dreamweaver使用入门。前端技术栈在校园里没有普及。就这样产生了一个很有意思的现象:大堆公司喊缺前端,而学生们并不知道前端是什么,怎么去学习前端知识(最近两年稍微好点了),他们更多的是去学Java、C++,走着师兄师姐们走过的道路。有幸现在已经有百度这种大公司注意到了这点,到高校里开了不少前端知识讲座,还在GitHub上搞了培训项目。希望各个大公司的前端部门能够更多的走进校园,给对前端感兴趣的小朋友们一点指导。React去年上半年4月份入职打杂了一段时间之后,就开始学习React并且进行了一些实战演练:产出一篇文章,意外的很受好评,上超过了200的收藏,上也有不少评论。可惜现在文章中已经有很多不适用了,babel大版本到6发生了不少变化,本地调试也改成中间件了把自己的博客改成了全React实现,,用react-router做了个单页面应用,底层依然基于hexo,自己给hexo写了个把所有数据生成json而不直接生成页面,为了练手已经丧心病狂了,SEO什么的完全不在乎写了一些脚手架和组件,乱七八糟参见由于负责天猫最复杂的前端应用之一的开发和维护,有不少老代码,也由于迁移成本太大没有办法在Java层上插入Node.js中间层,各种模块之间各种耦合,中间也写了篇。当时项目里存在以下几种耦合:最蛋疼的就是压根就没有模块化,所有代码都在一个文件里,2k+行的jQuery那种。最老式的写法,也是在学校项目里看到最多的方式,选择器拿到DOM然后操作绑事件,大多多年前的代码或者是后端兼职写的。基本上没有可维护性。解决这种基本上就靠推倒重写了,考虑投入产出比看懂它的成本还不如重新写一个来得快稍微好一点的是增加了模块化,但模块内部和之前思路没什么区别,只是把上面那种代码分开多个文件放了。不同的模块在模块内部操作相同的HTML,一旦其中一个模块改变了HTML结构,其他模块直接就bug了...再好一点增加了前端模板引擎,各个模块都在内部使用模板引擎渲染自己的HTML,模块初始化传入一个容器,只要容器不冲突,模块之间就不会基于HTML耦合。模块会暴露一些接口,通过模块管理器获取实例相互之间直接相互调用,这样依旧是强依赖,两个模块互相依赖,一旦其中一个换了,接口变了,另外一个模块也需要改变自己的代码。模块内部完全黑盒,只要一个容器,里面的内容由模块自己控制。模块有数据的入口和出口,入口就是一些由父模块或页面传入的配置,出口则是一些由父模块或页面传入模块回调函数,回调函数里面附带传出的数据,而HTML相互之间无法互相修改,改了就报错。没错这就是React最后重构的方案定下来是React+AMD+Gulp(你没有看错,没有打包,没有webpack),之所以不打包主要是有老代码,组件页都没发布到npm上,而且由于阿里的CDN支持combo,所以也就不做打包了,至于使用React做重构,主要是由于以下几个原因:使用React实现的模块和组件完全黑盒,Web Component理念,标签使用方便快捷。不会引入新的维护成本组件容易抽离,形成沉淀。我曾经把一部分新业务使用React实现,其中的不少组件稍加完善就沉淀出一些基础组件,没有剥离成本模块相互之间不会污染,没办法直接修改其他模块的DOM,改了就报错,然后QA就提着刀杀过来了商家应用,允许全异步,富交互功能型页面,性能不太烂都能接受目前新业务已经完全基于React开发,组件库也基本上沉淀出来了,而老业务也在通过一次次需求像React迁移模块的实现和通信个人比较倾向于完全区分模块和组件这两个概念。组件是完全没有业务逻辑的功能单元,比如下拉框啊、日期选择啊这种,组件只专注自身的功能。组件可能会有嵌套,但当发生了嵌套时,对外就是一个组件,父组件内部的子组件对外将完全不可见,它的行为也将完全由父组件控制。组件是复用的单元,应当更多的形成沉淀。而模块则包含业务逻辑,同时模块还承载了一个比较重要的功能:和其他模块通信。所以大体上一个应用就是:应用被划分为多个业务模块,这些模块逻辑上是扁平的,他们采用统一的通信机制进行通信,一个模块上的数据发生变更时,会通知一个全局的通信中心,采用pub-sub机制将数据递交给其他模块,其他模块拿到数据后影响自己的渲染。模块内部使用了很多的组件,但模块内部所有渲染使用的数据都由模块直接进行管控,树形传递给各个组件。可以这么想,模块内部类似Redux实例,而页面上有多个Redux实例,它们再通过一个统一的pub-sub中心进行通信。为什么不整个应用直接做一个Redux实例呢?主要是因为要考虑到跨BU合作和新老多种技术兼容。模块内部想怎么玩怎么玩,可以是React实现,可以使Vue实现,可以是原生js实现。模块作为一个通信单元只要符合统一pub-sub通信接口即可。这套理念也确实实现并且落地到了不少页面中,但这样玩显然还不够过瘾。React终究是前端在玩,前端写React组件、模块和页面很爽,但是数量大了一样要加班一样爽不起来。这里就在考虑有没有可能降低门槛,把事情交给别人来做,比如后端。首先组件肯定是前端来写了,没多少后端能写好前端组件的,如果能写好,他就不是后端而是全栈了,这种人就应该果断拉过来干前端堵缺口。那么有没有可能把模块和页面交给他们来写,而前端只提供一些组件呢?让后端写,最重要的一点就是给模板赋能,毕竟后端只能接触到模板。这么一想,这不特么就是React和MVVM相结合么,把React的Virtual DOM或者说JSX标签和MVVM的DOM模板一样写到HTML上,多么Web Component化啊。这里说一下为什么不直接用MVVM比如Vue,而是用React。MVVM确实对后端开发工程师很友好,但这些组件是我们平常开发前端应用(前端部分前端自己负责的复杂业务)时沉淀下来的,这么一大批组件让我们再去重写一份MVVM的太蛋疼了,后期维护两份也比较吃力。就这样开始尝试,经过一段时间调研后,发现,可以把模板字符串转化为React.createElement,当时用browserify给它打了一个包,尼玛压缩后好像有500K+(未gzip),它是针对Node.js的。于是乎把它整个代码大体上进行了重写,移除了lodash,自己重写了使用的一些工具方法,然后又重写了模板解析部分,采用浏览器的XML解析器,又移除了esprima等语法校验,然后又加了一堆定制化,最后压缩后20K左右(未gzip),终于可以在页面上用了...最后大体上就实现了一套这样的方案:一堆日常沉淀的React组件一个全局的pub-sub通信工具负责模块的通信一个React实现的Module负责充当模块的角色Module内部使用React Templates字符串模板编译成Virtual DOM的函数来进行渲染,可以通过一些“控制指令”来控制渲染结果,组件上面可以通过一些“通信指令”来递交组件的数据给Module这个模块。而Module模块数据发生变更后会触发整个模块重绘,数据又会重新传递下来给组件并变更组件的渲染结果。Module外部则是通过全局的pub-sub通信工具来负责模块通信,Module负责与这个通信工具进行直接交互来进行数据通信。通信建立桥接的方式也是在Module上定义一些“通信指令”最后,整个系统都采用React Templates来实现,整个页面实现和通信全部写在模板上,页面上只有一堆组件(可以在模板里动态require,模板会在编译期提取然后拉取完成了才进行初始化)。没有任何业务js逻辑存在。这样实现了好几个页面我已经成功上线跑了几个月了,还有几个正在实现中,看上去很美好。但后来还是发现了一些问题:模块通信过程太复杂,一个完整的数据流转过程通过指令很难很直观的展现,一个看起来很简单的交互中间可能会经过4-5步数据流转,甚至包括一些alert、confirm等等,想让后端写不太可能,连其他前端都看不太懂数据如何流转。这一块还有太多可以优化的地方。流程自动化去年下半年我参与了部门统一使用的前端流程自动化工具的维护及改造,同时负责了商家端通用组件的脚手架的开发和维护。花了不少时间在前端流程自动化上。前端经过这么多年的发展,页面上承载的交互、功能、逻辑不断增加,项目逐渐变得庞大,维护和开发成本也随之增加,但依然招不到人。这里顺带打个广告,如果想来天猫前端的请发邮件至。流程自动化也就愈发重要。最理想的状况就是,只要是机械能够完成的工作,人就不要参与了。用一些脚本代替简单重复的劳动,这样我们也就可以少加点班了。Node.jsNode.js给前端开发流程自动化带来了福音。从目前部门前端开发流程来看,主要就是以下几个步骤,括号里是对应的开源工具:创建项目(Yeoman)构建以及监听文件变化自动构建(Gulp、Webpack、Grunt,Grunt估计现在用的很少了)本地调试,资源代理(Koa、Express+各种定制的中间件)自动化测试、代码覆盖率测试(mocha、istanbul、should/chai/expect、phntomjs、karma)文档自动化生成(自己基于AST提取,或者直接用jsdoc之类的工具)自动化校验、发布(一些脚本)这里主要聊聊构建、本地调试和自动化测试构建现在的构建过程已经不再像以前那样压缩一下就简单,构建过程中往往会拿代码生成语法树然后做各种操作:Babel爽爽写ES6甚至ES7将代码中的注释转化为监控打点(istanbul我记得就是基于语法树给每个语法分支包一层打点层,汇总数据)将代码中的注释提取生成文档(React组件自动生成props文档就是这种方式)将commonjs规范的代码转化为各种各样的模块化解决方案(AMD、KMD、UMD等等)提取模块间的依赖关系,梳理应用模块依赖关系,绘制模块依赖树Webpack打包各种语法检查(eslint,jshint),有时候还会有一些定制化的校验...现在大家都比较中意webpack,依赖打包使得资源请求数大幅度减少(使用不支持combo的CDN服务的公司肯定很开心)。我个人还是对于webpack有一些顾虑,主要有两点不太赞同浏览器内使用的资源也发布到npm上。浏览器上和Node.js通用的代码可能也就不到5%(lodash啊,underscore啊,moment啊这种),在npm上找到一个模块还要确认到底哪个场景下可用。使用的即便是这些可以共用的库,也会有一个很蛋疼的问题:Node.js的模块往往大而全实现尽可能多的功能,而页面使用的模块则是尽可能小而美,资源加载量尽可能少。比如只用到时间格式化和反格式化就引入一整个moment(moment真特么大,我一般就格式化反格式化,喜欢用fecha),对于Node.js也许没什么压力,但对于页面就很蛋疼了。现在rollup试图解决这个问题,还是比较值得看好的不同版本重复打包的问题。这个问题比较头疼。如果一个项目依赖了两个组件,而这两个组件引用了一个库的两个不同版本,这个库就会被打包两份,于是乎代码量就duang一下增大了。目前依旧没有看到比较好的方式来解决。虽然可以用peerDependencies对一些基础库(比如React这种)做一下处理,也只是缓解一些罢了。另外吐槽一句,webpack配置真繁琐啊,个人目前倾向的方案是使用webpack+gulp,webpack负责打包和构建,其他的工作依旧交给gulp,我喜欢stream(不是steam)本地调试前端资源本地调试其实挺简单的,就是把线上使用的资源代理到本地资源。由于现在一般都会使用CDN来承载这些资源(如果你们公司不用CDN,请找你们老板拨点经费买个CDN服务吧),大致上也就是几个步骤:把CDN的域名通过host指向本地在本地80(HTTP)或443(HTTPS)端口开启对应的代理服务,根据请求查找本地资源返回如果涉及需要开启多个服务,将各个服务开在不同的端口后在80或443端口加个nginx层做转发目前部门里面用的是Koa+中间件实现了这里面所有的内容。Koa现在也2.0了,使用新版本的Promise的co,用起来还是很爽的如果一旦涉及到本地模板的调试,就很蛋疼了,基本上是模拟数据,这里懒得扯了。自动化测试对于自动化测试这一块,在学生时代一直觉得测试麻烦,没啥收益。但实际上自动化测试对于开发效率提升很大。之前参与部门统一构建工具的改造,有任何修改就跑一遍测试用例和代码覆盖率,效率非常高,还非常容易形成沉淀,一旦有bug,就把bug会发生的场景也做成一个测试用例,方便后人接手。而且把代码接入像travis这样的持续集成平台后,代码质量更有保证了,任何一次push都会自动触发测试,即便是pull request里的代码也可以保证质量。现在写代码覆盖率低于90%就觉得各种不爽,一定要提到90%以上。对于Node.js的模块,测试很方便,除了命令行工具可能需要加像sinon这样的模块来监听stdio以外,其他的基本上都能直接在代码中模拟环境。由于个人写Node.js代码喜欢拆分的很细,每个逻辑单元都用co、curry做包装,所以特别喜欢使用mocha+should,should 8.0+直接支持Promise,爽歪歪,对于浏览器里跑的代码,测试和覆盖率就比较麻烦了,首先模拟环境比较蛋疼,大致上3种方案:构建一个测试页面,人肉直接到虚拟机上开各种浏览器跑测试页面(比如f2etest),这个问题就是不好持续化集成,人肉工作较多使用phantomjs构建一个伪造的浏览器跑单元测试,大致上就是先用gulp-istanbul给代码打点,然后拿mocha-phantomjs跑包含测试用例的页面,最后通过hook拿到结果用istanbul生成可视化的覆盖率页面,蛋疼就是phantomjs毕竟是Qt的webkit,不是真实环境,phantomjs也是各种坑通过karma调用本机各种浏览器进行测试,这个现在还没玩的很6,还在研究中。还是有不少问题没解决,毕竟用的mac,去哪儿找IE 8,囧,更别说移动端那么多机型对于测试个人一直坚持一个观点:基于投入产出比来做测试。由于维护测试用例也是一大笔开销(毕竟没有多少测试会专门帮前端写业务测试用例,而前端使用的流程自动化工具更是没有测试参与了)对于像基础组件啊,基础模型啊之类的不常变更且复用较多的部分,可以考虑去写测试用例来保证质量,但对于迭代较快的业务逻辑以及生存时间不长的活动页面之类的就别花时间写测试用例了,维护测试用例的时间大了去了,不如喝杯茶冷静下让QA他们去测吧。学习这一年由于转职社畜各种忙的要死,导致没有多少时间静下心来看书了,文章也写得少了。于是更倾向于每天水一水(中间一大段空白因为3DS到货了,鏖战怪物猎人4G,这游戏真特么好玩),写一些脚手架啊、组件啊、小工具啊啥的。之前觉得一些开源的logger不好用,就自己写了个,之前负责一个业务变更比较多总是打tag发布,就写了个自动发布程序,它会在发布前做一些校验防止我没有commit或者没有add之类的。还有像React组件自动化提取props做文档弄了个,以及对应的配套的markdown内容段自动更新gulp插件。对应还有一些less依赖关系解析啥的弄了,然后有个需求要在模块更新时自动输出最新更新有哪些变动于是有了,然后还有几个自己弄得带单元测试、代码覆盖率测试、travis持续集成、eslint等的脚手架:React组件脚手架, Node模块脚手架, gulp插件脚手架, 命令行工具脚手架。写这些玩意过程中学到了不少Node.js的姿势,虽然离一个真正的Node.js工程师差的太远另外一点是入职后全面从sublime切到atom了,python苦手还是伤不起,咱用atom有插件需求找不到自己写一个,比如之前给xtemplate模板写了个atom语法高亮和snippet插件,感觉比之前用sublime爽多了还花了点钱买了这个软件,用来放一些代码片段超好用,我在里面放了不少自己平常写的一些小的工具函数,比如clone啊,unique啊,param和unparam啊这种,需要的时候就搜一下复制出来,方便快捷生活今年玩的游戏不多,因为3DS到货了,先说几个3DS游戏:怪物猎人,沉迷了一段时间,甚至一整天一整天的和各种龙做斗争。现在怪物猎人累计游戏时间应该有250小时了...口袋妖怪X:硬着头皮啃英文,撸宠系统好棒,每天撸一撸自己的宠,看到他们开心的样子自己也开心。通了一周目就懒得啃英文了牧场

我要回帖

更多关于 怎么做自己想做的梦 的文章

 

随机推荐