IT软件知识-技能图谱

2017/12/31 overview

主要说明不断更新的软件技术指引未来发展方向,此文持续更新。对于技术的共性给出必要的原理解释。 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

参考资料

集成开发工具

C/C++ Library

SQL

Java 高级主题

Java 日志框架

Java I/O

Java Networking

Java Connurency

Java Reflection

Java 动态代理机制实际是代理模式的实现,其局限性是其无法代码class只能代理接口,因此对于需要继承类但是父类需要反射,就会变得极其复杂 AOP模式实现切面编程中,利用职责链模式,建立一种拦截器模式,比如Servelet与filter机制,切面编程的advice拦截调用链

Java web

Spring 框架原理

Spring 主要模块

  • Spring-Aop
  • Spring-context
  • Spring-jdbc
  • Spring-tx 支持数据库事务
  • spring-session

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

文档

视频资料

书籍资料

Python

技术博客

从技术博客中寻找解决问题的方案,下面列出较为出名的博客

搜索技术

ElasticSearch

Solr

机器学习

源码解析

Search

    Post Directory