架构之路--实战项目记录

简介: 对我而言,如何学习“系统架构”一直是一个大难题。我把编程学习分为了三个境界: 只有一个解决方案 不止一个解决方案 最好的解决方案 当我们最开始学习编程时,只要能把问题解决掉,把功能实现出来,就沾沾自喜;如果实现的功能够华丽够出彩,就更是“拽”得不行了。

对我而言,如何学习“系统架构”一直是一个大难题。我把编程学习分为了三个境界:

  1. 只有一个解决方案
  2. 不止一个解决方案
  3. 最好的解决方案

当我们最开始学习编程时,只要能把问题解决掉,把功能实现出来,就沾沾自喜;如果实现的功能够华丽够出彩,就更是“拽”得不行了。但当我们的视野更加的开阔,我们就会慢慢发现,很多问题,其实并不有一个解决方案,这么做也行,那样做也不错,所以问题随之而来,哪一个才是最好的呢?即使只针对一个很小很具体的问题,不同的人从不同的视角出发,都会给出不同的答案,更何况“系统架构”这样一个如此复杂、如此主观的问题?所以我记得一本讲架构的书(如果知道原文出处,敬请告知!)里说过:讲架构是很难举例的,例子太简单,不足以体现架构的作用;例子太复杂,将不得不把大量的篇幅花在讲解业务逻辑上,而且当读者已经被复杂的业务搞得晕头转向之后,已经很难再集中精力理解架构的魅力了。

在我这些年的工作和学习中,我也看过几本架构方面被公认为“经典”的书籍,但自觉收获不大,可能就是基于上面的原因。“纸上得来终觉浅,绝知此事要躬行”,所以我干脆自己动手,鼓搞出几个项目再说,在实践中学习成长。目前为止,我已经开发了两个项目:

最初我曾经打算,将这个博客系列和项目进程同步,项目做到哪里,博客就写到哪里。但鉴于自己的水平有限,项目进行途中,屡次大改,所以出于对读者负责的态度,暂停了博客的发布,希望能在架构稍加稳定之后再发布博客。我想,现在应该是一个比较恰当的时机了——虽然架构还远算不上完美,但至少已经趋于稳定;而且回头来看,让我收获良多的,正是那些辗转反侧的考量、对系统“千锤百炼”的敲打、如切如磋的雕琢,而不是一个系统最终的“成品快照”。所以我想即使系统再有更新和改进,和大家一起分享其中的经验教训所思所得,也是未尝不是一件幸事——痛苦让我们深刻。

项目是我利用业务时间自行开发的,但不会只是一个玩具。我的目标是通过这个项目的运作,实现二次成功创业,所以项目会一直开发下去,我也会和。

我会开放所有的项目源代码,希望各位同学能够更积极的参与其中,因为:

  1. 我并不是专家,甚至连高手都算不上,只是一个系统架构的菜鸟(我的经历可参考:程序员30过后)。至今为止,我还没有过一个完整的项目开发经验,所以你不要相信我,我自己都不相信我自己——我还希望能从大家那里得到一些启发和帮助呢!
  2. 正如我在《我学习设计模式的一些所想所得》中所说,实践是掌握软件工程技术的最根本最重要手段。再深入浅出的技术文章都不可能像畅销书一样通俗易懂,你必须真正的深入其中,自己去思考体会,才能得到你自己的东西。
  3. 我会跟随项目的进度,一步一步的分析讲解我的思路和方案。所以,你的建议和帮助,很可能进一步的完善和优化这个项目哟!

 

目录:

 

 

 

 

 

 

 

相关文章
|
3天前
|
负载均衡 数据库 开发工具
|
3天前
|
Java 数据库 Maven
谷粒商城笔记+踩坑(1)——架构、项目环境搭建、代码生成器
项目介绍、项目环境搭建、docker配置mysql,redis,jdk,maven、人人开源、快速开发、安装nodejs、逆向工程搭建,人人开源代码生成器
谷粒商城笔记+踩坑(1)——架构、项目环境搭建、代码生成器
|
12天前
|
运维 监控 持续交付
深入浅出:微服务架构的设计与实战
微服务,一个在软件开发领域如雷贯耳的名词,它代表着一种现代软件架构的风格。本文将通过浅显易懂的语言,带领读者从零开始了解微服务的概念、设计原则及其在实际项目中的运用。我们将一起探讨如何将一个庞大的单体应用拆分为灵活、独立、可扩展的微服务,并分享一些实践中的经验和技巧。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和深入的理解。
39 3
|
20天前
|
设计模式 存储 前端开发
揭秘.NET架构设计模式:如何构建坚不可摧的系统?掌握这些,让你的项目无懈可击!
【8月更文挑战第28天】在软件开发中,设计模式是解决常见问题的经典方案,助力构建可维护、可扩展的系统。本文探讨了.NET中三种关键架构设计模式:MVC、依赖注入与仓储模式,并提供了示例代码。MVC通过模型、视图和控制器分离关注点;依赖注入则通过外部管理组件依赖提升复用性和可测性;仓储模式则统一数据访问接口,分离数据逻辑与业务逻辑。掌握这些模式有助于开发者优化系统架构,提升软件质量。
33 5
|
17天前
|
前端开发 开发者 C#
WPF开发者必读:MVVM模式实战,轻松实现现代桌面应用架构,让你的代码更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,MVVM(Model-View-ViewModel)模式通过分离应用程序的逻辑和界面,提高了代码的可维护性和可扩展性。本文介绍了MVVM模式的三个核心组件:Model(数据模型)、View(用户界面)和ViewModel(处理数据绑定和逻辑),并通过示例代码展示了如何在WPF项目中实现MVVM模式。通过这种方式,开发者可以构建更加高效和可扩展的桌面应用程序。
39 0
|
22天前
|
JSON API 数据安全/隐私保护
Django 后端架构开发:JWT 项目实践与Drf版本控制
Django 后端架构开发:JWT 项目实践与Drf版本控制
31 0
|
24天前
|
资源调度 分布式计算 监控
【揭秘Hadoop YARN背后的奥秘!】从零开始,带你深入了解YARN资源管理框架的核心架构与实战应用!
【8月更文挑战第24天】Hadoop YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的资源管理器,为Hadoop集群上的应用提供统一的资源管理和调度框架。YARN通过ResourceManager、NodeManager和ApplicationMaster三大核心组件实现高效集群资源利用及多框架支持。本文剖析YARN架构及组件工作原理,并通过示例代码展示如何运行简单的MapReduce任务,帮助读者深入了解YARN机制及其在大数据处理中的应用价值。
37 0
|
26天前
|
机器学习/深度学习 Cloud Native Serverless
Serverless 架构问题之CNCF基金会托管的CloudEvents项目内容如何解决
Serverless 架构问题之CNCF基金会托管的CloudEvents项目内容如何解决
27 0
|
27天前
|
SQL 分布式计算 大数据
Android项目架构设计问题之平衡技术选型与业务需求之间的关系如何解决
Android项目架构设计问题之平衡技术选型与业务需求之间的关系如何解决
25 0
|
27天前
|
开发工具 Android开发
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
Android项目架构设计问题之SDK内部减少每次回调时的冗余判断逻辑如何解决
16 0

热门文章

最新文章