使用SVN hook 让前端BUG少一点

你有没有发生过,发布的代码中含有 console ,然后在 IE 下报错?或者代码中有调试用的alert,用户点击某个东西后,就会弹出来?

这种错误 ,我相信前端开发者或多或少都会犯,要避免这类的BUG ,需要非常非常小心,但是人总会有疏忽的时候,这样的事情交给机器办比较合适,因为机器会按照指定的规则来检查你提交的代码,每次都完全按照规则来。

版本管理软件一般都有预置的hook,我们可以写一些脚本在我们对代码仓库做操作的时候来执行,这里,我将给出一个 TortoiseSVN 可以使用的 client side hook 脚本来做这种检测。

这个是目前我在实际生产环境使用过一段时间的,因为我们这里使用的 SVN 做版本控制,SVN 标准只需要 server 端实现 hook script,客户端不需要,由于大公司server端不那么容易去更改,恰巧 TortoiseSVN 实现了 clientside hook ,那就用这个来实现吧。

按照官方文档给的 pre commit hook script 修改而来,使用前,先要检查你的windows 是否用 WScript 关联了 .js 文件,绝大部分前端开发人员都关联了某个编辑器吧。

检测方法:随便新建一个 js 文件,里面写上”WScript.Echo(“Hello World!”);”,双击看能不能运行,如果你关联了编辑器,就肯定不行了,如果弹出个窗口“hello world”,那就可以跳过这一节了。

恢复windows 默认 .js 文件关联程序的方法:修改注册表,[HKEY_CLASSES_ROOT\.js] 项下的那个默认值改成 “JSFile”。修改完后看看刚才的测试文件是否正常运行。

然后,在本地磁盘任意位置新建 .js 文件,保存此代码:

/**
* author: Allen.M
* blog: http://blog.allenm.me
* date: 2010-12-13
* 根据 http://tortoisesvn.googlecode.com/svn/trunk/contrib/hook-scripts/client-side/PreCommit.js.tmpl 修改
* this script is a local pre-commit hook script.
*/
var objArgs,num;

objArgs = WScript.Arguments;
num = objArgs.length;
if (num != 4)
{
    WScript.Echo("Usage: [CScript | WScript] PreCommit.js path/to/pathsfile depth path/to/messagefile path/to/CWD ");
    WScript.Quit(1);
}

var paths = readPaths(objArgs(0));
var message = "list of paths selected for commit:\n";
var pattern = /^\s*(?!\/\/)(alert|console)/;
var haveWarning = false;
var i = 0;
while (i < paths.length)
{
	message = message + paths[i] + "\n";

	var content = readPaths(paths[i]);

	for(var m = 0, l = content.length; m < l; m++){
		if(pattern.test(content[m])){
			haveWarning = true;
			message = message + 'warning: ' + paths[i] + ' line ' + (m+1) + ' have "alert" or "console" \n';
		}
	}
	i = i + 1;
}
message = message + "path of message file is: " + objArgs(2) + "\n";

if(haveWarning){
	WScript.Echo(message);
}
WScript.Quit(0);

function readPaths(path)
{
	var retPaths = new Array();
	var fs = new ActiveXObject("Scripting.FileSystemObject");
	if (fs.FileExists(path))
	{
		var a = fs.OpenTextFile(path, 1, false);
		var i = 0;
		while (!a.AtEndOfStream)
		{
			var line = a.ReadLine();
			retPaths[i] = line;
			i = i + 1;
		}
		a.Close();
	}
	return retPaths;
}

然后按照下图所示配置脚本。

需要注意的是,指定脚本文件的地方,一定要在前面加上WScript,否则你 ci 代码的时候会得到一个出错信息。

此脚本不干涉你CI代码,即使有 alert ,console 等关键字,也只会给出个 warning ,代码还是可以 ci 成功,当出现 warning 的时候,你需要做的是检查代码是不是有问题。 //console 这样被注释掉的代码是被忽略的。另外你的代码要使用 windows格式的换行符,否则会有检测失败的情况。

