点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~
本节从“道、术、器”三个方面为大家分享程序员如何快速上手项目。
1
道
道,就是道理、规律,万事万物都有道,软件开发也有道。
软件开发的本质是把明确的业务需求转换为可靠的系统实现,就是把现实生活中的事物转换成程序中的对象,根据业务对象建立数据模型,根据业务流程和逻辑制定出程序的流程和规则,通过一种或者几种程序语言,结合一些中间件形式特有的软件系统,让软件系统来实现公司的业务目标。
现在网络上流行一句话:“面试造火箭,工作拧螺丝”。大家都在吐槽说大材小用,觉得工作简单的人,其实是说明你做的只是重复性的工作,天天面对业务逻辑,增删改查,如此反复,大家都做烦了。从这个层面也可以说明大家入行久了,会觉得软件开发就是增删改查。
其实,无论在哪个公司,无论他们使用什么技术,程序员进去以后就是把其公司的业务需求,通过增删改查这个对数据的基本操作,按照业务流程和逻辑通过接口调用,让不同业务模块进行数据通信,以达到实现业务需求的目的。
随着业务的发展,系统会变得复杂,人们就会进行架构优化,使系统进行解耦,构建组件和服务,持续优化系统性能,增强系统的可用性、可靠性、易用性。
也可以用一个公式来定义程序的本质:程序 = 数据 + 算法,这里的算法可以理解为业务逻辑,流程和规则以及数据之外的一切软件技术。
不管是多么复杂的系统,其实都是数据和业务逻辑组合起来,用一些技术手段解决系统中遇到的问题。
1、数据层面
SQL数据库:MySQL ,Oracle
nosql数据库:Redis,MongoDB,Memcache
缓存:本地内存,分布式缓存
文件:ftp
2、算法层面
前端技术:HTML,CSS,JavaScript,jQuery,ajax
Java技术:Java 基础,J2EE,多线程,JVM 调优
Java 框架技术:Spring,SpringMVC,Struts2,Hibernate,Mybatis
系统交互:HTTP,HTTPS,WebService,Socket,XML,json
服务器:Linux,tomcat
互联网技术:微服务,消息队列,分布式
系统架构:设计模式,高并发,高可用
无论在哪家公司,软件开发的本质就是上面这些东西,无论是职场新人还是跳槽人士掌握了这些,就掌握了软件开发的道。
2
术
掌握了软件开发的道之后,上手一个项目肯定不是问题,但是不一定就能快速上手一个项目,快速上手重点在于速度和效率,那么快速上手,势必有它的方式和方法,也就是我们这里说的术。
在这里为大家分享我总结的快速上手一个项目的四要术,如下图:
下面我们来聊一聊这开发四要术是什么意思。
1、代码
获取代码
作为技术开发人员,我们的工作内容就是写代码,因此到了新公司,获取到代码就是我们优先要做的事情。
不同的公司入职后的流程不一样,有的公司入职后直接就把代码给到你了,有的公司流程比较完善,需要走权限分配流程,入职指导啥的。不管是什么情况,到了公司,我们想快速上手项目,首先就是要拿到代码。
如果进入公司几天了,还没有拿到代码权限,此时你应该做的是想办法获取到代码。
提供一些思路:找你的领导要,如果不行,找你的同事拷贝,你可以用积极的态度去争取,不要怕被怼,总会有人愿意提供给你想要的东西。
拿到代码以后,如果是给了你账号和权限,那么你可以用版本管理工具导入到你的开发工具里,如果是从同事那里拷贝的,你可以拷贝到你的工作空间,并导入到你的开发工具里。
研究代码
拿到代码以后,我们下一步要做的就是研究代码,搞清楚这个代码的架构以及风格。
此时不要直接打开一个代码文件,从头开始读,这肯定不行,我们首先要做的就是了解这个代码工程是怎么分层的,分为多少模块,这个主要是通过代码的包结构来判断。通常来说,会有业务包,公共包,基础工具包,常量包,数据结构包等。
接下来要看的是资源包,这里面一般放的是各种配置文件,通过这些配置文件我们可以来判断代码使用的是什么框架和技术。
接下来从业务包里找个看起来简单一点的的业务,比如数据查询类的,关键词一般会是 get,query,search等,从简单的业务入手,看下相关的代码,结合代码的注释,快速了解代码实现的风格和技术细节。
运行代码
经过上面的代码研究,基本上我们对代码工程会有一个基本的认识,下一步就是让代码运行起来,自己可以参考一个业务代码,自己模拟一个需求,用类似的代码风格实现这个需求,目的是为了快速适应新公司的开发技术和习惯。
在这里,如果遇到代码报错,运行不起来,不要自己蒙头解决,遇到问题立马请求周围的同事帮忙解决,不用担心别人是不是觉得自己能力不行,这个不是重点,因为每个公司都可能用自己特有的技术,也有一些小的不为人知的配置或者技术点,让老同事帮忙解决并记住这些细节,会大大地增加你的效率。
切记没有必要把时间浪费在让代码运行起来这个点上。
2、数据
数据主要指数据库,因为系统里的数据一般都会持久化存储在数据库里。
获取数据库
有的公司数据库是运维人员维护的,有的公司是技术维护的,但是无论谁来维护数据库,一般情况生产数据库的权限不会提供出来。
因此,这里的获取数据库,可以理解为获取测试数据库的权限,或者是生产数据库的只读用户。
研究数据库
获取到数据库以后,我们首先要做的就是了解系统的数据模型,表结构以及数据存储格式。
这里分别从 Oracle 和 MySQL 来为大家介绍下,通过关键表和指令了解数据库的模型。
通过上述的方法,我们可以快速地了解数据库的模型,包括有几张表,表里都有什么列,查询表里的数据,通过这些数据结合代码基本上能快速地了解一个系统。
Oracle
USER_TABLES 可查询当前用户的所有表:
SELECT * FROM USER_TABLES;
USER_TAB_COLUMNS 可查询表中的列:
SELECT * FROM USER_TAB_COLUMNS;
MySQL
显示当前数据库中所有表的名称:
SHOW TABLES;
显示某个表的字段:
desc 表名;
SQL
查询具体的表:
SELECT * FROM 表名
3、文档
收集文档
一般入职后,会有入职资料发给大家,里面可能有技术文档,也可能是公司的一些开发规范或者员工守则。
如果没有技术文档,此时,可以去找周围的同事了解一下,公司有没有资料库,有没有想过需求,技术文档,有的话,可以要一些过来。
文档一般会分为开发规范,技术资料,需求文档,设计文档,数据库文档,测试用例,部署文档等。
阅读文档
文档可能会有很多,一个一个地读是非常浪费时间的,因此我建议大家首先要读的就是开发规范,这里面可能包含公司的开发流程,通过这个你可以快速了解项目的开发流程以及需要遵守的规范,不至于工作中出错。
另一个大家要读的就是需求文档和设计文档,通过需求文档和设计文档结合代码可以快速的了解项目,以便你快速上手项目。
最后利用业余时间看看那些其他你觉得有用的文档,以便了解公司和项目更多的细节。
4、业务
业务这个部分在下一节”作为新人,如何快速了解公司的业务“进行详细说明,这里不再赘述。
3
器
器,在这里指的就是工具,“工欲善其事,必先利其器”,快速上手项目,势必也需要一些好的工具。
这里给大家介绍一些开发常用的提高开发效率的工具。
IDE:IntelliJ IDEA,Eclipse,sublime
记事本工具:UltraEdit,Editplus
源码管理构建工具:TortoiseSVN,Git,maven
数据库工具:PLSQL Developer,navicat,SQLyog
设计工具:PowerDesigner,Visio,XMind
其它工具:Xshell,Xftp,BeyondCompare,JMeter,Postman
熟练使用各种工具,尤其是 IDE 的各种快捷键可以极大地提高工作的效率,有关以上工具的使用技巧,网上有很多资料,可以去了解学习。
后续为大家介绍,作为新人如何快速了解公司的业务。