关于我的口才

之前看曹政的书《你凭什么做好互联网》,里面关于技术人员有一个描述

大部分技术人员分享时候的盲区,自说自话,完全不考虑受众

这里摘取的不全面,不过大体意思是有的,就是很多技术人员会有的糟糕的口才,而我,正巧,也是其中一员。

不同于写作,演讲、分享、辩论,这些口语形式的思想表述,需要你在很短的时间同时掌控好思维和舌头,流畅的展现你的思想,没有编辑的概念。

而我总是想的太快,舌头跟不上,说出来的话和自己真实想表达的意思要打个折。大信息量的涌入使得舌头的性能降低,说出来的话还会有点口齿不清。

很早就意识到这个问题,可是却难有改观。

比如这次的一个活动页开发

因为业务逻辑和交互复杂的不输于一般的单页面应用,所以一改以往收集DOM操作为一个动作的抽象方式,这次用了MVVM架构的一些数据驱动视图的思路,同时还基于Redux的思想做了数据的管理。一番调整之后,自己还是有点小得意的,DOM操作和VM的完美结合。

再说点尴尬的背景,这个活动分移动和PC两个页面,功能一样,UI大体也是类似,但是却由我和同事小磊分别开发……

我知道这是一件很没脸说的事情,两个有经验的前端做了这样没动脑子的决定。虽说我是后加入这个活动开发的,可是在参与进来的时候,花一两小时好好熟悉一下项目,然后再一起讨论分工合作是一个完全合理而且必要的流程。

继续说前面的调整,因为那点小创意,所以我在开发进度上有点领先(UI和很多前期代码是直接从小磊那边拷贝过来的)。小磊那边在管理UI上的数据变动这块遇到了一些问题,业务逻辑有点复杂,各种弹窗,还有多个模块之间的数据通信,纯DOM操作对于掌控全局变化就有点吃力。

这时候为了进度,我尝试跟小磊介绍一下我的处理问题的思路。我想跟他说数据驱动,订阅者,MVVM,React,Redux……

是的,面对一个分享将会带来的荣耀,我一瞬间就想了这么多。打开我的代码,开始了介绍:“这个活动很复杂,所以咱们得用数据驱动的方式开发,你看我这个dataCenter,我把数据都放这里面用getter和action维护,然后action里面发布事件,再看这块,main这块,对数据更新做了响应。再看这块,抽奖回调里面调用action来更新数据。还不错吧,其实这个是借鉴redux里面的思想,store”。话没说完,小磊同志不耐烦了:“越说越懵,所以我这个问题该怎么解决?”

尬了一下,小磊向来耿直。

“那就先不看我这个实现,你这现在是哪有问题了”。是的,我还没弄清楚具体哪出问题了。

后面仔细看了看小磊的代码,指出了一些模版里面基于数据的逻辑判断问题,再给了一个全量更新列表模版(数据量少,就几条)的思路,总算是博得一句“哦,原来这样啊”

一点总结

伤痛中总是伴随着成长,不好好想想说出去的话,早晚是会遭殃。

在这件事上总算对自己糟糕的口才又有一次认识,也知道区分在什么场景下做技术分享,什么场景下是bugFix。做技术分享要精要细,bugFix就不要废话太多,讲究快准狠,以解决问题为只要目的。

PS:值得安慰的事第二天一上班,小磊就过来说:“我昨天晚上仔细想了想,你的那个dataCenter真是太有必要了”

前端同学关于活动页面设计的一些建议

这个是在一次加班加点完成活动之后,发给设计同学的一个建议,放上来,给大家也看看

以下是原文:

建议的目的:主要是希望通过在设计上的调整,能让前端这边轻松快速的完成活动页的切图部分。一个活动,特别是现在的移动端活动,前端的很多精力都会花费在切图上。

一些事先定义:

前端这边切页面,特别是活动页面,对于一些描述性的不会变动的内容,会切成图片。

对于一些有交互效果,内容会随着时间或者用户操作变化的内容,比如排行榜,比如登录和非登录状态的切换展示区域,比如一些弹出层,是需要切的非常细致。这样才能适应需求的灵活性。