检测代码的关键代码是中间的那行正则,你可以修改为适合你的。

warning 是这种形式显示的,如果无warning 信息,则会安安静静的。

发表在 javascript | 标签为 , , | 留下评论

阿里巴巴中国站大力招聘前端工程师以及视觉、交互

欢迎各位自荐或者推荐,简历请发送到 i [at] allenm.me, 下面是各职位的 JD

地点:杭州

前端开发工程师:

We build the web,
making the world and ideas in our dream come true.

职位描述:
1、根据产品原型开发前端代码, 并配合我们的后端工程师完成后端数据的接口;
2、解决主流浏览器及其不同版本之间的兼容性问题;
3、优化网站的前端性能, 保证网站的高质高速;
职位要求:
1、熟悉掌握各种Web前端技术基础: (x)HTML、CSS、JavaScript、ActionScript等, 有JavaScript|| ActionScript高级应用经验的尤佳;
2、理解Web标准,对可用性、可访问性等相关知识有实际的了解和实践经验;
3、了解一门后端语言(如Java、PHP、C++、Python、Ruby), 并能将其和前端语言进行配合;
4、个性乐观开朗, 思维逻辑性强, 善于和各种背景的人合作;
5、专业不限,其中计算机、数学、自动化等相关专业优先考虑;
6、富有创业精神, 充满激情, 乐于接受挑战.

在以上要求基础上,有以下任意一点将优先考虑:
1、参加过开源项目
2、喜欢混迹各大技术社区,并有自己的声音
3、互联网重度使用者
4、了解相关前沿技术
如果你有 twitter, facebook, 个人blog 等一些社会化的东东,麻烦告知我们,另外可以告诉我们为什么要成为一名前端攻城师
如果你想更多的了解我们,可以登陆我们UED的博客:www.aliued.cn

交互设计师:

职位描述:

  • 参与网站产品前期的规划构思,完善产品概念。
  • 根据产品需求制定交互方案,输出产品原型和设计说明文档。
  • 对产品进行持续的设计优化,提升用户体验。

职位要求:

  • Nice,open,有同理心,擅于换位思考,对新鲜事物充满好奇,擅于发现。
  • 对交互和用户体验设计有深刻理解,具备自己完整的知识和理论体系,掌握基本的UED设计方法。
  • 2年以上互联网体验设计经验,熟悉网站设计流程,至少独立完成过一个大型完整项目中的交互设计工作。
  • 具备较强的逻辑思维能力和表达沟通能力。擅于说服和达成共识。
  • 丰富的知识和阅历,对用户习惯有研究,具备一定的设计前瞻性。一定的视觉设计和html技能。
  • 工业设计、计算机、视觉传达、心理学、信息学相关背景;资深网虫。

视觉设计师:

职位描述:

  • 负责网站产品界面的视觉设计及产品的在线推广设计工作。
  • 负责产品的情感需求分析,创建原型。和产品开发团队共同创建界面工作。
  • 实现界面的视觉和美术设计方面的设计,如图标、主题、背景等。制定产品用户界面的风格及标准。
  • 参与产品在线推广活动的策划与设计实现工作。
  • 吸引用户使用产品。

职位要求:

  • 本科以上学历,美术,视觉传达,工业设计相关专业,2年互联网工作经验。
  • 对用户界面设计,交互设计相关工作有浓厚兴趣,富于团队精神。
  • 熟悉界面设计的流程方法,出色的设计语言表达能力,优秀的创新与沟通协调能力。
  • 精通photoshop、illustrator、flash、dreamweaver等常用制作工具;懂htm语言。
  • 熟悉3D或actionscript语言优先。
  • 对互联网产品有强烈兴趣并具有一定的商业灵敏度。富有创造力和激情。


发表在 未分类 | 5 条评论

