全栈工程师体能备战--知识面(1--20)

javascript

单例设计模式:

单例模式确保某个类只有一个势力,而且自行实例化并向整个系统提供这个实例。如:cocos2dx中的导演类。【例子】我有6哥漂亮的老婆,他们的老公都是我,我就是我们家里的老公signleton,她们只要说道“老公”,都是指的同一个人,那就是我。

代理设计模式:

代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。

【例子】跟MM在网上聊天,一开头总是“hi, 你好”,“你从哪里来呀?”,“你多大了?”,“身高多少?是不是富二代?”,真心很烦人,写个程序作为我的proxy代理吧。凡是接收到这些话都设置好了自己的回答,接收到其他的话时在通知我回答,怎么样,酷不酷??

#include <Windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#pragma warning(disable:4996)//屏蔽vs 4996这个错误信息

typedef struct _PC_Client
{
    void(*request)();
}PC_Client;

void ftp_request()
{
    printf("request from ftp!\n");
}

void http_request()
{
    printf("request from http!\n");
}

void smtp_request()
{
    printf("request from smtp!\n");
}

typedef struct _Proxy
{
    PC_Client* pClient;
}Proxy;

void process(Proxy* pProxy)
{
   // assert(NULL != pProxy);

    pProxy->pClient->request();
}

void main()
{
	Proxy p1 ;
	p1.pClient = (PC_Client *)malloc(sizeof(PC_Client));
	p1.pClient->request = smtp_request;
	process(&p1);
	free(p1.pClient);

	Proxy p2;
	p2.pClient = (PC_Client *)malloc(sizeof(PC_Client));
	p2.pClient->request = http_request;
	process(&p2);
	free(p1.pClient);

	getchar();
}

openfire

Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议。

Openfire安装和使用都非常简单,并利用Web进行管理。单台服务器可支持上万并发用户。

由于是采用开放的XMPP协议,您可以使用各种支持XMPP协议的IM客户端软件登陆服务,

spark

im通讯客户端软件。

xmpp

XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展

以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址的服务等应用程序。而且,XMPP包含了

针对服务器端的软件协议,使之能与另一个进行通话,这使得开发者更容易建立客户应用程序或给一个配好系统添加功能。

传输的是与即时通讯相关的指令。在以前这些命令要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。而XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。



ffmpeg c语言开发的多媒体框架

FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的。

FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows、Mac OS X等。

多媒体视频处理工具FFmpeg有非常强大的功能包括视频采集功能、视频格式转换、视频抓图、给视频加水印等。

android 万能播放器 vitamio

Vitamio是一款 Android 与 iOS 平台上的全能多媒体开发框架,全面支持硬件解码与 GPU 渲染。

Vitamio能够流畅播放720P甚至1080P高清MKV,FLV,MP4,MOV,TS,RMVB等常见格式的视频,还可以在Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8) 等常见的多种视频流媒体协议,包括点播与直播。

tomcat服务器

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。

JDBC

Java Data Base Connectivity;java数据库连接,由一些接口和类构成的api

j2se的一部分,由java.sql和javax.sql包组成。

sun设计接口, db公司提供各种驱动,实现sun的接口。

连接数据库的步骤:

注册驱动(只做一次)

建立连接(connection)

创建执行sql的语句(statement)

执行语句

处理执行结果(resultset)

释放资源

WCF

Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台。

对于 WCF 的客户端来说,WCF 服务就像是一个 Web Service 一样,在 Visual Studio 2008 中,所有 WCF 服务的连接都是由客户端的 服务代理(WCF Service Proxy) 来运行,开发人员不用花费太多心思在通信上,而 WCF Service Proxy 在 Visual Studio 中被称为服务引用(Service Reference)。

在 Visual Studio 中加入 WCF 的服务引用时,Visual Studio 会自动帮开发人员做掉一些必要工作(例如组态创建以及产生 Service Proxy 等),开发人员只需要在代码中取用 WCF Service Proxy 对象即可。

