提到服务端不得不说客户端。客户端(Client)是指与服务端相对的,提供用户操作界面,实现业务管理的桌面应用程序、Web页面、小程序或手机App,旨在收集用户意图、为用户展现服务结果、在用户本地服务的程序。
服务端-客户端
服务端和客户端网络服务的软件分B/S(浏览器Browser/服务器Server)和C/S(客户端Client/服务器Server)两种模式。基于B/S模式的软件又叫Web应用。Web应用可分为前端(在浏览器中执行的部分)和后端(在服务器中执行的部分),后端又叫服务端。
随着大前端技术的兴起,目前这两种技术划分方法,已经没有了严格的界限,例如:非原生App和小程序其本质都是Web。
无论什么形式的客户端都需要服务端提供必要的服务——数据库服务,Web Server、接口等。
服务端开发,就是开发运行在服务器端的程序,为客户端提供API接口服务。软件客户端和服务端的协作,分为B/S(浏览器/服务器)和C/S(客户端/服务器)两种模式,浏览器就是一种通用的客户端,现在流行的APP就相当于个性化的客户端,无论B/S还是C/S都要有相应的服务器端程序提供服务。对于绝大部分应用,服务端的核心就是数据库,服务器端的程序就是根据应用需求来管理和操作服务端的数据库,通过对数据库的操作,返回满足用户需求的数据。服务端开发主要就是根据业务逻辑要求实现业务功能和性能要求。
服务端开发今天要讲的服务端特指可以为客户端提供数据、业务处理功能的接口API。
一般开发模式下,开发服务端需要用到至少一门基础开发语言和数据库。每种开发语言理论上是通用的,可以实现任何业务场景,几乎任何一种开发语言都能作为服务端程序语言。但是,术业有专攻,不同的开发语言在某个场景应用的适用度、难易度不同,所以选用什么语言、什么数据库,取决于是否便于解决实际问题和需求。
使用基础开发语言实现服务端开发,需要解决客户端请求接口,数据库访问、操作,业务逻辑的实现算法。而在有效云开发平台依然只使用SQL、JS就可实现服务端的开发。
服务端开发
仅使用SQL和JS实现服务端开发开发服务端需要实现以下三部分功能:客户端接口、业务逻辑处理、后台数据库操作。
1、服务接口定义
客户端接口一般情况下通过http协议get或post发起请求,根据应用场景的需求提交请求参数数据,服务端获取参数。
进入“有效云开发集成环境”,进入【接口管理】,新建接口:
接口定义
接口可以定义接口
● 模块(便于管理)
● 代号(接口的详细访问地址)数据库绑定系统设置的链接。
● 模板:模板通过系统脚本的形式返回Json格式的数据,开发者可以根据业务 需求自己定义,其中可以访问客户端的请求参数、接口返回参数等等。
返回接口定义:
{{if .r}}{ "code": 100, "goods_id":"{{.r.goods_id}}", "goods_count":"{{.r.goods_count}}", "msg": "ok", "extra": "", "result": [] }{{else}}{ "code": 104, "msg": "查询失败", "extra": "系统异常,未能获得库存数量", "result": [] }{{end}}2、接口参数
这里的参数是广义上的,即可以是客户端提交的参数,也可以是服务端计算得到的参数。
在“有效云集成开发环境”中选中某接口,点击操作栏的【参数】按钮
接口参数
参数r为计算参数,通过SQL直接查询得到客户端传递的商品ID(goods_id)对应商品的库存数量。
计算参数
SQL:
select goods_id,goods_count from tb_store where goods_id={{.goods_id}} and shop_id={{ME.deptid}} limit 1;在“有效云开发平台”开发接口,只需要编写极少量的代码。
客户端的调用,与采用直接通过基础开发语言开发的接口是相同的。
here = this;if(here.form["goods_id"]!="" && here.form["goods_count"]!=""){ var data=new FormData(); data.append("goods_id",here.form["goods_id"]); axios.post('/api/{{APPID}}/storeapp/getstorecount',data).then(function (res) { if(res.data.code==100){ var out_count=parseInt(here.form["goods_count"]); var store_count=parseInt(res.data.goods_count); if( out_count > store_count ){ here.form["goods_count"] = ""; window.top.vm.$message.error('当前库存不足,请重新输入出库数量!'); } }else{ window.top.vm.$message.error('商品库存校验失败,请人工核验当前库存!'); } }).catch(function (error) {});}该代码设置在了,出库操作出库数量组件的 blur 时间中。
实际运行情况
感谢阅读,我是在软件开发平台研究中不停前行的草根开发者,感谢关注支持。
软件开发难吗?
首先我想强调的是:“学习从来都不是件容易的事,除非你是天才”。所以,就更不用说软件开发,这个极其需要脑力和精力的学习。
软件开发,本身就是一门大学问,不仅仅需要有扎实的理论知识,还需要不断的实践经验积累。
当然,不同平台的软件开发,上手难易程度是不一样的,而且跟该软件开发所需的编程语言掌握程度关系也非常大。所以,学习软件开发你得先把对应的编程语言先学好学精。
这里简单说下当初我自学Android软件开发的经历:
2011年刚毕业没多久,我在一些论坛上看到很多牛人通过自己写的移动端应用或者游戏赚取了大量的广告费,我在这些数字(金钱)的诱惑下决定自学Android软件开发,希望能从中分一杯羹。
那时候基本上是白天上班,晚上就窝在自己的小屋里,天天学习Java编程语言和Android软件开发到凌晨2、3点。后期基础学的差不多了就开始着手开发自己的App,每天晚上基本都是在完成一段自认为比较满意的代码或者完成自己的App上一个比较重大的功能之后才回床休息。
那段时间很累,但人很兴奋(我这得有多大的兴趣啊)。虽然广告费没赚到多少,但成功的把自己送进了一个比较高大上的外企,薪资也翻了两翻,算是正式踏进了移动互联网行业!
所以,对普通人来说软件开发并不是件容易的事,但天道酬勤,勤学勤练自然就会变得容易!
软件开发难不难?
难不难,是一个相对的概念。如果说它难,那它比起很多如【销售】【文员】等一些看不到前途的工作确实算难。如果说简单的话,那软件开发要学习的知识其实很多,也并不简单。难不难学,关键是看你自己怎么看待它。
如果你铁了心想要学好软件开发,那我想它对于你一定是不难的。如果你只是被这个行业的高薪水所吸引,想要随便学学来加入这个行业而拿到这份薪水,那可能最终只是三天打鱼两天晒网,最终什么都没学到。
所以,你若是真的想要加入这个行业,要先想想自己是不是真的有兴趣。如果是的话,那你可以着手准备接下来要学习的内容了。软件开发就是根据用户要求建造出软件系统或者系统中的软件部分的过程。
要进行软件开发,一般会将程序语言运用于某种软件开发工具中使用来实现。
因此,你至少会接触到的是一门程序语言,比如Java、C、C 、PHP、Python等。
这些不同的语言自然会运用在不同的方面,如果你打算做游戏开发,那就会以C 为主;如果是网站开发,就会运用到H5、CSS、js等。软件开发是以以Java为主;数据库管理会运用到MySQL、Oracle、SQL Server等。
选择好要学习的语言之后,接下来要做的就是,全身心投入,向着目标努力。
建议可以在网上找一些相关的教程先接触性学习,看看自己是否听得会、学得懂。程序语言的基础还是很容易掌握的,只是越往后面越广阔越深奥。当然,学软件开发也不是让你短期内就学好的,今后无论是学习还是工作中,都是需要慢慢学习提高的。
只要你真的能够学到东西,那你的付出一定是值得的。