所以希望设计同学们在设计的时候,千万留意则个。在不会变动的区域,可以任意发挥。但是在会变动的区域,则尽量能考虑一下下面的建议。

后面的内容区域特指内容会变动的部分。

背景

背景这块,在页面顶部可以自由发挥,到时候前端直接横切就可以。但是到内容区域之后,就需要注意了。

第一个是,尽量让变动区域和非变动区域之间,没有图像上的连接。因为背景的居中和内容的居中,浏览器的计算方式会有些不一样。如果变动区域和非变动区域必须严密对齐才能好看,就会比较麻烦。

第二个是:在内容区域的左右背景,最好能不要有超出内容区宽度范围的装饰性的图案,这个是可以有,不过切起来麻烦,还望手下留情。

第三个:整个内容区域的背景,如果不是效果需要,尽量保证颜色是一致的,不要渐变也不要分块的颜色。这样就可以不用切背景图,直接用css写一个颜色值实现。

字体

好看的字体是好看,不过在内容区域,文字是直接写上去而不是却的图片。这个时候,就不能肆意的使用字体。

设计的系统上会安装几百个字体。可是大部分的用户的系统上并没有。如果前端按照psd上面的要求设置了一个生僻的字体,在用户那边的效果就没法和设计稿保持一致,甚至会有很大偏差。

微软雅黑,tahoma,arial,Hiragino Sans GB,宋体

这个是前端这边,目前设置的字体展示优先级。设计同学在做内容区这块的时候,字体尽量就用上面这几种。因为他们的安装量比较大,可以保证在大部分用户的浏览器上的展示效果。

按钮

按钮这块,主要的也是字体问题,尽量不要字体的阴影和描边。

另外就是按钮的风格和尺寸,尽量统一,这样前端就可以只切一个按钮然后导出应用。按钮的背景,如果可以的话,就不要渐变色和阴影。这样前端图片都不用切,直接用css就能画出相同效果的按钮了。

移动端设计要注意的一些问题

这块指的web的移动端。原生的可能会有不一样的地方

设计稿的尺寸750

移动端,因为我们的框架的问题,设计的时候最好用750px作为宽度,这样我们好进行自适应的配置。

设计风格简洁

移动端,跟PC的设计有些不一样的地方就是,它的布局不是固定的,会随着用户屏幕的不同,做对应的调整,也就是自适应。

在自适应这块,用css来做比较好,用图片就比较麻烦。因为图片的放大缩小,有些时候不是那么尽如人意的。所以在移动端的活动页面,在内容区域,除非是奖品图,头像等内容性质的图,否则一些装饰性的内容,尽量简洁一点,这样前端就好用css来实现了

布局,多排,不要多列

自适应面对的主要问题就是宽度的变化。而宽度影响最大的就是多列内容的布局。

为了能快速进行活动页面的开发,设计同学在设计活动页面的时候,就尽量减少内容的分列,改列为排。

这样处理起来就比较轻松了。

关于数据备份

讲述了笔者悲催的数据恢复的过程以及一些痛过之后对数据备份方面的经验

凄惨的经历

一杯水引发的惨案

今天在公司上班,因为干活比较用心,喝水的时候也盯着电脑,喝完之后就随便把杯子放笔记本边上,结果一个不小心,水就撒了一部分到键盘上。当时没怎么在意,随便拿个餐巾纸吸掉表面的水就继续干活,顺便跟个妹子聊天。

结果没两分钟,开始不对劲了,在编辑器里面,一直在触发换行,换别的软件获取焦点之后也是这样——原来是Enter键出毛病了,连按了几次之后,Enter事件不再被触发,但是按Enter键也没得效果。这个时候知道事情大条了,赶紧找公司的网管救命。

网管知道经过之后,一脸佩服的看着我,一般人电脑进水之后都是立马断电源拔电池的,我倒好,还这么悠闲的跟妹子聊天…..

检查的结果很不理想——就是网管也不知道是哪出问题了,但是帮我把键盘进水的键拔出来仔细擦干了藏在内里的水,然后告诉我:去维修点修吧,要是还在保修期,千万别说是进水了,不在维修期待话,破费一笔是难免的。

当时我对破费一笔的概念还停留在两三百多境界。

