今天来跟大家共享一下我关于一个好的软件项目是什么样的观念和看法。

首要说一下一个好的电影到底是应该是什么样的评判规范?

首要咱们要来说一个好电影,必定是讲清楚了某一个详细故事的。

实际上咱们都以为每个电影都至少讲清楚了一个故事,可是也看到了许多的烂片讲的故事底子不值得讲或许是是讲了这个故事为德不卒,乃至有些时分底子讲的都不是一个完好的故事。

所以一个好的电影必须是讲一个值得讲的故事,而且讲的明晰的故事。

其次,讲这个故事是需求有一个十分好的一个剧本。

换句话来说,咱们要讲清楚某一件事情、某一个故事、某一个画面,并不是选用一种平白直序的方法来描绘这个故事,而是用一个杰出的剧本围绕这个故事为主线来展开。或跌宕起伏,或悠扬道来,每一个剧本每一个场景,每一个转折点都能够支持这个故事的线性开展。

一个好的剧本没有一处是剩余的,每一个画面都是为了表达某一个主意,某一个观念或许为了衬托下一个高潮。

与此相反,有许多烂的电影在剧本上面往往会出现很大的问题,许多时分用了大量的时刻去叙述某一个场景或许画面,可是和电影的宗旨却毫无相关,观众看了二十分钟关于某个情节的描写,满以为会和后边的高潮情节相关起来,看完了才发现看了个孤寂,半毛钱联系没有,直接剪掉二十分钟彻底不影响它还是个烂片。

一个好的软件工程便是一个好电影

关于剧情和情节设计之牛逼,这里边十分典型的我以为便是周星驰的电影,举一个详细的例子,便是《九品芝麻官》这个电影里边有大量的细节上面的场景上面那些描述,但往往咱们看到了它在后边都是能够前后照应,真的能够算得上没有一个画面,没有一个买伏笔是剩余的。比方周星期在杂技班学习吞剑,就在后边对簿公堂上使用了这一招。

最终一个点,我觉得每一个电影画面是有细节的,而且这个细节是鲜活的。

往往说细节是魔鬼,一个细节往往在最小的地方有着最大的感染力。往往细节都是普通却撼人心魄的,一次流泪,一次微笑,一次幽默,一次反转,一次回头,一次牵手,一次拥抱这些都是一部好电影不可或缺的细节,往往便是无数个多个细节构成了画面和情节,最终直击咱们的心灵。

当然细节是要有在好剧本的情况下才能够体现的,可是许多电影往往讲欠好整个故事,却在细节处下苦工。有些时分就会变得画虎不成反类犬的既视感。

所以许多烂片里边你会发现它也存在许多搞笑的一些情节,可是你会发现在没有一个杰出顺利的主故事线路的衬托下,这种细节反而成了扭泥作态,强行搞笑,刻意逗趣观众。

好,咱们说完了一个好电影的几个特点,那么咱们回过头来看一个好的软件工程应该具有什么样的特点?或许说为什么咱们说一个好的软件工程实际上便是一部好电影?

首要第一个点一个好的软件工程必定是体系性的处理了某一个问题。

这个我信任一个好的软件体系工程和一部电影相同,电影要说清楚一个问题,而一部好的软件工程要处理一个好的问题。

在互联网软件行业里,咱们更在乎的是一个软件工程是不是能够体系性处理某一个问题。除了在各方面能够达能满意需求外,在性能、体会、本钱、安全上面也是满意合格的。

其次,一个软件体系是要跟一个电影相同,具有一个十分杰出的结构的。

一个好的软件工程便是一个好电影

这个便是咱们所谓的一个体系架构,软件体系架构要具有必定的美丽性、结构性、可扩展性。和电影有点不相同,电影的结构是给观众看的,而一个软件工程的内部结构是给开发者去看的。这个便是所谓的这相同满意了某一个需求之后,软件的质量是彻底不相同的。用相同的相关的逻辑,虽然也能写出一份满意需求的功用代码。好的软件工程和软件工程在结构性,在鲁棒性,在稳定性,可扩展性都是不可同日而语的,这个就十分考验软件工程师的架构设计能力,这个就好像一部电影需求有一个十分好的剧本相同。所谓骨架即架构,杰出的骨架就能支撑一个生命体动态的活着。

和洽电影相同,一个十分好的软件架构应该是多一行代码嫌多,少一行代码就跑不起来了。每一行代码,每一个模块,每一个方法,都有它详细和明晰的功用。或许换个专业说法,模块内的逻辑必定是紧耦合的。

好的工程里不存在累赘的,复杂的,剩余的,无效的代码。这个便是好像电影里边的每一个台词,每一个场景,每一个细节都承载着它详细的功用的。

最终便是代码是有细节的。

虽然处理某一个特定的功用都能够用不同的代码方法,可是在好的软件工程里边处理某一个最详细的问题的时分,必定用的是一个当下最佳的办法。比方在处理某一个变量或许列表的时分,有没有用上一个很好的函数?比方相同处理一个常见问题的时分,是否运用了适可而止的高级函数?

如关于两段处理相同的逻辑,有没有笼统到一个共用的函数来处理这个问题?

比方比方关于反常的处理是不是已经十分的明确,在面临各种各样的鸿沟反常情况都能够展现出一个很好的用户体会?

比方在中心的场景链路里边有没有设计能够主动降级的逻辑,能够在非必须的接口反常的情况下的话,不会危害主干的功用?

这个便是所谓的魔鬼细节。

当然和电影的剧情和情节相同,如果只是有代码细节而没有大局的架构,那么这个细节何足挂齿。

所谓细节决定成败,细节是魔鬼,往往是在有大局观的情况下,细节才能够彰显出来它的魅力。

一个好的软件工程便是一个好电影

所以一个好的软件工程便是一部好电影。一部好电影能够是一个很好的艺术品,一个软件工程也能够是一个极好的艺术品。

更多精彩内容,重视大众号:ali老蒋,或点击加我好友深度交流ali老蒋 – java开发者