打印

工程程序编写问题!小白的程序之痛。。。。

[复制链接]
2346|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
罗飞1002|  楼主 | 2015-4-1 14:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 罗飞1002 于 2015-4-2 17:44 编辑

刚刚学校毕业,在学校里面也给老师做项目,总的来说做过的一个称得上工程应用的用电器检测的项目。这个项目过后不久就出来工作了。
这个项目学习到的东西其实只有一个,就是驱动模块,只是一个工程的一小部分。完成底层的驱动,可以说只完成整个程序的10%。剩下的就是模块间的调用。这个我很佩服我的老师。他写程序的思路和方法都很厉害。他也一直和我们说这一些方面的事情。但是愚笨的我到学期结束也没有学会他的编程方法。
在程序编写的时候,最大的问题就变量和标志的定义。乱,杂。而且当有多个功能在使用同一个变量的时候还不知道在哪定义里好。
我目前一直搞的裸机。程序写着写着自己就看不下去了。唉!!!
从头整理!再来一次!!!

下面是一段时间后的,回头来编辑了一下帖子
请教了一下子我的主管,他提出了一个方法,就是把程序的功能细化。这样的话就不会在一个函数内调用太多的变量。而且在修改的时候也不会
太复杂

相关帖子

沙发
ichenqiang| | 2015-4-1 15:20 | 只看该作者
慢慢来,但是也要看看其他人好的编程方法,去吸收学习,然后逐渐形成自己的方法或者适合自己公司的方法

使用特权

评论回复
板凳
xiao-师妹| | 2015-4-1 16:12 | 只看该作者
加油加油加油

使用特权

评论回复
地板
cxdylee| | 2015-4-2 13:33 | 只看该作者
哈哈,罗飞还以为是我舍友啦

使用特权

评论回复
5
罗飞1002|  楼主 | 2015-4-2 15:55 | 只看该作者
ichenqiang 发表于 2015-4-1 15:20
慢慢来,但是也要看看其他人好的编程方法,去吸收学习,然后逐渐形成自己的方法或者适合自己公司的方法 ...

就是变量的定义不知道往哪里放,该怎样去定义。
乱七八糟的

使用特权

评论回复
6
罗飞1002|  楼主 | 2015-4-2 15:56 | 只看该作者
cxdylee 发表于 2015-4-2 13:33
哈哈,罗飞还以为是我舍友啦

不是妹子就好!!哈哈

使用特权

评论回复
7
ichenqiang| | 2015-4-2 17:31 | 只看该作者
罗飞1002 发表于 2015-4-2 15:55
就是变量的定义不知道往哪里放,该怎样去定义。
乱七八糟的

慢慢来,多看看大神写的程序,还可以看看MCU官方的库文件。

使用特权

评论回复
8
piliming| | 2015-4-2 18:15 | 只看该作者
我现在一个多月就是在看别人程序,调试修改别人的程序,可以学到很多。你说的的变量定义,用结构体,枚举去定义,很清晰。另外整个程序的构架好的话也容易理解得多。

使用特权

评论回复
9
罗飞1002|  楼主 | 2015-4-7 10:05 | 只看该作者
编程的问题


           A:程序的功能不明确。没有详细的记录,不能时时的查看
           B:标志调用范围不明确
           C:模块程序对外的接口,和模块程序本身的功能不明确
           D:接口函数没有做好,每一个功能都应该在一定的范围内全部属于本函数
                这一部分的函数,可以事先做好,并且留出对外的接口,而不是用到什么
                去做什么!!

使用特权

评论回复
10
feilusia| | 2015-4-7 16:30 | 只看该作者
我当时做裸机的时候也纠结过一些问题,比如写串口驱动时需要配置IO口,那IO口的配置是应该放在串口驱动里、还是应该放在IO驱动里。
现在做的都是基于小系统,很多东西都做好了,自己只要知道在哪里修改就行,也就不纠结裸机编程时模棱两可的事情了。

使用特权

评论回复
11
mcu5i51| | 2015-4-8 08:45 | 只看该作者
没有一步到位的,慢慢来吧

使用特权

评论回复
12
dqgcs123| | 2015-4-9 09:50 | 只看该作者
搞硬件的编程学的都很浅,基本都是懂语法就足够了,如果多看看软件工程相关的书,那么就会懂架构方面的知识了

使用特权

评论回复
13
罗飞1002|  楼主 | 2015-4-9 11:59 | 只看该作者

首先感谢各位大大的鼓励和帮助。
在把以前的程序重新修改以后,节约了东西(多余的变量,多余的判断)!但是在修改好的程序结构里面加入新的程序的时候,有会被打回原形。

总结一下:
             程序的模块功能尽量的细化!变量的置位也可以用函数去代替!
             要考虑到切换当前界面时(显示部分,和隐藏在显示后面的工作)各个标志位的整体的状态
             每一个模块都用对应状态的一个函数去去处理这些变量
             有一个主线的切换,更剧主线进程的切换来考虑函数的功能,像上面说的显示,有几个界面,每一              个界面下面有什么功能,切换时每一个模块要保留和丢弃什么东西。最好搞一张进程切换到图图
            (我还没有做这件事情,准备去做)。
下面接续努力

使用特权

评论回复
14
peakstar| | 2015-4-9 23:15 | 只看该作者
1.层次结构清晰
2.每个模块功能明确,高内聚,低耦合
3.尽量少用全局变量,模块间数据最好用参数传递
4.异步返回值通过callback通知上层
5.常量及可变函数,用宏定义
6.涉及到状态,可以考虑用状态机 .......还有很多

使用特权

评论回复
评分
参与人数 1威望 +8 收起 理由
tyw + 8 很给力!
15
tyw| | 2015-4-10 08:38 | 只看该作者
本帖最后由 tyw 于 2015-4-10 09:50 编辑

不用刻意去死记高人的编程123, 领略一下高人的编程之旅,哪怕是走马看花也行.
冥冥之中会有神祗为你导航,建功于潜移默化之中.
(瓦氏修罗大珐,注意保米,不得外传哦,哈哈)

〓◆ 编程珠玑(第2版)245页 44.7M 高清书签版 ◆〓
〓◆ 游戏之旅-我的编程感悟 414页 37.0M ◆〓 , 很精采的拉!

使用特权

评论回复
16
罗飞1002|  楼主 | 2015-4-10 09:10 | 只看该作者
tyw 发表于 2015-4-10 08:38
不用刻意去死记高人的编程123, 领略一下高人的编程之旅,哪怕是走马看花也行.
冥冥之中会有神祗为你导航,建 ...

多谢多谢

使用特权

评论回复
17
永不停止| | 2015-5-11 11:23 | 只看该作者
首先明白要做什么,其次不要太着急技巧的学习

使用特权

评论回复
18
JLennon| | 2015-5-11 11:54 | 只看该作者
用结构化编程,或者借用OOP的概念来编程,大程序效果最明显。

使用特权

评论回复
19
wang168506| | 2015-5-11 15:35 | 只看该作者
慢慢来!

使用特权

评论回复
20
林中木| | 2015-5-26 10:35 | 只看该作者
想必大家在初学的时候,都 有过类似的困惑,但时间会解决很多问题的,耐心学,耐心练,耐心等待自己的成长

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

20

帖子

1

粉丝