今天我来聊聊软件的构架,这是一个粗浅的宏观的东西。主要涉及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语言应该作为我们的入门语言,他低中高通吃,前端后端必备,他以计算机的视角看待问题,直接操作内存来处理问题,绝对是一门永不过时的语言。

windows c语言 http 状态检测_从软件架构说C语言相关推荐

  1. c语言tab什么意思_速收藏 | 学习C语言最需要记住的基础知识!!

    点 工控分享技术服务社区,赶紧上车 C语言一经出现就以其功能丰富.表达能力强.灵活方便.应用面广等特点迅速在全世界普及和推广.C语言不但执行效率高而且可移植性好,可以用来开发应用软件.驱动.操作系统等 ...

  2. 以下描述中不属于python语言控制结构的是_高中信息技术《Python语言》模块试卷...

    高中信息技术<Python语言>模块试卷 本试卷分为五大题,37小题,共100分,考试用时60分钟. 一.单选题(本题共15小题,每小题2分,共30分) 是一门( ) (A)自然语言(B) ...

  3. r语言library什么意思_医学统计与R语言:百分条图与雷达图

    微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发 百分条图-输入1: library(ggplot2) 结果1: year 输入2: percentbar <- gather(perc ...

  4. 语言nomogram校准曲线图_医学统计与R语言:Meta 回归作图(Meta regression Plot)

    微信公众号:医学统计与R语言如果你觉得对你有帮助,欢迎转发 输入1: install.packages("metafor") library(metafor) dat.bcg 结果 ...

  5. 用python语言写小程序_小程序用什么语言开发?python语言开发可以开发吗?

    时间: 2020-01-04 20:16:44 本次介绍小程序用什么语言开发?python语言开发可以开发吗?小程序开发语言前端三件套:1.WXML文件2.WXSS文件3.JS文件 小程序是什么?通俗 ...

  6. 传热学c语言节点编程题_哈工大苏小红C语言编程题目第二周的答案第一二题12...

    本人亲自测试过,答案完全正确!!! 1输出逆序数(3分) 题目内容:从键盘任意输入一个3位整数,编程计算并输出它的逆序数(忽略整数前的正负号).例如,输入-123,则忽略负号,由123分离出其百位1. ...

  7. c语言间接级别不同_例9:C语言实现成绩的等级判别

    例9:C语言实现按照考试成绩的等级输出百分制分数段,A等为85-100分,B等为70-84分,C等为60-69分,D等为60分以下. 解题思路:这是一个多分支选择问题,根据百分制分数将学生成绩分为4个 ...

  8. python语言的编程模式_一种基于Python语言的EDA开发平台及其使用方法与流程

    本发明涉及EDA开发的技术领域,尤其是指一种基于Python语言的EDA开发平台及其使用方法. 背景技术: 目前,主流的EDA设计语言Verilog HDL能实现完整的芯片硬件逻辑电路开发,但是其代码 ...

  9. 知道python语言应用2020答案_热点:大学moocPython语言基础与应用答案

    2020年智慧树网课答案为您详细解读azMisb热点:大学moocPython语言基础与应用答案的详情,题主的教授应该是想要同学们找出一个值得研究和讨论的theory,简单来说就是你论文探讨的中心.然 ...

最新文章

  1. docker-compose的安装与简单使用
  2. 已调信号波形是怎样的_【鼎阳硬件智库原创 | 测试测量】初识任意波形发生器...
  3. 面向连接的Socket Server的简单实现
  4. Spring Cloud相关项目
  5. 【DIY】填坑,热水器自动定时烧水断电方案,预期目标及功能
  6. 3种设计模式java小程序_Java设计模式之单例模式(3种实现方式)
  7. 使用Core Audio实现VoIP通用音频模块
  8. 深圳华强北三菱服务器维修,三菱电梯GPS维修的故障分析 -解决方案-华强电子网...
  9. Android权限【大全】 .
  10. 35修改tomcat端口
  11. linux sd卡读写出错,linux系统SD卡读写问题
  12. asp.net用url重写URLReWriter实现任意二级域名(续)
  13. [CF808B] Average Sleep Time([强行]树状数组,数学)
  14. 深度剖析“GCC编译器编译过程”
  15. mysql insert on update_我可以始终使用INSERT…ON DUPLICATE UPDATE进行简单的更新/插入吗?...
  16. GeoGebra数学绘图神器
  17. linux 飞信机器人 下载,飞信机器人FXRobot 's | CN-SEC 中文网
  18. 程序员跳槽时,如何优雅地谈薪水?
  19. android Codec-specific data
  20. Qt删除文件和文件夹

热门文章

  1. how tomcat works 读书笔记(一)----------一个简单的webserver
  2. 常用的消息摘要算法小总结
  3. Shell Curses 函数库
  4. [译]Introducing ASP.NET vNext and MVC 6
  5. 674. 最长连续递增序列
  6. 【论文写作】JSP旅游网如何写概念设计
  7. project项目导入java路径_Eclipse项目怎么导入IDEA并运行(超详细)
  8. python 熊猫钓鱼_Python数据结构与算法之使用队列解决小猫钓鱼问题
  9. python的zip函数_python的zip函数
  10. 学会这 6 招,网页搜索一秒就能搜到你想要的【老司机必备神技】