一次编程大作业的心得
2012-12-24 23:18
260 查看
前几天(准确说从前两个星期就断断续续开始了,只是前几天才正式编码)完成了网络程序设计的大作业:一个即时通讯程序。居然有3天时间在debug
。
编程的过程中被bug折磨的内分泌失调。使我不得不总结一下:
1.在动手写代码之前应该规划一下程序的框架。思路清楚之后才开始敲代码。要不后面会反复修改,劳神伤力。
2.具体到通信程序在写代码之前要约定好通信协议,通信的数据类型要约定好,两边都能支持的数据类型才能用。
3.申请的内存最好先清零,用bzero函数。
4.尽早掌握debug工具的使用。不过临时学也能用上,只是费时间又分神。
5.专注才有效率。
6.一段时间不编程就手生。各种初学者的错误都会犯。
7.不要假设某个地方一定不会有bug。你调试了半天没找到错误出处,说不定bug就在你认为肯定没有错误的地方。
8.GDB确实很实用,能快速发现错误的地方。用了之后debug快多了。
9.某些工具不会用,可以请教旁人,这样比自己探索快很多。比如这次花了半天时间弄glade都没摸到门道,同学主动过来教我,立马就有感觉了。虽然他没用过glade,不过他用java和C#做过界面。
貌似这次用C++开发服务器端程序,居然比用C开发客户端程序简单一些,花的精力明显少很多。
不过这次除了教训还是有点收获的
1.学会了一点点用GTK做界面。
2.学会了一点点makefile的编写。
3.学会了一点点gdb的使用。
4.接触了定时器,多线程,套接字。
5.第一次按照比较真实的需求封装一个C++类。
打算寒假看《软件调试的艺术》和《Debug Hacks》。
有个大的遗憾:为了调试程序没去考六级,只有明年最后一次机会再考了。不过就是去也很可能过不了,因为我什么都没准备。上次裸考也是失败了。这可能是我的性格缺陷了,忙于一件事就不想做任何其他事,哪怕很重要。
。
编程的过程中被bug折磨的内分泌失调。使我不得不总结一下:
1.在动手写代码之前应该规划一下程序的框架。思路清楚之后才开始敲代码。要不后面会反复修改,劳神伤力。
2.具体到通信程序在写代码之前要约定好通信协议,通信的数据类型要约定好,两边都能支持的数据类型才能用。
3.申请的内存最好先清零,用bzero函数。
4.尽早掌握debug工具的使用。不过临时学也能用上,只是费时间又分神。
5.专注才有效率。
6.一段时间不编程就手生。各种初学者的错误都会犯。
7.不要假设某个地方一定不会有bug。你调试了半天没找到错误出处,说不定bug就在你认为肯定没有错误的地方。
8.GDB确实很实用,能快速发现错误的地方。用了之后debug快多了。
9.某些工具不会用,可以请教旁人,这样比自己探索快很多。比如这次花了半天时间弄glade都没摸到门道,同学主动过来教我,立马就有感觉了。虽然他没用过glade,不过他用java和C#做过界面。
貌似这次用C++开发服务器端程序,居然比用C开发客户端程序简单一些,花的精力明显少很多。
不过这次除了教训还是有点收获的
1.学会了一点点用GTK做界面。
2.学会了一点点makefile的编写。
3.学会了一点点gdb的使用。
4.接触了定时器,多线程,套接字。
5.第一次按照比较真实的需求封装一个C++类。
打算寒假看《软件调试的艺术》和《Debug Hacks》。
有个大的遗憾:为了调试程序没去考六级,只有明年最后一次机会再考了。不过就是去也很可能过不了,因为我什么都没准备。上次裸考也是失败了。这可能是我的性格缺陷了,忙于一件事就不想做任何其他事,哪怕很重要。
相关文章推荐
- 记一次逆向工程作业(汇编windows编程)
- cs231n 编程作业(2)学习心得——多种优化方法
- 作业 1 熟悉C语言编程环境 心得与问题
- sokcet编程心得
- 个人博客作业Week7(阅读文章,心得体会)
- 网易云课堂java程序设计(第二周编程作业)
- 作业 1 熟悉C语言编程环境 第一章
- 第六次作业--结对编程第二次
- 2018.3.28 高级编程作业
- Qt学习心得之网络编程简单的局域网聊天服务端建立
- 【数据结构】邓玉欣的编程作业indexing
- 第1次编程作业
- windows下实现win32俄罗斯方块练手,编程的几点心得
- 吴恩达Coursera深度学习课程 DeepLearning.ai 编程作业——Convolution model:step by step and application (4.1)
- 第八次高级编程作业
- Machine Learning 第二波编程作业 – Logistic Regression
- 编程心得
- 结队编程作业——电梯调度
- 通过编程添加自动化作业
- 第二周编程作业