Strom

分布式实时计算系统

流式计算框架

hadoop主要是应用于批量的离线计算

spark 主要擅长实时的迭代计算

kafka消息队列

Strom集群

Nimbus--集群主节点

Supervisor--集群从节点

windows与linux互相传输文件:

securtCRT:sftp

Alt+p

sftp>put F:/QQ.rar

linux下,jps命令,

我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。

大数据及hadoop简介

Hadoop是一个开源的可运行于大规模集群上的分布式文件系统和运算处理基础框架。

擅长于在廉价机器搭建的集群上进行海量数据(结构化与非结构化)的存储于离线处理。

1byte = 8bit;

Byte->KBb->MB->GB->TB->PB->EB->ZB->YB

海量数据如何存储

海量数据如何处理

海量数据如何分析

如何提高海量数据处理的速度???

nfs网络文件系统

怎样解决海量数据的计算?

一行一行读取?--磁盘io瓶颈导致效率太低速度太慢

一次性加载到内存?--单击内存容量有限

中间结果全部缓冲到hashmap中?--单机内存容量有限

多线程处理?--无法改变资源瓶颈的现实

横向扩展,用多借点分布式集群处理(通过增加处理节点数据来提高处理能力)

核心思想:任务分摊,通过写作来实现单节点无法实现的任务。

hdfs文件系统

工作原理:

通过分布式集群来存取文件

会给客户端提供一个统一的目录结构和访问接口(命令行的,也有java-api)存储文件的时候,是将文件切成若干个block存放到很多的主机上,而且每一个block都有多个副本。

集群中的节点会分为两类劫色:namenode--管理元数据(hdfs上的文件块所对应的实际存放物理主机地址)datanode--存放hdfs上文件的block

分布式并行计算--资源调度Yam+编程模型Mapreduce

大容量高并发

封装分布式实现细节

Hadoop学习路线

linux系统基本操作能力

java开发语言

hadoop核心组件

MAPREDUCE或SPARK等变成模型

Zookeeper-Sqoop-Flume等工具组件

NoSQL技术,Hbase

数据分析挖掘,及其学习Mahout

胶水语言python

python是一种面向对象、解释性计算机程序设计语言,python语法简洁而清晰,具有丰富和强大的类库。它能够把用其他语言制作的各种模块(尤其是c/c++)很轻松地联结在一起,因此被称为胶水语言。

python用途:

GUI编程:(PIL, Tkinter, pythonQt)

数学处理:(标准数学库接口)

文本处理:(正则表达式,xml)

web编程:(django等web框架)

数据库编程:(oracle,mysql,sqlite)

多媒体编程:(PyMedia,wav, mp3, ogg)

游戏引擎:(OpenGL, android AVG引擎)

云服务管理平台:(openstack)

python源码编辑编译执行

:py

环境变量

import

入口函数

代码

注释

:pyc

字节码文件,提高加载速度,被其他文件引用。

python -m py_compile first.py

:pyo

优化编译 字节码文件 -O选项生成

python -O -m py_compile first.py

JSON

