CSS森林

我晕,样式没加载到,博主又玩祼奔??

邀您参加“裸奔”

在你对CSS华丽的效果着迷时,别忘了在华丽外表下面,最原始的文本。

邀您参与每年4月9号的“CSS裸奔节”,详情请登陆naked.webrebuild.org

文章列表

页面重构中的设计模式

发表于 [31 日 之前]

查了下最开始的创建日期,竟然是2011年12月19日,这文章断断续续写了快3年,终于了算比较完整了,但可能相对还是写得有些简单了,看不懂的同学欢迎给我留言,我尽量做补充。

原本是以为写成书的,所以看起来好像是有点那样,不过问了下相关人仕,好像至少也要5W字,而对于我的表达能力来说,硬要凑字数感觉还蛮难的,就不折腾了。

本地下载PDF

以前写过的系列文章《 前言——页面重构中的设计模式 》,可以帮助理解,但需要注意的是,因为这期间有些想法上的变法,可能一些细节会不太一样,怎么办?当然以最新的为准咯。

...
[阅读全文]

评论也精彩 [8]


人生就是一次次的被挑战

发表于 [152 日 之前]

看到题目中的『被』字,有些人脑子里会出现一句话『主动性不足,我们应该要主动去迎接挑战』。可惜你不是什么时候都能清楚的知道挑战是什么。

在微信朋友圈转了个小故事:

小鸡问母鸡 :“妈妈,今天可否不用下蛋,带我出去玩啊”?
母鸡道:“不行的,我要工作”。
“可你已经下了许多的蛋了”小鸡问。
母鸡意味深长的对小鸡说:一天一个蛋,菜刀靠边站,
孩子你要记住:
存在是因为价值创造,淘汰是因为价值丧失!
过去的价值不代表未来的地位,所以每天都要努力!

相信引起了很多人的思考,是的,我们每天都需要产生价值,才不会被淘汰。可就有个朋友回了一句:

如果主人不想吃蛋了呢?

对了,这种感觉就是『被挑战』。作为一只母鸡,除了生蛋还能做什么呢?

参加过通道评审的同学,这种感受应该是最能体会的。也许这群母鸡里有那么几只一天能生两只蛋,那么这几只会成为高级母鸡,它们不单需要每天生两只蛋,还要发挥影响力,让更多的母鸡也能生出两只蛋。在下一次晋升的时候,评委就会问,『你上次晋升是因为每天能生两个蛋,这次有什么不同的吗?』『我总结出了如何生出两个蛋的方法论,并给其它母鸡学习,成功培养了3只会生两只蛋的母鸡。』……可是,再下一次晋升的时候,评委会问,『你除了生蛋,还会什么?』。在评委眼里,通常只是考虑这里是否需要一只母鸡,而不是一只母鸡除了下蛋还能干嘛,于是很多的母鸡就被挑战了。而做为母鸡,除了生蛋,也要微创新,也许以后哪天会出现水果味的蛋,问题是,敢吃吗?

开个玩笑。鸡蛋看起来很简单的一个东西,却成就了达芬奇,所以回到专业上,重构除了还原视觉稿,还能干嘛?提高页面性能,把控交互、视觉的还原,兼容多个终端的展现,开发效率工具……这几年发展出来的有好多,甚至感觉原先一直在讲的『视觉稿还原』已经不足以说明重构的工作内容,现在我们有一个更高的要求——设计理念还原。

相信也会有同学跟我一样想问,『设计稿我懂,但设计理念是啥?』(思考中……)

评论也精彩 [8]


关于团队管理的一点思考

发表于 [193 日 之前]

2013年末,总结下这一年所思所感。

带财付通重构组已经三年,但感觉好像是上周的事一样。回看这三年,自己的成长主要还是在团队管理方面,从一开始的一知半解到现在的若有所思,一点点实践着曾经的想法。团队管理的经验不好做分享,毕竟每个团队的环境不同、成员特点不同,除了用对了方法,还需要用对了人。

