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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

别以为程序员的工作就是写代码相关推荐

  1. 拒绝经验过剩,“程序员的工作只能是代码”?

    似乎软件工程师都有一个自然而然的成长过程:从缺乏经验的新手,发展到中级工程师,进而成为经验过剩的工程师.一旦软件工程师进入经验过剩阶段,他们对代码的兴趣就会降低!那么哪些迹象表明你已经经验过剩了呢? ...

  2. 计算机原始程序,原始程序员竟然是这样写代码的?

    原标题:原始程序员竟然是这样写代码的? 如今我们大部分人眼中编程是这样的:一台电脑,一个编辑器,几串代码.彩色的页面,自动缩进,智能联想,隐隐觉得这是一件很艺术的事情. 不过,在几十年前,原始程序员更 ...

  3. 为什么中国的程序员喜欢用英文写代码,甚至注释也用英文?

    为什么中国的程序员喜欢用英文写代码,甚至注释也用英文? 1.因为英语是国际通用的,用英语方便各国程序员. 2.因为英文才专业 3.因为语句只能用英文 4.因为变量名用英文方便外国同行看代码 5.因为英 ...

  4. 10月16日云栖精选夜读 | 为什么程序员喜欢在半夜写代码?

    本文的作者是 Swizec Teller,他是一名自由职业者兼连续创业家,有超过17 年以上的软件开发经验,自称 A Geek with a Hat.几年前因为在inside.com上发了一篇文章&l ...

  5. 程序员找工作,写简历/面试/谈工资都要注意哪些事?

    今年是最难求职年,我希望通过这篇文章能帮大家提供高求职成功率. 这篇文章分为简历篇.面试篇.谈薪酬篇,包括了找工作过程中各个环节的技巧和防坑指南. 1. 简历篇 如果把自己看成一个产品,那么简历就是说 ...

  6. 抢程序员饭碗?自动写代码的Deep TabNine真如此神奇?

    作者 |  James Vincent等 编译 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 导读:在过去的一年中,AI 生成书面文字的能力大大提高.通过扫描庞大的文本数据集,机器学 ...

  7. 为什么程序员要尽量少写代码

    软件开发的一个最基本的事实是写代码,但是最大的误区之一就是把写代码当做工作.当我作为一个程序员第一次参加工作的时候,就犯了这样的错误.老实说,写代码真的是一件特有意思的事,它的强大功能,它的多种作用等 ...

  8. 程序员为什么要少写代码?

    软件开发的一个最基本的事实是写代码,但是最大的误区之一就是把写代码当做工作.当我作为一个程序员第一次参加工作的时候,就犯了这样的错误.老实说,写代码真的是一件特有意思的事,它的强大功能,它的多种作用等 ...

  9. 程序员在火车站候车室写代码画面曝光,网友:程序员的悲哀

    大过节的,许多在外打拼的人们纷纷奔向回家的路程,本该是欢声笑语的一路,可是却因为工作缠身而显得有些不美好.比如下面这位,一名程序员网友正在火车站候车室候车,无意中看到一名同行在电脑上"奋笔疾 ...

最新文章

  1. Flash ActionScript (23)三天学透as3.0之第二天
  2. Oracle 11g R2 常见问题处理
  3. System Center产品相关开发(1)-SCOM和SCVMM简介
  4. Google 图片搜索的原理是什么?
  5. OpenCV_ cv2.imshow()
  6. 为什么jsp的form表单不能跳转_手把手教你实现SEM投放监控转化--表单类
  7. UVA 188 Perfect Hash
  8. 【Hibernate步步为营】--核心对象+持久对象全析(二)
  9. WAP PUSH 技术
  10. MCMC采样算法理解
  11. c语言课程设计报告 数独,C语言课程设计报告数独.pdf
  12. js实现图片在一个div中点击按钮放大缩小效果
  13. 知识产权助力中国经济高质量发展广受认可
  14. Python-mne库使用教程
  15. 乌镇·Conflux CTO伍鸣:让公链的“不可能三角”成为可能
  16. 根据子节点递归查询所有父节点
  17. 重庆电信助力新一代物联网商用平台
  18. Crypto-RSA加密
  19. 基因组层次聚类实战小案例
  20. vbs介绍与常见整人代码

热门文章

  1. flask登录验证用ajax,基于 Ajax 请求的 Flask-Login 认证
  2. jsp做看板_如何使用看板做敏捷开发
  3. MySQL DML语言笔记
  4. 指标体系|四个模型教会你指标体系构建的方法
  5. mysql优化原理_【MySQL】我必须得告诉你们的MySQL优化原理3(下)INNODB配置
  6. 程序员or需求工程师,谁决定软件的最高水平?
  7. 第四届数据科学国际会议(ICDS2017)将于5月在上海召开
  8. 洪筱楠(1996-),女,对外经济贸易大学国际经济贸易学院经济学荣誉学士实验班本科生。...
  9. 【OJ】洛谷循环结构题单题解锦集
  10. 小学数学N合一(洛谷P2433题题解,Java语言描述)