(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(网络传输速率)。

JSON 名称/值对

JSON 数据的书写格式是:名称/值对。

名称/值对组合中的名称写在前面(在双引号中),值对写在后面(同样在双引号中),中间用冒号隔开:

"firstName":"John"

反编译android应用

JD-GUI工具的使用

class,jar文件-->java文件

dex2jar工具的使用

apk文件-->jar文件

apktool工具的使用

apk文件-->源文件.9图片,布局,清单文件

Nginx技术内幕

Nginx是一款高性能的HTTP和反向代理服务器,能够支持高达50000个并发连接数的响应,而内存、CPU等系统资源消耗却非常低、运行非常稳定。

反向代理方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代

理服务器对外就表现为一个反向代理服务器。

APP内置IM系统

通讯云

一台服务器能够支持的最大连接数是多少??

错误的认识:2^16个端口号。

正解:区分不同主机的四个元素(srcIP, srcPort, desIP, desPort)故连接数由硬件资源(服务器机器内存)决定。

NAT(network address translation)

P2P net穿透

XML

XML(Extensible Markup language可扩展的标记语言)

xml的本质:一种数据的组织方式!

xml的优势:可扩展的标记;元标记语言。可以定义其他标记语言;

朱元璋 朱重八 明朝 要饭 和尚 皇帝 男

明朝 要饭 朱元璋 朱重八  和尚 皇帝 男

Json

{曾用名:‘朱重八‘, 姓名:‘朱元璋‘,朝代:‘明朝‘,性别:‘男‘,曾经的职业:{‘要饭‘,‘和尚‘},现在的职业:‘皇帝‘}

<resume>

<prename endAge="20">朱重八</prename>

<name startAge="25">朱元璋</name>

<dynasty>明朝</dynasty>

<preJob>要饭</preJob>

<job>皇帝</job>

</resume>

XML解析:

JDOM, DOM4J, XQUERY等

Cordova

混合式应用平台。

Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原声的设备功能,如摄像头,麦克风等。

cordova还提供了一组统一的JavaScript类库,以及为这些类库所用的设备相关的原生后台代码。

cordova支持如下移动操作系统:IOS,Android, Ubuntu, phone os, Webos, symbian等。

移动端的应用有以下几种:WebApp, NativeApp, HybridApp;

WebApp就是网站,HTML+CSS+JS开发,用浏览器访问。

NativeApp是用原生语言开发,用户需要下载按章的手机应用。开发成本很高,每个平台的开发语言都不一样,我们如果需要做一个多平台都能运行的APP, 需用多种语言重复开发多次。

HybridApp中和了NativeApp和WebApp各自的优势。我们可以用HTML+CSS+JS开发,兼容多个平台。用户也要下载安装,并等调用手机的摄像头、通讯录等功能,HybridApp的静态资源也在手机本地。

版权声明:欢迎转载,希望在您转载的同时,添加原文地址,谢谢配合!

时间: 2024-10-01 13:23:59

全栈工程师体能备战--知识面(1--20)的相关文章

《Web全栈工程师的自我修养》读书笔记(转载)

[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/5243181.html [正文] 豆瓣链接:https://book.douban.com/subject/26598045/ [目录] 01 什么是全栈工程师 02 如何成为全栈工程师 03 从学生到工程师 04 野生程序员的故事 05 工程师事业指南 06 全栈工程师眼中的HTTP 07 高性能

“全栈”工程师 请不要随意去做

今天我来给大家说说 "全栈工程师" 的事儿. 写这篇文的背景原因: 很简单就是最近越来越多的人想做[全栈工程师],他们的目标就是全栈,他们才入行短短1-2年,甚至刚从培训班出来:我的目标是做全栈,我啥都要学会,啥都会写,这样我就是大牛了,可以挣大钱,就算创业,我也不用招那么多人,一个人搞定一个产品,融资上市 ,CEO白富美,balabala... 我给他的回复是: 去你xx的,你连JS 数组和对象用法都搞不清,抄几个效果,看几个视频教程摸索摸索就要做万能人了? "全栈&quo

《web全栈工程师的自我修养》阅读笔记

在买之前以为这本书是教你怎么去做一个web全栈工程师,以及介绍需要掌握的哪些技术的书,然而看的过程中才发现,是一本方法论的书.读起来的感觉有点像红衣教主的<我的互联网方法论>,以一些自己的经历和感悟来阐述web全栈工程师需要具备哪些素质,而不仅仅是需要哪些技术.这算是我买的书中看的最快的一本书. 在阅读这本书之前,我对全栈工程师的理解还停留在node阶段,随着node在服务端的风生水起,有一段时间会认为使用nodejs作为服务端开发,前后端统一使用js开发,便是所谓的全栈开发,比较流行的技术栈

读&lt;专栏&#183;谈谈全栈工程师&gt;

原文地址:http://leihuang.org/2014/12/12/read-Full-Stack-Developer/ 昨天晚上看海贼王给看睡着了(11点的左右),导致早上5点就醒了,怎么办呢,找点东西打发点时间,本来想看看知乎的,但是最近对知乎的氛围很失望,总感觉好浮躁的氛围,当然这些跟我关注的人有关系,改天清理清理. 犹豫了半天,想着还是看本薄点的书吧,下了个豆瓣阅读软件,因为以前没用过,本来想找书,结果点进了豆瓣专栏,还以为里面是书.进去之后才发现是别人写的专栏.也没想太多,看到有科

为什么未来是全栈工程师的世界?

谨以此文献给每一个为成为优秀全栈工程师奋斗的人. 节选自<Growth: 全栈增长工程师指南> 技术在过去的几十年里进步很快,也将在未来的几十年里发展得更快.今天技术的门槛下降得越来越快,原本需要一个团队做出来的Web应用,现在只需要一两个人就可以了. 同时,由于公司组织结构的变迁,以及到变化的适应度,也决定了赋予每个人的职责将会越来越多.尽管我们看到工厂化生产带来的优势,但是我们也看到了精益思想带来的变革.正是这种变革让越来越多的专家走向全栈,让组织内部有更好的交流. 你还将看到专家和全栈的

全栈工程师(文章系转载)

最近国内外都在流行一个词叫Full Stack,中文翻译过来叫全栈工程师,也叫全端工程师.微博上很多专业人士都在讨论全端工程师,有赞有毁的.我对全端工程师的定义是:掌握多种技能,并 能利用多种技能独立完成产品的人.打外比方,全栈工程师就是一个能独立盖一幢10层小洋楼的人,而普通工程师,则是可以和一群人盖一幢摩天大楼的人.至于 要掌握哪些技能,我觉得这个要跟从事的行业与技术方向有关,做互联网的和做软件的是不一样的,即使是做互联网的,后端也可以分为很多种技术流派. 8/2定律在哪都适用,全栈工程师就

转:全栈工程师的知识栈列表

from: http://blog.csdn.net/caopeng26/article/details/52235883 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 通往互联网架构师之路—全栈工程师 1.首先我们看什么是架构师?架构师应该具备哪些能力? 大家都知道很多公司都有架构师这个职位,但是我想告诉大家的是看一个人是不是架构师不是看职位,而是看他所具备的能力以及正在做的事,所以有架构师头衔的人不一定具备架构师的能力,而不是架构师的人却在做着架构师的工作. 2.架

如何成为全栈工程师?

转自:http://mp.weixin.qq.com/s?__biz=MzA3NTIzMzIxNQ==&mid=208316668&idx=1&sn=c57fb38fa7b1d404794deff258b1ae0d#rd 如何成为全栈工程师? 2015-08-18 余果 人邮IT书坊 不管您是否承认,除去极少数天赋异禀.骨骼惊奇的天才程序员,我们大部分人都是普通人,都需要遵循“一万小时定律”,才能从平凡变成超凡. 凡 人要从一个小菜鸟成长为全栈工程师,只能从少到多.慢慢积累知识和经

全栈工程师到底有什么用(转)

最近国内外都在流行一个词叫Full Stack,中文翻译过来叫全栈工程师,也叫全端工程师.微博上很多专业人士都在讨论全端工程师,有赞有毁的.我对全端工程师的定义是:掌握多种技能,并 能利用多种技能独立完成产品的人.打外比方,全栈工程师就是一个能独立盖一幢10层小洋楼的人,而普通工程师,则是可以和一群人盖一幢摩天大楼的人.至于 要掌握哪些技能,我觉得这个要跟从事的行业与技术方向有关,做互联网的和做软件的是不一样的,即使是做互联网的,后端也可以分为很多种技术流派. 8/2定律在哪都适用,全栈工程师就