Contributing to YUI

Philip S Tellis

Yahoo! Inc

Whoami?

flickr:code_martial/1543735477

A Brief History

flickr:xcaballe/365044685

Looking around, it looks like that's still the case

Javascript libraries

flickr:guspim/2911102867

Javascript libraries

flickr:artolog/2258975829

YUI - Yahoo! User Interface

flickr:bluesmoon/IMG

1Getting involved - Become a user

flickr:ntr23/730371240_d98a583b0f_b

1Getting involved - Become a user

flickr:ntr23/730371240_d98a583b0f_b

1Getting involved - Become a user

flickr:ntr23/730371240_d98a583b0f_b

1Getting involved - Become a user

flickr:ntr23/730371240_d98a583b0f_b

1Getting involved - Become a user

flickr:ntr23/730371240_d98a583b0f_b

1Getting involved - Become a user

flickr:ntr23/730371240_d98a583b0f_b

2Getting involved - Learn Javascript

flickr:charliebrewer/2897862701_6bd9db6ea0_b

2Getting involved - Learn Javascript

flickr:charliebrewer/2897862701_6bd9db6ea0_b

2Getting involved - Learn Javascript

flickr:charliebrewer/2897862701_6bd9db6ea0_b

2Getting involved - Learn Javascript

flickr:charliebrewer/2897862701_6bd9db6ea0_b

2Getting involved - Learn Javascript

flickr:charliebrewer/2897862701_6bd9db6ea0_b

3Getting involved - Small contributions

flickr:lievensoete/2903489237

3Getting involved - Small contributions

flickr:lievensoete/2903489237

3Getting involved - Small contributions

flickr:lievensoete/2903489237

3Getting involved - Small contributions

flickr:lievensoete/2903489237

4Graduating to a full time contributor

flickr:bredgur/2925876954_694f28b765_b

4Graduating to a full time contributor

flickr:bredgur/2925876954_694f28b765_b

4Graduating to a full time contributor

flickr:bredgur/2925876954_694f28b765_b

4Graduating to a full time contributor

flickr:bredgur/2925876954_694f28b765_b

4Graduating to a full time contributor

flickr:bredgur/2925876954_694f28b765_b

What is this CLA?

flickr:coolmel/502576648_ddcd3936ec_o

What is this CLA?

flickr:coolmel/502576648_ddcd3936ec_o

What is this CLA?

flickr:coolmel/502576648_ddcd3936ec_o

What is this CLA?

flickr:coolmel/502576648_ddcd3936ec_o

When should you sign the CLA?

flickr:artolog/2519646167

When should you sign the CLA?

flickr:artolog/2519646167

When should you sign the CLA?

flickr:artolog/2519646167

When should you sign the CLA?

flickr:artolog/2519646167

When should you sign the CLA?

flickr:artolog/2519646167

Who is a sponsor?

flickr:knowprose/131893050_2d5b16bd78_b

Who is a sponsor?

flickr:knowprose/131893050_2d5b16bd78_b

Who is a sponsor?

flickr:knowprose/131893050_2d5b16bd78_b

Who is a sponsor?

flickr:knowprose/131893050_2d5b16bd78_b

Who is a sponsor?

flickr:knowprose/131893050_2d5b16bd78_b

Public version control system

flickr:malias/261406666

Public version control system

flickr:malias/261406666

Public version control system

flickr:malias/261406666

Public version control system

flickr:malias/261406666

Code Patterns

flickr:bluesmoon/IMG

Code Patterns

flickr:bluesmoon/IMG

Code Patterns

flickr:bluesmoon/IMG

Code Patterns

flickr:bluesmoon/IMG

1aCode Patterns: Private variables visible

flickr:krisgriffon/26220260_7ae6f36f4c_b

   YAHOO.util.Foo = function() {
        this._foo = 10;
        this._bar = "Hello, World";

        return this;
   };

   var foo = new YAHOO.util.Foo();

   foo._foo = 20;

1bCode Patterns: Private variables hidden

flickr:krisgriffon/26220260_7ae6f36f4c_b

   (function() {
        var U=YAHOO.util, E=YAHOO.util.Event;
        var l_foo, l_bar;

        U.Foo = function() {
                l_foo = 10;
                l_bar = "Hello, World";

                return this;
        };
   }());

   var foo = new YAHOO.util.Foo();

   // No access to l_foo

2aCode Patterns: Private methods exposed

flickr:sovietuk/154340012_0445caa0bd_b

   YAHOO.util.Foo = function() {
        this._init();

        return this;
   };

   YAHOO.util.Foo.prototype = {
        _init: function() {
             // private method
        }
   };

2bCode Patterns: Private methods hidden

flickr:sovietuk/154340012_0445caa0bd_b

   (function() {
        var _init = function() {
                // private method
        };

        YAHOO.util.Foo = function() {
                _init.call(this);

                return this;
        };
   }());

3Code Patterns: Extending v/s Augmenting

flickr:thevince/2557418141_8145b77c15_b

   YAHOO.lang.extend(derived, base, overrides);

   YAHOO.lang.augment(object, mixin, overrides);

3Code Patterns: Extending v/s Augmenting

flickr:thevince/2557418141_8145b77c15_b

   YAHOO.lang.extend(derived, base, overrides);

   YAHOO.lang.augment(object, mixin, overrides);

3Code Patterns: Extending v/s Augmenting

flickr:thevince/2557418141_8145b77c15_b

   YAHOO.lang.extend(derived, base, overrides);

   YAHOO.lang.augment(object, mixin, overrides);

YUI is brought to you by

flickr:equanimity/2126487011_773f18494e_b

YUI is brought to you by

flickr:equanimity/2126487011_773f18494e_b

Greetz

flickr:encouragement/291094770

Philip S Tellis

philip@bluesmoon.info

http://bluesmoon.info/

Photo Credits

flickr:25602112@N07/2539754489_a20454a273_o

Made with Eric A Meyer's S5