I prefer:
`var foo = new module.Foo()`
although I prefer to use CoffeeScript's object destructuring assignment:
```
{Foo} = require 'module'
foo = new Foo
```
or
```
moduleA = require 'module-a'
foo = new moduleA.Foo
```
1. Using the `new` keyword clearly indicates the creation of an object and
I always use it for object creation.
2. In large projects namespaces are good! Aliasing every imported module as
require forces you to do is bad in a dynamic language for maintainability.
If I search my code-base for `Foo` or `moduleA.Foo`, I am guaranteed to
find all usages of `Foo`.
Refactoring dynamic language codebase is always painful, and making code
maintainable should always be a very high priority in these decisions
(balanced with "what would be the most fun" of course!)
When you allow someone to name imported modules and module properties
without a strict convention you will have big problems down the track. This
is generally not a problem with libraries, mostly with applications.
On Thursday, 11 July 2013 08:39:04 UTC+10, Andy W. wrote:
>
> I have seen a wide variety in different style for creating custom Node
> modules. What style do you prefer or are there any best practices? I'm
> fairly new to the Node community.
>
> var module = require('module');
>
> // A
> var foo = new module.Foo();
>
> // B
> var foo = module.foo();
>
> // C
> var foo = module.createFoo();
>
> // D
> var foo = Module.Foo.create();
>
>
--
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en
---
You received this message because you are subscribed to the Google Groups
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.