精简的言语讲述技术人,必须掌握基础性IT知识技能,第一篇
前言
此系列将以精简的言语讲述技术人,必须掌握基础性IT知识技能,请持续关注,希望给大家都是一些精简的干货.
第一部分:必须掌握的设计模式的6大基本原则
23个设计模式,都是从这六大设计模式中演化而来,所以这六大原则是产生23个设计模式的原则,作为技术人,可以不知道23个设计模式,但不能不知道这六个原则,这是心法
23个设计模式那是招式,所以基本原则比23个设计模式更为重要
原则一:单一职责
定义:一个类只负责一个功能领域中的相应职责;
亦即:你定义的类就一个因素可以引起它的变化。
简化理解:一个类单纯地干好一个活。
思考:继承关系(IS-A)是否有些违背了这一原则,在以后软件生命周期中,编码人需要考虑:基类要对子类负责。是不是Has-A更好呢?
原则二:开闭原则
定义:一个软件模块(或类)仅对扩展开放,对修改关闭。
亦即:不要想着修改现有功能,而是如何扩展现有功能。
简化理解:修改现有的功能,就意味着一切从来,带来不稳定。
思考:这一原则是对既有功能稳定性的维护,另一方面体现了面向抽象(接口)编程的重要性,接口不变,实现内容里面做调整。
原则三:迪特米法则
定义:最少知识原则
亦即:软件模块(或类)间尽量避免相互影响,相互不该知道就不要暴露。
简化理解:这是对安全和稳定性的维护
思考:安全领域的一个思想就是:权限最小化。
原则四:接口隔离原则
定义:类所需的接口应该是最小的,是自己需要的。
亦即:使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。
简化理解:不要设计一个很大的接口,自以为包罗万象,带来的是冗余。
原则五:依赖导致原则
定义:抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。
思考:为什么IOC大行其道?解决的问题是为了什么?
原则六:里氏替换原则
定义:使用的基类可以在任何地方使用继承的子类,完美的替换基类。
思考:面向抽象编程,面向接口编程
第二部分:数据在内存中的存储形式
2.1 三码的表示方式
计算机的二进制在内存中的存储形式:补码,且因CPU架构等不同采用了大小端存储在内存中,关于大小端大家自行阅读相关文章,至于有什么用,目前我能告诉你的是:
当我们设计底层编程及对数据存储和通讯时,我们可以头脑清醒.
正数的原码、反码、补码都是就是原码;提示,因为计算机采用补码,所以技术人脑子里面应该是补码,多转几圈没有必要.
负数的反码=符号位不变,其他位取反;
负数的补码=反码+1;
[+1]原 = 0000 0001
[-1]原 = 1000 0001
[+1] = [00000001]原 = [00000001]反
[-1] = [10000001]原 = [11111110]反
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1] = [10000001]原 = [11111110]反 = [11111111]补
2.1 为什么计算机内采用补码
原因如下:
1.原码不能表示减法: 1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2
2.反码出现+0,-0:
1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原= [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [1000 0000]原 = -0
3.所以出现补码
PS:所以作为技术人,先记住你的数据在内存中是补码
注意:有一个行规,最大的负数的补码用1000...00进行表示
所以:类似于int的取值范围用(2^-31 -->2^31-1)进行表示 (中间有一个0)
第三部分:通讯协议必备知识
下图属于一个TCP/IP协议的全貌,大家可以收藏,多看看多了解,对于做通讯的技术人,这图很有价值,
对于普通人而言至少需要知道实际的四层协议,这个小图具有比较精简的直观理解,而大图值得收藏后期查阅使用,
本篇到此为止,后续接着写,
精简的言语讲述技术人,必须掌握基础性IT知识技能,第一篇的更多相关文章
- 聊聊IT技术人的知识体系
我在我的2020年终总结中提到技术人需要建立自己的知识体系,那么怎么建立自己的知识体系呢?技术人的知识体系又是什么样的呢?今天,和你一一分享. 1 关于我的12字方针 我在我的<2020年终回顾 ...
- IT技术人,“三十而已”
最近电视剧<三十而已>热播,我家的电视机自然也是被霸屏,我还是跟着妹纸看了看,开头和结局完整看完,中间看了一点,大部分都是在微信公众号上通过别人的文章看完的.我个人也已经30+了,今天也和 ...
- CSDN:你认为一名优秀的技术人应该具备怎样的素质?
CSDN:你认为一名优秀的技术人应该具备怎样的素质? 王晶昱:我个人认为,符合这个世界要求的就是优秀的.在目前这个时代,我认为一个优秀的技术人员的特质可能是: 兴趣驱动,兴趣是最好的老师,写程序本身就 ...
- 如何量化考核技术人的KPI?
对技术人来说,技术是成长的“核心”.然而,在实际工作协作中,技术的重要性常常被业务所掩盖,造成先业务后技术的现象. 针对这个痛点,阿里高级技术专家张建飞提出了自己的解决思路,希望能与大家一起探讨交流. ...
- [转帖]Oracle 裁员史:技术人死于重组,卒于云计算
Oracle 裁员史:技术人死于重组,卒于云计算 https://www.infoq.cn/article/tm-mcdHCPCI4eEwr6dbY 大厂裁员 我妈妈也总担心我没工作了 怎么还房贷 田 ...
- 如何量化考核技术人的 KPI?
如何量化考核技术人的 KPI? 原创: 张建飞 阿里技术今天 阿里妹导读:对技术人来说,技术是成长的"核心".然而,在实际工作协作中,技术的重要性常常被业务所掩盖,造成先业务后技术 ...
- 一个技术人,最重要的是:极客精神(好奇心 + 探索欲)(新de代码)
一个技术人,最重要的是:极客精神(好奇心 + 探索欲) 初到社会,面对众多的IT企业,我们是陌生与好奇的,认为所有企业都是管理一流并且高大上等的.然而工作多年以后你会发现,国内的IT企业环境良莠不齐, ...
- [转帖]技术人眼中的Facebook Libra
技术人眼中的Facebook Libra https://www.jianshu.com/p/ddc733077749 比特币 以太坊 EOS Libra 0.8352019.07.01 14:15: ...
- 我花了2个月时间,整理了100篇Linux技术精华,技术人必看
一个以技术为立身根基的教育机构做出来的微信号,干货程度会有多高? 马哥Linux运维公众号运营五年,从一开始的定位就是给技术人分享加薪干货的地方.这五年里,公众号运营最重的任务就是做内容.内容并不好做 ...
随机推荐
- Centos下查看cpu核数
1.概念物理CPU:实际Server中插槽上的CPU个数.物理cpu数量:可以数不重复的 physical id 有几个. 2.逻辑CPULinux用户对 /proc/cpuinfo 这个文件肯定不陌 ...
- Java 总结 数据底层原理 【包括 ArrayList、LinkedList、hash table、HashMap、Hashtable、ConcurrentHashMap、hash code、HashSet、LinkedHashMap、LinkedHashSet】
1.ArrayList (1)底层是由动态数组实现的[使用了List接口]. (2)动态数组是长度不固定,随着数据的增多而变长. (3)如果不指定,默认长度为10,当添加的元素超过当前数组的长度时,会 ...
- Node.js 模块之【passport】
什么是passport passport是Nodejs的一个中间键,用于用户名和密码的验证登陆.在项目中我用它来验证后台用户名和密码,但passport更多用在第三方登录,功能强大. 安装与配置 本项 ...
- Servlet初级学习加入数据库操作(二)
源代码地址:https://url56.ctfile.com/f/34653256-527822631-2e255a(访问密码:7567) 将页面中的数据逐步替换为数据库管理 准备一个连接数据库的类 ...
- JAVA之G1垃圾回收器
概述 G1 GC,全称Garbage-First Garbage Collector,通过-XX:+UseG1GC参数来启用,作为体验版随着JDK 6u14版本面世,在JDK 7u4版本发行时被正式推 ...
- Linux防火墙--IPtables企业级配置策略思路
一.防火墙简介 防火墙定义:是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内.外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术. 防火墙发展应用:最早 ...
- 使用nexus搭建一个maven私有仓库
使用nexus搭建一个maven私有仓库 大家好,我是程序员田同学.今天带大家搭建一个maven私有仓库. 很多公司都是搭建自己的Maven私有仓库,今天就带大家使用nexus搭建一个自己的私有仓库, ...
- 《剑指offer》面试题68 - I. 二叉搜索树的最近公共祖先
问题描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p ...
- python极简教程08:对象的方法
测试奇谭,BUG不见. 讲解之前,我先说说我的教程和网上其他教程的区别: 1 我分享的是我在工作中高频使用的场景,是精华内容: 2 我分享的是学习方法,亦或说,是指明你该学哪些.该重点掌握哪些内容: ...
- 【一个小实验】腾讯云的redis的主从结构的特性
使用腾讯云上的redis,可以添加多个备机的分片,并且可以选择不同的账号来设定主从读写的策略. 现在设置两个账号:primary-主节点写,主节点读:secondary-主节点写,从节点读. 研究出了 ...