Thinking
前端||后端
Dec 23rd
在第五届D2论坛上,嘉宾们在讨论什么是前端?感觉讨论的不够具体,对于一些刚涉足开发的朋友们来说,什么叫前端和后端?什么叫前台和后台?都是比较迷惑的,我也曾经也很疑惑。现在也不能说是很清楚了,只不过按照自己的理解,也算是个通俗的理解吧。
1、前台和后台
前台和后台一般是从用户的角度来划分,比如网站的管理者使用的管理系统的平台叫做后台,把普通用户浏览或者操作的界面叫做前台。不过现在这样划分就有点不清晰了,现在的系统越来越复杂,即使普通用户也是有用户管理后台,对于管理员,也可以通过前台来管理信息。所以,目前很少以前台和后台来划分系统了。
2、前端和后端
至于前端和后端,我想还是比较清晰的容易划分的。
一般来说,你写的代码是放在Apache里,还是放到Tomcat里,就知道你是哪个端了?Apache是前端,Tomcat或者Resin是后端。不过搞不清楚,那就是云端了,哈哈,扯淡了下~~
如果是的工作是写CSS,HTML,JAVASCRIPT都可以说是前端,其它的就可以叫后端了。不过后端还有分层,比如叫底层开发,底层怎么理解呢?就是直接用服务器语言,或者脚本写代码的人。其实,底层开发这个概念也是模糊的,要看具体的应用划分了。
纯属YY,如有异议,都表赞同
微博客输入框jQuery插件
Aug 29th
自己开发的一个类似微博客输入框的一个jQuery插件,也可以让大家学习下怎么开发一个简单的jQuery插件。
(function($){
$.fn.extend({
speaker:function(countId){
var intervalId = jQuery.data(this, 'intervalId');
this.focus(function(){
if(intervalId==null||intervalId!=0){
intervalId = setInterval("jQuery.speaker.check('"+this.id+"','"+countId+"')",50);
jQuery.data(this, 'intervalId', intervalId);
}
});
this.blur(function(){
var intervalId = jQuery.data(this, 'intervalId');
jQuery.data(this, 'intervalId', 0);
clearInterval(intervalId);
});
}
});
jQuery.extend({
speaker: {
check:function(id,countId){
var str = $("#"+id).val();
var count = 140-str.length;
$("#"+countId).html(count);
if(count>10){
$("#"+countId).attr("style","color:#000000;");
}else if(count>=0){
$("#"+countId).attr("style","color:#085879;");
}else{
$("#"+countId).attr("style","color:#BA2636;");
}
}
}
});
})(jQuery);
ThreadPoolExecutor策略
Aug 27th
ThreadPoolExecutor的策略策略有四种
CallerRunsPolicy【重要的任务】
当异步线程池满了时,使用阻塞式,丢弃异步的方式执行,此策略比较保守,不丢弃,不放弃。
AbortPolicy【不太重要,但需要监控的任务】
中止任务,并抛出异常。
DiscardPolicy【满足最先请求的任务】
丢弃当前线程,也就是新来的任务丢弃掉。
DiscarOldestPolicy【满足最后请求的任务】
丢弃任务列队里最老的线程。
对于ThreadPoolExecutor来说,还有关注的地方是,他有3种列队。
- SynchronousQueue
- LinkedBlockingQueue
- ArrayBlockingQueue
程序员那些事儿
May 24th
没有最好,只有更好。
前不久,和北京的一个同事讨论一些问题的时候,他突然说:“很高兴自己是做开发的,特别是Web开发,我很喜欢这个行业。” 当时,我凝固了,我想这家伙不是写代码写傻了,不过,随后我回了一句,我也喜欢。哈哈~~自己又是一阵诡异的傻笑。这是我做开发这么长时间以来,第一次听到有朋友说喜欢这个行业,也是自己第一次承认自己也喜欢开发。
当然,这篇文章主要是写给非程序员的人,来了解程序员这个工种。
我是一个程序员(开发工程师),我极力的用其他工种的思维来思考那群程序员。
1、我提出的需求会不会被他们拒绝,我的需求是不是有些离谱?
不,程序员不喜欢拒绝你的想法,越有难度,越有挑战,你的需求也永远不会离谱,在他们看来,需求方的想法很少“正常“过。以前,我在一个香港人开的公司的时候,老板说他要做个像银行一样的叫号机器,还要打印和银行一样那种纸条,说是要卖20W。结果,还是被我用WEB做出来了,最后这个代码卖了10W。
2、我的文档写详细了没?不知道他们理不理解我的想法?
在程序员看来,需求方(客户)的想法永远是模糊的,抽象的。我们的工作就是把抽象事物实例化,具体化。还是叫号机的例子,我一开始就想,就喊我一个人,要搞定银行花了那么多钱做的叫号系统,有点狂想。和老板交谈后,老板说,不管怎么样,只要有声音,如果排队的人有次序,成本最便宜就可以了。得,这就好办,最后我还给他弄了个男女声版的叫号系统。
3、我还有很多想法,要不要告诉他们?
当然要说,越早说越好。早一点告诉我们,总比晚说好,不然他们会发出奇怪的语气助词,并用010的眼神说,“啊!原来你要做成这样。”,即使,有个想法没有做成功,但有一天可能他们会说:“嘿~~上次,你们说的那个想法还想要吗?我们现在可以实现了。”。当然沟通是最花时间的,更何况要把你的想法告诉一堆用120码速度思考问题的”疯子“。高速路上不太好换路线,错过了那个岔路口,要绕很久才能出高速,再上高速,方案的改变需要成本,越早告诉司机要去哪里,越好。
4、技术实现成本和需求强烈程度哪个优先考虑?
在这个时候,你可能被问,你一定要求这样做吗?这是时候需要慎重考虑这个问题。程序员们常在时间,性能,成本,可扩展性之间追求一个平衡,追求性价比最高的解决方案。
5、能不能实现?要多久?
这是我经常被问的一个问题,一般在回答不能实现的后面,我会说你可以这样做。
总之,这是一群可爱的程序员们,他们的世界充满着冒险和刺激,每天都在对付疯狂的需求和诡异的问题。
技术交流会
May 5th
只能说是很久以前了(呵呵,因为没把这件事写入Blog),所以就不介绍了,过期作废。
这样的活动还是不错,目前已经组织了两次了:
我参加了第一次的交流会,我做的PPT是《线程飞扬》
相关活动的文章有:
第一次
http://www.longtask.com/blog/?p=482
第二次
系统开发
Apr 27th
有好的团队,才是保证系统开发顺利的前提。
开发用到的是技巧,而不是技术。
∞
我们与其说A君有丰富的经验,不如说A君有丰富的技巧,擅长于开发。如果A君不但能够做好本职工作,而且能帮助其他人做好工作的时候,A君就可以领导其他人一起开发。
其实一切都很简单,狩猎最厉害的人应该当族长,族长的回报是把自己经验和多余的猎物给那些收获不多的人,这样才能维持整个种族的延续。
下面我们来讲讲开发的技巧:
操作系统,数据库,缓存等等这些,都是解决某一个或者某一类问题的方法。
未完待续~~~
团队建设
Apr 25th
甲:这个能搞定吗?
乙:能。
甲:需要多长时间?
乙:N天。
当你处在一个好的团队中的时候,你应该也必须感到欣慰,因为这来之不易。
在很多产业里,员工的经验就是企业的财富,如果你有一个有经验的团队,那这将是公司巨大的财富,他们是你的坚实后盾。
团队里有很多种角色,需要不同层次的队友,正因为大家关注的不一样,努力的方向不一样,大家各司其职,又相互依赖,为了共同的一个目标结合在一起,这样的团队是无坚不摧的。
在此,我不得不去嘲笑国家的教育体制,悲哀之极。
我想大家应该熟悉木桶理论吧,不熟悉的可以补下课。
木桶理论:指的是企业的整体水平取决于企业各项具体能力中最弱的一项,就像一只木桶,装水的容量最多只能达到所有挡板中最短的挡板的高度。
下面我做个比分,把团队的各种元素和木桶的各种元素联系起来:
- 团队的成员就是木桶的木板
- 成员的能力高低就是木板的长短
- 成员之间的默契度就是木板之间的耦合度
- 成员的效率就是木板的宽度
- 木桶能装液体的体积,就是团队的极限
- 从木桶里经过的液体的质量就是成本。
- 木板就是公司的地盘
- 木板的面积就是成员的待遇
- 木板的材质就是成员的底蕴和品味
如此看来,这个似乎成了一个有趣的游戏,成功的把理论应用到了团队管理上来了。
下面从游戏中得出的结论:
- 用数学的方式,我们得出了一个结论,大于或者等于3个成员的时候就叫团队。(我纯粹瞎说的)
- 当项目成立时,需要计算这个项目到底需要多少人,总不能喝口水用桶吧。
- 木桶可以斜着装液体。
- 这个木桶也可以用来装SHIT。
- 木桶如果漏水,可以放到水池(拓展,活动,聚餐)里泡会。
- 木板还是古董的好,能熬到现代的都是好板。
- 木板也需要保养(培养),别让虫吃了。
- 换块木板是很危险的,除非能把桶斜到一边,那块板沾的水越少越好。
- ……
简直太有趣了,我写这篇文章的时候也不会想到。显而易见,大家就知道如何去打造一个团队了,其实我也在学这个新发现,但愿是,可能和别人的思想不谋而合吧。
也许就验证了那句话:“小故事大道理”
这个不过是一个引子……
还有很长的路要走,这个世界没有绝对的正确,任何静止都是相对的。
相关知识:
木桶原理
反木桶原理
新木桶定律
木桶歪论
写在项目下线后
Apr 22nd
最近两年前开发的那个项目下线了,回想起两年来对这个项目做出的努力和从这个项目所获得的收获,感到无比的庆幸。
刚毕业后找了个小工作,自己摸爬滚打了好一整子,一顿瞎搞,虽然也有点小成,但总觉得想学到很多,想施展更多。
在这样的一个情况下,我加入了这个项目,虽然有件事情来得太突然,自己都没有预料到,但总归一切变好,自己始终没有放弃,一直低调的坚持下来,所以我很感谢当时在我身边的每一个人的关怀。
完整的经历了整个项目,虽然这个项目只有两年,但足以让我全盘把握,了解了并掌握了整个项目的开发,受益匪浅,估计还可以使用好几年:)
其实项目本身好无价值,贵在我们在项目上所花费的心血,所赋予的期望和所得到的回报,所以这是我人生的一个转折点,我踏进了项目开发的大门。
下面会分小块来讲解我的感悟:
各站点的Open API集合
Jul 2nd
Google Maps
Google Search API
Google Ajax Feed API
Facebook API
Digg API
Flickr API
YouTube API
Delicious API
Windows Live API
Yahoo Search API
Feedburner API
Audio Scrobbler API
Upcoming
MediaWiki API
相关文章
http://code.google.com/intl/zh-CN/labs/
http://www.pingable.org/the-top-15-web-apis-for-your-site/
