首页 > 生活 > 程序是怎么写成的

作者:ghostry 发布时间:2016-09-26 浏览: 1252

转载注明出处: https://blog.ghostry.cn/mood/737.html

这个点还没睡着,我来给大家讲讲程序是怎么写成的。
为了照顾不会编程的朋友,我这里用“妈妈让小明去买酱油”这个例子来说
首先请大家思考一下要实现“妈妈让小明去买酱油”需要怎么做。

好,现在来说下程序怎么做。
首先我们要有“妈妈”“小明”“酱油”这三个对象,这没错吧?不,实际上这不够,我们还要有“钱”“商店”“收银员”。也许还需要“钥匙”“自行车”。或者更多别的对象。
然后我们在给“妈妈”实现“让”这个动作。这个很简单吧,说句话就行“小明,去买酱油”。但这只是正常情况,实际上可能出现“小明没听到”“小明不愿去”等各种情况,每种可能出现的情况我们要进行处理。作为优秀的程序员应该考虑到尽可能多的情况,并给出处理方案,比如“小明没听到”这时候我们让“妈妈”有“走过去”和“揪耳朵”的动作。并且这里我们是假设已知情况是“小明在家”。为了兼容我们可以做一个“妈妈去买酱油”的程序,当“小明不在家”的时候执行。然后来说“小明不愿意去”这个我们可以继续“走过去”“揪耳朵”
好了,现在“小明”要去买酱油了。“买”怎么实现呢?为了实现“买”我们要有“钱”,还要去“商店”。我们假设“钱”在“餐桌”上,如果不在,我们可能需要一个“小明去取钱”的程序。然后我们给“小明”一个“拿”的动作,这里什么“小明手抖没拿到”,“餐桌太高够不着”这些问题也要给予处理方案,篇幅所限不说了。问题太多,我们把能想到和测试出来的情况给予处理方案,而未知的情况直接给错误提示中断执行。好了现在“小明”拿到“钱”了,现在需要“去”“商店”,怎么“去”?可以“走路”,“公交车”,“自行车”等等等等。太多了吧,不可能都实现,成本所限我们来选一个合适的,这里我们选“走路”要实现“走路”,我们需要让“小明”交替的“抬左腿”“落下”“抬右腿”“落下”然后还要处理“跌倒”“没力气”“下楼梯”“乘电梯”等各种情况和功能。
好了,终于到商店了。下面来实现“找到酱油”,“小明走路”刚刚我们实现过了,需要再做“认识酱油”。噢天,怎么这么多种酱油,全都要认识这到什么时候。这里我们来取巧下,我们就认识“酱油”两个字就好了,反正他们都会写上。这就简单多了吧。什么,还麻烦?那我们可以引入“售货员”然后我们来实现“我要买酱油”这样“售货员”会把酱油拿来。哈哈“售货员”别人实现的,他怎么找“酱油”我不用管了,反正“酱油”拿到了,这就是接口。这时候我们可能遇到“售货员没空”“酱油不是我要的”“酱油过期了”等等各种问题,进行处理,
然后进行下一个环节“付款”我们需要让“小明”把“钱”给“收银员”。经过上面的阅读,我想你应该有点思路了吧。这个过程就是“把钱从口袋里拿出交给收银员”,可能遇到“钱掉地上了”“钱不够”“收银员忙”等各种情况。
这些都处理完,我们来实现“小明拿酱油回家”,这个就不说了。
是不是觉得很复杂?其实这是简化过的,毕竟我们还不需要去考虑“妈妈”和“小明”,“小明”的“家”,“家”所在的“城市”,“小明家”附近有没有“商店”,去哪家“商店”等等问题。可以说我们是站在巨人的肩膀上来实现这个事儿。如果没有这个巨人,我们可能需要从构建夸克开始先把宇宙构建出来,再来说“妈妈让小明买酱油”的事儿。当然也不要被吓到,因为巨人已经有了,我们只要站在肩膀上。
做程序,可以很简单,也可以很复杂。比如本文的命题,如果我们只实现“妈妈让小明买酱油”,分支问题一概不管,全部报错中断。那还是挺简单的。
经常有客户说想做个什么多少钱?我就会问您预算多少?这里不应该是做个什么多少钱,而是你要花多少钱做。
就写这些吧,关于“妈妈让小明去买酱油”的故事,从一个程序员的角度出发,我觉得我能写一本长篇小说。什么?你不信?来来来,我们来聊聊“小明”“抬左腿”时候脚尖的三维坐标和每个细胞的动作,以及由此产生的磁场扰动,引发的灰尘碰撞问题。哎,别走啊。

标签: none

上一篇: you name 你的名字 君的名
下一篇: 老笔记本服务器折腾手记-老爷机的新生活

已有 3 条评论 »

  1. 蠢蛋小丑魚
    蠢蛋小丑魚 回复

    受教受教

  2. 亲,你的文章排版真心需要改进改进呢

    1. 手机码字, 不要要求那么高嘛

添加新评论 »

*
*

欢迎评论!歡迎評論!Comments welcome!komentoj bonvenaj!댓글 오신 것을 환영합니다!
:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: :cold: :cryy: :cute: :shy: :sleep: :struggle: :tea: :yahou: