大家好,我是鱼皮,今天给大家分享一个开发小经验。

很多没有实际工作过的同学,可能都会认为程序员的工作只有写代码 + 和产品经理 “拉扯”,也会习惯性地用代码量来评价一个程序员的工作强度和等级,以为码字如飞、每月能写个几万行代码的程序员就是大佬。

我以前也是这么认为的,直到我正式进入企业工作,才发现真的不是这么一回事儿!高端的同学总是用最简短精妙的代码来解决问题。包括我认识的很多高职级大佬(被外界称为 “架构师”),他们的平均代码量都很少、甚至有些已经完全不写代码了。

那他们的工作都是干啥呢?

程序员的工作就只有写代码么???-LMLPHP

其中最常见的工作就是 设计 ,这里的设计不是指 draw a picture 画画设计稿,而是根据真实的业务需求去设计系统的整体架构、或者设计需求的解决方案、设计整个系统的划分、资源的协调调度等。

通过这点,也侧面反映出了设计的重要性,代码只是把我们的思想、我们的设计表述出来的一种介质(或者说是工具)罢了。

也许我们的工作没有达到架构师的高度,但在我们做需求的过程时,一定进行设计:先理清楚业务逻辑,想好怎么写代码,再根据设计去具体写代码实现(类似翻译的过程)。

我刚进腾讯实习的时候,导师给我安排了一个很大的工作 —— 重构老系统为新框架。我当时觉得很简单,不就是把框架 A 换成框架 B 么?业务逻辑基本都不用动,分分钟搞定好吧!于是在排期的时候信誓旦旦地跟我导师说:3 天完成。

我导师只是笑了笑:年轻人不要太自信!慢慢来吧。

结果你猜怎么着?那个需求我做了整整一个多月。。。就是因为没有设计好怎么去做、也没有调研框架 A、框架 B 的差异性,直接上手去换框架、写代码,导致到处都是报错,甚至影响了业务逻辑。

还有几次,我以为需求很简单,想都没想就去写代码了,结果在写代码的过程中发现了大问题,就像走迷宫走到了死胡同一样无力回天。如果先做好设计,有了清晰的路线和规划,再去写代码,出现延期、返工的概率就会大大降低。

所以设计有多重要就不言而喻了。

那应该怎么做设计呢?设计分为很多种,比如系统设计、架构设计、详细设计等。每个展开去说都能扯个几万字,这里我就挑 详细设计 小讲一下。

所谓详细设计,顾名思义,就是很详细的设计。

程序员的工作就只有写代码么???-LMLPHP

比如业务流程具体是怎样的、有哪些步骤?某个算法具体怎么实现等?

正好上周在 星球 中直播带大家做项目,需求是开发一个用户注册功能的后台。我就拿这个注册功能的详细设计来举例子吧,如图:

程序员的工作就只有写代码么???-LMLPHP

从上到下看一遍你会发现,一个小小的注册功能竟然有那么多要考虑的地方,各种各样的校验。如果你不做设计、直接上手写代码,那么会不会漏掉一些校验、搞错关键步骤,导致整个系统出问题呢?后面发现问题再去改代码,可就麻烦多了(要反复上线)。

所以在开发需求、尤其是包含复杂业务逻辑的需求时,不要想当然,直接去写代码了。而是可以像我上面举的例子一样先设计一下、想清楚怎么写代码,再去按照设计写代码就很简单了~

经常有同学问我怎么提高业务思维、为什么我看到很多系统都能很快地想到实现方案,其实就是因为平时做任何需求的时候,我都会思考、在心里做设计。我也强烈建议大家这么做,脑袋越用越灵嘛。

所以我也会在星球直播带大家做项目过程中多带大家分析问题、思考和设计方案,而不止是写代码本身,相信这样会给大家带来更大的帮助。


以上就是本期分享,最后也欢迎大家加入鱼皮的 编程学习圈子 (dogyupi.com) ,和几千名小伙伴们一起交流学习~

03-18 20:22