手记

我的架构学习与实战记录

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

  1. 只有一个解决方案

  2. 不止一个解决方案

  3. 最好的解决方案

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

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

  • 自由飞·创业者的心灵家园:一个集成了博客、问答和新闻资讯,糅合了内容管理和社区功能的创业者交流平台

  • 自由飞·任务管理系统:用于任务的发布承接工作验收等流程管理、绩效统计的Web办公平台

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

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

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

  1. 我并不是专家,甚至连高手都算不上,只是一个系统架构的菜鸟(我的经历可参考:程序员30过后)。至今为止,我还没有过一个完整的项目开发经验,所以你不要相信我,我自己都不相信我自己——我还希望能从大家那里得到一些启发和帮助呢!

  2. 正如我在《我学习设计模式的一些所想所得》中所说,实践是掌握软件工程技术的最根本最重要手段。再深入浅出的技术文章都不可能像畅销书一样通俗易懂,你必须真正的深入其中,自己去思考体会,才能得到你自己的东西。

  3. 我会跟随项目的进度,一步一步的分析讲解我的思路和方案。所以,你的建议和帮助,很可能进一步的完善和优化这个项目哟!

0人推荐
随时随地看视频
慕课网APP