Giter Site home page Giter Site logo

superherojs's Introduction

Superhero.js

Maintaining a large JavaScript code base is not easy — especially since great articles on how to do this are hard to find. This page is a collection of the best articles we've found on the topic.

Contributing

We know the best articles are probably missing. If you've found one of them, please open a issue or submit a Pull Request. If you rather send it to us personally, you can hit us up at [email protected] or @superhero_js. For making contributing go as smoothly as possible, please read the contribution guidelines.

superherojs's People

Contributors

atabas avatar chenzihui avatar hinderberg avatar kimjoar avatar mfpopa avatar mikaelbr avatar mobmad avatar nike-17 avatar olav avatar peterustinox avatar philippschweizer avatar ythecombinator avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

superherojs's Issues

can add the updated on date

Looking at the website for the first-time
the first question was - when was this last updated :-)

so might be a good idea to add an updated at

also had to hunt for the github issues
can add that as well

PS: nicely designed :-) never has a list of links been such a pleasure to view

link expires

' Control the Complexity of Your JavaScript Functions with JSHint' article under 'Tools of the trade' section leads to 404. What to do with this invalid link?

Redesign

Ideas

  • Increase information density.
  • Improved use of graphics, typography, grid.
  • A single tiered numbered list (1.1, 1.2, ...).
  • Less space used for intro/toc before actual content.
  • Projections (difficulty, chronology, topics)
  • Logo (stickable, shirtable).

Rejected

  • Scroll jacking.
  • Sticky elements.
  • Fixed elements.
  • Parallaxisms.
  • Checkboxes (localStorage).

Future

  • Checkboxes (persistent).

More link suggestions

Building JavaScript Applications and Frontend Asset Management

We need some articles on how build-systems works, why we need them, what they are good for, how to recognise the requirement, and so on.

We shouldn't have resources that describes on the specifics of Grunt, Gulp or Makefiles, but focus on those things that matter whatever tool you choose.

Modern Vanilla Javascript

We need a resource for covering modern style, proper language, "vanilla" javascript for the Browser. This should be a resource that covers how to write modern applications with DOM manipulation and event handling without any abstractions like jQuery.

One suggested possibility from issue #38 is A Dive Into Plain JavaScript.

Great work! (some suggestions)

First of all, great work! A really nice and comprehensive list of good resources all in one place. Defiantly a place to direct newbies to.

I think you should add JavaScript garden, it's also a really nice resource I think you're missing.

Addy Osmani's JavaScript design patterns is also a free and awesome book

Under the Hood: Event Loop?

Should the Under the Hood section have a resource for understanding the Event Loop? It is mentioned briefly in the "How Browsers Work" article, but not extensively enough to e.g. give an understanding of why setTimeout(fn, 0) works and why it sometimes is bad, etc.

One possible resource is Phillip Roberts's: What the heck is the event loop anyway?. It gives a visual introduction of how the event loop works.

Is it necessary? Is it something that we should cover?

repo missing license

hey, can you add a license.md file to the repo? i'd like to know if i'm allowed to use some CSS from here

cheers,

max

[Addition] open-source software to create scalable interfaces on any display

Most mobile and cross-platform web developers have encountered the problem at some point: you need your web app to scale neatly to the device screen size, regardless of which of the many thousands of devices there are out there, but your units only have one design layout width, mainly mobile.

Grappling with this problem in one of our projects our leading frontend developer Dmitriy Karpunin came up with the idea of using a post-processor to convert CSS values from one set of units to another, and that’s how postcss-px-to-viewport, a plug-in for PostCSS that converts px values to viewport units (vw, vh, etc.), was born.

Learn more: https://evrone.com/postcss-px-viewport

Human JavaScript

Prompted by: https://twitter.com/HenrikJoreteg/status/535152676338540544

Off the top of my head, its been a while since i read the book:

Pros

  • Freely available
  • Is up to date and kept up to date
  • Features a complete application
  • Very understandable language
  • Short and to the point

Cons

  • Biased towards a single Right Way(tm)
  • Has alot of liberary-specific stuff
  • Heavily based around applications, not just web development in general (this might not be an issue, but including it for completeness)

The one thing already in our collection which it seems natural to compare it to is JavaScript Web Applications by Alex MacCaw. I've read both, but as it has been a while i think I want to quickly flip through them again for a more complete verdict.

Thoughts? @mikaelbr @kjbekkelund

Format for resources as data: Extension for new site

When doing the re-design, we should have all resources as data, to be able to se it in different ways. By having json data we can make filtering, sorting, grouping, APIs etc.

