初来乍到之辛酸菜鸟

每一个C语言的初学者总是怀揣着对新大陆的无限热情(这来源于科幻大片对现代计算机技术的放大性的渲染,这使得90后对黑客神秘技术背后充满了极大的好奇)然而现实总是带感的(尤其是骨感)这就不得不要吐槽一下菜鸟的辛酸入门了。

首先面对正式的C语言课程,第一问题自然是码代码的规范性。深深的记得第一次叫老师来看我代码的情况,当时老师只丢下一句太难看了我不看便转头就走。当时我那个郁闷呀,心中还不服地再次审视打量了一下我的代码(自恋地觉得蛮漂亮的)又不要脸地让旁边同学评价一下。结果人家没空理我,让我看老师的课件。这才发觉上课没听讲的严重后果(在此反思除非你真的让别人挑不出刺,否则请虚心听讲)

在此总结一下一个好的代码应该具备的“素质”:

1、  可读性(Readability)

//首先代码不是只写给你自己看的,它需要给别人看,而且应该必须让别人能够轻易的读懂,而不是花费大量时间来揣摩。从软件工程的视角来看,我们以后面对的绝不是几十行又或是几百行代码,而是大量的,而且这些工作都由一个人来完成显然也不现实,这里就必须强调合作,这时可读性的重要性就体现出来了。

2、  正确性(correctness)

 //首先意味着你写的程序要能通过编译器的编译,当然这并不意味着就高枕无忧了,最让你爽到不行的错误常常不会这么轻易的就被发现。C语言号称面向过程,字面上我理解,就是要求程序员能够清晰的知道自己程序的运行过程及一些变量在运行时的变化。当然这种能力是要经过大量练习的,初来乍到的菜鸟自然经常被自己忽视的小细节搞死。这就要求我们编程的时候能够考虑到最大最小及异常的情况。排错向来是一件很带感的事情,初次使用英文版的codeblocks连最基本的报错信息都认不全(此处我想加个聊天常用的苦笑表情)请不要鄙视我(英语水平有点带感)编译器不报错的暗雷更是让你嗨翻天,几个小时的折磨也是常有的。好了重点来了,我们要学会测试我们的代码,通常是考察异常输出的上下文,当然光是看是看不出点什么的,我们需要将这些东西显化(即让你能看出来的那种)比如你可以加上一些必要的输出,让你得以观察某变量全局的变化过程,这通常是很有效的,其他的测试手段当然我也还在学习中。

3、 鲁棒性(robustness)  

Robustness 鲁棒性,鲁棒性 (计算机科学),稳健性 (经济学)

robustnesscheck 性分析,稳健性检验

mechanicalrobustness 机械健壮性,机械强度

//我一开始对这个名词也是陌生的,以上是我百度的结果,说人话应该是代码的适应能力即它能够应对用户对它刁难的水平(当然这是我个人的理解,自恋的人总是对自己的观点充满着自信)

应对用户的错误输入(人非圣贤孰能无过,当然有时候就是想搞崩你,你能把我怎么样)当然用户都是善良的,但你的程序应该具备基本的应对能力,及有报错功能就像编译器给你报错一样。你这种好心的提醒会让用户对你感激不尽的(当然我们常常是对编译器报错是痛恶的,这意味着又得忙活了,还会忍不住骂一句,**这都过不了)但为了用户的最终幸福,完善自己的鲁棒性吧!(想扯一句班群流传的梗:去吧,比卡丘。此处应有@)

4、 扩展性(scalability)

//主要考虑从以下三个方面扩展:输入/计算/输出

关键是能够做到分离,让它们的关联尽可能降低,即分配任务大家都各司其职最后每个人只要交一个简要总结就好了。

例存储可以利用数据结构,计算利用统一的算法(这样的算法要能够解决一类问题而不是某个特定问题),各部分的接口要标准要规范统一,以便实行移植改造。

 

 

原谅我有些废话和逗逼,所谓越是辛酸越要执着前行。尽情期待我血泪史的更新吧!你将见识各种奇葩的死法,各种排错的爽歪,最重要的是你将见证一代传奇码农如何从菜鸟开始蜕变。

下期再见!!

 

 

你可能感兴趣的:(c语言,学习)