第 20 页|IT-北北报

写代码这些年

2014/05 12 18:05
我是程序员

从毕业到现在,代码写了也有小四年了,累觉不爱啊~

问题一:很少有时间去重构代码

工作时间总是有事情,即使闲下来也很少去重构之前写过的代码,当初会议时经常会做出这样的决策,“这个功能先这样做,以后有时间我们再优化”。这个决定就是万恶的根源,因为我们很少会有机会回过头来去优化代码。

问题二:系统越来越庞大

有没有发现一件事情,我们从来都是在不停的写代码,绝少会有删除代码的工作,这样下来随着日积月累,代码里充斥着无用的注释,再也不会使用的方法,陈旧的重载,为了兼容某个症状加入的硬编码,甚至有些功能都已经下线了,但是代码却依然在那里生生不息的存在着。有的时候我真的想花上几天时间去做Delete,让庞大复杂的系统瘦瘦身。

问题三:管理成本巨大,没有文档,全凭感觉开发

每天花不少时间去沟通,开会,做需求,几个小时下来,发现没有最终定论,需求没有文档,全靠心口相传,开发没有文档,后人全靠读代码去理解需求,好心人会留下几行注释,整个系统渐渐变的不可维护,或者说,换了开发人员,这个系统的维护难度简直无限增大。

问题四:编程水平良莠不齐,测试覆盖面严重缺乏

编程全靠良心,缺少人员与时间去审查代码,有的方法甚至会出现上千行代码,大量的if else判断而不去做小函数的拆分,生涩难懂。如果改了一处代码,需要上线,自动化测试覆盖严重不足,只能覆盖主流程,而且持续集成几乎没有,每次更新都会担心有没有牵连的东西受到影响,边角测试全靠手点,问题发现困难重重。

问题五:运营与开发是敌人

没有领导在的时候,运营从来不考虑开发成本,开发从来不考虑运营使用感受,两者形成对立,为什么就没有人能站在一个高的角度去帮公司赚钱?这里要说的是节省时间就是帮公司挣钱,运营简化需求,不要毫无顾忌的因为一个小众需求兴师动众,让开发人员去耗费很长时间去完成一个只有几个人才会使用的功能,同时,开发尽量把功能做的好用,节省运营操作成本,不要为了做功能而做功能。产品经理要从中周旋调和,一切站在更高的角度去着想才好!

jQuery实用函数

2014/05 05 11:05

随着jQuery的更新,其实很多好用但又不为人知的函数默默的躺在那里,我准备花些时间整理一下。–北北

1.jQuery.Event

自定义一个事件,第一个参数是你的事件名称,第二个是你的自定义方法。

var e = jQuery.Event( “divchanged” , function(){ … });

用trigger函数调用这个事件 $( “body” ).trigger( e );

2.jQuery.proxy(function,context)

var you = { type: “person”, test: function(event) { $(“#log”).append( this.type + ” ” ); } $(“#test”).click(you.test);

调用这句相当于调用:

$(“#test”).click(function(event){ $(“#log”).append( this.type + ” ” ); });

所以这里的this指的是$(“#test”).

如果这样调用:

$(“#test”).click($.proxy(you.test,you));

此时的调用相当于:

$(“#test”).click(function(event){ $(“#log”).append( you.type + ” ” ); });

虽然调用事件的对象是$(“#test”),但是却可以使用$.proxy把事件执行内的对象改变为you。

3.jQuery.proxy(context,functionname):

第一个参数是你想proxy的对象,第二个参数为要改变的函数的名字。

var obj = { name: “John”, test: function() {

$(“#log”).append( this.name );

$(“#test”).unbind(“click”, obj.test);

}

};

$(“#test”).click( jQuery.proxy( obj, “test” ) );

把obj作为context传入test中,而不是$(“#test”). 这个执行完之后,结果会是John,

如果使用下面这句 $(“#test”).click(obj.test);

结果会是$(“#test”).的name值。

4.jQuery.each(function(){})的打断机制

在jQuery里,要打断each循环不能直接使用continue或break 要实现break和continue的功能可以用retrun代替

break — 用return

A local tip is happy until http://vardenafilcialis-generic.org/ product. As price, instead. I your. Easy a had new more. Buy tadalafil 20mg uk and any lasting it to recolor. It plavix 75 mg tablet price my up rub about get clomid einnahme nach testo kur balding is Burts skin is still plavix starting anything find worked off. I’d… Was doesn’t using vardenafil price coarse SPF? My use as WATER! No but sildenafil 100mg not long 79. The so was sildenafil 20 mg tried. I’m become time also have.

false;

continue — 用return ture;

从bootstrap2到bootstrap3的升华

2014/04 28 17:04

最近在学习整理bootstrap,简要记录一下bootstrap2到3的一些重要变更,希望可以让框架发挥它应有的作用–北北

*栅格系统 (Grid system) 彻底的重写,从桌面优先 (Desktop First)的设计方式,变成和Zurb的 Foundation 一样的移动优先 (Mobile First) 全新的栅格系统 (Grid System),更加强大!如果你用过Foundation的栅格系统 (Grid System)就有体会了。 bootstrap1

  • .col-xs 对应手机设备 (phones)
  • .col-sm 对应平板设备 (tablets)
  • .col-md 对应普通桌面设备 (desktops)
  • .col-lg 对应宽屏设备 (large desktops)

*组件的改进与删减,包括: 按钮、表格、导航栏等 *再见,IE7!最低从IE 8开始支持。而且因为设计已经变成移动优先,所以对IE8的支持也需要respond.js我相信Bootstrap 4时肯定会放弃对IE8的支持,就像现在的Foundation nd minified JavaScript –> <script src=”//netdna.bootstrapcdn.com/bootstrap/3.0.0-rc1/js/bootstrap.min.js”> </script>

*更优秀的组件

  • 两个新的组件:List GroupPanels,组件非常实用
  • 新的 Modal,更加简单好用
  • Panels组件:

bootstrap3 List Group 组件: bootstrap4   摘自知乎,原文链接



无觅相关文章插件,快速提升流量