This issue is to discuss the format for this structure.

My thoughts:

[
  {
   "title": String,
   "link": String,
   "author": Array<String>,
   "level": String, // (beginner | intermediate | advanced)
   "description": Optional<String>,
   "type": String, // (video | article | blogpost | tutorial | book|)
   "topic": String, // (node | architecture | ... ) ?
   "keywords": Array<String>, // Might void topic?


   "hashtag": String, // Potential twitter hashtag to tweet under?
   "priority": int, // to have order? Or just alphabetically?
  }
]

Node specific resource? http://thenodeway.io/

Maybe some Node.js specific resource would be good? This resource is fairly beginner level (It's always easier finding and writing beginner level stuff).

The resource is a collection of 6 small articles, and covers the minimum of what you need to know to build a node-application.

Maybe not site-material, but tweet-worthy?

Node.js section

Prompted by https://twitter.com/tea_totaler/status/619594819615064064

Do we want to include a section containing node.js (and other serverside JS solutions) specific resources?

There is alot of overlap, but also many differences between the client and the server when it comes to JS. Especially in the performance, deployment and monitoring areas. There is also a whole new class of security issues to cover.

It would require an effort in increasing the scope of topics we cover on the site, but maybe it is time?

Linking to new resources on Twitter

Thinking about how we should inform about new resources. What about something like this:

New resource added: @someuser's "The title of the blogpost/video/book", https://link-to-resource

Should the link be to superherojs.com or to the actual resources? I prefer the latter, as it shouldn't be necessary to go to our page to find the link you're interested in. However, linking to our site means people might easily find other things they're interested in...

@mikaelbr @olav @mollerse @mobmad Thoughts? Does the tweet content look ok?

We need a CONTRUBITING.md

This is great stuff: https://github.com/bolshchikov/js-must-watch/blob/master/contributing.md

We need to add our own!

Some things we should include:

  • Only add/delete/change 1 resource per pull request
  • Make sure the resource haven't been discussed already
  • Make sure to specify why it is an awesome resource: what did you learn and what others can learn from it
  • We prefer resources that don't overlap much with our existing resources (If they do overlap, make sure to specify why this is a better resource)
  • We prefer resources that don't focus on specific tools

By the way, these are some of the topics we are interested in resources about:

  • Building JavaScript apps. We don't want resources that focus on Grunt, Gulp or Makefiles, but focus on those things that matter whatever tool you choose.
  • JavaScript architecture. How to build large-scale JavaScript apps.
  • Virtual DOM

@mollerse @mikaelbr Any of you want to take a stab at an initial pull request for this?

Tweet: http://jsforcats.com/

Maybe not as thorough and extensive as some of our existing introductions, but a easy-to-read, very much beginner level, resource that'd be worth tweeting.

Maybe our followers isn't really the target for beginner-level content? But it's nice to keep the twitter profile alive.

FRP

What about adding info about frp (functional reactive programming)? Very usefull concept especially when considering front-end development, but I've seen this used with node as well.

https://github.com/baconjs/bacon.js

Review of resources

I've started on some reviewing of the resources. Read through the resources and written some notes on them.

I've only gotten as far as doing the "understanding" part.

Understanding JavaScript: syntax, style and gotchas

Common JavaScript "Gotchas”

Can still be relevant. Covers some introduction to scopes, contexts, SIAFs. Has some ES3 vs ES5 specific information, that might feel outdated, but it’s really just handling polyfills, which is still relevant. There might be better more modern resources, and if we find something we might consider to replace this, but it is fine as a placeholder.

Prototypes and Inheritance in JavaScript

A more deeper description of how prototypes works. This was before all the class syntactic sugar, so it doesn’t address that in any way. Which is fine. I think it’s important to know how they really work. Difficult to say if this is the best resource. It has some, now outdated, concepts like proto, but it gives a good understanding of prototypes. You Don’t Know JS does it in a different and more “verbose/lengthy” way. I think it’s room for both.

Preparing Yourself for Modern JavaScript Development

Covers SIAFs/IIFEs, and module pattern. Should we still have resources for module pattern or patterns for code without module systems? For instance, this article talks about namespacing, but I feel that’s not an approach we shouldn’t promote. But it’s still better than now having separated your code – as in some cases it’s not easy to introduce build steps. Unsure about this one, but a resource with modules (either commonjs or new ES2015 modules) as a pattern might be better? But again, the topic has “historic significance” and it’s smart to know how we got there and the basic patterns. Threshold between progressiveness and conservatism is hard. I’d maybe say drop this.

Understanding JavaScript Function Invocation and "this"

An easy-to-understand classic intro to contexts. It’s lacking some specifics and detailed information, but that might not be a bad thing for a introductory article for the more novice skill levelled. Similar approach as You Don’t Know JS (this and objects I think), but that is a lot more more detailed and probably for a different audience. Room for both I think.

Style Guide: A mostly reasonable approach to JavaScript

This is probably fine. I don’t know what I feel about having a style guide as “understanding”. We should probably stay away from politics around this, but I see the value to have a guide like this for new people to have some reference for how to write code without “finding their own way” or making their own style guide. This is probably less political than the alternatives https://github.com/feross/standard and https://github.com/Flet/semistandard

Code School: The JavaScript Path

I think this is a good easy-to-get started practical approach for learning the basics of javascript. Bad parts: Costs money.

Eloquent JavaScript

Probably still very relevant and a no-brainer? Good for more in-depth coverage. Not “just” an article.

Effective JavaScript

Probably still very relevant and a no-brainer? Good for more in-depth coverage. Not “just” an article.

Additions:

  • You Don’t Know Javascript. The entire series is top notch, I think.

Should we have some understanding functional javascript here? For books, Allongé or Functional Javascript using Underscore is good. Eloquent Javascript also have a section for it.

Some other topics that can be relevant for “understanding”/intro:

  • Scope (let, const, var - hoist, closures, try/catch, etc)
  • Functions (may overlap with functional programming and YDKJS)
  • Some ES2015 stuff? Or is that too “temporary”/not lasting enough for what we try to do on this site?

Let me know what you think, @kjbekkelund , @mollerse and @olav .

The above resources as data:

[
  {
   "title": "Common JavaScript \"Gotchas\"",
   "link": "http://www.jblotus.com/2013/01/13/common-javascript-gotchas/",
   "author": ["James Fuller"],
   "level": "beginner",
   "description": "Covers some introduction to scopes, contexts and other common gotchas when moving to javascript from a different language. Also covers how to do polyfills to fallback to non-native implementations of language features",
   "type": "article",
   "topic": "understanding",
   "keywords": ["context", "scope", "async", "structuring"]
  },
  {
   "title": "Prototypes and Inheritance in JavaScript",
   "link": "http://msdn.microsoft.com/en-us/magazine/ff852808.aspx",
   "author": ["Scott Allen"],
   "level": "intermediate",
   "description": "Introduction to how prototypes works. Comes with nice illustrations and code examples.",
   "type": "article",
   "topic": "understanding",
   "keywords": ["prototypes", "inheritance"]
  },
  {
   "title": "Understanding JavaScript Function Invocation and \"this\"",
   "link": "http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/",
   "author": ["Yehuda Katz"],
   "level": "beginner",
   "description": "A basic introduction to what `this` (context) can be in javascript and how to use apply, bind and call to set the context.",
   "type": "article",
   "topic": "understanding",
   "keywords": ["context", "this", "bind", "call", "apply"]
  },
  {
   "title": "Style Guide: A mostly reasonable approach to JavaScript",
   "link": "https://github.com/airbnb/javascript",
   "author": ["Airbnb"],
   "level": "beginner",
   "description": "A style guide for writing javascript. Covers how to name, when to use whitespace or punctuations, when and how to do comments, etc. Is continuously updated and includes style guide for the latest version of the standard.",
   "type": "courses",
   "topic": "understanding",
   "keywords": ["style guide", "how-to write"]
  },
  {
   "title": "Eloquent JavaScript",
   "link": "http://eloquentjavascript.net/",
   "author": ["Marijn Haverbeke"],
   "level": "beginner",
   "description": "A very good, free, book on a modern approach to programming. Covers topics such as modules, data structures, (higher order) functions, the browser, Node.js and much more.",
   "type": "book",
   "topic": "understanding",
   "keywords": ["ebook", "regex", "modules", "node", "objects", "functions"]
  },
  {
   "title": "Effective JavaScript",
   "link": "http://effectivejs.com/",
   "author": ["David Herman"],
   "level": "intermediate",
   "description": "This book is not free. It aims to be a in-depth look at the JavaScript programming language and how to use it effectively to write more portable, robust, and maintainable applications and libraries",
   "type": "book",
   "topic": "understanding",
   "keywords": ["language fundamentals", "api design", "arrays", "objects", "functions", "scope", "coercions"]
  }
]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.