chrome extension的content script 无法读取页面中的iframe内容的解决方法

chrome插件中的 content script 是运行在一个被称为isolated world 的运行环境里,和页面上的脚本互不干扰,因为不在一个运行环境里,所以也无法调用页面上脚本定义的方法了,当然google也给出了解决方法:http://code.google.com/chrome/extensions/content_scripts.html

除了这些以外,在最近写插件的过程中,发现content scirpt 也不能读取到页面中的 iframe 内的内容(同域),这个被人报告为BUG,也许会在以后的版本中解决。当然,你可以通过设置manifest 中的 all_frames = true,来让脚本在 iframe里也运行。不过更简单的方法是,载入外部脚本到页面。

chrome插件有权限更改页面的DOM(如果这都没权限,这个插件系统也就没什么用处了),所以我们只要往页面中插入script节点,引入自己写的脚本,这个脚本的运行环境就和页面中的脚本是同一个环境了,于是页面中脚本有权限做的事情,我们自己写的脚本也有权限做,当然这样做一定要把自己的脚本放在一个大的闭包中,以防和页面上的脚本冲突。这样插件中的脚本就相当于一个加载器,只用做在页面中加载自己写的脚本就可以了。

这样做还有一个好处是,我们可以轻松移植这样的插件到 firefox 下的 greasemonkey 的 user script 中,也可以轻松制作成 Bookmarklets,也就是可以很方便移植到各种浏览器下。 :)

发表在 javascript | 标签为 , | 留下评论

Magic canvas & PNG

用 canvas 配合 PNG 可以做出什么好玩的东西呢?

昨天阿里中文站的方凳会,我为大家分享了这个主题。这是我第一次在方凳会上做大分享,也算迈出了这一步,以后会努力多在这个舞台上表现。

主要讲了运用 canvas 来做动态 favicon 和用 PNG 来打包字符串(js) 然后前端通过 js 对这个图片解码。

PPT 在 http://share.allenm.me/fd/ ,有兴趣的同学可以来看,我就不在这里重复一遍内容了。

发表在 javascript | 标签为 , , | 4 条评论

adb通过wifi连接 milestone

如果你有安装 Android SDK,应该会知道有一个 ADB 工具,这个工具可以在命令行下控制、调试你的Android 设备,这个工具不仅支持通过 USB 链接,而且可以通过 TCP/IP 来连接,也就是说不需要数据线,通过 wifi 就可以连接了。但是在默认情况下,是无法连接 milestone的。下面来讲怎么设置通过 wifi 来连接ADB。

第一种方法:

在菜场里找一个Android 的终端工具,我用的是 Terminal Emulator ,然后在终端里,依次输入

setprop service.adb.tcp.port 5555
stop adbd
start adbd

然后,在你的电脑(WIN/LINUX) 里命令行启动 adb,输入 adb connect your-phone-ip

手机的 ip 地址可以安装 NetInfo 这个 android软件查看。

如果连接成功,就可以使用 ADB 命令来管理手机了。

第二种方式:

去菜场下载一个叫做 adbwireless的软件,然后一键可以搞定这个问题。可以开关,很简单吧。

关于 android shell 的操作,以前玩智器的时候写过一篇, 另外以前写过一个没有 cp 命令的解决方法,我发现我的android 2.1 中已经有 cp 命令了。

注意:不要一直开着这个东西,不安全。我没有找到通过 adb 连接手机的权限设置,也就是说,只要别人的电脑能 ping 通你的手机,如果你的这个功能开着,就可以连接你的手机,执行 shell 命令了。如果你的手机已经 root(相信大部分玩家都root了吧),那就更不幸了,别人可以直接获得手机的 root 权限,我目前也没找到设置 root 密码的方法,有知道的麻烦告诉一声,谢谢。在连接公共网络的时候,这种情况更容易发生。

