软件开发工具很多,但是实用的就那么几个,下面列举我常用的几个开发工具:
1.IntelliJ IDEA
这个可以说是目前最智能的编译器,它可以提示一些很基础却又很致命的代码错误,特别是用
作为一个架构师,这正是我所擅长的领域啊!
所以,
必须来战!
首先开发软件不是一个人,而是有许多分工
开发软件也不是程序员就能搞定的,还需要许多岗位的协同。
一般来说,我们把一个独特的软件的诞生称之为“项目”,所以分工就从我们的项目说起。
项目经理-负责软件的全周期管理
作为项目,必须有一个项目经理,这个人又称为PM,PM负责项目的管理,对最终的结果负责。
项目经理往往并没有什么拿得出手的工具,他经常采用Excle,或者Project制作项目流程图,根据需求召集项目团队,分解项目任务,对节点进行关注,鞭策相应的软件人员和设计人员投入工作。
另外,大型的公司,也往往会编制一些专用的流程管理软件,让项目经理,及其相关的各类专业人员都能看到自己的任务,及时填写任务状态。
产品经理-管理软件的需求和功能
产品经理呢,可以算是研发软件的提出方。
他需要给出产品的定义,通常会采用Excle或者Word制作他的需求文档。
对于界面要求严格的产品,他会采用各类原型工具,制造相应的原型,原型工具包括Axure RP、墨刀、Sketch等工具。
良好的原型工具,配合合理的文字 ,以及产品经理的沟通能力,可以让软件更适合客户的终极需要。
系统架构师-对软件进行分析和分工
产品经理做好需求文档和原型后,这时上场的往往是系统架构师。
作为架构师,一般是在某个领域,或者多个领域具备相当丰富的软件开发和产品经验,能够将业务模型分散成相应的技术模型的高级工程师。
大型的软件由多个模块构成,这时候,往往还需要总架构师,以及各个不同模块的产品级架构师。
以便在多个产品之间进行系统设计和对接!
系统架构师用什么工具呢?
作为一名系统架构师的我,最多的工具就是沟通,包括与不同的项目成员单独沟通和会议沟通。
同时,为了让沟通更有成效,我也会采用Word文档进行详细描述,有时会用PPT或者Visio工具,描述更为细致的模块间关系和数据流图,以便各个模块负责人能够更深刻地理解软件如何开发。
设计师-对软件进行艺术定义
由于目前大多数软件都具备良好的页面和交互能力,让客户可以通过界面与软件进行交流。
为了让交流更为通畅和美观,我们在软件行业雇佣了大量的设计师们。
他们从事美化心灵的工作,绘制各类漂亮的产品界面原型,以及交互设计师对于用户的使用方式和方法进行定义。
设计师们使用最多的工具应该是PS了,因为PS能够很快地绘制高保真的软件页面,并让客户第一时间感受到效果。
当然也会用到别的界面绘制工具,以完成他们的任务。
软件工程的大军-程序员们
程序员们,是软件得以构建的真正大军。
各式各样的软件,需要前端程序员、后端程序员、大数据程序员、AI程序员等多种岗位。
而为了实现这个目标,他们使用了各种各样的开发语言,以及相应的编译器,以便将这些软件编译成电脑能读懂的0101序列进行运行。
有多少种语言我就不概述了,下面列一下最新的流行语言20种,每一种语言都会对应1种以上的开发工具或编译平台。
我来给大家介绍一下吧。
第1名是C,C能够灵活操纵各类操作系统的底层API,而且是性能最佳的语言之一;
第2名Java,JAVA应用在大型的企业软件项目中,以及安卓的开发工具中,同时也是大数据技术的首选语言;
第3名是Python, Python以跨平台的调用而闻名,它可以轻松地调用C语言,JAVA语言的成品库,而且是人工智能、数据分析的首选语言;
第4名C++,是C语言的加强版,在C语言的基础上增加了面向对象技术,使大型的C项目更为便于管理和引用;
第5名C#,是微软首创的C语言的变种,它与C++有些类似,依靠微软及其开发工具的大力推广,应用于快速的网站项目构建,以及不少基于WInDOWS平台的工具软件开发中;
第6名VB,也是微软发明的语言,盖茨成名之前是一个外包软件工程师,他赖以成功的技术就是协助IBM 电脑提供Basic编译器;
第7名JS,主要用来编写网页程序,它是我们的浏览器展现效果的标准语言,能体现静态和动态的效果;
第8名PHP,是一种快速搭建网站的软件,它容易学习好上手,并且具备相当多的组件,经常和JS一起合作,搭建各类高效的电商网站、BBS系统以及内容网站,在特定的领域,采用PHP的成本比起JAVA要低一倍以上!
第9名:ASM,抱歉我没有用过,所以也不方便描述;
第10名:SQL,是最流行的数据库操作语言,可以说是数据库世界的非官方标准,就连大数据平台NOSQL这些非结构化数据库,也提供了兼容SQL的接口API和界面,以便大量的数据库程序员和数据库系统管理员们能轻松地操作。
很荣幸地告诉大家,在这前10种语言中,也就是ASM语言我没有编译过,其它都或多或少地接触过,有过相应的开发经验,哈哈。
测试人员-程序的检测者
当程序阶段性完成时,测试人员们上场。
他们会仔细阅读产品经理们的需求文档,编写或不编写各类的测试用例和规程,然后对程序进行验证和测试。
大部分的测试工作,并没有较为合理的工具,多是由测试人员手工尝试软件的高可用、高性能以及安全性等属性。
但近年来,为了提高测试效率,加强对软件质量的把握,也出现了大量的自动化测试工具,以提高测试人员的效率。
这些工具包括了:
Web界面测试工具
Selenium(从事Web界面的自动化测试框架);
RebotFram(Web 界面的自动化测试工具);
QTP(Web界面自动化测试工具);
APP界面测试工具
Appium(从事APP界面的自动化测试工具);
接口测试工具
Jmeter(对微服务的接口进行调用测试和性能测试);
一般运维人员需要具备较为专业的知识,和相应的辅助运维工具。
比如监控工具、运维任务自动化生成器、运维配置管理平台、以及运维作业编缉平台等工具。
以便更为高效地发现问题,并自动化解决大部分问题,保证软件顺利运行。
总结
所以,开发软件的工具具备多种不同的形态,并应用在不一样的场合。
软件开发的核心是程序员们,不同的程序员,采用着至少100种以上主流的开发语言来为我们开发软件
为了保证程序员的开发水平和质量,
项目经理承担了监工的工作;
设计师和产品经理尽可能详尽地收集客户的需求,让程序员们能更加理解客户;
系统架构师是程序员们的指挥官,他努力协调多个团队以及研发人员的工作,保证程序员的任务能更有条理和效率;
而为了保证程序的软件质量,以及功能满足客户需求,测试人员对软件产品进行检测;
最终提交给运维人员,对软件的长周期进行保证;