
我们都知道,后端技术包罗万象,从面向过程到面向对象,从数据库到中间件。后端技术不仅涵盖各种底层原理,还有各种层出不穷的技术。对于一个刚进入或是即将进入技术领域的人来说,常常面对的困惑就是,这些知识我们到底该掌握哪些?又该掌握到何种程度呢?
技术纷繁复杂,处在这个十字路口,我们总是很容易迷失方向。要么选择抱着厚厚的书籍盲啃,好不容易看完了,又不知道该怎么用;要么就是追随各种技术潮流,但真正可以用到工作中的,又有多少呢?
这两种情况都会让人感到无所适从,而避免它们的最好方式就是形成一套属于自己的技术体系,让其提供坚定的理论支撑,在千变万化的技术道路上也能走得稳健。
一切技术的产生与发展都离不开最基本的原理,只要追本溯源,了解技术体系最基本、最底层的原理,我们就能根据这些知识储备建立自己的后端技术框架,从而搭建一条完整的成长道路。
在这个专栏中,作者将通过自己多年的架构师经验,总结出了程序员必备的 3 大技术体系及原理,软件的基础原理、软件的设计原理以及架构的核心原理,涵盖日常工作中所能接触的核心技术知识,从而帮你构建一套完整的软件编程方法论以及技术思维框架。
专栏会讲哪些知识?
专栏会系统覆盖有关后端技术的知识体系,比如数据库的原理、网络编程的原理、面向对象与面向过程真正的区别等。通过回答实际的问题场景,由点到面地引出背后的关键原理。
专栏模块是如何设置的?
专栏共 4 个模块,38 篇文章。按照顺序依次讲解软件的基础原理、软件的设计原理、架构的核心原理以及技术人的思维修炼。
在第一个模块“软件的基础原理”中,主要讲述程序运行中背后的技术体系,主要涵盖运行原理、网络编程原理、数据结构原理、数据库原理等。
在第二个模块“软件的设计原理”中,主要探讨我们在编程的过程中应该有怎样的视野与知识储备,比如如何写设计文档?软件设计中的原则都有哪些?真正的面向对象是怎样的?
在第三个模块“架构的核心原理”中,我们将把视野投放到更大,更宏观的架构体系中,接触架构的不同类型,并了解它们的原理与区别。比如分布式架构、高可用架构,以及目前风头正盛的的 AI 与物联网架构等。
在最后一个模块“技术人的思维修炼”中,则主要讲述身为技术人,应该如何保持不断进步的能力以及宏观的视野?
开篇词 | 掌握软件开发技术的第一性原理 01丨程序运行原理:程序是如何运行又是如何崩溃的? 02丨数据结构原理:Hash表的时间复杂度为什么是O(1)? 03丨Java虚拟机原理:JVM为什么被称为机器(machine)? 04丨网络编程原理:一个字符的互联网之旅 05丨文件系统原理:如何用1分钟遍历一个100TB的文件? 06丨数据库原理:为什么PrepareStatement性能更好更安全? 07丨编程语言原理:面向对象编程是编程的终极形态吗? 答疑丨Java Web程序的运行时环境到底是怎样的? 08丨软件设计的方法论:软件为什么要建模? 09丨软件设计实践:如何使用UML完成一个设计文档? 10 | 软件设计的目的:糟糕的程序员比优秀的程序员差在哪里? 11丨软件设计的开闭原则:如何不修改代码却能实现需求变更? 12 | 软件设计的依赖倒置原则:如何不依赖代码却可以复用它的功能? 13丨软件设计的里氏替换原则:正方形可以继承长方形吗? 14 | 软件设计的单一职责原则:为什么说一个类文件打开最好不要超过一屏? 15丨软件设计的接口隔离原则:如何对类的调用者隐藏类的公有方法? 16 | 设计模式基础:不会灵活应用设计模式,你就没有掌握面向对象编程 17 | 设计模式应用:编程框架中的设计模式 18 | 反应式编程框架设计:如何使程序调用不阻塞等待,立即响应? 19 | 组件设计原则:组件的边界在哪里? 20 | 领域驱动设计:35岁的程序员应该写什么样的代码? 答疑丨对于设计模式而言,场景到底有多重要? 21丨分布式架构:如何应对高并发的用户请求 22 | 缓存架构:如何减少不必要的计算? 23 | 异步架构:如何避免互相依赖的系统间耦合? 24 | 负载均衡架构:如何用10行代码实现一个负载均衡服务? 25 | 数据存储架构:如何改善系统的数据存储能力? 26 | 搜索引擎架构:如何瞬间完成海量数据检索? 27 | 微服务架构:微服务究竟是灵丹还是毒药? 28 | 高性能架构:除了代码,你还可以在哪些地方优化性能? 29 | 高可用架构:我们为什么感觉不到淘宝应用升级时的停机? 30 | 安全性架构:为什么说用户密码泄漏是程序员的锅? 31 | 大数据架构:大数据技术架构的思想和原理是什么? 32 | AI与物联网架构:从智能引擎到物联网平台 33 | 区块链技术架构:区块链到底能做什么? 答疑丨互联网需要解决的技术问题是什么? 34 | 技术修炼之道:同样工作十几年,为什么有的人成为大厂架构师,有的人失业? 35 | 技术进阶之道:你和这个星球最顶级的程序员差几个等级? 36丨技术落地之道:你真的知道自己要解决的问题是什么吗? 37丨技术沟通之道:如何解决问题? 38丨技术管理之道:你真的要转管理吗? 答疑丨工作中的交往和沟通,都有哪些小技巧呢? 加餐 | 软件设计文档示例模板 结束语丨期待未来的你,成为优秀的软件架构师 期末测试丨快来测测你对专栏内容掌握到何种程度了


评论0