昨晚在做这个尝试的时候,开始用第一种方法操作,这个方法手机重启后就无效了,于是想把相关代码添加进 init.rc 文件,但是未成功,因为这个文件受保护,没那么容易修改。然后想到了安全问题,就彻底放弃,转而寻找更方便的方式,搜索到了 adbwireless软件,它还会在顶部状态栏显示一个图标,表示正打开着 adbwireless,用完应该不会忘记关掉。

发表在 android | 标签为 | 3 条评论

SyntaxHighlighter 3.0.8 重复加载 brush 的解决方法

我使用 syntaxhighlighter 来做我的博客代码高亮,使用 autoloader 来自动加载需要的 brush。但是使用后,发现,如果页面中存在两个地方使用相同的 brush,这个 brush 文件会被加载两次。如果电脑中有缓存只会加载一次,但是第一次访问的用户,是会加载两次的。这个应该算是BUG吧,等会儿我尝试反馈给作者试试看。

于是我稍微修改了下 autoloader.js 的源码,现在不会加载两次了。源码放在 http://api.allenm.me/syntaxhighlighter/src/shAutoloader.js ,需要的来拿。注意,处了这个文件在 src 下面放着,其他文件有使用 scripts 文件夹下的,要不然会报错。

中秋节的3天假期马上就过去了,我算是一直在玩,一直在放松。第一天去看了山楂树之恋,打了电玩,吃了火锅。第二天约了朋友来我这里做饭吃。第三天就在家宅着,蛮不错的,明天上班应该精神十足,然后再等待十一假期。目前还没有十一假期的安排。

发表在 javascript | 一条评论

使用google closure 压缩合并 js 文件的 python 脚本

google很早就推出了 google closure ,但是是JAVA的,你需要安装 JAVA的运行环境、配置等等。另外虽然google 也推出了WEB版的closure,但是用起来也是比较麻烦的,操作步骤比较多。如果你想使用 google closure,又懒得配置,又喜欢命令行的方便,现在有了另外的选择,google closure 提供了 API,这样我们就可以用其他的方式来压缩合并文件了。

我根据google 的python 事例,做了一些小修改,来方便压缩合并文件。这基本上算是我第一次写python,并放出来让人使用,python我只懂皮毛,大家看了代码不要笑话我。

项目地址:http://github.com/allenm/js-css-compressor 使用方式详见README

目前默认压缩级别是:SIMPLE_OPTIMIZATIONS 将来会有选项让用户选择压缩级别。

另外项目名称虽然是 js-css-compressor。但是目前没有 css 压缩的功能,因为 closure 不提供CSS的压缩,这个将来我会使用其他方式实现。

我把这个脚本放在VPS上来压缩合并我博客上的JS文件,准备一步步的优化这个博客的性能,拿这个作为试验田。

欢迎给我提意见和建议,联系方式在博客的About me 页面。

发表在 javascript, python | 标签为 , | 4 条评论

博客域名更改通知

本博客的域名 http://allenm.cn 正式更改为 http://allenm.me。 请RSS订阅的用户更改订阅地址:

使用 feedsky 烧录后的RSS地址的用户不需要更改,feed地址仍然为http://feed.feedsky.com/allenm

直接订阅的用户请更改 feed 地址为 http://allenm.me/feed/ 或者更换为上面 feedsky 的地址。

目前访问 http://allenm.cn 会自动跳转到 http://allenm.me 已经做了域名 301 跳转。 博文中的某些链接可能已经失效,如果有需要者可以联系我。

发表在 生活 | 2 条评论

零碎知识记录–计算字符串宽度–随机打乱数组

一、计算字符串宽度

最近的一个项目中有一个部分,需要计算一个字符串在浏览器中显示所占的宽度,因为可能的字符串不仅仅只是汉字,还有可能是字母,另外还是用来微软雅黑字体,在没有雅黑的机器上,会降级用黑体显示或者其他字体,而且要测宽度的字符串中还有三个字号,所以,用工具先量一个字会占多宽,是不靠谱的,只能通过程序来计算在用户的浏览器上显示的时候占多宽。

