日期:2024年2月27日

What is 软件?

作为一个程序员,我们做的主要工作就是软件开发。软件也就是我们在计算机或手机中所使用的那些东西。像word、qq、微信、和平精英、京东、淘宝,甚至像windows、macOS、Android 、Linux等也属于软件的范畴。简单说来,只要你打开计算机你所看到的都属于软件。

应用软件
系统软件
游戏软件

C/S

现在我们所使用的大部分软件都属于C/S架构。C/S中的C指的是Client,也就是客户端。S指的是Servers,也就是服务器端。

用户通过客户端使用软件,服务器负责处理业务逻辑

客户端,软件中用户能看到的部分都属于客户端。比如:word的编辑界面、qq的聊天界面、王者荣耀的游戏界面,这些通通都属于客户端。客户端·需要在本地安装,像我们安装word、安装QQ其实就是在安装软件的客户端。对于普通用户来说,必须要通过客户端来使用软件。

服务器,然而对于大部分软件来说仅仅有客户端是不够的。现在即使是所谓的单击软件往往也会具备一些联网的功能,这意味着这些功能必须要通过网络才能实现。在网络中的某一个地方存在着一个神秘的东东,这个东东处理了我们软件中的某些业务逻辑,像是软件的更新、聊天信息的发送、游戏信息的发送与接收等。而这个神秘的东东就是服务器。

简单理解,普通用户安装并能够看到的都是客户端,而服务器会在网络中某个地方,它确实存在但是普通用户是看不到的,然而它却一直为我们提供各种服务。

B/S

对于传统的软件,一般都是使用图形化界面作为软件的客户端使用。然而随着互联网的来临越来越多的软件开始使用更加轻便简单的网页来作为软件的客户端使用。使用网页作为客户端的好处是十分明显的:首先网页是运行在浏览器中的,用户使用时直接通过访问网址来使用,无需安装,也无需像传统软件那样定期进行更新。其次,几乎在所有平台中都有浏览器,这样也就是意味着如果我们使用网页来来作为客户端的话,我们的软件便可以在不同的操作系统中运行,这样也就大大的降低了软件的开发成本。这种架构的软件我们称为B/S。B/S其实就是一种C/S的变体,和C/S最大的不同便是B/S使用网页作为软件的客户端,而B指就是浏览器(Browser)。B/S软件比较常见的有:京东网、淘宝网、12360等网站。

B/S架构的软件

大概了解了软件的形式,软件工程师的职责也就简单了。软件分成两个部分:客户端和服务器。那么一个软件工程师的工作无非就是开发客户端或者服务器。

客户端

如上所说,客户端分成两个大类:图形化界面的和网页。图形化界面的软件比较传统,主要是pc、Android、iOS上的一些原生软件。可采用的技术手段也比较多:像C、C++、OC、Swift、Python和Java还有一些其他的语言都可以用来编写图形化界面的软件,当然不同的系统下需要采用不同的编程语言,这里不再赘述。像我们比较熟知的,安卓工程师、iOS工程师都属于客户端开发。

Android
iOS

但是这种纯图形界面的软件,无论是从成本上还是从用户使用方便程度上来说,都还存在一些问题,故而传统的图形化界面的软件并不是一个最常见的方式。

相较于传统的图形化界面,网页开发起来更加简单,成本也比较低。网页开发主要使用的技术就是三个HTML、CSS、JavaScript。这三种语言构成了网页的开发体系,也是前端工程师的必备技能。

前端技术栈

服务器

服务器端的开发也有多种语言,像:Java、C#、Python、PHP、Node.js等,但是毫无疑问服务器领域应用最多也是最稳定的语言就是Java。所以从就业的角度讲,如果对服务器感兴趣的话,Java工程师是不二的选择。

有关于软件开发的整个流程还存在有很多其他的工作,像产品经理、UI设计、测试工程师、运维工程师、实施工程师等等,但是这些内容和我们今天所讲关系不大,故而略过。

5 1 投票
文章评分
订阅评论
提醒
guest

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x