c语言|从软件架构说C语言

c语言|从软件架构说C语言

文章图片

c语言|从软件架构说C语言

文章图片

c语言|从软件架构说C语言

文章图片

c语言|从软件架构说C语言

文章图片

c语言|从软件架构说C语言

文章图片


今天我来聊聊软件的构架 , 这是一个粗浅的宏观的东西 。 主要涉及3个概念 , 他们是:界面、处理和数据库 。

因为界面和数据库也有一定处理 , 所以他们的外围也是处理 。
软件开发就是围绕着他们展开的 , 变化的只是他们的形式和侧重点 。 下面我拿我熟悉的场景和语言进行举例 。

1、首先第一种很可能是我们学校里面教的第一门语言:C或C++语言 , 上面那个界面叫控制台或者命令行 , 冷冰冰、黑洞洞 , 一开始学他的时候我的脑子里总有一种疑惑:学这有啥用?

其实现在回过头来看看 , 无论是界面还是数据库都是离不开处理的 , 而C/C++语言解决的恰恰是最要命的处理 , 因为界面和数据库都是看得见的 , 而有非常多的东西比如内存、通讯、运算是我们所看不到的 。 我们只有学好基本功 , 以不变应万变才是正道 。

2、从这个开始就有点意思了 。 上面是一个简单的计算器程序 , 他们的结构很可能是下面这样的 。

用Visual_Basic、AutoIt3、易语言等可以很容易的制作出上面的程序来 。 虽然这个过程可能很有意思 , 但他可能不是程序员擅长的 , 因为界面是越漂亮越人性化越好 。
网页 , 大家注意到没有 , 其实也属于这一类 。 只不过网页制作又细分为了3项工作:HTML、CSS、JavaScript , 分别代表了结构、样式、动作 。 他们本质上解决的都是界面问题 。
3、高级一点的程序一般都包括界面和数据库操作 , 这样的程序随处可见 , 常见到你感觉是理所当然的 , 打开微信 , 里面就有你上次的登录记录 , 登录网站 , 你很可能就是自动登录的 。
而我们的帐号密码一定是存在数据库里面的 。


4、界面、处理、数据库可以离的十万八千里 。 大千世界的程序最普遍的结构是这样的 。大家可以看到HTTP协议在他们中间扮演者重要的角色 。 关于HTTP协议我想多说几句 。 完整的互联网通讯包括7层(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)构成OSI互联网通讯模型 。 而我们的HTTP协议只是应用层上的一个应用 , 像文件传输FTP、电子邮件传输SMTP等都是HTTP的兄弟 。 这些协议都是非常重要的 , 而他们都是没有界面的 , 很可能都是C语言实现的 , 所以说C语言才是最厉害的 。

言归正传 , 像百度这样的网站就是上面的结构之一 。
这一结构又分出2类 , C/S和B/S , 即Client/Server和Browser/Server而且B/S是当前互联网的流行趋势 , 因为他实现起来最简单 。 毕竟浏览器是每一台电脑都有的 , 浏览器也是一个软件 。
这一结构带来的另一个后果是前后端分离 , 其实前端、后端根本就没有明显的界限 , 大体上界面部分为前端、数据库和处理部分为后端 , 而一个三部分全搞的程序员称为全栈程序员 。
浏览器Browser是跨平台的(Windows、Linux等) , 所以网页制作是跨平台的 , 这相当于给程序员减负了 。
服务端Server往往是非Windows的 , 感谢无数的先辈为我们带来了自由免费的GNU/Unix和GNU/Linux 。 是他为编程语言的百花齐放提供了土壤 , 同时带来了自由免费的开源思潮 。 为什么Python这么火 , 有一个重要的原因是他的使用协议 。
5、而腾讯QQ可能属于最复杂的结构 。 因为他的用户太多了 , 需求也太多了 , 已经不能用浏览器这个软件承载了 。 数据库也不止一个了 , 各种各样的数据库充斥在前端、后端 , 分布在地球各处 。 当然数据的处理也是海量的 。 界面、处理、数据库结构也会异常复杂的 。

客户端Client如QQ这般只能用C语言编写 , 或者C语言的升级版C++语言 , 因为其他语言要不在Windows上的效率太低了 , 要不就是依赖这依赖那 。

【c语言|从软件架构说C语言】这篇文章可能有些肤浅 , 但是通过编程的宏观框架 , 我想表达的是 , C语言是非常强大的 , C语言应该作为我们的入门语言 , 他低中高通吃 , 前端后端必备 , 他以计算机的视角看待问题 , 直接操作内存来处理问题 , 绝对是一门永不过时的语言 。


    推荐阅读