辛酸的维修过程

公司在中关村,经过网管指点,找维修点倒也简单,在鼎好电子商城的地下二层,A001就是(话说对于我后来修电脑的地方到底是不是联想到官方维修店,我是有点怀疑的,因为我找到了A005,A004,按照摊位的延续,到那家店也差不多是A001,可是偏偏那个店没在店名上挂个联想的名字或者logo,也没有牌子表明序号)。

在维修点,维修人员弄个仪器左测测右弄弄。在那个时候,我的心情还是比较悠闲的,因为两三百块钱虽然很心疼,但还是能接受的,我就在他们检测的时候在一边拿手机看小说去了。最后,给出个答案——硬盘损坏

话说这个解释一出来,我挺惊讶的,报修的时候按照网管的指点,我没说是电脑进水而是说突然的就这么开不了机,反正怎么显得自己小白就怎么说,这样保修的时候可以避免自身的责任。可是硬盘损坏,这个跟进水貌似没有什么关联。我有点怀疑对方是不是想坑我的钱,就拿出一个杀手锏:Enter键不能用——这个总不能也跟硬盘坏联系上吧。可是对方又说他们也发现这个问题了,因为boot的时候没法按Enter键进入子菜单。可是在把硬盘移除之后,Enter键就能使用。这我就没解了,而且对方也保证了,要是最后换了硬盘之后,Enter键也没用就是他们的责任。这个时候,只能暂时承认是硬盘坏了,等着他们报价维修了。

硬盘损坏,换硬盘,320G的400,500G的500,这个价格一出,我就感觉事情开始超出自己能够掌控的范围了,开始不淡定了。可是后面,最最无奈的一个破财点出来了——数据恢复。据他们的说法是:硬盘磁道坏了,一般的方式无法通过数据线连接到机器上识别硬盘,然后用软件做数据恢复,而是在一个无尘的环境里面,拆开硬盘,把坏的硬盘上面磁盘的内容查找对应分区和文件夹复制到一个新的硬盘里面。这样做的手续费是600,然后推荐换个500G的硬盘(这个也是我想的,因为320G的的确有点小).加起来总共的费用1100.

这个时候,我已经开始有点想崩溃了,一杯水==>1100大洋,这样的一个因果实在是太超出意料。如果不做数据恢复的话,价格倒是便宜,可是电脑里面的确有很多对我来说很重要的数据,一些公司的进行了很久的项目,一些自己平时的技术积累,还有收集了放在桌面上一个妹子发给我的很多文件。这些在我心里的价格是很珍贵的,所以我不得不痛苦的承认,我得挨宰!

回公司找同事准备借个1200,路上维修点的人又打来电话说可以用一种克隆的方式,把硬盘里面的数据都拷贝到另外一个硬盘上面,然后价格是800.因为是在电话里面,一时说不清,我就跟对方说等我过去再说,可是让同事取钱的时候,还是让他取了1500,已经预测到这笔另加的钱应该是避免不了了。

再回到维修点,对方说用一个跟坏的磁盘一模一样大小的磁盘,在无尘的环境(又是无尘,无尘你妹啊)里把坏的磁盘的数据完全的拷贝到新磁盘上面。这样的做法一来恢复的数据很多,不用考虑专门恢复哪个文件夹里面的数据了,二来时间上也很快速(因为手上接了个任务,已经承诺了要明后两天完成,所以要求他们尽量快的修复电脑)。看起来这方法的确很好,可是价格不便宜(800),而且有个缺点,C盘里面的东西没法被恢复。这就意味着我桌面,我的文档,等很多地方的文件没法恢复了,特别是那个妹子发的那些文件…可是从时间和恢复的数据量上面来看,这又是唯一解。

最终的结果是,我倒了一杯水在键盘上,给了别人1200块钱,换了个除C盘没了和F,G,H变成E,F,G的新的320G的磁盘,64位的win8变成64位的win7.仅此而已,一切都和原先一样…..

回了公司,来不及哀悼,开始了悲催的加班节奏….

最重要的总结

数据的重要性

