杂谈:开发人员如何进行复杂业务的学习?让boss刮目相看
一点小拙见,欢迎指正
一、概述
大型复杂的软件系统,是有许多人共同协作完成的,有些产品的业务是很复杂的,其在需求文档,及开发规范上都做得很好,不然维护的人越多,没有文档和规范去限制,岂不更加乱套。
如果文档不健全,或者代码也不规范,软件业务还复杂,那这样的公司也没必要继续干下去(ps:这样的公司很少)。
我目前所在的公司,维护的系统业务上比较复杂,其技术上不是很难。所以,更比较偏向于业务上的掌握。我是一个把技术当成兴趣爱好的人,让我学习业务,无疑是赶鸭子上架--难为人。但迫于我需要拿薪水养家糊口,还是避免不了去学习业务。
技术是为业务服务的,两者相辅相成。要想技术实现上更饱满,开发人员需要对业务熟练掌握。所以,这个坎我们也必须要过。
结合我对复杂业务的学习,做一个总结,希望对有困惑的读者能尽一点绵薄之力。
首先,我从身边的同事和朋友,了解到开发人员对学习业务的常见误区:
- 提需求的才应该负责业务,开发人员只负责实现需求功能。
- 让开发人员学习业务的时候,下意识就认为从看代码开始学习,代码经手人太多,代码不规范和注释不健全,导致怨声载道。
- 业务文档不全,学习起来特别困难,不知从何处入手。
基于以上的误区和自己最近学习业务的理解,下面谈谈几个学习建议。
二、八个学习建议
准备一个空白word文件,和一个可运行的系统debug环境。
写下如下几个问题?有助于去寻找答案,帮助理清思路。
问题1:xx业务的概念,背景,特点分别是什么?
问题2:xx业务是如何落地到我们软件系统中,涉及哪些改动?
问题3:xx业务在系统中,有哪些相关需求涉及到,是否能找到对应的需求文档及代码详细设计文档?罗列出来
问题4:xx业务在系统中,涉及的数据库表有哪些,是新增表还是修改表?根据相关问题,查阅资料或请教同事,收集资料,并将答案写到word中。
根据需求文档的需求编号,idea全局查找,大致浏览一下项目代码,找到基础数据的来源入口。
5. 转换角色,把自己当成一个用户,从界面上去操作相关功能,对有一些不清楚概念的选项参数名词,查阅资料,理清概念。结合数据库的表字段,来理解含义,并记录到word中。
名词解释:重点把业务名词的概念搞清楚,并记录下来。这点蛮体现大家的专业和细心。把不清楚的概念搞明白,我蛮喜欢这样的。
记录下每一个操作所涉及的页面,后端接口,表。
debug调试技巧要牢靠。那这里主要说一下,debug时,常用的技巧。
1) 浏览器端chrome的开发者工具,查看每一个操作是否有涉及与后台交互,有哪些数据传输。
2) idea的全局查找和断点跟踪调试。绘制一些图表,方便直观阅读。
三、后记
这是我最近对学习复杂业务,领悟出一点小小的心得体会。
如果把技术比作是我的左手(我是个左撇子),属于惯用的,处在舒适区,代表着硬实力;那业务就是我的右手(拿笔杆子的),属于不惯用的(使不上什么劲,除了拿笔,和拿筷子),则体现出的是软实力。
一点小拙见,欢迎指正
喜欢的读者,可以关注我➕,以免迷路。分享我奔走在技术道路上的点点滴滴。
杂谈:开发人员如何进行复杂业务的学习?让boss刮目相看的更多相关文章
- 开发人员看测试之TDD和BDD
前言: 已经数月没有来园子了,写博客贵在坚持,一旦松懈了,断掉了,就很难再拾起来.但是每每看到自己博客里的博文的浏览量每天都在增加,都在无形当中给了我继续写博客的动力.最近这两天有听到Jbehave这 ...
- SharePoint 2010 开发人员学习指南
kaneboy 翻译,一切内容版权归 Microsoft.1. SharePoint 开发起步教程 这是一个为准备进入到 SharePoint 开发领域的 .NET 开发人员所准备的免费在线学习课程. ...
- 适用于 PHP 开发人员的 Python 基础知识
Thomas Myer, 负责人, Triple Dog Dare Media 简介: 您是一名经验丰富的 PHP 开发人员,并且希望学习 Python 吗?本文将从 PHP 开发人员的角度来探索 P ...
- 每个Java开发人员都应该知道的10个基本工具
大家好,我们已经在2019年的第9个月,我相信你们所有人已经在2019年学到了什么,以及如何实现这些目标.我一直在写一系列文章,为你提供一些关于你可以学习和改进的想法,以便在2019年成为一个更好的. ...
- 【转】十步让你成为一名优秀的Web开发人员
第一步:学好HTML HTML(超文本标记语言)是网页的核心,因此你首先应该学好它,不要害怕,HTML很容易学习的,但也很容易误用,学懂容易要学精还得费点功夫,但学好HTML是成为Web开发人员的基本 ...
- 业务gis 怎么让别的开发人员不需要懂gis就可以搞开发? (五)
我们稍微搭建了一个比较简单的图形使用模板,flex端操作这里我就不说了,按大家喜好写,最后javascript部分可以通过jsduck工具生成一个开发文档给业务开发人员,前提注释部分要写好,要公开的注 ...
- .NET CoreCLR开发人员指南(上)
1.为什么每一个CLR开发人员都需要读这篇文章 和所有的其他的大型代码库相比,CLR代码库有很多而且比较成熟的代码调试工具去检测BUG.对于程序员来说,理解这些规则和习惯写法非常的重要. 这篇文章让所 ...
- .NET开发人员值得关注的七个开源项目 .
NET开发人员值得关注的七个开源项目 软近几年在.NET社区开源项目方面投入了相当多的时间和资源,不禁让原本对峙的开源社区阵营大吃一惊,从微软.NET社区中的反应来看,微软.NET开发阵营对开源工具的 ...
- Web开发人员常犯的10个错误
说到开发一个运行在现代网络中的网站:Web开发人员需要选择虚拟主机平台和底层数据存储,准备编写HTML.CSS和JavaScript用的工具,要有设计执行方式,以及一些可用的JavaScript库/框 ...
随机推荐
- HDFS 读写流程-译
HDFS 文件读取流程 Client 端调用 DistributedFileSystem 对象的 open() 方法. 由 DistributedFileSystem 通过 RPC 向 NameNod ...
- 【5】SVM算法原理
大纲 简介 支持向量机(support vector machines)是一个二分类的分类模型(或者叫做分类器).如图: 它分类的思想是,给定给一个包含正例和反例的样本集合,svm的目的是寻找一个超平 ...
- 你不得不知道的HashMap面试连环炮
为什么用HashMap? 简述一下Map类继承关系? 解决哈希冲突的方法? 为什么HashMap线程不安全? resize机制? HashMap的工作原理是什么? 有什么方法可以减少碰撞? HashM ...
- 去重合并两个有序链表之直接操作和Set集合操作
两者思路对比: 直接操作:因为传入的是两个有序的链表,所以说我就直接以其中一个链表为基准,与另外一个链表比较,只将比返回值链表的最后一个记录的值大的插入,不将等值的插入,理论时间复杂度为O(n) Se ...
- postman--请求以及变量设置的实例练习
我们可以在2个地方添加需要执行的js脚本,一个是Pre-request Script,还有一个tests,我们先看请求之前的 1 在请求被发送到服务器之前:就是在“Pre-request Script ...
- Android 图片处理之 Fresco
一.关于 Fresco github: https://github.com/facebook/fresco API: http://www.fresco-cn.org/javadoc/referen ...
- Net基础篇_学习笔记_第九天_数组_冒泡排序(面试常见题目)
冒泡排序: 将一个数组中的元素按照从大到小或从小到大的顺序进行排列. for循环的嵌套---专项课题 int[] nums={9,8,7,6,5,4,3,2,1,0}; 0 1 2 3 4 5 6 7 ...
- 使用 Docker 安装 showdoc
一.简介 ShowDoc 是一个非常适合IT团队在线共享文档的工具,在线访问地址为:https://www.showDoc.cc 本来也可以直接 pull showdoc 镜像到本地,使用 docke ...
- ZFNet(2013)及可视化的开端
目录 写在前面 网络架构与动机 特征可视化 其他 参考 博客:blog.shinelee.me | 博客园 | CSDN 写在前面 ZFNet出自论文< Visualizing and Unde ...
- 网站启动,报编译错误:类型“ASP.global_asax”同时存在两个文件夹的问题
CS0433: The type 'ASP.global_asax' exists in both 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\T ...