其实思路很简单,记得我以前看到过类似的例子,所以很快就知道要怎么来做这个东西了。我们可以把这个字符串放到页面中,让它具有真正显示的区域同样的 style ,也就是相当于复制一份这个字符串包括样式一起,到相同页面的另外一个位置去,但是这个地方,要让用户看不见才行。我们可以用一个绝对定位,z-index设置为一个负数,然后用visibility:hidden 把这个隐藏掉。总之让用户既看见,也点不着,也不影响页面的长度就行了。注意这个隐藏这个元素的方法一定要用 visibility 这个属性来隐藏,而不能用 display:none。因为如果用 display:none 的话,这个元素才尺寸就是0了。用 visibility的话,元素还是具有原来的尺寸,只是不显示出来而已。这个接着用 js 获取这个元素的 offsetWidth 属性就可以了。

二、随机打乱一个数组

今天还需要打乱一个数组中元素的顺序,但是在 js 手册里没找到相关的直接方法,但是想到了一个简单的方法,效果不一定特别好,但是够我用了。看代码:

function randomSort(a,b){
    return 0.5-Math.random();
}
function randomArr(arr){
    return arr.sort(randomSort);
}
var a = ['我','是','前','端','开','发','工','程','师'];
var b = randomArr(a);
console.dir(b);

大家可以复制代码到 firebug中运行试试看。就是利用了数组的排序函数,然后给了个随机的排序规则函数。如果谁有更好的方法,麻烦赐教,谢谢!

','
发表在 javascript | 2 条评论

感想颇丰的一次素质拓展

很早就听说过素质拓展这个名词,也在网上看过一些相关的照片,曾经也很想去玩这个,但是一直没有机会,这次百阿课程给了我这个机会,在一整天的拓展活动中,学到了很多东西,有过很多感动,有过很多感想,这个东西绝对是培养团队的好东西。

一大早,在公司集合,经过一个多小时的车程,我们来到了素质拓展的基地,然后教练便带着我们做了一些小游戏,开始通过小游戏讲述分享的重要性,分享可以帮助团队快速获得尽可能全面的知识,然后就是选组长,确定队名,画LOGO,我被选为组长,然后我们的队名是“终结者”,在旗帜上画了个肌肉男,大家都说像劲霸男装。紧接着好玩的拓展项目开始了。

我们组最先开始的游戏是“信任背摔”,具体游戏的步骤,大家可以点击前面的链接去google搜索看看。这是个简单的游戏,只要相信队友,就会很轻松的笔直的向后倒下去,我们的队员都做得很好,在队友要上去背摔前,大家会聚在一起给队友加油,然后在队友询问是否准备好的时候,我们会大声的告诉队友,准备好了,请相信我们。大家都很顺利的倒下去,很幸福的躺在团队准备好的温床上,我作为队长,最后一个来完成,在倒下去的时候,我眼睛睁的大大的,看着旋转的天地,感觉很飘逸,我身体保持挺直的状态,为了让队友们更好的分担我的重量,我充分相信大家,没有一丝丝的害怕,很好玩。

随后就是午饭,这个天气确实很热啊,吃得汗如雨下,伙食还算不错,反正吃的很香,可能是饿了的缘故吧,吃完饭,队友们一起去找了个凉快的地方开始聊天,准备中午的队show,拍照留念。这个时候我做的不好,我作为leader,没有组织好大家准备下午的队show,结果在1点半的队show的时候,我们组做的很不好,我有点愧疚,自己没有尽力。

