待更新清单
知识汇总
咸鱼 https://blog.csdn.net/weixin_38912070
《后端架构师技术图谱》 https://github.com/xingshaocheng/architect-awesome
后台架构师图谱 https://blog.csdn.net/kingmax54212008/article/details/83023467
Java 技术书籍大全 https://github.com/sorenduan/awesome-java-books
UML 知识 https://www.w3cschool.cn/uml_tutorial/uml_tutorial-kty628y9.html
算法
α-β剪枝算法 https://blog.csdn.net/luningcsdn/article/details/50930276
Java数据结构与算法解析 https://blog.csdn.net/u012124438/article/category/7130478
Algorithms https://github.com/pedrovgs/Algorithms
Java数据结构 https://github.com/buptdavid/datastructure
https://blog.csdn.net/weixin_38912070
数据库
开发人员如何有效地进行数据库设计 https://www.infoq.cn/article/2013%2F04%2Fdb-design-principle
工具
Selfhost https://github.com/Kickball/awesome-selfhosted#ticketing
架构和系统设计
- 美团外卖客户端高可用建设体系 https://tech.meituan.com/2018/05/31/waimai-client-high-availability.html
NOSQL Overview https://github.com/n1trux/awesome-sysadmin#nosql
分布式系统 - 数据一致性 https://www.cnblogs.com/xuwc/p/9030614.html
软件架构视图介绍 https://www.jianshu.com/p/44e60742dba0
分布式服务框架设计 https://www.jianshu.com/p/fd840c643d69
系列推荐 https://www.jianshu.com/u/434239413000
参考文章
https://blog.csdn.net/wxyyxc1992/article/details/100129049
架构概述,特点,目标
架构本质
架构视角
架构演变
设计一个架构
- https://blog.csdn.net/hguisu/article/details/81661854
高可用
高并发
高性能
高并发设计
缓存
降级
限流
负载均衡
大型网站技术架构:核心原理与案例分析
- 书籍推荐
- https://www.cnblogs.com/itfly8/p/5128025.html
大型分布式网站架构技术总结 https://www.cnblogs.com/itfly8/p/4967966.html
https://juejin.im/entry/5c7344e86fb9a049a712733f https://www.jianshu.com/p/9fb79fb0b5b1
https://www.cnblogs.com/mindwind/p/5017591.html
- 架构分层 https://www.jianshu.com/p/e7b992a82dc0 https://www.cnblogs.com/xishuai/p/microservices-and-service-mesh.html
并发
参考综合学习
http://tutorials.jenkov.com/java-concurrency/index.html
Java并发知识点总结 https://github.com/CL0610/Java-concurrency
并发理论
并发基础
JUC - Overview
https://www.cnblogs.com/leesf456/p/5344133.html
JUC - 常规使用例子
https://www.jianshu.com/p/8cb5d816cb69
JUC源码 - 集合
https://www.cnblogs.com/leesf456/p/5550043.html
- ConcurrentHashMap
- https://www.cnblogs.com/leesf456/p/5453341.html
- https://www.cnblogs.com/huaizuo/archive/2016/04/20/5413069.html
- ConcurrentHashMap
JUC源码 - 锁和工具类
https://www.cnblogs.com/leesf456/p/5453091.html
JUC源码 - Executors
https://blog.csdn.net/u013332124/article/details/79587436
并发与模式详解
部署
干货】闲鱼工程师是如何构建持续集成流水线,让研发效率翻倍的 https://blog.csdn.net/weixin_38912070/article/details/93857257
开发
高效研发-闲鱼在数据聚合上的探索与实践 https://blog.csdn.net/weixin_38912070/article/details/93857103
蚂蚁金服宫孙:guava探究系列之优雅校验数据 https://blog.csdn.net/weixin_44326589/article/details/94735651
微服务
Microservices from Design to Deployment 中文版 《微服务:从设计到部署》 https://github.com/DocsHome/microservices
互联网后端基础设施 https://juejin.im/post/5b59324ef265da0f69703f40
微软:微服务的设计模式 https://docs.microsoft.com/zh-cn/azure/architecture/microservices/design/patterns
Service Mesh
Service Mesh 发展趋势:云原生中流砥柱 https://blog.csdn.net/weixin_44326589/article/details/100271664
蚂蚁金服 Service Mesh 深度实践 https://blog.csdn.net/weixin_44326589/article/details/102928587
浅谈服务治理、微服务与Service Mesh(二) Spring Cloud从入门到精通到放弃 https://blog.csdn.net/chengxiong5591/article/details/100912493
待增加内容
Idea实现
- 关于共进圈
- 项目管理
- SWOT等
- OKR
- 技术大会
- 添加鸡汤类型的页面
- 修心
- 年终总结
- 首页home添加一个新的按钮 - 从零学项目
- 404 页面改造
Java基础
- 基础语法
- 枚举类型
Java并发
- Java并发模式 - 来源于 极客时间
开发章节
- 开发之单元测试
- 开发之随手记
架构章节
- 添加秒杀系统详解
项目学习
- 开源项目添加
框架
- Spring
- SpringMVC
- SpringBoot
- SpringCloud
- SpringCloud Alibaba
- ORM
- MyBatis
- JPA
- MQ
- Kafka
- RocketMQ
- 缓存
- Redis
- Memecache
- Spring
如何学习图
- 开发之安全相关
- 开发之网络协议
侧边栏优化
- 目录优化
- 分享微博
- 分享QQ
- 学习群
- 音乐插件
- https://106.14.207.56/music/sheet?cat=%E6%94%BE%E6%9D%BE
icons https://iconify.design/
icon自动生成 https://realfavicongenerator.net/
前端
目的
- 统一对前端的认知
- 前端发展非常快,已经不是原来的前端了
- 避免我们在说前端的时候,说的不是同一个东西
- 在限定技术框架下,将不可避免的学习成本
- 看上去一样的网页/桌面可能是用完全不同的技术实现的
- 前端发展非常快,已经不是原来的前端了
- 针对现状,我们如何开发现在的前端
- 现状
- 人力资源不足
- 技术环境不足
- 期望值
- 多 - 让两三个人整更多的前端东西
- 快 - 更快更高效的出东西
- 好 - 更有质量的出东西
- 省 - 省人省钱省资源等
- 我们如何做
- 为后面技术选型做准备
- 如何高效开发
- 现状
- 统一对前端的认知
前端的发展历史
- https://www.yuque.com/ant-design/course/sc1lvc
前端已经不是以前的前端了 - 从范围上看
- 网页
- SPA
- RIA
- 常规网页
- 小程序
- 微信
- 支付宝
- 今日头条
- 百度
- Native
- IOS
- Andriod
- 网页
前端已经不是以前的前端了 - 从技术栈上看
- html/css/js?20年前
- 目前的分离式前端大多数开发者不会再直接接触html/css/js
- 后台技术主导页面开发
- 编译出html 15年前
- JSP - Servlet
- Taglib - JSTL,EL,Structs lib...
- 后端渲染 - 视图引擎(ViewResolver)
- 通过模板生成html
- 它解决了原生中的模式:组合和继承问题;
- 前端演变
- 静态页面+后端Model - JS
- 全页面刷新
- 局部刷新Ajax
- AjaxAnywhere
- Jquery
- ZeptoJS
- ExtJS
- CSS
- Css1
- Css2
- Css3 -
- BootStrap 珊格布局
- 静态模板页面
- 静态页面+后端Model - JS
- 编译出html 15年前
- 前端技术
- 前期萌芽和发展
- NodeJS
- 包管理(npm,yarn...)的出现 - 借鉴后台Maven,Gradle等包管理
- MVVM的出现 - 借鉴后端MVC
- 数据绑定
- 脚手架
- 编译
- 代码提示
- 单元测试
- 代码覆盖率
- ...
- 传统css/html/js不再直接出现
- CSS - 引入style-loader编译生成CSS
- less
- saas
- stylus
- ...
- JS - 引入新的script引擎
- TypeScript
- ES5
- ES6
- HTML - 模板式
- vue
<template> <div class="hello"> <a-button type="primary">Primary</a-button> <a-button>Default</a-button> <a-button type="dashed">Dashed</a-button> <a-button type="danger">Danger</a-button> <a-button type="link">Link</a-button> </div> </template> <script> export default { name: 'HelloWorld', data () { return { msg: 'Welcome to Your Vue.js App' } } } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style scoped> h1, h2 { font-weight: normal; } ul { list-style-type: none; padding: 0; } li { display: inline-block; margin: 0 10px; } a { color: #42b983; } </style>
- react
- angular
- CSS - 引入style-loader编译生成CSS
- 前期萌芽和发展
- Native
- 原生语言写的
- Webview
- Flutter
- ...
- html/css/js?20年前
目前开发现状(案例分析) - 后端栈和前端栈并存
就和现在的天气一样,同时有人穿棉袄和短袖。
后端栈案例
- 围绕后端语言和后端开发框架来展开
- ViewResolver(20多种)+Model
- 例子:network-analysis
- 如果换了后端语言,写法上全变
- 围绕后端语言和后端开发框架来展开
前端栈独立
- 围绕大前端的概念和框架来看开
- 例子:vue demo
- 封装vuepress demo
所以说,当限定条件下,它会带来一定的学习成本
开发的流程
- 时代
- 1.x时代
- 1.0 时代,后端写主体代码同时也写html/js,有个UI设计UI和改CSS
- 1.1 时代,后端写主体代码,前端写静态的html/js/css,UI设计单独UI;后端再去整合前端html/js/css
- 2.x时代
- 2.1 时代,后端写后端接口和逻辑,前端独立写前端代码
- 2.x 时代,细分领域
- 后台
- 框架 - 架构设计
- 算法 - 算法工程师
- 接口 - 接口
- 中间件
- 平台工程师
- 运维工程师
- 前台
- UI,原型设计
- UE/UX
- SEO
- 框架
- 应用/接口
- 模板
- 组件
- 布局
- pwa
- flex
- 文档
- 测试
- 质量
- 安全
- 后台
- 1.x时代
- 具体开发流程(只说前端)
- 需求-》UI原型设计-》前端脚手架-》UI库
- 时代
说上述的目的
- 学习成本必然性
- 需求和团队能力的平衡
- 不是说这样设计的好我们就这么实现,这种定制化实现对于一个2-3人的团队是一种负担。
- 回到前面的多块好省
- 如果什么都自己来做,比如UI设计,比如组件设计,比如模板设计...到后面越来越吃力,意味着容易失控
- 技术选型将严重影响开发进度和维护成本
- 假如我们要真的做前后端分离方式,我们考虑使用成熟的框架体系。
- 脚手架
- 开源模板+组件
- 体系化
技术选型
- 效率优先 - 开发和运维效率
- 对于已有的项目,比如有一个angular,展示的;我们用这种思路,快速搭建出来, 解决之前不能解决的痛点。
- 我们可以开发更多应用
- 同样的开发configtool
前端学习
开发工具
- IDE
- WebStorm
- VsCode
- Node
- NodeJS
- Npm
- nvm
- https://github.com/nvm-sh/nvm/blob/master/README.md
- cnpm
- npm install -g cnpm --registry=https://registry.npm.taobao.org
- 内存泄漏
- 从2017年8月发布的Node.js v8.0开始,可以使用NODE_OPTIONS 环境变量全局设置max_old_space_size
- 解决方法:命令行中输入 export NODE_OPTIONS=--max_old_space_size=4096
- 调试
- Chrome
- vuejs-tool插件
- https://chrome-extension-downloader.com/ id: nhdogjmejiglipccpnnnanhbledajbpd
- 或者参考 https://www.cnblogs.com/chenhuichao/p/11039427.html
- 离线下载:https://chrome.zzzmh.cn/ 搜索devtools
- 脚手架
- vue-cli
- cnpm install -g @vue/cli
- vue-cli
- IDE
vue入门基础
Vue 文件结构(template, script, style)
Vue 模板语法
- 插值
- 指令和指令缩写
- v-html(不转义)
- v-text(转义)
- v-bind: 属性绑定, 可缩写为 :
- v-on: 事件绑定, 在methods 进行实现, 可缩写为 @事件
- v-model(双向绑定)
- 计算和监听
- 计算属性
- computed: 可以侦听本实例中很多个变量, 包含的本实例中的变量发生了变化时触发重新运算, 本实例外的变量变化时不会触发
- 侦听器
- watch: 侦听本实例中一个变量的变化
- 使用场景
- watch : 异步场景
- computed : 数据联动
- 计算属性
- 条件和循环
- if/else
- v-if
- v-else-if
- v-else
- v-for
- 需要加:key
- v-show
- 等同添加display:none
- if/else
- 插值
Vue 工程化
- VUE-CLI
- vue create 项目名,在命令行中创建和配置项目
- vue ui,打开网址可视化地创建和配置项目
- VUE 组件
- 组件理论
- 什么是组件化? 独立的,可复用的,整体化的
- 为什么要组件化? 实现功能模块的复用;高执行效率;开发单页面复杂应用
- 如何进行拆分? 150/300 行原则;复用原则;业务复杂性原则
- 组件化技术点
- 组件状态管理(vuex);
- 多组件的混合使用, 多页面, 复杂业务(vue-router)
- 组件间的传参, 消息, 事件管理(props, emit/on, bus)
- 子组件和父组件之间 - props
- 父组件和子组件之间 - $emit/on
- 子组件之间 - vuex(store.js), bus
- 组件理论
- 代码风格
- https://cn.vuejs.org/v2/style-guide/
- vue.config.js
- https://www.jianshu.com/p/b358a91bdf2d
- babel.config.js
- https://www.jianshu.com/p/0826515d2fab
- https://github.com/vuejs/vue-docs-zh-cn/blob/master/vue-babel-preset-app/README.md
- VUE-CLI