【作业】2020年高等软件工程系统设计阶段思考

首先,按照国际惯例,好久不见。咋说呢,这波我自己感觉仿佛过了一年,但是翻回去一看日期才大半个月。为啥呢,这阵子太忙了,事情一个接一个,而且大都还是自己完全不擅长却又不得不做还得做的像样点的那种。不说别的,代码都基本上没时间肝,只能向后一靠眼皮一合呼噜一响的时候写点,还真有点尴尬。不过放心,之前挖的博客坑,总会填上的。而且不久的未来,笔者也将会有新的开源项目正式上线,各位大可放心,笔者不会鸽的。

然后接下来,进入正题,现在软工系统设计环节也已经算是告一段落了。对笔者自己而言,实际上还是早已熟悉的内容居多,所以笔者在本文中,还是主要着重说下对设计的一些粗略之见。

设计的路子

其实呢,说到这个,对于笔者本人而言,不算是啥陌生玩意。不是因为别的,而是因为干的太多了,啥玩意好使啥玩意外强中干啥玩意根本胡扯,早就烂熟于心,当然相对应的,也没少踩过坑,甚至付出过惨痛的代价。不仅如此,在我们本科的OO课里头,也没少接触过这类内容,具体可以参考下笔者写于2018年的一些文章,在本文中不做展开。在本文中,笔者将着重对“设计的路子”这个词进行解析,谈一谈个人的理解与看法。

看了下其他同学写的这次作业,有说注意架构规范的,也有说注意留好项目文档之类的。不过个人理解,总而言之一句话——规范性,用一个更加文艺且浪漫主义的词,叫做按图索骥

咱们也都是计算机专业的学生,小到数分高代离散,大到计算机组成原理、操作系统、编译原理,应该人人都烂熟于心。在这里头,如果你学习之余喜欢和我一样瞎琢磨的话,肯定也会产生不少的疑问,例如:

  • CPU的设计,为啥需要四级流水线?二级三级不行么?串行不行么?ALU那种简单玩意干啥单独拎出来?设备控制直接门电路玩起来好不好为啥一定得走DM?
  • 操作系统的进程,为啥需要拆成时间片?为啥得按照四种基本状态来调度?我直接排着队来不行么?还有为啥要分内核态和用户态?直接平推到底不行么?
  • 设计一门新的编程语言的时候,为啥一定非得去干净文法中的左递归?咱别递归下降好不?暴力大循环大递归不香吗?就算实在不行,咱不从左边递归下降,从右边咋的就不行了呢?
  • 即便在OO课,也有一堆同学有着五花八门的质疑:OO是啥玩意?OO能干啥?这程序不用OO不能写了是咋的?总而言之一句话:OO有啥用。

如果你想过这些问题的话,那恭喜你,你发现了问题的所在。在咱们的考试中,显然但凡不按照这些来,那就是错的,就会少不少分,这个人还会被贴上“学渣”、“学艺不精”等精致的标签。但是从实际意义上来说,这些真的就不对了么?并非如此!实际上,能解决问题的一切办法,都是好的,甭管黑猫白猫抓着耗子就是好猫,这一点毫无疑问

不过既然如此,那么设计的路子,重要性何在呢?问得好,我自己也想过很久,也顺带思考过更深层次上的相关问题。以下是我个人的一点理解:

  • 设计的路子是一种可以以可控的成本,寻找出一种较优设计的方法

划一下重点:

  • 寻找设计的方法
  • 成本可控

首先,设计的路子,指的是寻找设计的方法,而不是设计本身。这一点算是基本中的基本,这个概念有些类似于元(meta)的概念,换个更通俗的解释,那就是,设计的路子,是“渔术“,而非一筐或几篓子蹦跶着的鱼。在计算机行业,有不少类似的例子,例如计算机组成原理中用到的卡诺图,提供了一种寻找符合对应真值结果的逻辑结构的方法;在编译原理中,我们有一整套的理论,来基于一个文法规则,构造出一个用于舒舒服服解构源代码的有限状态自动机,实际上我们北航这的编译课上,一大半内容都在围绕这个。这些内容有个共同的特点,那就是用构造用于构造的方法。而设计的路子,本质上也只是这一思路在软件工程设计中的体现。

