一、.Web开发
1.HTMl:HTML是用来描述网页的一种语言。
1.1 HTML指的是超文本标记语言 (Hyper Text Markup Language)
1.2 HTML不是一种编程语言,而是一种标记语言 (markup language)
1.3 标记语言是一套标记标签 (markup tag)
1.4 HTML 使用标记标签来描述网页
2.CSS/CSS3.0
2.1 CSS 指层叠样式表 (Cascading Style Sheets)
2.2 样式定义如何显示 HTML 元素
2.3 样式通常存储在样式表中
2.4 把样式添加到 HTML 4.0 中,是为了解决内容与表现分离的问题
2.5 外部样式表可以极大提高工作效率
2.6 外部样式表通常存储在 CSS 文件中
2.7 多个样式定义可层叠为一
3.Sass
Sass的学名叫“CSS预处理器”,就是在CSS的基础上,引入了变量、嵌套、mixin(混合)、运算以及函数等功能,增加了代码的灵活性,可以让我们以更少的代码实现同样的效果,而且代码的整洁度、可读性更强。
4.LESS
Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量、Mixin、函数等特性,使 CSS 更易维护和扩展。Less 可以运行在 Node 或浏览器端。
5.Bootstrap
Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。
6.JavaScript
JavaScript 是世界上最流行的编程语言。这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。
6.1 JavaScript 是脚本语言
6.2 JavaScript 是一种轻量级的编程语言。
6.3 JavaScript 是可插入 HTML 页面的编程代码。
6.4 JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。
6.5 JavaScript 很容易学习。
7.ECMAScript
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,所以它可以理解为是javascript的一个标准,但实际上后两者是ECMA-262标准的实现和扩展。
8.TypeScript
TypeScript是一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。
9.AJAX
AJAX = 异步 JavaScript 和 XML。
AJAX 是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
有很多使用 AJAX 的应用程序案例:新浪微博、Google 地图、开心网等等。
10.JSON
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
10.1 JSON 是轻量级的文本数据交换格式
10.2 JSON 独立于语言 *
10.3 JSON 具有自我描述性,更易理解
- JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。
11.JS正则表达式
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。搜索模式可用于文本搜索和文本替换。
11.1 正则表达式是由一个字符序列形成的搜索模式。
11.2 当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
11.3 正则表达式可以是一个简单的字符,或一个更复杂的模式。
11.4 正则表达式可用于所有文本搜索和文本替换的操作。
12.Jquery
jQuery 库可以通过一行简单的标记被添加到网页中。
12.1 jQuery是一个JavaScript函数库。
12.2 jQuery是一个轻量级的"写的少,做的多"的JavaScript库。
12.3 jQuery库包含以下功能:HTML元素选取 / HTML元素操作 / CSS操作 / HTML事件函数 / JavaScript 特效和动画 / HTML DOM 遍历和修改 / AJAX / Utilities
12.4 提示: 除此之外,Jquery还提供了大量的插件。
13.Vue.js
13.1 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的渐进式框架。
13.2 Vue 只关注视图层, 采用自底向上增量开发的设计。
13.3 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
14.ReactJS
14.1 React 是一个用于构建用户界面的 JAVASCRIPT 库。
14.2 React主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。
14.3 React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。
14.4 React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。
15.AngularJS
AngularJS 通过新的属性和表达式扩展了 HTML。AngularJS 可以构建一个单一页面应用程序(SPAs:Single Page Applications)。
15.1 AngularJS有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。
15.2 AngularJS 是一个 JavaScript框架。它是一个以 JavaScript 编写的库。它可通过 <script> 标签添加到HTML 页面。
15.3 AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML。
15.4 AngularJS 是以一个 JavaScript 文件形式发布的,可通过 script 标签添加到网页中。
16.BackboneJS
Backbone 为复杂Javascript应用程序提供模型(models)、集合(collections)、视图(views)的结构。其中模型用于绑定键值数据和自定义事件;集合附有可枚举函数的丰富API; 视图可以声明事件处理函数,并通过RESTful JSON接口连接到应用程序。
17.EmberJS
Ember.js是一个开源的JavaScript客户端框架,用于开发Web应用程序并使用MVC(模型 - 视图 - 控制器)架构模式。在Ember.js中,路由用作模型,handlebar模板作为视图,控制器处理模型中的数据。
17.1 Ember.js用于创建可重用和可维护的JavaScript Web应用程序。
17.2 Ember.js视图通过使用Handlebars模板创建,并且易于开发前端设计。
17.3 它在声明路由资源期间自动确定路由和控制器。
17.4 Ember.js消除了样板(必须包含在各个地方的代码段,没有任何改动),并提供标准的应用程序架构。
17.5 Ember.js具有HTML和CSS作为开发模型的核心。
17.6 路由是Ember.js的核心功能,用于管理URL。
17.7 它具有广泛的视图类型支持。
17.8 Ember.js使用模板来帮助自动更新模型,如果应用程序的内容更改。
18.RequireJS
RequireJS是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一。最新版本的RequireJS压缩后只有14K,堪称非常轻量。它还同时可以和其他的框架协同工作,使用RequireJS必将使您的前端代码质量得以提升。
19.Gulp
Gulp是一个自动化构建工具,它可以做一些自动化的任务:检查Javascript / 编译Sass(或Less之类的)文件 / 合并Javascript / 压缩并重命名合并后的Javascript / 变更静态资源 / 给静态资源添加 md5 / 合并雪碧图 / 自动刷新浏览器。以前为了提高网站的访问速度,这些都是人工做的,现在gulp可以很好的完成他们。
20.Webpack
WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。
21.SVG
可缩放矢量图形是基于可扩展标记语言(标准通用标记语言的子集),用于描述二维矢量图形的一种图形格式。它由万维网联盟制定,是一个开放标准。
22.HTTP协议
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏览器、网络爬虫或者其它的工具,客户端发起一个到服务器上指定端口(默认端口为80)的HTTP请求。(我们称这个客户端)叫用户代理(user agent)。应答的服务器上存储着(一些)资源,比如HTML文件和图像。(我们称)这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在http和其他几种网络协议的多个中间层,比如代理,网关,或者隧道(tunnels)。尽管TCP/IP协议是互联网上最流行的应用,HTTP协议并没有规定必须使用它和(基于)它支持的层。 事实上,HTTP可以在任何其他互联网协议上,或者在其他网络上实现。HTTP只假定(其下层协议提供)可靠的传输,任何能够提供这种保证的协议都可以被其使用。
23.TCP/IP协议
Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的协议来完成自己的需求。通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。而IP是给因特网的每一台联网设备规定一个地址。
二、App开发
1.IOS
1.1 IOS是苹果公司研发的一款手机操作系统。
1.2 于2007年开始运用于iPhone,iPod Touch和苹果电视。
1.3 IOS从OS X演化而来,并且和OSX共享Darwin。
1.4 IOS是OSX运用于苹果电脑操作系统的一款手机操作系统。
2.Android
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
3.Swift
3.1 Swift 是一种支持多编程范式和编译式的开源编程语言,苹果于2014年WWDC(苹果开发者大会)发布,用于开发 iOS,OS X 和 watchOS 应用程序。
3.3 Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制。
3.4 Swift 在 Mac OS 和 iOS 平台可以和 Object-C 使用相同的运行环境。
4.React Native
React Native (简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的UI框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用,因此熟悉Web前端开发的技术人员只需很少的学习就可以进入移动应用开发领域。
5.Ionic
5.1 ionic 是一个强大的 HTML5 应用程序开发框架(HTML5 Hybrid Mobile App Framework )。 可以帮助您使用 Web 技术,比如 HTML、CSS 和 Javascript 构建接近原生体验的移动应用程序。
5.2 ionic 主要关注外观和体验,以及和你的应用程序的 UI 交互,特别适合用于基于 Hybird 模式的 HTML5 移动应用程序开发。
5.3 ionic是一个轻量的手机UI库,具有速度快,界面现代化、美观等特点。为了解决其他一些UI库在手机上运行缓慢的问题,它直接放弃了IOS6和Android4.1以下的版本支持,来获取更好的使用体验。
6.Jquery Mobile
6.1 JQuery Mobile 是用于创建移动 Web 应用的前端开发框架。
6.2 JQuery Mobile 可以应用于智能手机与平板电脑。
6.3 JQuery Mobile 使用 HTML5 & CSS3 最小的脚本来布局网页。
7.APP Store 发布
7.1 下载和配置证书;
7.1.1 以.certSigningRequest结尾的请求证书;
7.1.2 配置AppId,这是你的应用的唯一标示;
7.1.3 配置.cer结尾的发布证书;
7.1.4 生成发布签名证书;
7.2 在Xcode里打包应用;
7.2.1 打开Xcode->点击左上角Xcode->点击Preference->选择Account,添加你的开发账号;
7.2.2 配置General里的信息;
7.2.3 接下去要添加签名文件;
7.2.4 在设备选择的地方;
7.2.5 然后选则菜单栏里的Product->Archive;
7.2.6 此时要Export应用包,并点击Next;
7.2.7 此时要选择对应的开发团队账号;
7.3 上传应用Ipa到AppStore;
7.3.1 打开Application Loader ,登录开发账号,选取刚刚生成的应用包;
7.3.2 此时进入iTunes Connect ,选择我的App;
7.3.3 构建新的版本号;
7.3.4 按照实际情况填写App信息和价格与销售范围这两项内容;
三、Server开发
1.PHP
PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。
PHP是一种创建动态交互性站点的强有力的服务器端脚本语言。
PHP是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。
2.NodeJS
2.1 简单的说 Node.js 就是运行在服务端的 JavaScript。
2.2 Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
2.3 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
3.Koa
koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。
4.Python
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
4.1 Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
4.2 Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序。
4.3 Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
4.4 Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
5.Python3
Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0在设计的时候没有考虑向下兼容。
6.Django
6.1 Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。
6.2 Django是一个开放源代码的Web应用框架,由Python写成。
6.3 Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。
6.4 Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。
7.Ruby
Ruby是一种纯粹的面向对象编程语言。它由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)创建于1993年。
Ruby 是"程序员的最佳朋友"。
Ruby 的特性与 Smalltalk、Perl 和 Python 类似。Perl、Python 和 Smalltalk 是脚本语言。Smalltalk 是一个真正的面向对象语言。Ruby,与 Smalltalk 一样,是一个完美的面向对象语言。使用 Ruby 的语法比使用 Smalltalk 的语法要容易得多。
8.Perl
Perl,一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发。Perl 语言的应用范围很广,除CGI以外,Perl被用于图形编程、系统管理、网络编程、金融、生物以及其他领域。由于其灵活性,Perl被称为脚本语言中的瑞士军刀。
Perl像C一样强大,像awk、sed等脚本描述语言一样方便。
四、数据存储
1.MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
1.1 Mysql是开源的,所以你不需要支付额外的费用。
1.2 Mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
1.3 MySQL使用标准的SQL数据语言形式。
1.4 Mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、1.5 Perl、PHP、Eiffel、Ruby和Tcl等。
1.6 Mysql对PHP有很好的支持,PHP是目前最流行的Web开发语言。
1.7 MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
1.8 Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统。
2.SQLite
SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。
3.MongoDB
3.1 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
3.2 MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
3.3 MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
4.Elasticsearch
Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。无论在开源还是专有领域,Lucene可以被认为是迄今为止最先进、性能最好的、功能最全的搜索引擎库。
4.1 分布式的实时文件存储,每个字段都被索引并可被搜索;
4.2 分布式的实时分析搜索引擎;
4.3 可以扩展到上百台服务器,处理PB级结构化或非结构化数据;
5.Redis
5.1 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
5.2 Redis 与其他 key - value 缓存产品有以下三个特点:
5.3 Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
5.4 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
5.5 Redis支持数据的备份,即master-slave模式的数据备份。
6.Memcached
6.1 Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。
6.2 Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。
6.3 Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。
6.4 Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。
Memcached本质上是一个简洁的key-value存储系统。
五、其他语言
1.GO语言
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。
2.lua
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
3.C语言
3.1 C 语言是一种通用的高级语言,最初是由丹尼斯·里奇在贝尔实验室为开发 UNIX 操作系统而设计的。
3.2 C 语言最开始是于 1972 年在 DEC PDP-11 计算机上被首次实现。
3.3 C 语言是为了编写 UNIX 操作系统而被发明的。
3.4 C 语言是以 B 语言为基础的,B 语言大概是在 1970 年被引进的。
3.5 C 语言标准是于 1988 年由美国国家标准协会(ANSI,全称 American National Standard Institute)制定的。
4.C++
4.1 C++ 是一种静态类型的、编译式的、通用的、大小写敏感的、不规则的编程语言,支持过程化编程、面向对象编程和泛型编程。
4.2 C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点。
4.3 C++ 是由 Bjarne Stroustrup 于 1979 年在新泽西州美利山贝尔实验室开始设计开发的。
4.4 C++ 进一步扩充和完善了 C 语言,最初命名为带类的C,后来在 1983 年更名为 C++。
4.5 C++ 是 C 的一个超集,事实上,任何合法的 C 程序都是合法的 C++ 程序。
注意:使用静态类型的编程语言是在编译时执行类型检查,而不是在运行时执行类型检查。
5.Java
Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。
Java分为三个体系:
5.1 JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版)
5.2 JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版)
5.3 JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)。
6.正则
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
6.1 C# 正则表达式
在我们的 C# 教程中,C# 正则表达式 这一章节专门介绍了有关 C# 正则表达式的知识。
6.2 Java 正则表达式
在我们的 Java 教程中,Java 正则表达式 这一章节专门介绍了有关 Java 正则表达式的知识。
6.3 JavaScript 正则表达式
在我们的 JavaScript 教程中,JavaScript RegExp 对象 这一章节专门介绍了有关 JavaScript 正则表达式的知识,同时我们还提供了完整的 JavaScript RegExp 对象参考手册。
6.4 Python 正则表达式
在我们的 Python 基础教程中,Python 正则表达式 这一章节专门介绍了有关 Python 正则表达式的知识。
6.5 Ruby 正则表达式
在我们的 Ruby 教程中,Ruby 正则表达式 这一章节专门介绍了有关 Ruby 正则表达式的知识。
7.C#
7.1 C# 是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。
7.2 C# 是由 Anders Hejlsberg 和他的团队在 .Net 框架开发期间开发的。
7.3 C# 是专为公共语言基础结构(CLI)设计的。CLI 由可执行代码和运行时环境组成,允许在不同的计算机平台和体系结构上使用各种高级语言。
六、开发工具
1.Linux
1.1 Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
1.2 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
1.3 Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
2.Docker
2.1 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
2.2 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
2.3 容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
3.Git
3.1 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
3.2 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
3.3 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
4.Vim
Vim 是 UNIX 文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff),语法高亮,全面的帮助系统,本地脚本(Vimscript),和便于选择的可视化模式。 Vim 专注于键盘操作,它并不是像 nano 或 pico 一样的简单编辑器。Vim 需要花时间来学习,并值得花上更多的时间来掌握。
七、架构&设计
1.设计模式
1.1 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。
1.2 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。
八、机器学习
1.NumPy
NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。
一个用python实现的科学计算包。包括:
1.1 一个强大的N维数组对象Array;
1.2 比较成熟的(广播)函数库;
1.3 用于整合C/C++和Fortran代码的工具包;
1.4 实用的线性代数、傅里叶变换和随机数生成函数;
1.5 numpy和稀疏矩阵运算包scipy配合使用更加方便;
2.Pandas
Pandas 是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。
3.Matplotlib
Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。
4.arduino
Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开发团队于2005年冬季开发。
网友评论