zoukankan      html  css  js  c++  java
  • 万丈高楼平地起,拨开技术神秘的面纱 李伟

    仅记录近期的一些思考:万丈高楼平地起,搞清楚底层逻辑,拨开技术神秘的外衣,很多东西迎刃而解。

    一、数据思维

          1. 所有的操作,都是围绕数据, 一个.java文件,一个.class文件, 每一个字母,每一次表单提交,都是数据

          2. 这些数据可以以不同的形态存在于不同的介质中,可以在磁盘中,可以在内存中,可以在CPU中 ,只是存在的形态不一样

          3. 程序代码的各种处理,本质上是对数据的计算和移动,全都依赖于计算机硬件最基本的运行原理

    二、数据移动思维

          1. 互联网各种分层架构,分布式架构体系的本质是数据的移动,在不管使用了多少种框框架架的一次请求/响应中, 数据在 客户端,到网关,到服务层,到MQ,到Redis,到数据库.. 等等等等 各个中间件中来回移动

          2. 各种"奇淫技巧", 都是对数据的计算和移动,并依赖于计算机相关硬件

    三、服务业务:归根揭底技术是服务业务的,这里的"业务"应该是抽象出来的某类事务,而不是指人。

    这几个思维下,来理解技术,比如:

    1. 类加载?从计算机的组成原理来说, 数据必须要"移动"到主存,然后才能移动到CPU中进行各种计算,然后通过网络传输进行数据的各种移动 ,所以需要将.java文件编译为.class文件 ,加载到内存中

    2. JVM内存模型?从数据思维的角度,我们编写的代码,里面有各种东西,比如有类,有方法,有枚举,类中还有各种属性,变量,运行时的各种数据, 这就要求 jvm需要对内存进行分类处理,在加载的过程中,分门别类

    3. 什么voliate,synchronized,CAS,  AQS ,分布式锁  等都是在不同业务场景下,产生了各种数据问题,然后出现了很多所谓"秘技", 来处理对应的问题 

    李伟(CodeL)-软件开发领域持续奋斗者
  • 相关阅读:
    Redis连接池的介绍和原理
    Golang操作第三方开源Redis库
    Redis的五大数据类型和CRUD操作
    Redis的基本使用
    Redis数据库的基本介绍和安装
    Golang基于TCP协议实现简单的server和client聊天
    Golang反射中的Type和Kind的区别
    Golang中的常量
    Golang对基本数据类型和结构体进行反射
    Vue 使用lodash库减少watch对后台请求压力
  • 原文地址:https://www.cnblogs.com/codelir/p/15673680.html
Copyright © 2011-2022 走看看