程序员的工作就只有写代码么(??)
大家好,我是鱼皮,今天给大家分享一个开发小经验。
很多没有实际工作过的同学,可能都会认为程序员的工作只有写代码 + 和产品经理 “拉扯”,也会习惯性地用代码量来评价一个程序员的工作强度和等级,以为码字如飞、每月能写个几万行代码的程序员就是大佬。
我以前也是这么认为的,直到我正式进入企业工作,才发现真的不是这么一回事儿!高端的同学总是用最简短精妙的代码来解决问题。包括我认识的很多高职级大佬(被外界称为 “架构师”),他们的平均代码量都很少、甚至有些已经完全不写代码了。
那他们的工作都是干啥呢?
文章图片
【程序员的工作就只有写代码么(??)】其中最常见的工作就是 设计 ,这里的设计不是指 draw a picture 画画设计稿,而是根据真实的业务需求去设计系统的整体架构、或者设计需求的解决方案、设计整个系统的划分、资源的协调调度等。
通过这点,也侧面反映出了设计的重要性,代码只是把我们的思想、我们的设计表述出来的一种介质(或者说是工具)罢了。
也许我们的工作没有达到架构师的高度,但在我们做需求的过程时,一定进行设计:先理清楚业务逻辑,想好怎么写代码,再根据设计去具体写代码实现(类似翻译的过程)。
我刚进腾讯实习的时候,导师给我安排了一个很大的工作 —— 重构老系统为新框架。我当时觉得很简单,不就是把框架 A 换成框架 B 么?业务逻辑基本都不用动,分分钟搞定好吧!于是在排期的时候信誓旦旦地跟我导师说:3 天完成。
我导师只是笑了笑:年轻人不要太自信!慢慢来吧。
结果你猜怎么着?那个需求我做了整整一个多月。。。就是因为没有设计好怎么去做、也没有调研框架 A、框架 B 的差异性,直接上手去换框架、写代码,导致到处都是报错,甚至影响了业务逻辑。
还有几次,我以为需求很简单,想都没想就去写代码了,结果在写代码的过程中发现了大问题,就像走迷宫走到了死胡同一样无力回天。如果先做好设计,有了清晰的路线和规划,再去写代码,出现延期、返工的概率就会大大降低。
所以设计有多重要就不言而喻了。
那应该怎么做设计呢?设计分为很多种,比如系统设计、架构设计、详细设计等。每个展开去说都能扯个几万字,这里我就挑 详细设计 小讲一下。
所谓详细设计,顾名思义,就是很详细的设计。
文章图片
比如业务流程具体是怎样的、有哪些步骤?某个算法具体怎么实现等?
正好上周在 星球 中直播带大家做项目,需求是开发一个用户注册功能的后台。我就拿这个注册功能的详细设计来举例子吧,如图:
文章图片
从上到下看一遍你会发现,一个小小的注册功能竟然有那么多要考虑的地方,各种各样的校验。如果你不做设计、直接上手写代码,那么会不会漏掉一些校验、搞错关键步骤,导致整个系统出问题呢?后面发现问题再去改代码,可就麻烦多了(要反复上线)。
所以在开发需求、尤其是包含复杂业务逻辑的需求时,不要想当然,直接去写代码了。而是可以像我上面举的例子一样先设计一下、想清楚怎么写代码,再去按照设计写代码就很简单了~
经常有同学问我怎么提高业务思维、为什么我看到很多系统都能很快地想到实现方案,其实就是因为平时做任何需求的时候,我都会思考、在心里做设计。我也强烈建议大家这么做,脑袋越用越灵嘛。
所以我也会在星球直播带大家做项目过程中多带大家分析问题、思考和设计方案,而不止是写代码本身,相信这样会给大家带来更大的帮助。
以上就是本期分享,最后也欢迎大家加入鱼皮的 编程学习圈子 (dogyupi.com) ,和几千名小伙伴们一起交流学习~
推荐阅读
- 网络安全|【Kali】中密码暴力破解工具hydra的使用
- 网络安全|ARP协议
- PHP增删改查项目的实战详解
- Python内置数据类型中的集合详解
- DaemonSet服务守护进程的使用场景
- OceanBase 源码解读(八)(事务日志的提交和回放)
- 好评不断的文化纪录片《中国》,背后的“剪刀手”竟是它()
- Flash退出历史舞台后,Web端3D会迎来怎样的发展()
- 凭什么 31x31 大小卷积核的耗时可以和 9x9 卷积差不多(| 文末附 meetup 直播预告)
- 云管理平台成功要素——强大的自动化集成