架构师之路道阻且长

最近接手了一个小项目,经历了长时间的兵荒马乱后,终于上线,因此趁着今天有时间,把一些感触和经验写出来。

写程序写好了,就能成为架构师?全栈程序员就能当架构师?事实并不如此。一个架构师和程序员之间差的不仅仅是多少行的代码,更是思考能力,控制能力以及对技术,开发周期的精准掌控。下面将我在架构项目时遇到的问题进行逐一描述。

A,需求与周期

需求是用户核验程序时要参考的最重要指标,因此自开发之初和客户核对好需求至关重要。而这一部分恰好是由程序员转做架构师往往忽略的一点。我们要了解到的是需求不仅仅只是一个用户核验程序的标准,同时也是我们在开发中要参考的绝对标准。没有详细的需求,何谈技术实现?没有技术选型,何谈项目规划?连规划都没有,又何谈开发周期?因此即使在客户迫切地询问开发周期的情况下,我们也要谨慎地对需求进行分析,对技术可行性进行分析,的进行规划,提出明确的周期。

总结,核对需求的三个原因:

(1)保证在进入开发过程中,不会因需求的修改不断地对程序进行大范围的整改;

(2)根据具体的需求,确定正确的开发周期,以避免拖延工期的情况;

(3)在项目交接时,不会因为甲乙双方在需求的不明确,导致不愉快的争执以及项目的返工;

需求明确到哪个部分,才算是到位?

这个其实是个很重要的问题,不过可惜的是学校老师讲需求的时候,我也记不得在编写什么代码,亡羊补牢,希望为时不晚。

现在就以用户登录为例,对需求中可能涉及到的问题进行简单的分析

先说几个简单的记录版本信息的部分,需求文档的类型,需求文档的版本,攥写人。如果客户中间提出需求,不要进行口头上的允诺。所有的需求的更改都需要记录在不同版本的需求文档中,这既是对客户权益的保证,也是对开发者权益的保证。花费个十分钟时间修改文档不会对项目的开发有任何的影响

在基本的需求版本确立之后,我们要考虑哪些问题呢?

举例:

用户在登录的时候,需要提供哪些凭证呢?用户名?手机号?

(要想想,一旦中途用户更改凭证,对于一个MVC的项目,需要修改的不仅仅是SQL,参数,还有前端页面,甚至是逻辑)

用户在登录时,是否需要验证码?何种形式的验证码?简单的数字,还是文字或者更多数字和文字组合?

(不同的验证码需要对应不同的代码实现)

用户在登录的时候对安全性有什么要求吗?同一时间,一个账号是否只允许一个用户登录?

(如果对安全性有要求,那么我们就需要考虑在传输数据时进行加密)

用户对界面有什么要求吗

再来一些更小的问题,是否点击enter直接就可以触发submit按钮?

(确实,问题很小,但是如果这些问题在交工时被提出,所有的小问题集合在一块儿,也会导致花费一段时间修改这些不能称之为bug的bug)

B,技术选型和问题解决

再来谈谈技术选型和问题解决。无论是企业级的应用或者是个人应用,技术选型上主要考虑一下几个方面:

用户要求的周期

团队中人员所熟知的领域

选择技术的社区和文档

技术是否稳定,安全,有无重大漏洞




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值