主要说明不断更新的软件技术指引未来发展方向,此文持续更新。对于技术的共性给出必要的原理解释。 linux的基本技能,主要说明linux环境下c编程,shell;着重于基础概念,并不是作为进阶的工具,主要起到一个抛砖抛砖引玉的作用,能够通过对这些基本的技能的学习初步掌握解决问题的基本技能。此文章并不深入讨论各个技术点的细节,只是总结出技能之间的依赖关系,归纳出一般的学习步骤,希望对自己的思路有一个清晰的认识。
Linux 基础
linux C 编程基础
c 语言编程的基本语法这里不再赘述,基本大同小异,这里主要研究,在工程的条件下,如果快速的编译c代码,像一些面向对象的编程语言都有提供相应的工具入maven,gradle;c也有自己独特的方式。
C/C++ 基础
指针
对星号*
的总结
在我们目前所学到的语法中,星号*主要有三种用途:
- 表示乘法,例如
int a = 3, b = 5, c; c = a * b;
123456 ,这是最容易理解的。 - 表示定义一个指针变量,以和普通变量区分开,例如
int a = 100; int *p = &a;
。 - 表示获取指针指向的数据,是一种间接操作,例如
int a, b, *p = &a; *p = 100; b = *p;
。 - 参考:
- char* const args[] defintion [duplicate]
以下说明c编译的相关知识 由于c没有import自动关联编译的,需要Header File进行类型声明,接口暴露
宏定义
Makefile
C没有像gradle和maven的编译工具,需要使用makefile来组织编译,不过以后可以使用CMake
CMake
提供跨平台的编译工具,makefile自动生成,只需用cmake配置规则
Shell
之前我在ubuntu上跑代码时,当运行一个shell脚本的时候,出现了如下错误 ../runcmake: 行 2: $’\r’: 未找到命令 ../runcmake: 行 3: 未预期的符号 `$’{\r’’ 附近有语法错误
考虑到代码是从windows下一直过来的,脚本可能在格式上存在问题
- 解决方案:
sudo apt-get install dos2unix dos2unix **.sh
Android NDK
NDK Build Problem
- 问题
Android NDK: Your APP_BUILD_SCRIPT points to an unknown file:
- 解决办法
如果是一个android工程的话,执行如下命令:
ndk-build NDK_PROJECT_PATH=./main/cpp NDK_LOG=1
如果设置NDK工程目录,ndk默认会从该目录起寻找该目录下jni目录,如果没有找到就报如下错误:
Your APP_BUILD_SCRIPT points to an unknown file: ./main/cpp/jni/Android.mk
这是你可以指定android.mk的路径,如下APP_BUILD_SCRIPT=./main/cpp/Android.mk
参考资料
集成开发工具
- What is the best C & C++ IDE?
- Clion License Server
弹出注册窗口选择Activate》License Server》输入
http://xidea.online
,然后点击Activete
完成认证即可
C/C++ Library
SQL
Java 高级主题
Java 日志框架
Java I/O
Java Networking
- Java 网络编程
- Essential Netty in Action 《Netty 实战(精髓)》
- SSL/TLS协议运行机制的概述
- Java Secure Socket Extension (JSSE) Reference Guide
Java Connurency
Java Reflection
Java 动态代理机制实际是代理模式的实现,其局限性是其无法代码class只能代理接口,因此对于需要继承类但是父类需要反射,就会变得极其复杂 AOP模式实现切面编程中,利用职责链模式,建立一种拦截器模式,比如Servelet与filter机制,切面编程的advice拦截调用链
Java web
Spring 框架原理
- 深入解析Spring 内幕
- Spring的BeanFactoryPostProcessor和BeanPostProcessor
- Spring AOP aspect vs advisor 以及基于xml和annotation的两种配置
- aop:aspect与aop:advisor的区别
- 职责链模式(Chain of responsibility)以及servlet中filter的原理
Spring 主要模块
- Spring-Aop
- Spring-context
- Spring-jdbc
- Spring-tx 支持数据库事务
- spring-session
Spring boot
- Spring Boot 2.0 极简教程
- 《Spring Boot极简教程》第1章 Spring Boot史前简述
- 《Spring Boot极简教程》第2章 Spring Boot简史
- 第5章 Spring Boot自动配置原理
分布式session
分布式锁
权限设计
ORM 框架
权限框架
- [跟我学Shiro](https://media.fsharechat.cn/minio/minio-bucket-file-name/kaitao-shiro.pdf
设计模式
微服务架构系列文章
基础组件
消息队列
NOTE: ActiveMQ 5.15.0 Release 支持java8以上版本
分布式数据库
数据库基本技能
为提升系统性能,实现高并发的需要有事需要实现数据库读写分离,需要使用数据库中间件 读写分离需要配置主从数据同步
分布式RPC框架
服务治理
- 限流
- 熔断
- 降级
Dubbo官方说明文档
Dubbo 原理分析系列文章
Hystrix
负载均衡
配置中心
- 实现配置修改,自动下发
容器
- DevOps
调用链
微服务实战
书籍
大数据
Hadoop
Hadoop Yarn
文档
视频资料
- Hadoop2.x 深入浅出企业级应用实战视频下载
- Hadoop大数据跳槽课程(线上视频+直播答疑) 视频码
11664-F6AF-8E8D-C8FC-99BC
书籍资料
- Hadoop实战-陆嘉恒
- Hadoop权威指南-第三版
- Hadoop技术内幕:深入解析Hadoop Common和HDFS
- Hadoop技术内幕:深入解析YARN架构设计与实现原理
- Hadoop技术内幕:深入解析MapReduce架构设计与实现原理 (大数据技术丛书)
Python
技术博客
从技术博客中寻找解决问题的方案,下面列出较为出名的博客