梳理学习技术的脉络,助你一臂之力

断断续续学习技术,包括编程技术,也有6,7个年头了。这期间看过很多大牛,大神,大佬的博客,文章,是时候输出一些我的理解和认知了。

纵观编程技术这一行,不外乎打基础,造轮子,复用轮子,整合轮子。应用在实际生活中就是遇山凿山,遇水架桥。你所看到的那些高级的、复杂的技术比如多线程、高并发、分布式、缓存等等各种中间件技术,都是工程师们在遇到现实的问题、难题前想到的解决方法和应对对策。

想想多线程是不是解决了多个程序不能同时执行的问题,用时间换空间。

高并发是电商等客户量巨大的系统经常会出现的问题,最常见的就是淘宝的双十一,从一开始的数十万人到后来的数百万人再到后来的数千万人。这个高并发的问题难在在一个瞬间,极短时间内系统接收到来自客户端(现在一般都是浏览器)发来的比平时请求量翻几百倍,几千倍,甚至更多倍数的请求,这种问题随着淘宝的双十一活动越来越为人所知而变得越来越寻常,为此淘宝的工程师们才不得不已花费精力和功夫去研究怎样让系统接受那么多数量的请求访问系统。同时,随之而来的还有高可用的问题。

为了解决这个难题,他们研究出了分布式服务架构,让服务器以分布式集群的形式去提供服务给客户端来满足更多客户的业务需求。

这期间,还加入了能让高并发、高可用成功运转的中间件技术,如缓存(常见的有redis),消息队列(常用的有RabbitMQ, kafka等),负载均衡nginx(利用它的反向代理功能)等技术。这里的每个技术都很有来头,也都意义重大。

包括后来阿里提出的数据中台,是把一些各个业务线会用到的基础、公用的功能都归化到一个中台的层面上,统一管理公司内部的数据。

那么说说什么是编程技术的打基础?

其实编程语言本身的设计就是一种打基础,它是为了帮助我们实现我们想要创造的软件产品打基础的。

从java的语言演化来说吧。刚开始,java设计了8种基本数据类型和类。还造了集合等类型供工程师进行开发程序使用。试想,只有基本类型,没有存储基本类型的容器怎么行?于是它造了集合这种数据的容器类型,用来存储和操作数据。

java的集合又考虑得比较细致,分为了两种类型,一种是每个位置只能存放一个数据(对象)的如Collection集合,一种是每个位置可以存放一个键值对数据(对象)的如Map集合。

再后来,由于现实情况的复杂,java又有了多线程的概念,对线程的操作又应运而生。线程满足了我们同时进行多个程序的运行的需求。这让复杂的系统业务得以能够良好地运转和处理。

java对于多线程专门做了java.util.concurent这个包,封装了一些常用的操作方法供程序员进行现实工作的开发和完成。

说说轮子吧,java可是造了很多轮子。比如操作文件的InputStream, OutputStream, BufferedReader, BufferedWriter, 对网络操作的Socket, Http协议,HttpClient等,对excel文件的读写出了很多不同的轮子,有poi, jxl,easyPoi等,对邮件的发送和接收有了javax.mail, javax.activation轮子等等等等。

包括单体应用变成多机应用,开发框架从spring mvc到spring boot, 到spring cloud等等这些框架的演进,都是技术随着实际业务使用场景的需要所不断更迭和改进完善的。

时间有限,今天就先到这里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学习嵌入式Linux开发时,可以按照以下脉络进行学习: 1. 了解嵌入式系统基础知识:首先,了解嵌入式系统的基本概念和特点,了解硬件平台、操作系统和应用程序之间的关系,以及嵌入式Linux系统的组成部分。 2. 学习Linux基础知识:掌握Linux的基本命令行操作和文件系统管理,了解Linux的目录结构、文件权限和用户管理等。这是嵌入式Linux开发的基础。 3. 学习交叉编译和工具链:了解交叉编译的概念和原理,学习如何配置和使用交叉编译工具链,以便在主机上开发和编译嵌入式Linux应用程序。 4. 掌握Linux内核原理和驱动开发:深入学习Linux内核的原理和结构,了解设备驱动的开发流程和机制。学习如何编写和调试设备驱动程序,以及如何将驱动程序集成到Linux内核中。 5. 理解嵌入式Linux系统启动过程:学习嵌入式Linux系统的启动过程,包括引导加载程序(Bootloader)、内核启动、根文件系统挂载等。了解嵌入式Linux系统的启动流程对于系统的调试和优化非常重要。 6. 学习嵌入式Linux应用程序开发:掌握使用嵌入式Linux平台上的开发工具和库函数开发应用程序。学习如何编写多线程程序、网络编程、文件I/O等常用的嵌入式Linux应用程序。 7. 了解嵌入式系统的性能优化和调试技巧:学习如何对嵌入式Linux系统进行性能优化,包括内存管理、CPU占用、IO等方面。掌握常用的调试工具和技巧,如GDB调试器、性能分析工具等。 8. 实践和项目开发:通过实践和参与项目开发,巩固所学知识。可以尝试构建一些嵌入式Linux应用程序或者参与开源项目,锻炼编程能力和解决问题的能力。 记住,学习嵌入式Linux开发需要不断地实践和深入理解系统原理,同时也需要不断地学习和跟进新的技术和发展趋势。祝您在嵌入式Linux开发的旅程中取得成功!如果您有具体的问题,随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值