而之后,也是最为关键的一点,就是成本可控。这意味着,我们只需要按照路子来走,就不再需要通过一系列踩坑来提高设计品质。结合现实开发环境来说,虽然学校里头,你可以学习试错,但是在生产环境下,可没那么多时间给你走弯路。你的甲方等着要demo,你的投资人等着一个实底,你的上头等着成果,你的下面等着吃口热乎的,紧俏得很。而寻找较优设计这件事,要是不能在可控的人力物力时间成本内完成,那么设计将真正的成为玄学,变得不可捉摸且难以大规模投入产业。实际上,成本可控,个人理解,这某种意义上,也是一切理论所存在的意义。比如,我们想研究一件事情,在现在看来,似乎没那么困难,但是实际上,我们早就踩在了前人的肩膀上,他们为我们提供了一套经过岁月不断完善的理论体系。试想,如果你研究一个东西的物理化学性质,而你没有任何理论,需要从底层一步步开始,从敲石头,到基本世界观,到力学三定律,到电子交换规则,再到相对论,再到测不准理论,一步步来,其规模可想而知,基本上规模以几何级数增长。而这一关键问题不能得以解决的话,那么人类的技术、生产力、社会的发展,迟早将面临全面瓶颈。而设计的路子,乃至于其他的一切路子,则是发展的基本保证

胡言的乱语

好了,又到了一文一度的传统艺能时间了,这次说点啥好呢,emmm。

(负能量预警,望读者们选择性阅读,必要时可以跳过,感谢️)

首先,还是得总结下这门课程迄今为止的一切吧。总体来说还行,但是依然离配得上优秀二字,相差甚远。首先呢,我觉得自己的队友们都相当不错,有一定的能力,且基本上还算是靠得住,最起码在几度磨合后,变得靠得住了。单纯从事情的角度来看,每次都还算是平稳的度过了,而且根据老师的点评来看,似乎问题不算多,当然了,也可能是因为本就贫乏的内容确实没啥好说。可是,了解笔者我的人,都知道,笔者一直希望能干票大的,往小了说不满足于完成课程的那点要求,往大了说希望能遇到有共同信仰的人。但是,事实证明笔者的能力还是欠佳,单独做一件事还行,但是事情一多,那怕真正比较棘手的只有一件,也会很容易阵脚大乱,战斗力跳水式滑坡。而我们这学期的努力,虽然从课程角度来说或许还行,但是也就仅此而已了,终究还是没能跳出这样的小格局。而这件事情,我认为怪不得别人,只能怪自己能力太差,各方面都不咋地,顾头不顾腚。这事真怨不得别人,而且正好相反,自己的这般狼狈恰恰是对组员一次一次努力的最大亵渎。我一直认为,将军者,带来胜利才是一切,可事实是证明,我恰恰还不具备拥有这一切的能力。而且事到如今,木已成舟,怨念也没啥用,能做的只有好好反思,以后别记吃不记打了。

说完课程这边,该说说自己了。想起来半年前自己的所想,以及现在的狼狈相,真的觉得有些糟糕。不,不是有些糟糕,而是糟透了。不说别的,我记得我在本科入学的时候,写过一张卡片,上面写着对自己四年的期许,这个应该我们系的人都有写过。然后四年过去,到了2020年,我再次翻出这张卡片,感觉还行,甚至某些地方还算是超额完成了任务,更有一系列的意外收获。可是现在呢,回想起半年前给自己的期望,自己基本没完成啥,把半年时间全都用来顾头不顾腚,用来瞎忙活白忙活,用来丢人现眼了。人的一生超级短,一共也没几个半年,可是自己成年前浪费了那么一大堆时间不说,现在依然继续霍霍,我真的不明白自己到底何以至此。我记得,我和老师,在半年前还定过读研一年的整体计划,但是现在呢,完全没有像是完成了一半的样子。不仅如此,自己还并没有闲着,一天到晚团团转。或许有些人会觉得尽力而为如何如何,但是我只觉得,这除了充分说明了自己的弱小和愚蠢外,啥也不能说明,私以为,这些“优良品质”,恰恰是一个人的原罪,毕竟,弱小和愚蠢远比邪恶更能害人害己,更加流毒无穷。

好了好了,继续吐槽也没啥用,止增笑耳。真要是想要挽回的话,那就得拿出点行动来改变,种一棵树,最好的时机是昨天,其次今天,大概就是这样吧。

如果您一直读到了这里,那请允许我深深的表示感谢,真的,感谢您能听我说完这些话,并且我诚挚地希望,能与君共勉。

好的,我得溜了,总得做点啥挽回下不是么。До скорого~~~

发表评论

评论已关闭。

相关文章