我的软件架构方法论

我们公司内部职级晋升中,当目标职级比较资深或者专家后,有一项考察内容是:有自己的方法论。

什么是方法论

方法论很多人听过,可是很多人也在问什么是方法论?

方法论是我们对于很多事情进行思考沉淀后,具有总结性的指导思想。

比如很多名言警句就可以是方法论。

  • 近朱者赤,近墨者黑
  • 勤能补拙

软件架构方法论

少即是多

一次有人问我,你有没有总结过你的方法论? 我说我的方法论是:少即是多。

之前对系统接口进行性能和稳定性的优化,第一期优化的效果还可以,他们问我都用了哪些技术手段,用了哪些新东西。 我说我删了5k行代码,他没说你的方法论就是“删代码”。

最开始接到这个系统的时候,努力去整明白他里面做的事情是很难的。 等一部分代码逻辑明白后,发现里面做了很多无用功,可能是之前的系统设计的太烂了,完全没有考虑到后续扩展的方向,也可能是产品的需求改了又改,大部分代码都只能为了适应业务迭代而修修补补,结果造成了一大堆无效而冗余的代码存在。

于是首先是梳理系统响应接口的主要目的,梳理上下文逻辑,梳理数据流逻辑,删除冗余代码,让代码编写的更易读,更整洁,更优雅。 对代码逻辑进行抽离,和封装,复用。

很多人看待代码分离,都只是简单对分层,分模块。 我写代码主要的分离除了上面两点,还有一个是计算和存储分离,这个点后面讲。

总之这个可用性和性能优化,仅仅通过“删代码”就达到了目标,为未来的进一步优化带来了很多空间。

我们内部有个代码统计系统,每次发版打tag都会进行一次统计,别人每次都是绿色的加号,+500,代码增加了500行。 我的每次都是红色的减号,-1500,我又删了1500行代码。

面向大数据系统设计

上面说了,我分代码逻辑还有一个是计算和存储分离。

很多人写代码,除了写面条代码外,虽说可以分成很多子方法,子模块,代码行数控制到80行,可是依然难读。 因为这样做只是简单的文字分页而已,并不是一个软件开发的思想。

我写代码一般会考虑这个功能是读功能还是,写功能,进行抽离,这样的话读功能在数据量上来之后我们可以做很多我们可扩展的能力,比如拆库拆表,比如引入缓存,比如多存储介质存储等,完全不用关系业务逻辑问题。

计算和存储分离是数据库的执行方式,底层在磁盘上的B树负责存储,上层的SQL Parser负责计算,我们系统也可以具有这样的逻辑,这样我们可以零成本的切换存储,而不该上层代码逻辑,达到更好的单元测试。

所以这里的方法论是:面向大数据系统设计。

在互联网系统中,数据的增长,业务的发展,用户的增加,是远远快于系统迭代的,只有我们将我们的单机系统代码设计的具有面向大数据高并发场景的时候,系统才具有可扩展,易扩展的能力,才能承载更多的数据压力,也变得更稳定。

原文发布于微信公众号 - 服务端技术杂谈(develop_king)

原文发表时间:2018-09-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

MongoDB 如何使定制电子商务变得简单

开源电子商务软件市场已经历了众多发展阶段,您可能已经通过 osCommerce、Magento、Zen Cart、PrestaShop、Spree 等流行平台而...

2197
来自专栏数据和云

必读推荐:深入解读Oracle 18c对于DBA的影响及应对措施

? Joel Perez Oracle ACE Director,云和恩墨高级云技术专家 "DBA 将要失业了吗? 当引入自治数据库之后,就永远不需要...

4349
来自专栏云资讯小编的专栏

腾讯云发布无服务器云函数,较云主机成本低约70%

4月26日,腾讯云宣布,正式开放国内首款FaaS(Function as a Service,函数即服务) 产品——无服务器云函数(SCF,Serverless...

1.2K0
来自专栏架构师之路

feed流拉取,读扩散,究竟是啥?

答:微博,微信朋友圈,Pinterest是典型的feed流业务,系统中的每一条消息就是一个feed。

3093
来自专栏魏艾斯博客www.vpsss.net

腾讯云数据库专场特惠 2.5 折起 新用户 1 元体验 2060 元升级/续费大礼包免费领

腾讯云数据库专场特惠活动开始,大家知道腾讯云是国内重量级的云服务提供商,和阿里云一样也占据了国内云服务器的很大市场份额。这次针对云数据库的专场特惠,腾讯云也拿出...

2213
来自专栏developerHaoz 的安卓之旅

如何有效报告 bug

这也是「技术支持」被视为一个可怕工作的原因。然而,并不是所有的 bug 报告都是让人不愉快的。我一直在没赚钱的时候维护开源软件,有时候会收到一些非常清晰的、有帮...

1142
来自专栏云计算

为您的组织选择正确的企业云解决方案

目前,云计算已被广泛使用,并且成为多数企业为之努力的目标。然而,入云所带来的现实问题也令人担忧。耗时费力的部署,安全风险,噩梦般的应用程序迁移场景以及不成熟的私...

2206
来自专栏pangguoming

国外物联网平台(1):亚马逊AWS IoT

设备影子服务使用MQTT话题,便于应用和设备之间的通信,下面是相关的MQTT QoS 1话题:

5482
来自专栏章鱼的慢慢技术路

游戏服务器概述

(1)了解常见查找/排序算法的特点:利用算法来改善性能,胜于通过编译器选项、编程技巧;

5802
来自专栏非著名程序员

是的,我又开发了一款产品,堪称效率神器

? 是的,最近我玩上了微信小程序,感觉开发这个还是蛮有意思的,所以,我又开发了一款小程序,邀请大家一起来看看,顺便欣赏一下。还请大家提提意见。 是的,继「活动...

3855

扫码关注云+社区

领取腾讯云代金券