『铁打的营盘,流水的兵』,这句话在大约09年开始,就时常会听到,意思大概就是一个如钢铁般的营地,是由一批批如流水般更替的士兵打造出来的。很多时候说这句话会有点伤感,有点『一将功成万骨枯』的感觉,不过渐渐的我有了新的体会,为什么会觉得伤感?因为关注的点不同,之前没有带团队,所以更多的关注到了后半句的『流水的兵』,自己身为一个兵的感慨;而如果把关注点放到前半句『铁打的营盘』时,就完全一个新的思路,而这个『营盘』,其实就是现在的『团队』。

不再伤感『流水的兵』,我开始思考如何打造『铁打的营盘』。虽然关注点放到了『营盘』,但『兵』却是『营盘』真正的基石,所以执行层的关注点还是应该在『兵』身上。于是,我的管理思路大体上就是『营造高效、稳定的成长环境;量化行为结果;沉淀可继承的经验』

营造高效、稳定的成长环境

团队的成长离不开成员的成长,一个稳定的学习环境对于成员的成长有很大的帮助,也有不少的成员是以这样的心态在工作的,特别是还没有太多工作经验的毕业生。满足成员成长的需求,会让团队富有激情。

氛围建设

首先要确定的是,要营造一个怎样的氛围,公平、好学、积极、团结等等,你能想到很多正面的词,都是我们希望团队俱备的,但实际情况下可能并不太容易做到。即要鼓励大家去做,又要提供相对应的环境和机会,比如鼓励团队凝聚力,可以有定期的团建,如每月定期的聚餐;比如鼓励分享,就需要为大家提供分享的舞台;比如鼓励公平,就需要对所有可能引起不公平的行为进行处罚。总之,不能光说不练。

流程建设

工作环境中,大部分是要跟流程打交道的,制作流程、交接流程、发布流程等等各种各样的流程,一个好的流程对于效率的提升是非常明显的。但流程的制定者一般都不完全是流程的受益者,对于基层的执行人员来说,大部分同学都没有权限或没有够的影响力去改变流程,让执行者真正受益。所以这个时候团队的Leader就应该更加的关注流程的优化,为执行人争取更好的工作流程。

量化行为结果

『效率、质量、专业度』是技术团队最关注的三个方面,行为的量化也是为了验证这三个方面的指标是否健康。效率方面主要是对工作计划的执行程度,是否能按计划完成;质量则是在计划时间内,输出物是否符合要求;专业度主要是在主动性和规范化方面的体现。

规范化

要量化行为,就需要有一定的规范,规范的种类也有很多,平时大家关注的大多是在代码规范这块,但其实还有一块的内容需要规范化,那就是行为的规范。行为的规范能体现出团队的专业度,比如你进入一家店,在服务员未开口之前,你可能已经有了一个初步的评价,像是店面干净的程度、店员着装的情况、当你进门时有没有店员马上关注到有客人而做出反应等等,而这些都会形成你对这家店是否可信赖的第一印象。同样,主动热情的跟进需求,是每个需求方都希望看到的,而服务方如果能在代码规范的基础上,提供行为的规范指导,对于团队整体的满意度将会有很大的帮助。可能会觉得太刻意了,但专业与否,不正是因为这些小细节给人的感受吗?其实身边不乏这类案例,比如酒店的服务员,当客人进门是要讲什么,要做什么动作等等,都是有要求的;如电话客服人员,接电话第一句要讲什么,不管客户情绪多大,都必须耐心听完等等。

沉淀可继承的经验

回到『兵』的问题,一个团队的打造,不会是从始至终都是同一群人,会有新人加入,也会有老人离开,这也是为什么称为『流水的兵』。当然这里面也有很大部分是时间的关系,一个团队的成长周期可能比个人的成长周期要长得多,所以可继承的经验对于团队来说就十分的重要了。

工具化、自动化