在维修的时候,和维修人员扯淡的时候,他的一句话让我很有感触:硬盘有价,数据无价,的确是这样,电脑上面任何一个部件坏了,换个一样或者更优的部件就能正常工作甚至比之前工作的更好。可是数据一旦没有了就真心没有了,不管那个是你心仪女子的照片,是你苦苦收集的一张张桌面背景,一首首高品质的好歌或者一部部的经典影片,也不管那个是你辛苦工作几个月甚至几年的论文或者程序。失去了就是失去了。所以要注意数据的备份

如何进行数据备份

作为一个到最后花了这么多钱做数据恢复的我,说这个话题也许有点不着调,但是我的确在这个方面有着一定的经验,只是之前是明白如何做却没有认识到这样做的重要性,最后就因为麻烦放弃了坚持。

数据的备份要考虑到下面几个问题:

  • 备份的频率
  • 备份的便捷性
  • 备份点的安全性
  • 备份点的稳定性

常见的备份方法就我所知有两种:本地备份(比如移动硬盘),云备份(各种网盘,Dropbox,Google Drive,金山快盘,百度云盘,115网盘)

本地备份:这个备份点的安全性和稳定性,只要买个好的移动硬盘(此处以移动硬盘代表本地备份的备份点),平时注意一下移动硬盘的放置地点,设置好强度足够的密码就能保证。但是如果数据是那种更新比较频繁的,通过本地备份,每次手动的拷贝的话,那么频率和便捷性就是一个相斥的方向了。所以本地备份适合那些变动比较少的,比如一些好的电影,有纪念意义的照片等数据

云备份:有过相关经验的人都知道,只要开着个软件,就能很实时的将你的增删改的文件保存到云服务器上,便捷性和频率上都无可挑剔,只是如果数据量比较大,可能软件会占用电脑一定的内存和cpu(我当初就是因为这个原因没能坚持一直实时开着软件备份)。在稳定性方面,因为好的云盘都是有多个分布在各地的服务器保存着多份数据的备份。哪怕有一台服务器挂了也不影响数据的完整性。所以稳定性上面可以有保障。但是在安全性方面,安全指的是数据不被他包括云盘服务提供商自身)窃取或查看,这一点,就没法保证。因为数据在别人那儿,你没法监督他的操作。建议的方式是国内和国外的云盘服务交叉使用。国外的公司还是有一些素质的,所以一些重要的,机密程度不是很高的文件,比如公司的一些开发中的项目可以考虑使用国外的云盘。只要你的公司不是国内的顶级公司,那么你的文件就算真的被对方查看了,也没法带给对方什么商业价值。至于其他的一些个人的非私密的摄影摄像文件,自己写的小程序等等就可以放心的放在同步速度比较快而且可以方便的分享给不能翻墙的国内朋友的国内网盘。

对于那些公司的机密文件,特别是后台的一些文件,任何移动硬盘或者云盘都是不靠谱的,应该的做法是每个公司自己建立好一个svn或者git服务器,而作为使用者的我们,应该多svn up和git commit。保证自己的文件尽量及时的同步到服务器上面。

好了,以上就是本人的一些比较罗嗦的经验了。(完)

要明白自己在干什么

别以为埋头干活就是好的,你得时时刻刻清清楚楚的知道自己在干什么,为什么这样干,这样干是为了什么,怎样才能干的更好

今天给公司的编辑们讲解CSS相关的知识,分两节课,上上周讲过一次,简单的介绍了css的引用,选择器,优先级能相关的概念。而今天这节课就专注于css里面比较核心的盒模型和定位同时介绍一下伪类。

很入神的讲到一半的时候,偶然抬头,没几个人在听,有睡眼朦胧的,有互相打趣说悄悄话的,有45度仰望天空出神的。我看了一眼,让后继续盯着屏幕自说自话。

分界线

为什么我要这样骗人骗己的继续讲下去?

我为了这节课准备了前前后后有5、6个小时,真的就只是为了完成公司交代的任务——讲课?

为什么大家会不愿意听?

讲完课之后,听众们收获了什么,我收获了什么?

没有答案

只是警醒自己,别以为埋头干活就是好的,你得时时刻刻清清楚楚的知道自己在干什么,为什么这样干,这样干是为了什么,怎样才能干的更好