关于开发的实战方法论(小白向)

目录

一、前言

二、开发

2.1思维导图

2.2开发注意事项

2.2.1.可移植

2.2.2.简洁明了

2.2.3.解决某些的麻烦的功能时要牢记它的最初目的

2.2.4.欢迎各位大佬们补充......

三、结尾


一、前言

先说说说本人对标题的理解。
        先给出结论:我认为最重要的并不是你掌握多少代码的知识、技巧(虽然也重要)而是你是否真的清晰你的需求!!这非常重要。

        再研究结论:一个开发的过程应该是有顺序的。接手项目 -》了解需求 -》代码编写(结合实际硬件) -》大脑构思可能的结果与bug -》实践 -》修改bug -》大脑构思可能的结果与bug -》... ... -》结束开发。

       为什么需求的顺序是在最前面的?因为没有需求就没有核心!你的代码必须存在一个核心的,“核心”的功能可以是:“我这段代码的功能是解决... ...问题”“我这段代码的功能是达到... ...功能”“我这段代码的功能是冗余位,防止出现... ...bug”等等。需求能告诉你,你代码究竟要干嘛。

不要在不清楚写代码的目的下就盲目写代码!

二、开发

2.1思维导图

在开发大型项目的时候建议(这里不用“应该”,有些人的大脑就是好使,确实是不需要这个。也算是仁者见仁智者见智了)画一个思维导图,内容是:
1.开发大致流程需求 -> 为了达到需求需要做的步骤1 -> 步骤2 -> ... ->  结束(比如:用C51单片机点亮Led灯 -> Led灯初始设置 -> 定时器配置 -> 点灯)

2.内容的细分(比如上面的内容,不管是Led灯初始设置还是定时器配置,都是大目标。我们这一段内容的作用是写出大目标的具体实现步骤)

3.可能的目标效果或可能会出现什么问题。

2.2开发注意事项

在开发时我们脑海中应该存在几个概念,

2.2.1.可移植

这段内容的核心是,让我们的代码在换了一个开发环境、烧录设备、...   的情况下依然能够直接运行或着是只修改少数内容就能够运行。比如我们需要做一个二分频器(让频率慢一倍),在一个时钟频率为100M的A设备上,我们当然可以直接写一个50M的时钟发生器。但是在一个时钟频率为200M的B设备上就与实际功能不符了。所以我们写的应该是每检测到两个时钟就发出一个时钟。这样不管在什么设备上,这段代码的功能永远是二分频器。其他的就要看大家的了,具体功能具体分析。

2.2.2.简洁明了

1)代码开头加介绍性的注释(作者,时间,代码功能,注意事项等)。

2)变量名采用已有的各种命名规则。并且名字不能随便起要具有意义比如(I_CLK_500M  “ I ”为大写的字母i,这个名字就说明了这是一个:频率为500M的输入时钟。)

命名规则

2.2.3.解决某些的麻烦的功能时要牢记它的最初目的

某些功能实现起来确实麻烦,需要查阅各种资料,资料间还互有联系。为了解决A问题就需要解决B问题,但为了解决B问题就需要解决C问题和D问题。这种情况屡见不鲜。有时候查着查着就忘了它的源头问题,也就是A问题到底是啥,然后还得重头来一遍从A到B在到C、D的过程。

这种时候我们就需要在你们自己觉得OK的地方,写上问题链(A -> B -> C、D)或者是以自己的方式记录下来。

2.2.4.欢迎各位大佬们补充......

三、结尾

如上的内容并不难理解,因为他们只有一个核心,即:“让代码更便于理解、更通用、更方便移植”。写这么多只是把核心拆开成一个个小步骤,方便理解和实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值