合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
[TOC] # https://github.com/blockchainfy # 前端项目结构 同时笔者也开源了自己的rebirth项目供大家学习。它是一个利用Angular2开发的博客系统前端部分。它涉及到的Angular2知识点非常的全面,包括:组件化,自定义directive,路由,HTTP交互,Template drive form和Reactive form,异步路由,jwt token认证,资源权限控制,动态加载component,jQuery插件集成等常用知识点。 同时rebirth项目也集成了很多前端优秀的技术实践: ~~~ Angular2 + rxjs bootstrap-sass codemirror + markdownit(online markdown文档编辑器) webpack2 + DashboardPlugin(代码打包) TypeScript2 + @types stubby(数据mock框架) tslint + codelyzer(ts代码和Angular2组件静态检查) angular2-template-loader(Angular2 component的html、css打包) karma + phantomjs(TDD开发) //推荐 https://github.com/GoogleChrome/puppeteer sass + postcss(css样式组织) typedoc(ts文档) fontgen-loader(icon font) ....... ~~~ [构建前端Mock Server的利器/Json-Server](https://www.jianshu.com/p/81373d90f9f0) [json-server](https://github.com/typicode/json-server) 如果你使用的本地静态服务并没有提供代理的功能,那可以使用 阿里的开源工具 [anyproxy](http://anyproxy.io/cn/) ,同样给力! 想在Mock的时候生成更多的随机数据,这个时候就需要faker了![faker.js](https://github.com/marak/Faker.js/) 可以用来产生大量的模拟假数据,配合 json-server,我来给大家举个栗 # 2018年计划 还债 再买一个机械磁盘(怕声音太大,哎?我可以买个我的笔记本的机械硬盘,不错,我笔记本的机械声音小~)。 mac读写NTFS软件。 # 数据库 # leveldb LevelDB是一个功能上类 Redis 的 key/value 存储引擎。Redis是一个基于纯内存的存储系统,而 LevelDB 是基于内存 + SSD的架构,内存存储最新的修改和热数据(可理解为缓存),SSD 作为全量数据的持久化存储,所以 LevelDB 具备比 redis 更高的存储量,且具备良好的写入性能,读性能就略差了,主要原因是由于冷数据需要进行磁盘 IO。Facebook 在 levelDB 的基础上优化了 RocksDB。 # Redis REmote DIctionary Server(*Redis*) 是一个由 Salvatore Sanfilippo 写的key-value存储系统。 # NoSQL NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。 在现代的计算系统上每天网络上都会产生庞大的数据量。 这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更加简单。 ## [MongoDB](https://www.mongodb.com/cn) ## MariaDB https://mariadb.com/resources/books ## PouchDB * [PouchDB 官网](https://pouchdb.com/) * [PouchDB API 文档](https://pouchdb.com/api.html). * [PouchDB GitHub](https://github.com/pouchdb/pouchdb) PouchDB是CouchDB的JavaScript实现。 旨在在浏览器中良好运行。帮助 web开发人员构建离线和在线同样有效的应用程序。 默认情况下,PouchDB 附带用于浏览器的 IndexedDB 适配器,用于 Node.js 的 LevelDB 适配器和用于远程数据库的CouchDB 适配器。 Apache CouchDB 是面向文档(document-oriented)的开源 NoSQL 数据库。 它以 Erlang 语言实现,并使用 JSON 存储数据,使用JavaScript 作为查询语言以及使用 API​​ 的 HTTP。 它使应用程序能够在脱机时本地存储数据,然后在应用程序恢复网络时将其与 CouchDB 和兼容服务器同步,从而使用户的数据保持同步,无论用户下一次在哪里登录。 ~~~ var db = new PouchDB('dbname'); db.put({ _id: 'dave@gmail.com', name: 'David', age: 69 }); db.changes().on('change', function() { console.log('Ch-Ch-Changes'); }); db.replicate.to('http://example.com/mydb'); ~~~ [https://docs.couchbase.com/home/index.html](https://docs.couchbase.com/home/index.html) ## CouchDB Apache CouchDB™ lets you access your data where you need it. The Couch Replication Protocol is implemented in a variety of projects and products that span every imaginable computing environment from globally distributed server-clusters, over mobile phones to web browsers. Store your data safely, on your own servers, or with any leading cloud provider. Your web- and native applications love CouchDB, because it speaks JSON natively and supports binary data for all your data storage needs. The Couch Replication Protocol lets your data flow seamlessly between server clusters to mobile phones and web browsers, enabling a compelling offline-first user-experience while maintaining high performance and strong reliability. CouchDB comes with a developer-friendly query language, and optionally MapReduce for simple, efficient, and comprehensive data retrieval. ~~~ $ curl -X PUT http://127.0.0.1:5984/my_database/001 -d '{ Name : Raju , age : 23 , Designation : Designer }' {ok:true,id:001,rev:1-1c2fae390fa5475d9b809301bbf3f25e} ~~~ * [CouchDB 官网](http://couchdb.apache.org/) * [CouchDB 文档](http://docs.couchdb.org/en/stable/). * [CouchDB GitHub](https://github.com/pouchdb/pouchdb) ## gunDB A realtime, decentralized, offline-first, mutable graph protocol to sync the web.[https://gun.eco/docs](https://gun.eco/docs) ~~~ COPY<script src=https://cdn.jsdelivr.net/npm/gun/gun.js></script> <script> // var Gun = require('gun'); // in NodeJS // var Gun = require('gun/gun'); // in React var gun = Gun(); gun.get('mark').put({ name: Mark, email: mark@gunDB.io, }); gun.get('mark').on(function(data, key){ console.log(update:, data); }); </script> ~~~ [gun 官网](https://github.com/amark/gun) ## RxDB ⛁ A realtime Database for JavaScript Applications ~~~ myCollection.insert({ name: 'foo', lastname: 'bar' }); const query = myCollection .find() .where('age') .gt(18); ~~~ [RxDB 官网](https://rxdb.info/) ## Meteor Meteor is a full-stack JavaScript platform for developing modern web and mobile applications. Meteor includes a key set of technologies for building connected-client reactive applications, a build tool, and a curated set of packages from the Node.js and general JavaScript community. * Meteor allows you to develop in one language, JavaScript, in all environments: application server, web browser, and mobile device. * Meteor uses data on the wire, meaning the server sends data, not HTML, and the client renders it. * Meteor embraces the ecosystem, bringing the best parts of the extremely active JavaScript community to you in a careful and considered way. * Meteor provides full stack reactivity, allowing your UI to seamlessly reflect the true state of the world with minimal development effort. [Meteor 官网](https://www.meteor.com/) ~~~ import { Mongo } from 'meteor/mongo'; export const Tasks = new Mongo.Collection('tasks'); import { Tasks } from '../api/tasks.js'; db.tasks.insert({ text: Hello world!, createdAt: new Date() }); ~~~ ## Kinto Kinto is a minimalist JSON storage service with synchronisation and sharing abilities. It is meant to be easy to use and easy to self-host. Kinto is used at Mozilla and released under the Apache v2 licence. ~~~ http GET https://kinto.dev.mozaws.net/v1/buckets/default/collections/tasks/records \ -v --auth 'bob:s3cr3t' ~~~ [Kinto 文档](https://kinto.readthedocs.io/en/stable/tutorials/first-steps.html) [Kinto 官网](http://hood.ie/) ## Hoodie Hoodie is a free and Open Source Software for building applications for the web and iOS. It is a complete backend for your apps, ready for you to get creative. It works immediately out-of-the-box: develop your frontend code, plug it into Hoodie’s frontend-friendly API and your app is ready. When you develop it, your app runs locally first, you can then deploy and host it wherever you want to. And if you want to extend Hoodie’s core features, you can check our list of currently available plugins or build plugins yourself. Hoodie is a noBackend technology — it\\'s there for making the lives of frontend developers easier by abstracting away the backend and keeping you from worrying about backends. It gives you Dreamcode: a simple, easy-to-learn-and-implement frontend API built into it. Hoodie is also Offline First, which means that your app users’ data is stored locally by default so your Hoodie-based apps are accessible and usable anytime, independent from your users’ internet connection. ~~~ hoodie.store.add({ type: 'todo-item', content: 'Try out hoodie!', done: false }) ~~~ ## [RethinkDB](https://www.rethinkdb.com/) the open-source database for the realtime web ## [lowdb](https://github.com/typicode/lowdb) ## PostgreSQL https://www.postgresql.org/ [PostgreSQL即学即用之json操作](https://www.jianshu.com/p/ee8e76f170f4) # WebGL https://github.com/greggman/webgl-fundamentals # [WebAssembly](http://webassembly.org/) 今年对web性能的最大改进是引入了WebAssembly。现在可以在Firefox和Chrome中运行,并且很快就会引入到Edge和WebKit中。 webassmbly允许在浏览器中以`assembly-like`级别执行代码 > [HTML5 Canvas,WebGL,CSS Shaders,GLSL的暧昧关系](http://www.zhangxinxu.com/wordpress/2011/10/html5-canvas-webgl-css-shaders-glsl%E7%9A%84%E6%9A%A7%E6%98%A7%E5%85%B3%E7%B3%BB/) # Chrome 插件 个人使用 扩展,书签,markdown编辑支持等 # 其他 代码里出现了该模式的行就会被辨识为 todo 行: ![](https://box.kancloud.cn/0b430553cd54de972763f86af759dcef_602x111.png) ~~~ 1. // TODO 需要处理的任务 2. // FIXME 表示优先级别比较高,需要处理的缺陷问题的任务 3. // XXX 表示虽然任务已经完成但是还需要优化处理的任务 4. // DONE 表示这个任务已经处理完了,其实可以删除这个标签了 ~~~ 其实在一些支持自定义关键字的todo功能中: ~~~ 1. // Refactor 2. // NOTE ~~~ ## 前端实战 Node.js 8.x 核心API Express 5.x 框架实战 socket.io 实战 Mongoose 实战 GIT/ GITHUB 实战 Gulp 实战 Webpack 实战 Jasmine+karma 实战 PhoneGap 实战 React-native 实战 微信小程序开发实战 Electron 桌面程序开发实战 Laravel # Python 与 Go Django PEP 8编程习惯 https://www.python.org/dev/peps/pep-0008/ urllib2 socket requests Scrapy thread/threading multiprocessing gevent pip https://pypi.python.org/pypi https://tour.go-zh.org/list # Lisp [Structure and Interpretation of Computer Programs](http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/) [Common lisp 学习笔记](http://blog.chinaunix.net/uid-9068675-id-2968173.html) http://racket-lang.org/ http://acl.readthedocs.io/en/latest/zhCN/ # Nim [https://nim-lang-cn.org/](https://nim-lang-cn.org/) # [Kotlin](http://kotlinlang.org/) Kotlin 是一个基于 JVM 的新的编程语言,由 JetBrains 开发。Kotlin可以编译成Java字节码,也可以编译成JavaScript,方便在没有JVM的设备上运行。 # 学习 全美经典学习指导系列