From cc0e673fb8ffea303bcd9bb8643cc5c3dc9cd728 Mon Sep 17 00:00:00 2001 From: Junwei Zhao Date: Thu, 15 Feb 2018 17:04:21 +1100 Subject: [PATCH] Update the format --- categories/application.md | 10 +++++----- categories/database.md | 14 +++++++------- categories/devops.md | 18 +++++++++--------- categories/javascript.md | 26 +++++++++++++------------- categories/message-queue.md | 8 +++++--- categories/ruby.md | 18 +++++++++--------- categories/software-design.md | 28 +++++++++++++++++++--------- categories/team-work.md | 8 ++++---- categories/web-scraping.md | 8 ++++---- categories/web.md | 18 +++++++++--------- 10 files changed, 84 insertions(+), 72 deletions(-) diff --git a/categories/application.md b/categories/application.md index 4ef556a..4ca8537 100644 --- a/categories/application.md +++ b/categories/application.md @@ -1,20 +1,20 @@ -## Search +# Search - ElasticSearch - Logstash - Kibana -## APM +# APM - Newrelic - Pinpoint -## Monitor +# Monitor - Bosun - Prometheus -## API +# API - RPC(remote procedure call) - disadvantages @@ -61,6 +61,6 @@ - call remote like local method, and support multiple language - protobuf serialization and deserialization is faster than JSON -## Log and Error +# Log and Error - Sentry diff --git a/categories/database.md b/categories/database.md index 871c852..843362d 100644 --- a/categories/database.md +++ b/categories/database.md @@ -1,11 +1,11 @@ -## Relation +# Relation - Mysql - Postgres - Microsoft SQL Server - Oracle - Sqlite -## NoSql +# NoSql - Monodb - Replica Set - Primary @@ -17,7 +17,7 @@ - Hbase - Cassendra -## SQL +# SQL - Index - Index is unique but not mandatory - join @@ -32,10 +32,10 @@ - will impacted by time zone - index by timestamp will be faster than datetime due to 4 bytes. -## Message Queue +# Message Queue -## Rabbitmq +# Rabbitmq -## activeMQ +# activeMQ -## Redis \ No newline at end of file +# Redis \ No newline at end of file diff --git a/categories/devops.md b/categories/devops.md index bd89064..53504a5 100644 --- a/categories/devops.md +++ b/categories/devops.md @@ -1,16 +1,16 @@ -## AWS +# AWS - EC2 - EC2 container - Cloudfront - S3 - RDS -## CI +# CI - Jenkins - Gitlab CI - Travis -## Docker +# Docker - Orchestration - Rancher - Kubernetes @@ -86,7 +86,7 @@ - docker daemon attack surface - kernel security features -## Linux +# Linux - ssh - IP table - Cron job @@ -106,30 +106,30 @@ - mosh - auto reconnect ssh -## Everything is code +# Everything is code - infrastructure as code - CI config as code - Dockerfile -## CD +# CD - Capistrano - Ansible - Puppet -## HA High Availability +# HA High Availability - LB - haproxy - Keepalived -- vrrp - Nginx + Keepalived - Heartbeat -## Network +# Network - IP - Private IP Addresses - 10.0.0.0 – 10.255.255.255 - 172.16.0.0 – 172.31.255.255 - 192.168.0.0 – 192.168.255.255 -## tools +# tools - git - cherrypick - rebase diff --git a/categories/javascript.md b/categories/javascript.md index f9c1667..7a004b6 100644 --- a/categories/javascript.md +++ b/categories/javascript.md @@ -1,4 +1,4 @@ -## ES 6/ES 2015 +# ES 6/ES 2015 - Arrow function - Array function doesn’t create new this, it grabs this from its surrounding instead. @@ -90,7 +90,7 @@ } getGithubUser('mbeaudru').then(user => console.log(user)); // logging user response - cannot use await syntax since this code isn't in async function -## Node.js +# Node.js - Npm @@ -100,7 +100,7 @@ - Stream -## This +# This - Refers who calls ```javascript @@ -125,9 +125,9 @@ ``` - [http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/](http://yehudakatz.com/2011/08/11/understanding-javascript-function-invocation-and-this/) -## Closure +# Closure -## Frameworks +# Frameworks - Ionic @@ -160,9 +160,9 @@ - Action - Dispatch -## Use promise to avoid nested callbacks. +# Use promise to avoid nested callbacks. -## tips +# tips - object literal - ```javascript @@ -172,22 +172,22 @@ }); ```javascript -## Application +# Application -## Search +# Search - ElasticSearch - Logstash - Kibana -## APM +# APM - Newrelic - Pinpoint -## Monitor +# Monitor - Bosun - Prometheus -## API +# API - RPC(remote procedure call) - disadvantages @@ -237,6 +237,6 @@ - call remote like local method, and support multiple language - protobuf serialization and deserialization is faster than JSON -## Log and Error +# Log and Error - Sentry diff --git a/categories/message-queue.md b/categories/message-queue.md index e6b3601..8d3bdd5 100644 --- a/categories/message-queue.md +++ b/categories/message-queue.md @@ -1,5 +1,7 @@ -## Rabbitmq +# Rabbitmq -## activeMQ +# activeMQ -## Redis +# Redis + +# Kafka diff --git a/categories/ruby.md b/categories/ruby.md index 9e65bb7..cda984e 100644 --- a/categories/ruby.md +++ b/categories/ruby.md @@ -1,4 +1,4 @@ -## Background jobs +# Background jobs - Resque - Single threaded process - Delayed Job @@ -12,7 +12,7 @@ } ``` -## Test +# Test - Unit Test - Mini Test - RSpec @@ -22,18 +22,18 @@ - Mock - Mocha -## Auth +# Auth - OmniAuth - Devise -## Web Server +# Web Server - Thin - Unicorn - Puma - Passenger - Pow -## Language +# Language - Syntax - lambda - yield @@ -57,15 +57,15 @@ - can't extend - Class -## Code analysis +# Code analysis - Rubocop -## GC +# GC - Minor GC - Major GC - GC.stat -## Web frameworks +# Web frameworks - Sintra - Ruby on Rails - ORM @@ -75,6 +75,6 @@ - Assets pipeline - Rails console -## Gem mirrors +# Gem mirrors - [http://mirrors.aliyun.com/rubygems/](http://mirrors.aliyun.com/rubygems/) - [https://gems.ruby-china.org](https://gems.ruby-china.org) diff --git a/categories/software-design.md b/categories/software-design.md index 0e04a06..3c3db66 100644 --- a/categories/software-design.md +++ b/categories/software-design.md @@ -1,5 +1,5 @@ -## Refactoring +# Refactoring - when to refactor @@ -11,7 +11,7 @@ - temporary variable - coupling -## Microservice +# Microservice - benefits @@ -28,7 +28,7 @@ - Deployment complexity - To deploy different types of services -## OOP +# OOP - Polymorphism @@ -46,7 +46,7 @@ - Interface segregation - Dependency inversion -## Functional programming +# Functional programming - pure functions @@ -59,29 +59,39 @@ - avoid side effects -## Serverless +# Serverless - Lambda - A **lambda** is just an anonymous function - a function defined with no name -## Closure +# Closure - a function value that references variables from outside its body - In Javascript, not all anonymous function are lamdba, and vise verse -## UML +# Event Sourcing and Command Query Responsibility Segregation (CQRS) + +Every changes you made to the system is a event, events are been persisted and can be replayed to generate the materialized view. + +In his book "Object Oriented Software Construction," Betrand Meyer introduced the term "Command Query Separation" to describe the principle that an object's methods should be either commands or queries. A query returns data and does not alter the state of the object; a command changes the state of an object but does not return any data. The benefit is that you have a better understanding what does, and what does not, change the state in your system. + +**More**: + +- [Reference 2: Introducing the Command Query Responsibility Segregation Pattern](https://msdn.microsoft.com/en-us/library/jj591573.aspx) + +# UML - many_to_many - one to many -## Java Design pattern +# Java Design pattern - [https://github.com/iluwatar/java-design-patterns](https://github.com/iluwatar/java-design-patterns) -## some tips +# some tips - concurrency vs parallelism diff --git a/categories/team-work.md b/categories/team-work.md index df435eb..f919c81 100644 --- a/categories/team-work.md +++ b/categories/team-work.md @@ -1,4 +1,4 @@ -## Agile +# Agile - Retrospective - Iteration meeting @@ -7,9 +7,9 @@ - Pair programming - Instant feedback -## Kanban +# Kanban -## Tools +# Tools - ThoughtWorks Tech Radar - CI @@ -41,7 +41,7 @@ - High spped - Team members can address problems more quickly -## Test +# Test - unit test - integration test diff --git a/categories/web-scraping.md b/categories/web-scraping.md index 7300625..8d04d97 100644 --- a/categories/web-scraping.md +++ b/categories/web-scraping.md @@ -1,11 +1,11 @@ -## A good scraper +# A good scraper - content downloading, download images, contents and so on. - links retrieve, find new links - URL management, avoid endless loop - content analysis and management, export as csv or chart. -## good frameworks +# good frameworks - colly - https://github.com/asciimoo/colly @@ -14,7 +14,7 @@ - scrapy - [https://github.com/scrapy/scrapy](https://github.com/scrapy/scrapy) -## anti scraper blocking +# anti scraper blocking - multiple ips - different headers @@ -24,7 +24,7 @@ - verification code -> ocr - fetch data from mobile webpage -## anti scraper +# anti scraper - block ip - http headers, such as user-agent diff --git a/categories/web.md b/categories/web.md index 2f63cbd..67b020d 100644 --- a/categories/web.md +++ b/categories/web.md @@ -1,4 +1,4 @@ -## HTML +# HTML - HTML5 - audio @@ -15,7 +15,7 @@ - canvas - HTTPS -## CSS3 +# CSS3 - transition - transaction @@ -25,29 +25,29 @@ - box-shadow - svg -## CORS +# CORS - Nginx proxy - Server add headers -## CDN +# CDN - Reduce request amount - Reduce server network traffic - Speed up load -## Websocket +# Websocket - Pusher - Socket.IO -## json-schema +# json-schema - Describe data format - Clear, machine and human readable - Complete structure validation -## Auth Related +# Auth Related - session - store session_id in cookie, server side has a map in memory @@ -56,9 +56,9 @@ - cookie - local storage -## Browser +# Browser -## CSS +# CSS - tips