\# 乱七八糟的内容
修改文档名为:
1.快照版(同布更新)
2.稳定版(只维护,不更新)
3.最终版(不更新、不维护)
\---
\## 词墙
git svn maven java spring sringboot springcloud protobuf netty io多线程 docker jenkins apache tomcat
js vue vue-cli vuex vue-router react-native jquery webpack bash mybatis redis mysql nginx
firewalld centos SSH node npm koa UML 设计模式 md HTTP
\## 踩坑心得
其实每个功能说复杂也复杂,说不难也不难……
随便拉出一个框架或者功能来说,无非就是以下几种特点:
1.API有十多个。
2.基础功能有十多个。
3.高级功能有十多个。
3.网上教程一大堆。乱七八糟,质量层次不齐。
4.官网文档写的要么是太晦涩、要么就是接口文档、要么就是写的介绍太简单贴的全是代码块(过时代码还各种问题)、要么就是根本找不到文档在什么地方(开箱即用~)。
5.大部分功能用的并不多。可能跟我的认知有限有关……
6.对于大部分项目工程,很多高级功能都用不到。复杂的功能一般都是依托于项目的繁杂业务,大佬都能封装原生API。简单的稍微有些经验的程序员找点demo也能写得八九不离十,更多的使用情况是程序员感觉框架用起来开发更简单,项目看起来更高大上,仅此而已。
7.很多功能都需要别的功能进行铺垫,很多情况下一头雾水并不是因为该功能的复杂,而是对相关联的功能不熟悉。
8.功能的不熟悉主要原因是官网没有给出该功能具体解决的实际痛点在什么地方。
罗列一下最近研究的东西哪些让我很抓狂:
一、比如说vue的SSR框架,为什么要实现client端和server端?
必要的了解:
1\. 开发环境和生产环境。 开发环境就是写代码的地方。生产环境就是线上代码部署的地方。
2\. 一个成熟的前端工程师不光要有解决开发环境问题的能力,还要有解决生成环境问题的能力。
3\. 开发环境的架构意味着项目的可读性更高,后期的维护更容易、迭代成本越低等。
4\. (前端这块儿不是很夸张)生产环境的架构很大程度上决定了系统的性能瓶颈、抗并发性、可移植性、数据备份,灾难恢复等一切不可逆的情况发生所带来的损失情况。
VUE主流解决SEO的两种方式
1\. SSR框架渲染。 它主要的实现方式就是在开发环境配置好以后,再生成生产代码的同时动态地把组件转换成字符串。用户获取页面时,获取到的其实就是一个由服务器拼接好的一个html字符串页面。(即一个new出来的vue对象转成字符串)
其中用到的技术就是路由懒加载和server端和client端。一个负责new组件转换成字符串,一个负责拼接。
2\. 服务端预渲染。根据路由规则,静态路由+动态路由生成对应的路由表,同时生成静态文件。
遇到的坑
1\. 我之前异常痛恨vue-cli1.0,甚至vue-cli2.0,因为各种繁杂的webpack配置,尤其是从3.6升级到4.0的过程。
2\. 但最近vue-cli3.0的出现意味着零配置。然后果断上了3.0。结果发现没法配置webpack……。
3\. 基于SSR的特殊性与vue-cli3.0的不熟悉,我一边查找官方文档的配置、一边踩坑,最后还是弃用了cli,自定义配置webpack4+。
4\. 由于生产环境和开发环境的混淆(概念还不区分),所以导致了我很多情况下没法理解server端和client端到底做了些什么。
5\. server和client基本上就是在生产环境中使用的,更多需要的node来支持。
二、JAVA的Netty到底做了些什么,为啥我的的项目+官方文档的例子无法成功运行?
\## 为什么会有这个文档
\* BOSS直聘上好多高级的开发岗位的技能要求都有详细的罗列。想看看自己和别人的技能都有哪些区别。
\### 放几个BOSS上程序员的岗位,技术职级没有先后顺序,只是为了多罗列不同的岗位需求。
\#### JAVA栈
\> JAVA经理(经验:5-10年, 35K-70K, 全年16-24薪、期权激励)
```utf-8
团队特点:
支撑Boss直聘所有后端功能和流量,大数据、高并发的业务场景。
岗位职责:
1\. 带领后端技术团队,支撑某一方面业务系统的建设、迭代和优化工作
2\. 负责服务端系统技术方案评估、架构设计、业务逻辑抽象等工作
3\. 负责关键功能和模块的实现,指导团队成员,解决团队成员开发过程中遇到的复杂问题
任职要求:
1\. 7年以上互联网开发工作经验,3年以上技术团队管理经验或架构设计经验
2\. 具备优秀的编程能力和丰富的工程经验,主导过中大型互联网项目开发
3\. 精通JavaEE,熟悉主流的开源框架,了解它们的优缺点
4\. 仍然工作在一线,能够亲自动手编写重要的功能,具备较强的问题分析和定位能力;能指导团队成员,帮助团队成员
5\. 具备优秀的跨团队沟通协作能力,能够主动跟进和推进项目,确保目标的达成
公司技术驱动,非常重视技术团队,不断有技术挑战。
```
\> Java架构师 (经验:5-10年, 35K-65K)
```utf-8
工作职责:
1\. 整体规划Boss直聘系统技术架构,参与需求分析、架构设计、技术决策以及详细设计;
2\. 优化现有系统的性能,解决系统中的关键问题和技术难题;
3\. 把握复杂系统的设计,确保系统的架构质量,核心部分代码编写、指导和培训工程师、不断进行系统优化;
任职要求:
1\. 全日制重点本科及以上学历,计算机或相关专业,JAVA基础扎实,熟悉io、多线程、集合等基础框架,熟悉分布式、缓存、消息等机制;
2\. 5年以上使用JAVA进行web开发的经验;精通AOP、MVC等框架。熟悉web开发的相关技术:html/javascript/ajax/xml等;
3\. 熟悉JAVA EE规范,熟悉常用的设计模式;精通Java及Web的开发和应用;熟悉大数据量、高并发、高性能的分布式系统的设计及应用、调优;
4\. 熟悉SQL,精通Mysql、Oracle等大型数据库,熟悉常见的NO SQL解决方案;
5\. 具有良好OOP思想,熟练使用OO分析设计方法和设计模式,能够熟练运用UML进行分析设计工作;
```
\> 高级Java研发工程师 (经验:3-5年, 25K-40K)
```utf-8
岗位职责:
1\. 独立完成产品功能模块设计与实现
2\. 对现有产品功能进行重构优化
3\. 新产品架构设计
4\. 线上问题排查和解决
任职要求:
1\. 3年以上java开发工作经验;
2\. 熟悉java编程语言,熟悉多线程、线程安全、异步处理等机制,熟悉jvm原理以及运行机制;
3\. 熟练使用Spring、SpringMVC、Spring Boot等开源框架
4\. 对redis\\kafka有实际的使用经验;
5\. 掌握mysql等相关数据库,并了解其基本原理;
6\. 熟悉linux环境,具备基本的shell脚本编写能力;
7\. 具备良好的文档编写和编码能力;
8\. 熟悉架构设计,保证系统稳定运行;
```
\> 高级JAVA工程师 (经验:3-5年, 20K-40K)
```utf-8
职位描述
1\. 负责Boss直聘服务端后台研发,能够独立负责具体的业务模块
2\. 负责系统设计文档设计和撰写
3\. 保证系统的高可用性,持续优化和扩展服务
4\. 至少能够精通一个Java框架的原理,熟悉一种数据库的设计及调优
任职要求:
1\. 三年以上Java开发经验,熟练掌握Java语言,理解面向对象和常用设计模式
2\. 熟悉主流Java Web框架及其设计原理,熟悉Nginx/Tomcat/Resin等服务器
3\. 熟悉Unix/Linux操作系统和开发环境,至少熟悉一门脚本语言
4\. 了解数据库基本原理,具备系统数据库设计和规划能力,能编写高性能的SQL
5\. 较强的学习和沟通能力,主动,有责任心
6\. 具备大型互联网产品研发经验优先。
```
\> Java开发工程师 (经验:3-5年, 20K-40K)
```utf-8
1\. 负责Boss直聘服务端后台研发
2\. 负责系统设计文档设计和撰写
3\. 保证系统的高可用性,持续优化和扩展服务
4\. 至少能够精通一个Java框架的原理,熟悉一种数据库的设计及调优
任职要求:
1\. 本科及以上学历(985,211优先),3年以上Java开发经验,理解面向对象和常用设计模式
2\. 熟悉主流Java Web/Spring框架及其设计原理,熟悉Nginx/Tomcat/Resin等服务器
3\. 熟悉Unix/Linux操作系统和开发环境,至少熟悉一门脚本语言,如shell
4\. 了解Mysql数据库基本原理,具备系统数据库设计和规划能力,能编写高性能的SQL
5\. 较强的学习和沟通能力,主动,有责任心
6\. 具备大型互联网产品研发经验优先
```
\#### 前端栈
\> 资深前端开发工程师 (经验:5-10年, 25K-35K)
```utf-8
我们的工作内容:
boss直聘pc端以及直猎邦。
我们对你的期望:
1\. 计算机及相关专业本科以上学历;
2\. 具备2年以上BAT、TMD等知名大型互联网公司前端工作经验优先;
2\. 深刻理解前端三大基础技能(HTML、CSS、JS),熟悉主流框架类库的设计实现、熟悉w3c标准、具备原生js或(Vue.js)经验优先;
3\. 优秀的代码组织、界面布局、编码风格干净、利落;
4\. 有良好的产品意识和团队合作意识,能够和产品、UI交互部门协作完成产品面向用户端的呈现;
5\. 踏实稳定,不挑活,不排斥简单重复的工作。
6\. 熟悉一门后端语言,php、jsp等其他后端语言优先。
```
\> 高级前端工程师 (经验:3-5年, 20K-40K)
```utf-8
职位描述
1\. BOSS直聘移动客户端内嵌H5hybrid页面开发,包括牛人端求职平台、Boss端工作平台
2\. 负责zhipin.com移动端网站的相关内容开发
3\. BOSS直聘APP端和对外推广各种H5功能模块开发
我们对你的期望:
1\. 计算机及相关专业本科以上学历;
2\. 具备3年以上BAT、TMD等知名大型互联网公司前端工作经验优先;
3\. 深刻理解前端三大基础技能(HTML、CSS、JS),熟悉主流框架类库的设计实现、熟悉w3c标准、具备原生js或reactjs、Vue.js经验优先;
4\. 优秀的代码组织、界面布局、编码风格干净、利落;
5\. JS是必须要求!如果js非常好,CSS要求可以放宽;
6\. 有良好的产品意识和团队合作意识,能够和产品、UI交互部门协作完成产品面向用户端的呈现;
7\. 有技术理想,致力于用前端技术去推动和改善用户体验!
```
\> 高级前端开发工程师 (经验:5-10年, 25K-35K)
```utf-8
我们的工作内容:
BOSS直聘客户端内嵌H5日常维护及开发工作
我们对你的期望:
1\. 计算机及相关专业本科以上学历;
2\. 具备2年以上BAT、TMD等知名大型互联网公司前端工作经验优先;
3\. 深刻理解前端三大基础技能(HTML、CSS、JS),熟悉主流框架类库的设计实现、熟悉w3c标准、具备原生js、Vue、React经验优先;
4\. 优秀的代码组织、界面布局、编码风格干净、利落;
5\. 有良好的产品意识和团队合作意识,能够和产品、UI交互部门协作完成产品面向用户端的呈现;
6\. 踏实稳定,不挑活,不排斥简单重复的工作。
7\. 熟悉一门后端语言,php、jsp等其他后端语言优先。
```
\* 基于以上职位的罗列,其实能看出很多岗位需要的技能并不是特别多。除了最开始的两个……
\* 发现了自己的技能树就和开了花一样,多到不行行。
\* 感觉迫切需要一个文档来好好整理一下这半年用过的萝卜,拔过的坑。然后对萝卜和坑进行一个系统的整理。
\* 整理出文档后好让自己预判接下来半年到一年的时间应该朝着哪些方向走。
\## 技术大观园
带我的小哥通信出生,曾经做过雷达对抗(我看他以前公司的用户手册里有雷达的拓扑图,只是猜测)和电信通讯。所以对协议转化加密传输有很多独到的理解,看着他写的协议文档就像看RARP和RIP的协议一样,首先通过UDP广播发包,扫描开放的设备,然后与之建立TCP连接,最后通过自定义协议进行传输编解码报文。那些曾经只存在于书本上的概念:数据校验、封装成帧、透明传输、路由转发、IP寻址、TCP三次握手、划分子网等内容一下子全成了代码展现在我眼前……对于没有文化的我来说,只剩下“卧槽,好牛逼”。
而我在他眼里就是半吊子的小菜鸟……呜呜呜呜~
自从开始疯狂地补JAVA栈的知识,我才发现它比前端还要恶心人:
前端至少大部分项目配置文件都是json
JAVA配置文件光分后缀名就有:XML、properties、yml、config……
这半年撸了各种各样的内容:
JAVA基础,泛型,异常,集合框架等。
Tomcat部署配置,ssl证书,虚拟主机,负载等。
Nginx部署配置,ssl证书,虚拟主机,负载,反向代理等。
Maven包管理,项目用到了各种各样的技术,需要按照不同打包方式部署项目。
Git和SVN(以前经常用客户端)集成在代码里,代码上传数据到服务器。
Netty多线程,
Spring技术栈,Spring\\Springboot\\SrpingCloud
Mysql主从配置、读写分离
jenkins和git持续集成和部署
docker和rancher持续集成和部署。由于我线上的服务器内存只有1G,所以rancher基本上属于入门阶段(会使用……)。
每天的工作基本上是这个样子的:
除了完成日常的工作以外(工作内容是vue+java),还有下面的工作:
1.先慕课网找个基础视频看一遍(x2倍速)。
2.基础视频再看一遍(x2倍速),顺便照着视频敲一遍。
3.看官方文档,照着文档中的例子再敲一遍。
4.把视频敲下的代码和文档里敲下的代码尝试着糅合在一起,踩坑。
5.把糅合在一起的代码拆分成模块,分散在不同的项目工程目录里。
6.然后再写个心得:干了点儿啥,实现了啥,解决了啥,之后还可不可以再优化,可不可自己原生封装一个,它没出来前人们是怎么解决这个问题的,有木有类似的框架,相比于其他框架它有什么优缺点。
7.上网开始查找各种各样的技术贴,分析贴,性能测试贴。进行对比。
8.构思接下来的项目朝向是怎么走,该如何选型,要做多久,做多大。
9.然后进而选择合适的框架。
10.重复1~9的流程…………………………
到目前为止,除了国庆出浪了八天。基本上每天都处在至少11个小时的强度……
看视频的学习时间大概占到只有7分之一到8分之一的时间。
我慕课网的学习时长是930小时。
从我接触慕课网开始算起,只有看过视频的编码阶段大概花在编程的时间在7000小时左右。
包括我写这个文档的时间,六个小时。
人生
第一个目标:读万卷书,行万里路。已经达成
第二个目标:编码工作完成一万小时。已经达成
- 2023-4-8__成长之路
- 技术杂谈
- 程序员境界
- 走进猿类
- 做一个程序员
- 什么是猿类
- 爱乱吹的猿
- 业余生活
- 我的书架
- 高效程序员的45个习惯
- 敏捷—高效软件开发之道
- 态度决定一切
- 学无止尽
- 交付用户想要的软件
- 敏捷反馈
- 敏捷编码
- 敏捷调试
- 艺术人生
- 摘自艺术的境界
- 如何欣赏画
- 《的》
- 我的文档
- 小白学习前那些说不完的事
- 计算机语言都一样
- 尝试理解他人代码
- 做为旁观者的思考
- 怎样才算懂计算机
- 工欲善其事,必先利其器
- 教案日志
- 十天学电脑
- 一,认识计算机
- 二、认识编程语言
- 三、认识程序内涵
- 四,认识数据结构
- 五、认识电脑系统
- 六、认识通信原理
- 七、邮箱管理
- 八、重新审视电脑
- 九、理解终生学习
- 十、感悟三千世界
- c语言
- C语言——我觉得好简单
- c学好不怕没饭碗—2014.7.21
- C语言——我想的有点儿简单
- 或多或少的c语言知识
- c语言初探篇
- 初探c语言底层
- 初探整型和浮点型
- 初探二进制数---原反补移
- 初探有无符号
- 初探c是如何跑起来的
- 初探指针
- 初探数组
- 初探顺序表
- 初探栈,队列
- 初探c语言编程
- c语言进阶篇
- c语言自身的那些事
- 结构详解
- c语言大成篇
- 人类思维——模式匹配
- 论c语言面试
- 数据结构
- 核心概念,没有之一顺序表
- 线性表代码实现
- Sq_list
- 不存在的链表
- 只是一种思想——栈
- 只是一种思想——队列
- 不存在的树
- 只是一种思想——二分法
- 不存在的图
- 算法原理
- 傅里叶变换
- 算法导论
- 算法导论——c语言实现
- 算法导论——java实现
- 组成原理
- 操作系统
- 初探操作系统
- 深究操作系统
- 操作系统如何跑起来
- 进程就像细胞
- 系统就像生命
- 进程树pstree
- 进程
- 进程何时更名为生命
- 初探进程映像
- 程序如何成为进程映像
- PCB
- PCB解读之——信号量(p_sig)
- 进程同步
- 进程通信
- 进程调度
- 用户
- PPDA
- 存储系统
- I/O系统
- 网络原理
- 通信简史
- 通信是网络基础
- 趣谈网络
- 自我介绍
- 快递公司
- 小D的自述
- 网络架构
- OSI/RM
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
- TCP/IP四层模型
- 五层模型
- 网络划分
- IP史
- 信息安全
- 社会工程学
- 信息收集
- 诱导
- 伪装
- 如何成为任何人
- 社会心理学
- 思维模式
- 说服的力量
- 代码审计
- 灾难恢复
- 安全注入
- 网络工程
- 802.11
- CCNA
- CWNA
- 社会工程
- 社会心理
- 信息诱导
- 身份伪装
- 系统框架
- web前端框架
- smarty框架
- bootstrap框架
- thinkphp框架
- zend框架
- yii框架
- ci框架
- 网站开发
- 五大难题
- 网站工作原理
- 数据库原理
- 服务器原理
- 前端开发
- 前端技能基础
- html
- css
- javascript
- 浏览器兼容
- 前端总结
- 后台开发
- 或多或少的JS
- js初探篇
- 理解Javascript
- JS继承
- 数组
- 操作方法
- DOM事件
- 数据传输
- JS面试题
- 数据对象
- 学生管理系统
- 学生管理首页
- 粗略学了一遍后的总结
- 零碎知识
- js初探篇第二版
- javascript构成
- 基本类型
- 基本语句与判断类型
- 基本对象与操作函数
- 基本判断与甄别数据
- 内置对象与操作函数
- 对象认识与深浅复制
- DOM级别与BOM
- 严格模式与混杂模式
- ES5和ES6
- js进阶篇
- 上传图片
- js实战篇
- 或多或少的PHP
- 详解url结构
- html基础
- html初识
- html-组成页面的基础标签
- ie兼容
- 教学方法
- 论php——编程思想
- 论php——底层实现
- 中华国学
- 易经
- 黄帝内经
- 山海经
- 道德经
- 骗经
- 中华哲学
- 一花一世界
- 道可道非常道
- 一瞬
- 宇宙
- 心得体会
- 电脑叫智能生命体更准确
- 计算机不是汉语模式
- 琐事日记
- 成长与人性
- 祝单身狗快乐
- 人其实过的很单薄
- 都怪自己不够优秀
- 那是几个人的世界
- 认清世界,认清自己
- 陪伴繁华逝去的平凡
- 俯拾仰取
- 技术手册
- 网站开发
- 准备工作
- firewalld
- mysql
- redis
- 开发流程
- 整体配置
- 环境配置
- tomcat配置
- 数字证书配置
- 项目配置
- 数据设计
- 用户管理
- 整站设计
- user
- user_group
- user_role
- 服务端
- 了解学习
- quartz
- HelloWorld
- HelloJob
- HelloQuartz
- HelloScheduler
- Job
- JobDataMap
- Trigger
- Scheduler
- properties
- spring
- AOP
- 使用
- svnkit
- svn init
- FSFS
- server
- Java
- 测试
- 任务调度
- 网站架构
- 网站前端
- pc端
- 移动端
- native
- ios
- android
- ipad
- hybrid
- 技术日志
- 2018-9-26
- 2018-11-26
- 资源收集
- UED资源
- 技术架构
- 云平台
- 工作方面
- 实习工作经验
- 草稿1
- 草稿2
- 草稿3
- 草稿4
- 草稿5
- 草稿6
- 草稿7
- 大学总结
- 面经
- 一、职能定位
- 细节
- 前端
- 工作总结
- 简历
- 职业规划
- 一年规划
- 整理归档
- 2015/11/10以前
- 2015/11/10
- 2015/11/11
- 2015/11/12
- 2015/11/13
- 2015/11/14
- 2015/11/15与16
- 2015/11/17
- 2015/11/18
- 2015/11/19与20
- 2015/11/21
- 2015/11/22
- 2015/11/23
- 2015/11/24
- 2015/11/25
- 2015/11/26
- 2015/11/27
- 2015/11/28
- 2015/11/29
- 2015/11/30-12/6
- 2015/12/7-2016/4/18
- 2016/4/19
- 2016/4/20~2017/6/27
- 2017/6/28-2017/7/4
- 2017/7/5-2018/1/11
- 2018/1/12
- 2018/1/13-2018/4/19
- 2018/4/20
- 2018/4/21-2018/5/10
- 2018/5/11
- 2018/5/12-2018/5/16
- 2018/5/17-2018/5/30
- 2018/5/30-2018/10/15
- 2018/10/15-2018/10/18
- 2018/10/19-2018/11/17
- 2018/11/17-2018/12/31
- 结束----------------开始
- 2019/2/18
- 2020/7/30
- 2020/9/5
- 2021/5/6
- 回收站
- 以前文件
- 2015-10-17__成长之路
- 2018-10-15__成长之路
- 2020-3-29__成长之路
- 毕业三年总结
- 浙大之旅
- 2020
- 英语
- 基础3000单词
- 第一周
- 百词斩__126
- 百词斩__126翻译
- 百词斩__252
- 百词斩_252翻译
- 百词斩__392
- 百词斩__532
- 百词斩__672
- 第二周
- 百词斩__812
- 听力
- 新东方演讲稿
- 库克杜克大学演讲全文版
- 库克杜克大学演讲演讲英文对照版