下午的第一个项目是“穿越电网”,这个项目确实很难,到后来都有点不敢相信我们完成了这个任务。我们组有我这样体型的好几个,还有比我体积更大的,但是那个电网洞洞却是很小的,只有一个特别大的洞洞,我们决定把那个留给一个体积大的MM(此MM看见了不要来杀我哈),然后选了个苗条,但是力量比较足的男生第一个过网,因为这个时候对面是没人接应的,所以必须从最下面一层过,要不然是不可能完成的。第一次过,没经验,瞬间触网了,此洞被封,打回重来。然后我们开始小心起来,本来打算过的第一个洞还是蛮大的,现在只好被迫选择比那个小的洞过,经过全体队友的努力,第一个顺利过去,然后,接着过第二个不是特别苗条,但是力量足的男生,也顺利了,接着就好办了,两边的力量都很足了,继续过男生,我也在这个时期被队友成功送到对面去,当两面的男生差不多多的时候,开始集中力量过女生,女生还是比较容易过的,大多都很苗条,而且我们组的MM都很强,都可以把身体保持一个直线,而且不乱动。但是在过一个最小的MM的时候,出了问题,一不小心,护送过网的队友触网了,这个时候,我们用尽了最后一个可以浪费的洞,接下来的每个洞都必须保证成功,才能保证最后成功,这个时候,这个MM只能过一个最小的洞了,本来我们是打算那个洞不用的,这个洞还真是难过啊,上面的线松掉了,有一个弧线下垂,而且是个三角形的洞,不过经过大家齐心协力,特别是此MM整个过程都保持不动,做的非常棒,我们顺利过了这一关,这个洞是过的最漂亮的。到最后,我们在时间还剩下30多秒的时候,完成了全部队员通过电网。我们都很激动,真的是很激动,为这个团队感到骄傲,可以顶住很大的压力,肌肉和细心完美结合,成功完成了任务。

接下来的是“空中抓杆”,8米高的高空,开始前,我问有没有愿意来做第一个,没有人,大家心里多少都有点畏惧,我也是,但是必须有人做这个第一个,我是队长,那就我来吧,而且第一个绝对不能失败,如果失败,对后面的影响可想而知。我很快的爬到了8米的高空,没有任何可以扶手的地方,站起来的时候犯难了,刮起了大风,那个杆子晃的厉害,我惧怕了,我不是怕掉下去,我知道有队友拉着保险带,掉下去不会有什么事情,我是怕我失败了。我内心告诉我,我必须成功,并提供给后面的人经验,终于鼓起勇气在左右摇晃的细细的杆子顶部站立起来,张开双臂,大声问队友准备好了吗,队友们给了回应后,大声喊123,可是到3的时候,我还没站稳,又等了一秒钟,终于在摇摆中起跳,抓住,虽然完成的相当丑陋,但是我成功了,并且积累了经验分享给队友们。接下来,我都会在下面大声告诉队友应该怎么做来站立,因为站立是最难的环节,抓杆其实很简单,每一个人都很棒的站立起来了,全部过程只有一个MM因为紧张起跳的时候做的不够好,没抓好杆,不过最后补做,还是顺利完成了任务。大家再次在所有队友的鼓励、帮助下,战胜了内心的恐惧,完成了一次高空飞翔。那一跳,是把自己完全寄托给了队友;那一跳,是告诉队友,有了你们,我不再惧怕任何事情;那一条,是告诉自己,在做最难的事情的时候,永远有队友在后面给予强大的支持。

最后一个项目是“毕业墙”,所有人要在同伴的帮助下通过一个4米高的墙,墙上很光,不能进行攀岩,只能叠人墙。这个项目是几个小组合在一起进行的,全班一起进行。在教练的指导下,人墙很快就搭好了,在大家的努力下,第一个队员很快上去了,然后接下来的事情就简单了很多,下面有人墙,上面有人拉,很快,绝大部分人都上去了,然后只剩下了两个人,在教练的帮助下,倒数第二个人也上去了,现在只剩下了一个了,这个时候,教练教我们怎么才能让最后一个人上去。方法是:上面挑一个人,别人拉住腿,身体从上面倒着垂下来,贴墙壁,然后,下面的同学拉着这个同学的手,然后脚在墙上走,也成倒立的姿势,这个时候上面的人就可以够着最后一个同学的脚了,然后就可以拉上去了。我在这个项目中,扮演的角色是站在上面拉同学上来,不是最累的,最累的是下面当人墙的,向他们致敬!教练要求半个小时内完成,但是我们只花了17分钟多点的时间,这是大家齐心协力的结果,是团队的成功。