规范有执行精度的风险,可能中间哪一环关注不够,就会引起一系列的问题,而人的状态是会有波动的,特别是长期处理单一问题时,很容易因为精神疲劳而松懈。自动化工具始终如一的按设置执行,正好可以解决这个问题。把重复的工作交给程序去去完成,把复杂的工作交给工具去完成,即可以提高效率,又减少人为的因素引起的规范执行不到位问题。把人放到更多需要创造力的工作上。

文档

除了工具化,文档的沉淀也十分的必要。随着时间的推移,成员的变动等等原因,有一些原本很简单的问题会渐渐变得复杂。可能因为中间某一时间的特殊原因,做了非常规的操作,可能不同的人修改过其中的内容等等,如果没有相关的文档沉淀下来,到后面将没人敢去修改这段代码,即使已经出现问题。

以上是近两年团队管理上的一点思考,执行上的细节这里就不展开了,也没有太多特别的地方,只有两个字『坚持』。

评论也精彩 [6]


Execl函数中的固定单元格

发表于 [255 日 之前]

经常用Execl统计一些数据,很好很强大,也很复杂,高级的功能用不上,有几个场景是经常会用到的,比如考勤。

原来没有这篇的,不过今天发现了一个很方便的技巧,其实网上能找到,只是一直不知道有这个功能,也就不知道搜索的关键字。假设原始数据如下表:

A B C
1 人员 休假类型 时间
2 userA 年假 2
3 userB 事假 0.5
4 userA 年假 1.5
2 userA 事假 1

时常会遇到这样的需求,统计对应人的某一个状态的数量。

A B C D
1 人员 年假 事假 总次数
2 userA
3 userB

这个时候可以使用『COUNTIFS』函数,像这样: =COUNTIFS(检查范围1,条件1,检查范围2,条件2) 比如B2单元格是要统计userA这个人休了多少次年假,可以在B2单元格里这样写:


=COUNTIFS(原始数据!A:A,A1,原始数据!B:B,B1)

这样就完成了一个单元格的定义。问题从这里才开始,填充一个单元格很容易,后面还有很多呢。用过execl的同学应该知道,有个很方便的功能,选中单元格之后右下角会有一个控制点,直接拖动可以快速智能填充,我们来试下,比如拖动填充了B3单元格,内容如下:


=COUNTIFS(原始数据!A:A,A2,原始数据!B:B,B2)

再填充C2单元格,内容如下:


=COUNTIFS(原始数据!B:B,B1,原始数据!C:C,C1)

很明显并不是我们希望的值。我的方法比在execl上改要稍稍高效一点,就是用文本编辑器先写好再复制粘贴到对应的单元格里:


=COUNTIFS(原始数据!A:A,A1,原始数据!B:B,B1) //B2
=COUNTIFS(原始数据!A:A,A2,原始数据!B:B,B1) //B3
=SUM(B2,B3) //B4
=COUNTIFS(原始数据!A:A,A1,原始数据!B:B,C1) //C2
=COUNTIFS(原始数据!A:A,A2,原始数据!B:B,C1) //C3
=SUM(C2,C3) //C4

原本已经觉得很不错了,但还是不太方便,本着一懒到底的精神,甚至有想说写一个小工具。直到今天,在用Numbers的时候,发现它在定义函数的时候可以选『保留行』或『保留列』,可以很方便的把函数中的参数固定:

Numbers函数编辑

这样就不会因为自动填充而被改变了,才知道原来可以这样简单,只是因为之前一直不知道。于是又找了下execl下有没类似的东西,结果在mac版的execl下有同样的功能,不过体验差了很多:

mac execl函数编辑

windows版的没有找到,但功能是支持的,同样只需要在要保留的行或列前面加上一个美元符号 $ 即可。于是只要这样:


=COUNTIFS(原始数据!$A:$A,$A1,原始数据!$B:$B,B$1)

然后使用自动填充的功能就可以了,简单快捷,再也不用编辑器一个个改了,感激涕零。

评论也精彩


较早的