Skip to content

forthright48/learnDev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Learning Development

While learning development, a beginner needs to cover lots of topics. As a beginner myself, I decided to track the useful resources in one place.

AngularJS

  1. Why do we use $rootScope.$broadcast in AngularJS?
    Using $broadcast we can create custom events. Using $rootScope directly is bad practice and we should create custom event handler service.

  2. AngularJS Interceptros for Logging Service Calls
    Short and simple tutorial to adding interceptors to angularJS.

  3. Cookies vs Tokens. Getting auth right with Angular.JS
    Using express-jwt module to authenticate routes and verifying tokens. Also, it has code on how to attach interceptors to angularjs requests.

  4. AngularJS Best Practices and Tips by Toptal Developers
    How to set watchers, One time binding, making ng-click conditional and more.

  5. Angular Function Declarations, Function Expressions, and Readable Code
    We spend more time reading our code than writing them. Using function declaration approach, we can keep our exposed variables at top and hide implementation below.

  6. Route Resolve and Controller Activate in AngularJS
    Where to put the logic that populates variables of controller. Using activate() vs route resolve.

  7. $scope vs scope
    What's the difference between $scope in controller and scope in link function of directive.

  8. Accessing The View-Model Inside The Link Function When Using Controller-As In AngularJS
    How to access controller from link function of directive.

  9. Insert HTML into View
    HTML is rendered as text in {{}}. Need to use ng-bind-html after making it trusted using $sce.

  10. How to get dynamic content working in angularjs
    When dynamic content is inserted using DOM manipulation, angular no longer watches them. We need to $compile them before adding.

BootStrap

  1. Vertical Align Columns in Row in BootStrap
    The code snippet for v.center works like a charm.

Express

  1. Why can I execute code after res.send?
    res.send() simply closes the response. The function is free to continue as long as it does not attempt to call methods on res. So, better to use return where we want things to stop.

HTML

  1. HTML5 History API
    Changing browser location without refreshing the full page.

HTTP

  1. Choosing an HTTP Status Code — Stop Making It Hard What should be the http status code for a response?

JavaScript

  1. Immediately-Invoked Function Expression (IIFE)
    Beautiful explanation on how to use closure to create IIFE along with reasons why it has that particular syntax.

  2. Promise Anti Patterns
    Lots of anti-patterns for Promise.

  3. How to Encode and Decode Strings with Base64 in JavaScript
    Sometimes API sends their content base64 encoded, so decodnig them is necessary.

JQuery

  1. Automatic Table of Contents

Markdown

  1. Cross-reference (named anchor) in markdown
    How to create table of contents and other cross-reference inside markdown.

MongoDB

  1. Checking if a document exists – MongoDB slow findOne vs find
    Using db.find().limit(1) is faster than using db.findOne(). Oh well, I will still use findOne() since I don't need ultra optimization.

Node.js

  1. Authenticate a NodeJS API with JSON Web Tokens
    A simple tutorial that shows how to use jsonwebtoken module to use JWT with API for authentication.

  2. Node.js, Require and Exports
    NodeJS by default isolates codes inside a file from the global space. We need to use module.exports explicitly to tell node what we want to share and require() to get what we want.

  3. jsonwebtoken doesn't expire
    Dumping user info in an object before signing does the trick.

Security

  1. How to Safely Store a Password
    Emphasis on use of bcrypt for encrypting password. Using MD5, SH1 and others is not safe as they are fast and can be broken using brute force. bcrypt is safe cause it's slow.

  2. What are rainbow tables and how are they used?
    Seems like there is a difference between Rainbow attack and Dictionary attack

  3. Why is using salt more secure?
    Salt does not protect a single password. All it does, in case of leak of password database, is make it harder to use dictionary attack and crack multiple passwords in one go.

  4. Stealing JWT from authenticated user
    What happens if someone steals JWT from browser and uses from someother place?

  5. Invalidating JSON Web Tokens
    How to invalidate a JWT once user logs out. Some tips on logging out users safely. Keeping JWT expiry time short and regularly updating the token sounds good to me.

Testing

  1. Unit testing with Karma and Jasmine for AngularJS
    A simple tutorial on importance of testing from beginng. Suggested method for testing is to use Karma + Jasmine.

  2. The Difference Between TDD and BDD
    I thought there would be significant difference. They seem same to me. BDD looks nice since it sounds like normal sentence.

Tools

Bower

  1. How to change bower's default components folder?
    Basically, just set .bowerrc file.

Grunt

  1. What is Grunt Wiredep?
    Install with bower and then running grunt wiredep will inject scripts and css into html file.

  2. The HUGE Grunt.js Guide to a Better Frontend Workflow (Part 1: Coding)
    Little notes and codes for common grunt services used.

  3. <%= yeoman.app %> and <%=yeoman.dist %> variables for a gruntfile
    What are those <%= yeoman.app %> variables inside grunt files?

Uncategorized

  1. Top 18 Most Common AngularJS Mistakes That Developers Make

About

Useful resources of beginner developer.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published