然后教练向我们讲解了这些项目的意义,大家确实都有很多感动,在经历了这些之后和之前是完全不一样的,教练给我们讲了很多道理,确实很有帮助。配合小游戏,给我们讲了,在团队中,行动是最容易影响其他人的,其次是语言,然后才是文字。最后颁发了毕业证,并且公布了各个小组的分数,总分8400分,我们小组得了8200分,在我们班是第一名,很高兴能拿到这个成绩,就像我们的队名一样,我们是终结者,只要我们齐心协力,我们就可以终结掉任何困难。

作为队长,我还有一些特殊的感受,深深的感觉到了做为 Leader 的难处。在很多次做决策的时候,鸭梨都很大。特别是在过电网这个项目中,感受最深,项目开始准备阶段,考虑不足,没有考虑到女生的长头发会垂下来,只让男生把上衣都脱掉,也没有经验,没有成熟的方案。在进行的过程中,因为开始并没有安排好哪个人过哪个洞(当然这个我并不觉得是问题,因为情况变化多端,需要动态规划),然后队友之间有不同意见,这个时候教练提示需要队长有执行力,我只好根据我自己的判断,来强制执行,虽然很多时候我的判断都不是最合理的。然后出现了两次护送过网的队友触网的情况,我们就开始建立监察机制,女生们在旁边观察,全方位观察,每个人都有喊停的权利,然后要有执行力,马上停下来,重新调整位置。还有我觉得我应该更相信队友一点,每次我都是在最关键的位置,我的自信不是问题,但是在团队中更应该相信队友,相信队友比自己做的更好,作为一个Leader,最重要的是安排最合适的人来做这个事情。教练给我们分享说,三流的idea加一流的执行力远比一流的idea加三流的执行力要厉害,说是马总说的。这点我现在是深有体会,在过网出现不同意见的时候,我强行让大家按照我的决定执行的时候,所有人都给出了积极的回应,我想这才是成功的要点吧。我想通过大家讨论找出最佳的方案,但是在时间很紧张的情况下,这个是不可能办到的,于是,即使是3流的决策,只要大家齐心协力去执行,最终就会完成任务。

也许让我们队原班人马再来过一次电网,我们可以找到更优化的方案,可以在更短的时间内完成,但是,这些假设有什么意义呢?生活中有多少事情可以容许你重新来一次呢?我们虽然完成的不算漂亮,但是我们在规定时间内完成了,比其他组第一次没完成,重来一次才完成的要漂亮的多,我认为我们就是最棒的,大家都心往一处想,劲往一处使,支持 Leader 的决定,这是成功的关键。

我在每个项目中,都会集合全部的队友给要进行项目的队友鼓劲,在经历挫折的时候,我要大声的给队友鼓劲,告诉大家我们一定可以成功,我心里必须要有一个必胜的信念,我也是常人,我心里也闪过一丝丝的不可能,但是我必须告诉队友,我们能行,告诉自己,我们可以成功。后来我们真的成功的完成了所有的项目。感谢队友们,感谢队友们的强力支持,感谢队友们让我学习到了更多,感谢队友们让我有了更多的关于Leader的感受。

深深的认识到,我做Leader的经验还是少的可怜,做了很多不正确的事情,这个也要在工作中好好学习,在哪一天需要我再次在站出来做Leader的时候,我能知道我应该做一些什么。

以后的工作中,我也要像这些兄弟姐们一样,支持Leader,有了执行力,我们就战无不胜!

发表在 生活 | 标签为 | 2 条评论