<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 12, 文章 - 0, 評(píng)論 - 22, 引用 - 0
    數(shù)據(jù)加載中……

    2016年2月14日

    遲來的年終總結(jié)(2014-2015)

        正好2016年的春假結(jié)束了,趁這個(gè)時(shí)間總結(jié)一下前面兩年的工作情況。
        2014年之前一直做的是java后臺(tái)開發(fā),工作的內(nèi)容整體感覺是不難的,平常也都有自我學(xué)習(xí)源碼、框架之類的。2014-2015年這兩年跟隨移動(dòng)互聯(lián)網(wǎng)的潮流,轉(zhuǎn)作了android開發(fā),負(fù)責(zé)android團(tuán)隊(duì)。在一家公司一直做后臺(tái)近3年,也的確對(duì)相同的業(yè)務(wù)沒什么激情了,工作性質(zhì)的轉(zhuǎn)變還挺不錯(cuò)。回首這兩年時(shí)間,心情到是有些復(fù)雜。
        2014年初剛轉(zhuǎn)到android組的時(shí)候,對(duì)于android的了解是零;另外也是頭一次管理團(tuán)隊(duì),心里也是有些忐忑。進(jìn)入android團(tuán)隊(duì)沒2個(gè)月,恰逢android版本的整體升級(jí)(參考別組的產(chǎn)品代碼來改造升級(jí)),我自己攔了一部分核心業(yè)務(wù)來做。最初的想法是籍著這個(gè)升級(jí)的項(xiàng)目來了解andorid代碼,順便熟悉業(yè)務(wù),之后就是暗無天日2個(gè)多月的忙碌。最后產(chǎn)品是出來了,但是發(fā)現(xiàn)對(duì)于android知識(shí)和業(yè)務(wù)的了解的還是不夠,之間還一度感覺精神都抑郁了,想想也是夠嗆的。這兩個(gè)月之前也算是對(duì)產(chǎn)品代碼有了一定了解,另外對(duì)于團(tuán)隊(duì)間的運(yùn)作和管理也有了一定的熟悉,磕磕碰碰的度過了最艱難的時(shí)期。這2個(gè)月的時(shí)間對(duì)我說,算是這兩年中工作上最重要的一個(gè)時(shí)期。回過頭來看,其實(shí)這兩個(gè)月自己時(shí)間的安排不太合理,每天小組的瑣事挺多,分去了我一半精力,另一半又趕產(chǎn)品升級(jí)的事;的確是有點(diǎn)顧此失彼。當(dāng)時(shí)可能還是選擇一些小模塊來熟悉代碼,會(huì)比較合理。
        度過了最難的2個(gè)月后,工作和小組管理也步上正規(guī)。我們部門是b2b,公司內(nèi)部的資源和分散,經(jīng)常一個(gè)模塊的功能,需要3,4個(gè)小組一起來處理。又經(jīng)過好長(zhǎng)時(shí)間,熟悉流程,并跟其他小組人來完善流程,也逐步融入團(tuán)隊(duì),適應(yīng)andorid小組的節(jié)奏。這個(gè)事在2015年還在不斷的進(jìn)行中。2014年中還是出過幾件有意思的事,小組成員離職、與其他組人員溝通出問題遭投訴,android人員招聘等等,細(xì)節(jié)就不一一道來了。
        2015年感覺相對(duì)2014年是平穩(wěn)很多,畢竟適應(yīng)了1年的小組節(jié)奏了。2015年工作主要在于項(xiàng)目管理和小組的管理上。每周組織小組成員的知識(shí)培訓(xùn),制定代碼規(guī)范,優(yōu)化外部流程等等。這一年的出差倒是需要提一下,有過幾次銷售讓出差說是給客戶技術(shù)解答,最后發(fā)現(xiàn)一句話都不用說;后面出差的時(shí)候我都會(huì)再三確認(rèn)出差的具體事由。總體來說去外面出差還是挺不錯(cuò)的,跟客戶了解項(xiàng)目需求、技術(shù)解答等也是挺有意思、挺鍛煉人的,如有時(shí)間多,還可以順便在當(dāng)?shù)赝嫱妗?br />     兩年下來,可惜的是對(duì)于android的了解,只是個(gè)皮毛。2014兼顧開發(fā)和管理,對(duì)于andorid技術(shù)的專研不深也就算了;2015年其實(shí)有很多時(shí)間可以加深android的了解,可惜由于種種原因都沒能花時(shí)間進(jìn)去。這兩年的收獲也是不小,由一個(gè)純粹的開發(fā),到項(xiàng)目管理、團(tuán)隊(duì)管理的職責(zé)轉(zhuǎn)變,也使自己的眼界開闊了不少;對(duì)于熱門的移動(dòng)行業(yè)也有一定的了解;andorid小組最初由7個(gè)人,一度達(dá)到15個(gè)人,跟隨著小組一起成長(zhǎng)。2016年工作又是有變動(dòng),重新回到后臺(tái)開發(fā),之后可能出差會(huì)多些,還要學(xué)學(xué)技術(shù)包裝,哎感覺跟技術(shù)這條路背道而馳了。2016年已經(jīng)起航,祝福自己順利吧!
        

    posted @ 2016-02-14 00:28 heavensay 閱讀(265) | 評(píng)論 (0)編輯 收藏

    2013年10月29日

    jQuery分析紀(jì)要

           本文是對(duì)jQuery源碼分析的簡(jiǎn)單紀(jì)要。

    jQuery相關(guān)對(duì)象內(nèi)存圖



        jQuery代碼分析紀(jì)要:
            1、 jQuery一加載進(jìn)來,就執(zhí)行匿名函數(shù),進(jìn)行jQuery的初始化工作,定義jQuery的功能,最后暴露出jQuery和$變量給用戶使用。
    (function( window, undefined ) {

    window.jQuery = window.$ = jQuery
    })( window );

            2、 jQuery功能擴(kuò)展函數(shù)Extend
    jQuery.extend = jQuery.fn.extend = function() {
        
    }
            jQuery提供了2個(gè)供用戶擴(kuò)展的函數(shù)jQuery.extend和jQuery.fn.extend。
            jQuery.extend 用于擴(kuò)展jQuery自身方法,如jQuery.ajax, jQuery.getJSON等,jQuery.fn.extend則是用于擴(kuò)展jQuery(...)的方法,從上面的內(nèi)存圖中可以看出,經(jīng)過jQuery包裝后的dom元素,在其原型鏈上會(huì)擁有jQuery.fn.extend擴(kuò)展的方法。

            3、 jQuery函數(shù),就是我們平常$('#id')所執(zhí)行的函數(shù),返回包裝過的dom元素
       // Define a local copy of jQuery
        jQuery = function( selector, context ) {
            // The jQuery object is actually just the init constructor 'enhanced'
            return new jQuery.fn.init( selector, context, rootjQuery );
        },

    posted @ 2013-10-29 20:18 heavensay 閱讀(395) | 評(píng)論 (0)編輯 收藏

    2013年10月28日

    Spring加載資源分析

         摘要: 這篇文檔是對(duì)Spring加載和解析xml文件過程的分析  閱讀全文

    posted @ 2013-10-28 00:12 heavensay 閱讀(11410) | 評(píng)論 (2)編輯 收藏

    2013年10月20日

    Js中Prototype、__proto__、Constructor、Object、Function關(guān)系介紹

    一    Prototype、__proto__與Object、Function關(guān)系介紹

            Function、Object:Js自帶的函數(shù)對(duì)象。
            prototype,每一個(gè)函數(shù)對(duì)象都有一個(gè)顯示的prototype屬性,它代表了對(duì)象的原型(Function.prototype函數(shù)對(duì)象是個(gè)例外,沒有prototype屬性)。
            __proto__:每個(gè)對(duì)象都有一個(gè)名為__proto__的內(nèi)部隱藏屬性,指向于它所對(duì)應(yīng)的原型對(duì)象(chrome、firefox中名稱為__proto__,并且可以被訪問到)。原型鏈正是基于__proto__才得以形成(note:不是基于函數(shù)對(duì)象的屬性prototype)。
           關(guān)于上面提到的函數(shù)對(duì)象,我們來看以下例子,來說明:
            var o1 = {};
            var o2 =new Object();
            
            function f1(){}
            var f2 = function(){}
            var f3 = new Function('str','console.log(str)');
        
            f3('aabb');   // aabb
            console.log('typeof Object:'+typeof Object);            //function
            console.log('typeof Function:'+typeof Function);        //function
            console.log('typeof o1:'+typeof o1);   //object
            console.log('typeof o2:'+typeof o2);   //object
            console.log('typeof f1:'+typeof f1);   //function
            console.log('typeof f2:'+typeof f2);   //function
            console.log('typeof f3:'+typeof f3);   //function
    • 通常我們認(rèn)為o1、o2是對(duì)象,即普通對(duì)象;f1、f2、f3為函數(shù)。
    • 但是其實(shí)函數(shù)也是對(duì)象,是由Function構(gòu)造的,
    • f3這種寫法就跟對(duì)象的創(chuàng)建的寫法一樣。f1、f2最終也都像f3一樣是有Function這個(gè)函數(shù)構(gòu)造出來的
    • f1、f2、f3為函數(shù)對(duì)象,F(xiàn)unction跟Object本身也是函數(shù)對(duì)象。
           Js中每個(gè)對(duì)象(null除外)都和另一個(gè)對(duì)象相關(guān)聯(lián),通過以下例子跟內(nèi)存效果圖來分析Function、Object、Prototype、__proto__對(duì)象間的關(guān)系。

        function Animal(){
            
        }
        var  anim = new Animal();
        
        console.log('***********Animal anim proto*****************');
        console.log('typeof Animal.prototype:' +typeof Animal.prototype);  //object 
        console.log('anim.__proto__===Animal.prototype:'+(anim.__proto__===Animal.prototype));  //true
        console.log('Animal.__proto__===Function.prototype:'+(Animal.__proto__===Function.prototype));  //true
        console.log('Animal.prototype.__proto__===Object.prototype:'+(Animal.prototype.__proto__===Object.prototype));  //true
        
        console.log('***********Function proto*****************');
        console.log('typeof Function.prototype:'+typeof Function.prototype);  //function
        console.log('typeof Function.__proto__:'+typeof Function.__proto__);  //function
        console.log('typeof Function.prototype.prototype:'+typeof Function.prototype.prototype); //undefined
        console.log('typeof Function.prototype.__proto__:'+typeof Function.prototype.__proto__);   //object
        console.log('Function.prototype===Function.__proto__:'+(Function.prototype===Function.__proto__)); //true

        console.log('***********Object proto*****************');
        console.log('typeof Object.prototype:'+typeof Object.prototype);  //object
        console.log('typeof Object.__proto__:'+typeof Object.__proto__);  //function
        console.log('Object.prototype.prototype:'+Object.prototype.prototype);  //undefied
        console.log('Object.prototype.__proto__===null:'+(Object.prototype.__proto__===null));  //null

        console.log('***********Function Object  proto關(guān)系*****************');
        console.log('Function.prototype===Object.__proto__:'+(Function.prototype===Object.__proto__));   //true
        console.log('Function.__proto__===Object.__proto__:'+(Function.__proto__===Object.__proto__));   //true
        console.log('Function.prototype.__proto__===Object.prototype:'+(Function.prototype.__proto__===Object.prototype));   //true

        /********************* 系統(tǒng)定義的對(duì)象Array、Date ****************************/
        console.log('**************test Array、Date****************');      
        var array = new Array();
        var date = new Date();
        console.log('array.__proto__===Array.prototype:'+(array.__proto__===Array.prototype));   //true
        console.log('Array.__proto__===Function.prototype:'+(Array.__proto__===Function.prototype));  //true
        console.log('date.__proto__===Date.prototype:'+(date.__proto__===Date.prototype));    //true
        console.log('Date.__proto__===Function.prototype:'+(Date.__proto__===Function.prototype));     //true

    Function、Object、Prototype、__proto__內(nèi)存關(guān)系圖


            上面的內(nèi)存圖跟堆棧結(jié)構(gòu)可以參照文章Javascript_01_理解內(nèi)存分配
            堆區(qū)圖說明:
     
            Function.prototype函數(shù)對(duì)象圖內(nèi)部表示prototype屬性的紅色虛框,只是為了說明這個(gè)屬性不存在。

            通過上圖Function、Object、Prototype關(guān)系圖中,可以得出一下幾點(diǎn):
    1. 所有對(duì)象所有對(duì)象,包括函數(shù)對(duì)象的原型鏈最終都指向了Object.prototype,而Object.prototype.__proto__===null,原型鏈至此結(jié)束。
    2. Animal.prototype是一個(gè)普通對(duì)象。
    3. Object是一個(gè)函數(shù)對(duì)象,也是Function構(gòu)造的,Object.prototype是一個(gè)普通對(duì)象。
    4. Object.prototype.__type__指向null。
    5. Function.prototype是一個(gè)函數(shù)對(duì)象,前面說函數(shù)對(duì)象都有一個(gè)顯示的prototype屬性,但是Function.prototype卻沒有prototype屬性,即Function.prototype.prototype===undefined,所有Function.prototype函數(shù)對(duì)象是一個(gè)特例,沒有prototype屬性。
    6. Object雖是Function構(gòu)造的一個(gè)函數(shù)對(duì)象,但是Object.prototype沒有指向Function.prototype,即Object.prototype!==Function.prototype。

    二    Prototype跟Constructor關(guān)系
    介紹
             在 JavaScript 中,每個(gè)函數(shù)對(duì)象都有名為“prototype”的屬性(上面提到過Function.prototype函數(shù)對(duì)象是個(gè)例外,沒有prototype屬性),用于引用原型對(duì)象。此原型對(duì)象又有名為“constructor”的屬性,它反過來引用函數(shù)本身。這是一種循環(huán)引用(i.e. Animal.prototype.constructor===Animal)。
            通過以下例子跟內(nèi)存效果圖來分析Prototype、constructor間的關(guān)系。
        console.log('**************constructor****************'); 

        console.log('anim.constructor===Animal:'+(anim.constructor===Animal))    ;    //true
        console.log('Animal===Animal.prototype.constructor:'+(Animal===Animal.prototype.constructor))    ;    //true
        console.log('Animal.constructor===Function.prototype.constructor:'+(Animal.constructor===Function.prototype.constructor));   //true
        console.log('Function.prototype.constructor===Function:'+(Function.prototype.constructor===Function));    //true
        console.log('Function.constructor===Function.prototype.constructor:'+(Function.constructor===Function.prototype.constructor));    //true

        console.log('Object.prototype.constructor===Object:'+(Object.prototype.constructor===Object));    //true
        console.log('Object.constructor====Function:'+(Object.constructor===Function));    //true

     prototype、constructor內(nèi)存關(guān)系圖(在Function、Object、Prototype關(guān)系圖上加入constructor元素):


            上圖中,紅色箭頭表示函數(shù)對(duì)象的原型的constructor所指向的對(duì)象。
    1. 注意Object.constructor===Function;本身Object就是Function函數(shù)構(gòu)造出來的        
    2. 如何查找一個(gè)對(duì)象的constructor,就是在該對(duì)象的原型鏈上尋找碰到的第一個(gè)constructor屬性所指向的對(duì)象。
    參考:
    http://www.libuchao.com/2012/05/14/prototypes-in-javascript/ (JavaScript 的原型對(duì)象 Prototype)
    http://rockyuse.iteye.com/blog/1426510 (理解js中的原型鏈,prototype與__proto__的關(guān)系)



    posted @ 2013-10-20 23:47 heavensay 閱讀(32440) | 評(píng)論 (13)編輯 收藏

    2012年11月27日

    JMX分析3-MXBean及OpenMBean

         摘要:        MXBean跟標(biāo)準(zhǔn)MBean很像,標(biāo)準(zhǔn)MBean需要實(shí)現(xiàn)XXXXMBean這樣命名的接口,而MXBean則需要實(shí)現(xiàn)XXXXMXBean這樣命名的接口,也可以在接口上使用注解@MXBean,而不用強(qiáng)制使用XXXMXBean這樣的命名格式。但是MXBean有點(diǎn)在于它可以供任何的client,包括remote client訪問相關(guān)屬性和執(zhí)行相關(guān)操作。...  閱讀全文

    posted @ 2012-11-27 00:39 heavensay 閱讀(3781) | 評(píng)論 (0)編輯 收藏

    2012年11月7日

    class卸載、熱替換和Tomcat的熱部署的分析

         摘要:      這篇文章主要是分析Tomcat中關(guān)于熱部署和JSP更新替換的原理,在此之前先介紹class的熱替換和class的卸載的原理。一 class的熱替換 ClassLoader中重要的方法 loadClass       ClassLoader.loadClass(...) 是ClassLoader的入口點(diǎn)。當(dāng)一個(gè)類沒有指明用...  閱讀全文

    posted @ 2012-11-07 22:29 heavensay 閱讀(22680) | 評(píng)論 (7)編輯 收藏

    2012年10月17日

    JMX分析2-Monitor

         摘要: JMX Monitor主要用于監(jiān)控MBeanServer注冊(cè)的MBeans屬性值得變化,在屬性的值達(dá)到閾值的時(shí)候發(fā)送消息。 JMX agent需要實(shí)現(xiàn)Monitor功能。  閱讀全文

    posted @ 2012-10-17 00:04 heavensay 閱讀(938) | 評(píng)論 (0)編輯 收藏

    2012年9月24日

    JMX分析1-MBean的實(shí)現(xiàn)

         摘要:       本文只是JDK7中JMX在本地,MBeanServer管理MBeans的默認(rèn)實(shí)現(xiàn)的探索學(xué)習(xí),沒有涉及JMX Remote。      JMX 使用了 Java Bean 模式來傳遞信息。一般說來,JMX 使用有名的 MBean,其內(nèi)部包含了數(shù)據(jù)信息,這些信息可能是:應(yīng)用程序配置信息、模塊信息、系統(tǒng)信息、統(tǒng)計(jì)信息等。另外,MBe...  閱讀全文

    posted @ 2012-09-24 08:33 heavensay 閱讀(6985) | 評(píng)論 (0)編輯 收藏

    主站蜘蛛池模板: 日本三级在线观看免费| 一级午夜免费视频| 久久精品免费一区二区| 亚洲AV日韩精品久久久久久| 中国精品一级毛片免费播放| 亚洲精品无码久久一线| 免费观看一区二区三区| 久久精品夜色国产亚洲av| 一级毛片在线免费看| 亚洲国产精品美女| 天天操夜夜操免费视频| 蜜芽亚洲av无码一区二区三区| 日本高清免费网站| 无码免费又爽又高潮喷水的视频 | 亚洲精品无码鲁网中文电影| 和老外3p爽粗大免费视频| 亚洲人成色7777在线观看| 毛片在线播放免费观看| 亚洲精品美女久久久久| 午夜宅男在线永久免费观看网| 亚洲6080yy久久无码产自国产| 亚洲精品成人网久久久久久| 三上悠亚在线观看免费| 亚洲精品综合久久中文字幕| 最近最新的免费中文字幕| 美女黄色免费网站| 国产亚洲人成网站观看| 91免费播放人人爽人人快乐| 色偷偷亚洲第一综合| 亚洲精品乱码久久久久久久久久久久 | 久久精品国产精品亚洲毛片| 免费看黄视频网站| 杨幂最新免费特级毛片| 亚洲av永久无码精品漫画| 免费观看的毛片大全| 免费在线观看一区| 久久久久亚洲AV无码专区体验| 午夜视频在线在免费| 中文字幕版免费电影网站| 最新国产成人亚洲精品影院| 亚洲国产成人乱码精品女人久久久不卡 |