Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View rajikaimal's full-sized avatar

Rajika Imal rajikaimal

View GitHub Profile
@rajikaimal
rajikaimal / abstract-factory-typescript.ts
Last active February 8, 2019 10:36
Abstract factory in TypeScript
interface PorscheModel {
engine: string;
tyreModel: string;
gears: number;
}
class PorscheCar implements PorscheModel {
engine: string;
tyreModel: string;
gears: number;
@rajikaimal
rajikaimal / abstract-factory-es6.js
Last active February 5, 2019 16:55
Abstract factory in ES6
class PorscheCar {
constructor(params) {
this.engine = params.engine;
this.tyreModel = params.tyreModel;
this.gears = params.gears;
}
}
class PorscheCarFactory {
createCar(params) {
@rajikaimal
rajikaimal / abstract-factory-es5.js
Last active February 5, 2019 14:07
Abstract factory in JavaScript
function porscheCar(params) {
this.engine = params.engine;
this.tyreModel = params.tyreModel;
this.gears = params.gears;
}
function porscheCarFactory() {
this.createCar = function(params) {
return new porscheCar(params);
}
@rajikaimal
rajikaimal / set-tick.js
Last active December 24, 2018 18:55
setImmediate vs setTimeout vs process.nextTick
const fs = require('fs');
fs.readFile(__filename, () => {
setTimeout(() => {
console.log('SetTimeout callback');
}, 0);
setImmediate(() => {
console.log('SetImmediate callback');
});
@rajikaimal
rajikaimal / nextick-behaviour.js
Last active December 24, 2018 18:58
process.nextTick behaviour
function iter(num) {
if(num > 5) return;
setImmediate(() => {
console.log('SetImmediate');
});
process.nextTick(() => {
console.log(`NextTick, iteration ${num}`);
iter(num + 1);
@rajikaimal
rajikaimal / nextick-setimmediate.js
Last active December 24, 2018 18:56
process.nexTick vs setImmediate
const fs = require('fs');
fs.readFile(__filename, () => {
setImmediate(() => {
console.log('SetImmediate callback');
});
process.nextTick(() => { console.log('NextTick callback') })
});
@rajikaimal
rajikaimal / io-setTimeout-setImmediate.js
Last active December 24, 2018 18:57
setTimeout vs setImmediate within an I/O cycle
const fs = require("fs");
fs.readFile(__filename, () => {
setTimeout(() => {
console.log('SetTimeout callback');
}, 0);
setImmediate(() => {
console.log('SetImmediate callback');
});
});
@rajikaimal
rajikaimal / timeout-immediate.js
Last active December 24, 2018 18:58
setTimeout vs seteImmediate
setTimeout(() => {
console.log('SetTimeout callback');
}, 0);
setImmediate(() => {
console.log('SetImmediate callback');
});
// Output:
// SetImmediate callback
@rajikaimal
rajikaimal / System Design.md
Created August 29, 2017 14:18 — forked from vasanthk/System Design.md
System Design Cheatsheet

System Design Cheatsheet

Picking the right architecture = Picking the right battles + Managing trade-offs

Basic Steps

  1. Clarify and agree on the scope of the system
  • User cases (description of sequences of events that, taken together, lead to a system doing something useful)
    • Who is going to use it?
    • How are they going to use it?
@rajikaimal
rajikaimal / nodecloud-gsoc2017
Created August 20, 2017 16:10
List of work done by Rajika Imal on NodeCloud for GSoC 2017
NodeCloud based on the idea of providing a unified API for cloud providers. For GSoC 2017 I've initiated the project from
scratch and added support for AWS and Google cloud platform (GCP).
Support for following services were added,
- Compute
- Database
- Network
- Storage
Repository - https://github.com/scorelab/nodecloud