When working with object-oriented languages such as Java and C # we have a whole process of analysis and design available that helps us know how to design the application in order to write more cohesive, less coupled and easier to maintain codes . The object-oriented analysis and design process is for any object-oriented language and therefore this process does not depend on the language chosen.
At the moment I'm working, though, with Javascript. Basically, I have a layered split so that the application client is done with Javascript and the server (where the whole logic is actually) is done with C # and uses object orientation.
While the server side I know how to design and everything else, the Javascript part I get pretty lost. It turns out that Javascript has a different notion of objects. The language has no classes, it has no interfaces, it is not strongly typed and this seems to me to be quite an impediment to using the object-oriented analysis and design process as I know in Javascript.
So, is there any analysis and design process for Javascript? Principles, recommendations and standards that allow us to write Javascript code more decoupled, easier to maintain and with higher quality?