Expand
-
Collapse
产品经理技术入门
基础知识
什么是互联网
一个开放的计算机网络
通过一些标准协议进行通信
TCP(传输层)
HTTP(应用层)
FTP
UDP(无连接)
DNS
SNMP
由一些网络服务器组成
当年也有很多没有专门服务器的个人网站
IP地址(门牌)
域名与ip地址的关系
DNS
HOST
咱们微博的服务器
为啥还有多个机房?
土城、永丰
为啥国外访问慢?
可以通过运营商接入网络
有线
光纤
电话线
无线
2G
移动GSM
联通GSM
电信CDMA
3G
移动TD-SCDMA
联通WCDMA
电信CDMA2000
4G
移动TD-LTE
联通TDD-LTE FDD-LTE
电信TD-LTE FDD-LTE
运营商Wifi
网站是如何组成的
前端网页
各种资源
图片
JPG
PNG
GIF
音频
MP3
AAC
码率是啥?
视频
AVI
MP4
MKV
FLV
JS脚本
CSS
网页结构
DOM
一个地址
什么是URL
统一资源定位符
标识文件在网络中的位置
scheme://host:Port/path
scheme 资源的类型。APP里也会定义为用哪个app打开
HTTP://
FTP://
sinaweibo://
host
ip
domain
Port
:80 HTTP
:443 HTTPS
:21 FTP
后端服务
数据库存储
缓存
把最常用的东西放在最容易取得的地方
服务器端缓存
大家看到的都一样的内容,一个用户读取时运算完种到缓存中,其他用户直接读
自己频繁读取的:变更少,但读取频繁的
客户端缓存
client
browser
队列
银行取号排队,取号速度非常快,办理业务速度慢
不想丢失消息,但又希望能快速地进行处理。同步变异步
解耦
其他依赖的外部服务
Apache是啥
web服务器
httpd
redis是啥
高效的KV存储
常用于访问简单、频繁的存储服务
网站怎么会知道我是谁
最开始的网站不知道你是谁
想想现实中怎么识别人的身份的
长相
身份证
火车卧铺票换票
浏览器中是怎么做的
session
cookie
basic_oauth
密码怎么存储才安全
app中大多是怎么做的
token
网页和app有啥差别
app为啥总要发版?
最初的计算机世界,硬件软件结合很紧
IBM兼容机、微软开放平台
Android市场、IOS AppStore
啥样的需求需要发版?啥样的不需要
框架结构改变
内容改变
神奇的Cardlist
为啥都要求PM有ios、Android两种手机?
两个系统的差别
各家应用的两端体验差别
Push是啥?为啥说是手机的第二个桌面
push是一种服务和app通信的通道
可以在用户未打开app的状态下,将app通过内容推送到用户面前
iOS有官方的通道,到达率很高
Android厂商和app都会自己去建立push通道,并且竞争明显
H5都能做些啥?
配合css3制作一些动画替代之前的flash动画
可以操作更大的本地存储(数据库),去做一些小规模的游戏
canvas的绘图能力大大加强
可以更好的支持视频、音频播放
程序怎么运行的
编程语言
编译
C++
JAVA
objective-C
编写-编译-链接-运行
解释
php
js
运行环境
.net Framework
JRE
浏览器
客户端程序和服务器端程序有啥不同么?
客户端程序运行于用户的手机、PC上
多用于功能交互展示
服务器端程序运行于服务器上
多用于数据运算
客户端通过API与服务器通信,获取或发布数据
通常说的手机内存和服务器或者笔记本的内存是一回事么?
手机运行内存
RAM
掉电、重启丢失
手机非运行内存
ROM
掉电、重启不丢失
大写字母和小写字母一样么?
为什么密码检验大小写,验证码就不需要,怎么做到的?
浏览器地址栏中区分大小写么?
域名不区分
具体地址和参数大多区分
为什么是大多区分?
神奇的微软
ASCII
工程师总说溢出,啥叫溢出?
2进制
多个行为存在一起,1000101(2)=69(10),bitmap
数据类型
类型安全语言
内存缓冲区
啥叫打补丁?为啥程序员都不爱打补丁,爱重构
写程序好比写作,需求不断变更,就好比思路不断变换
程序没有在设计之初就是完美的,在不断的迭代过程中,虽然能够解决问题,但是并不优美
不断的在原有程序上进行变更修改,使得程序的可读性和可维护性大大下降
重构是把现有的问题梳理解决,提升质量,但难以一劳永逸
啥叫算法?啥叫数据结构
算法,解决问题的方法
同一个问题也有不同的解决方法
递推法
简单过程多次重复
递归法
fib
穷举法
穷举密码
贪心算法
具备无后效性
即某个状态以前的过程不会影响以后的状态,只与当前状态有关
dijkstra
分治法
快速排序
动态规划法
01背包
回溯
深度优先
...
数据结构,计算机存储、组织数据的方式
集合
队列
栈
数组
树形结构
图形结构
...
数据统计怎么实现的
数据收集
web前端布码
一段js脚本
点击后中间跳转页
app前端布码
记录到本地,有wifi时上传
服务器端日志统计
对Apache/Nginx Accesslog进行分析
数据汇总
服务器日志 需要多台进行汇总
大多是后一天跑前一天的日志数据
实时性高的统计需求不要用日志方式收集
数据分析
通过脚本进行统计归类
其实和excel在做的处理类似
数据异常的报警机制
输出报告
定时邮件
统计系统查询
纯数据需要二次处理
日志存储
存储成本
数据仓库的建立
基本技能
如何粗略分析一个需求的实现难度
前端呈现
PM设计样式类别、特殊情况、动画效果越多的,大多数前端开发也越耗时
PM能描述出来规律的,开发也可以写出规律的程序
后端逻辑
数据量有多大?
用户量有多大?
并发数有多高?
即时性要求有多高?
逻辑本身用人的思路梳理起来有多少步骤
怎样让技术更快的理解需求
让技术参加产品需求讨论
找到一个现实的例子给他看
让他知道为何而做
动力源
他们是工程师,不是搬砖的码农
有一个靠谱的技术合伙人
有哪些技术工具可以用
会点数据库知识
SQL,结构化查询语言
大多数关系型数据库都支持该语言
增、删、改、查
学一门脚本语言
PHP
Python
熟练使用excel
公式计算
排序
求和
求平均值
分段统计
生成图表
折线图
柱形图
条形图
饼图
用脑图理清思路
Windows
MindManager
FreeMind
Mac
MindNode
将大问题分解成小问题
抓包是啥意思
啥叫包?
网络中传输的数据
以包的形式聚合在一起
怎么抓?如何使用Fiddler
其实除了抓自己的包,还可以抓别的人包
HTTPS
广播
黑盒测试也不仅仅是随便点点
撰写需求时理清逻辑,流程图清晰
工具:Visio
顺序机构
条件结构
循环结构
设定好边界条件
如果输入是限定范围或者限定个数
大于或小于范围
等于范围
属于范围
如果输入是必须xx
输入xx
输入不是xx
如果输入是true or false
true
false
如果输入是一组值,每个值单独处理
每个值都对
其中第n个值错误
n=1
n=2
n=...
通过对一个大问题的拆分,细分到最小可选择情况
结合边界条件编写测试用例
对测试用例进行逐一验证,检验输出
感觉发生了故障,该找谁?
是不是网络问题
访问其他网站或app
切换网络环境
是不是设备自身问题
换设备
重启app
重启手机