- 2022年最新Kubernetes常见面试题汇总
云小七
kubernetes容器云原生java
常规题1.简述etcd及其特点答∶etcd是CoreOS团队发起的开源项目,是一个管理配置信息和服务发现(servicediscovery)的项目,它的目标是构建一个高可用的分布式键值(key-value)数据库,基于Go语言实现。特点∶●简单∶支持REST风格的HTTP+JSONAPI●安全∶支持HTTPS方式的访问●快速:支持并发1k/s的写操作●可靠∶支持分布式结构,基于Raft的一致性算法
- Go Web 编程 PDF
book_longker
资源golangpdf开发语言
GoWeb开发必读:《BuildingWebApplicationswithGo》PDF资源分享找寻良久,终于寻得这本珍贵资源!现在我免费分享给大家你是否正在学习Go语言开发Web应用?是否想要提升Go并发编程能力?这本书绝对不容错过!关于这本书《BuildingWebApplicationswithGo》是一本非常实用的GoWeb开发指南:以构建网络论坛为案例,全面讲解GoWeb开发️深入剖析请
- Golang学习手册
book_longker
#Golanggolang开发语言后端
Golang基础第一章:Golang的安装和开发工具配置1.1安装1.2vscode插件安装失败解决方法1.3新建项目,编译文件1.4Go语言开发工具Vscode配置第二章:GoLang定义变量、fmt包、Println、Printf、Go语言注释2.1.变量声明和定义变量声明变量定义变量初始化2.2.fmt包打印输出Print、Println、Printf2.3.Go语言中的注释单行注释多行注释
- 【Kubernetes】常见面试题汇总(七)
summer.335
Kuberneteskubernetes容器云原生
目录20.简述Kubernetes创建一个Pod的主要流程?21.简述Kubernetes中Pod的重启策略?20.简述Kubernetes创建一个Pod的主要流程?Kubernetes中创建一个Pod涉及多个组件之间联动,主要流程如下:(1)用户通过kubectl命名发起请求。(2)apiserver通过对应的kubeconfig进行认证,认证通过后将yaml中的Pod信息存到etcd。(3)C
- go.path/filepath — 兼容操作系统的文件路径操作
Generalzy
GOgolang开发语言后端
path/filepath包涉及到路径操作时,路径分隔符使用os.PathSeparator。不同系统,路径表示方式有所不同,比如Unix和Windows差别很大。本包能够处理所有的文件路径,不管是什么系统。注意,路径操作函数并不会校验路径是否真实存在。目录path相对路径和绝对路径funcIsAbsfuncAbs路径的切分和拼接funcSplitfuncJoinfuncSplitList解析路径
- 【python】最新版小红书js逆向拿到数据,非常详细教程(附完整代码)
景天科技苑
爬虫副业实战零基础进阶教学pythonjs逆向小红书逆向python爬虫
✨✨欢迎大家来到景天科技苑✨✨养成好习惯,先赞后看哦~作者简介:景天科技苑《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。《博客》:Python全栈,前后端开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,linux,shell脚本等实操经验,网站搭
- Go入门指南(The Way to Go) 完整版PDF
book_longker
资源golangpdf开发语言
TheWayToGo可以说是入门Go的经典书籍,这本书有内容丰富各种资料链接,这是截止到目前,大叔看到的写得最好的go语言教材,非常详细.一口气读下来,舍不得放手,大叔强烈推荐你去学习百度网盘分享
- Node.js+Express|Cookie&Session机制理解|实现保存登录状态
绍重先
Q&A各个用户的sessionname如何设置用登陆的用户名?用当时时间?req.session.name=req.body.usernamelogout?url列表标签posthtml退出登陆js//登出事件监听varlogout=document.getElementById('logout');logout.onclick=function(){alert('logout');varlogo
- k8s简介
周去白
kubernetesdocker容器
目录1.简介2.主要功能3.Kuberbetes组件3.1.Master组件3.1.1.kube-apiserver3.1.2.etcd3.1.3.kube-scheduler3.1.4.kube-controller-manager3.1.5.cloud-controller-manager3.2.Node组件3.2.1.kubelet3.2.2.kube-proxy3.2.3.容器引擎1.简介
- python dict字典
ducode
javapython数据库
当我基本能从事Django框架来对网站进行开发的时候,发现对Python的知识了解得太少了,甚至到了知识匮乏的阶段。看来,我得温习一下Python知识了。据我个人的理解,Python中有三种内置的数据类型。dictionary(字典)、List(列表)和tuple(元组)。下面我将对这几个内置的数据类型进行总结。Dictionary(字典)首先,什么是字典呢?通俗地来讲,字典无非就是很多的数据,但
- Leangoo敏捷工具在缺陷跟踪(BUG)管理中的高效应用
哆啦B梦_
bug敏捷缺陷管理敏捷开发scrum工具scrum敏捷敏捷研发敏捷管理
在开发过程中,缺陷(BUG)管理一直是项目管理中的一个关键环节。及时发现并修复BUG,不仅能够提高产品质量,还能有效提升团队的工作效率和用户满意度。在敏捷开发中,快速迭代和频繁交付的特点使得缺陷管理的重要性更加凸显。Leangoo领歌作为一款敏捷研发全流程管理工具,提供了强大的功能来帮助敏捷团队高效地管理缺陷(BUG)。本文将分享如何使用Leangoo进行缺陷管理,并探讨其带来的显著优势。一、引入
- 筱轩的ScalersTalk第四轮新概念朗读持续力训练Day28 2018-11-04
筱轩私塾
[day2820181104]练习材料:图片发自App任务配置:L0+L4L0时间:73″知识笔记:1.第一遍听几乎没听懂;ancientmyths/owners/garage/stonehead/MedusatheGorgon/turnedtostone2.发音:Jasper/myths/garage/effect3.词组:believesin/hashadtroublewithsthorsb/
- WebKit架构深度探索:架构、原理与实践
猫头虎
前端技术专区webkit架构前端visualstudiovscodepycharmintellij-idea
博主猫头虎的技术世界欢迎来到猫头虎的博客—探索技术的无限可能!专栏链接:精选专栏:《面试题大全》—面试准备的宝典!《IDEA开发秘籍》—提升你的IDEA技能!《100天精通鸿蒙》—从Web/安卓到鸿蒙大师!《100天精通Golang(基础入门篇)》—踏入Go语言世界的第一步!《100天精通Go语言(精品VIP版)》—踏入Go语言世界的第二步!领域矩阵:猫头虎技术领域矩阵:深入探索各技术领域,发现知
- django 刷新缓存,Django缓存不会刷新
河马和荷花
django刷新缓存
I'veaddedasimplecachingtomywebapplicationandwhenIdeleteoraddnewobjectthecachedoesnotgetrefreshedaftertheperoidoftime(2minutes)thatI'veset.Itlookslikeitfroze.WhenIrestartmyapplicationthenitgetsrefreshe
- 次声波提取参数。
毛毛v5
首先录制加载了次声波的音频,要录制最少3分钟以上,GOLDWAVE录制。然后resample成6000hz,然后playbackrate调成96000hz,然后播放速度调成1.4倍速。这样就能听到录制的音频中承载的次声波了。
- Ubuntu20.04使用systemd配置Gogs开机启动
海上微风
LinuxUbuntu20.04Gogssystemd开机启动Gogs启动失败
先说现象,大家用sudosystemctlstartgogs是不是和我一样?ubuntu@raspberry-pi:~$sudosystemctlstatusgogs●gogs.service-GogsLoaded:loaded(/lib/systemd/system/gogs.service;enabled;vendorpreset:enabled)Active:failed(Result:ex
- Puppeteer-Sign:自动化网页签名解决方案
杭臣磊Sibley
Puppeteer-Sign:自动化网页签名解决方案项目简介是一个基于谷歌的Puppeteer库开发的工具,用于自动化处理网页表单的签名过程。它模拟了真实用户的交互行为,可以用于需要电子签名的各种场景,比如在线合同签署、文档审批等。项目以JavaScript编写,易于集成到Web应用或者CI/CD流程中。技术分析Puppeteer库Puppeteer是由GoogleChrome团队维护的一个Nod
- 2024牛客暑期多校训练营2 H Instructions Substring
数学收藏家
算法
链接:登录—专业IT笔试面试备考平台_牛客网来源:牛客网题目描述Redstandsatthecoordinate(0,0)(0,0)(0,0)oftheCartesiancoordinatesystem.Shehasastringofinstructions:up,down,left,right(where`right'increasesthex-coordinateby111,and`up'in
- 每个分布式营销团队都应该使用的5种分析工具
AI进修生
分布式
没有数据分析的营销就像没有计划的训练——当然,你可能会取得一些进展,但是你很可能没有将工作时间和努力投资在最有效的方式上。它是没有方向的,容易变成毫无目的的磨炼,通常会产生不可预测或次优的结果。但你已经了解这些了,所以你用GoogleAnalytics来追踪你网站的性能指标。你还可能会定期查看你的邮件和社交媒体营销平台内置的分析工具,以监控你的内容和广告表现。但这足够吗?特别是当你希望你的营销团队
- 用python写1个简单的聊天服务器3-TCP服务器选择
watsy
pythonios开发
有了文章2的分析以后下面需要做的事情是选择1个TCP服务器。自己写1个TCP服务器考虑到快速实现,不现实。最终有3个框架twistedgeventtornadogoogle了一下资料以后。考虑geventtornado比较理想的目标是gevent,不过测试1天,作为tcp服务器时候。read函数并没有补丁为非阻塞方法。放弃剩下的就是tornadogoogle一下tornadotcp服务器资料,发现
- 谷歌浏览器ChromeDriver 128,129,130驱动下载
下东西不要币多好
Pythonpython
可以试试这个页面:https://googlechromelabs.github.io/chrome-for-testing/#stable我需要的128.0.6613.120就是在这里找到的,浏览器,驱动都能下
- 20171227晨课
Sunny飞镜
Trytolive,trytogive,andtrytobeaminerofaheartofgold.晨课:灵秀不争光芒,良善但有锋芒。
- 2287. 重排字符形成目标字符串 Python 力扣
西柚与蓝莓
力扣字符串算法python
2287.重排字符形成目标字符串简单给你两个下标从0开始的字符串s和target。你可以从s取出一些字符并将其重排,得到若干新的字符串。从s中取出字符并重新排列,返回可以形成target的最大副本数。示例1:输入:s="ilovecodingonleetcode",target="code"输出:2解释:对于"code"的第1个副本,选取下标为4、5、6和7的字符。对于"code"的第2个副本,选
- 英语日积月累2023-06-09
抽刀断水2
predecessorpredecessorpredecessor前任,原有物新任总督胜过他的前任。Thenewgovernorisanimprovementonhispredecessor.recessionrecessionrecession衰退这个国家陷入了经济衰退的困境。Thecountrywasmiredinrecession.precedenceprecedenceprecedence
- 3月编程语言Go进入TIOBE指数前十,Java重回第三的位置
骨灰级收藏家
Java编程互联网java开发语言Java编程TIOBE指数
3月Tiobe编程排行榜已出,烈火试真金,在竞争激烈的编程界,能连续多个月位居第一,足以说明Python强大的实力!Tiobe编程排行榜前20名Top10Tiobe指数走势素材来源https://www.tiobe.com/tiobe-index/,如侵删本期Tiobe看点:编程语言Go进入TIOBE指数前十,Java重回第三的位置!今天要聊的话题是编程界常青藤-Java生命力非常旺盛Java,今
- django报错 ) from exc ^ SyntaxError: invalid syntax
irrationality
djangodjangopython
新创建的Django项目,进入后直接运行pythonmanage.pyrunserver时报错如下:user@UserdeMacBook-ProdjangoProject%pythonmanage.pyrunserverFile"manage.py",line17)fromexc^SyntaxError:invalidsyntax感觉有点莫名其妙,后来发现python版本指定的有问题,应该指定py
- django报错汇总
Yogurt bottle
djangopython后端
1.django.core.exceptions.ImproperlyConfigured:ErrorloadingMySQLdbmodule__init__.py文件中添加以下代码:importpymysqlpymysql.install_as_MySQLdb()2.index()takes0positionalargumentsbut1wasgiven#视图函数必须要传入一个参数request
- FPGA原型验证手册:第一章-引言:系统验证的挑战(二)
TrustZone_Hcoco
原型验证数字ICfpga开发验证原型验证IC
前言本章将建立一些定义,并概述我们正试图通过基于FPGA的原型设计来克服的挑战。我们将探讨基于soc的系统的复杂性及其在验证过程中所面临的挑战。我们还将比较和对比基于FPGA的原型与其他原型方法,包括系统级虚拟建模。在这一章之后,我们将准备深入研究基于FPGA的原型技术如何有利于一些实际项目,并为基于FPGA的原型技术提供一些指导。1.1-摩尔是对滴自从GordonE.Moore描述了在集成电路上
- Python 安装 Django时pip install django报错
CJenny
Pythonpythondjangopip
Python安装Django时pipinstalldjango报错超时报错解决方法超时报错解决方法将原语句改为pipinstallDjango-ihttps://mirrors.aliyun.com/pypi/simple
- 在Android应用中使用Clean架构
赤耳A狼
自从开始开发安卓应用,我一直感觉我可以做得更好。我看过不少烂代码,其中当然有我写的。安卓系统的复杂性加上烂代码势必酿成灾祸,所以从错误中成长就很重要。我Google了如何更好地开发应用,发现了这个叫做Clean架构的东西。于是我尝试将它应用于安卓开发,根据我在类似项目中的经验做了一些改善,写出了这篇我觉得较为实用、值得分享的文章。我会在这篇文章中手把手教你在Android应用中使用Clean架构。
- java工厂模式
3213213333332132
java抽象工厂
工厂模式有
1、工厂方法
2、抽象工厂方法。
下面我的实现是抽象工厂方法,
给所有具体的产品类定一个通用的接口。
package 工厂模式;
/**
* 航天飞行接口
*
* @Description
* @author FuJianyong
* 2015-7-14下午02:42:05
*/
public interface SpaceF
- nginx频率限制+python测试
ronin47
nginx 频率 python
部分内容参考:http://www.abc3210.com/2013/web_04/82.shtml
首先说一下遇到这个问题是因为网站被攻击,阿里云报警,想到要限制一下访问频率,而不是限制ip(限制ip的方案稍后给出)。nginx连接资源被吃空返回状态码是502,添加本方案限制后返回599,与正常状态码区别开。步骤如下:
- java线程和线程池的使用
dyy_gusi
ThreadPoolthreadRunnabletimer
java线程和线程池
一、创建多线程的方式
java多线程很常见,如何使用多线程,如何创建线程,java中有两种方式,第一种是让自己的类实现Runnable接口,第二种是让自己的类继承Thread类。其实Thread类自己也是实现了Runnable接口。具体使用实例如下:
1、通过实现Runnable接口方式 1 2
- Linux
171815164
linux
ubuntu kernel
http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.1.2-unstable/
安卓sdk代理
mirrors.neusoft.edu.cn 80
输入法和jdk
sudo apt-get install fcitx
su
- Tomcat JDBC Connection Pool
g21121
Connection
Tomcat7 抛弃了以往的DBCP 采用了新的Tomcat Jdbc Pool 作为数据库连接组件,事实上DBCP已经被Hibernate 所抛弃,因为他存在很多问题,诸如:更新缓慢,bug较多,编译问题,代码复杂等等。
Tomcat Jdbc P
- 敲代码的一点想法
永夜-极光
java随笔感想
入门学习java编程已经半年了,一路敲代码下来,现在也才1w+行代码量,也就菜鸟水准吧,但是在整个学习过程中,我一直在想,为什么很多培训老师,网上的文章都是要我们背一些代码?比如学习Arraylist的时候,教师就让我们先参考源代码写一遍,然
- jvm指令集
程序员是怎么炼成的
jvm 指令集
转自:http://blog.csdn.net/hudashi/article/details/7062675#comments
将值推送至栈顶时 const ldc push load指令
const系列
该系列命令主要负责把简单的数值类型送到栈顶。(从常量池或者局部变量push到栈顶时均使用)
0x02 &nbs
- Oracle字符集的查看查询和Oracle字符集的设置修改
aijuans
oracle
本文主要讨论以下几个部分:如何查看查询oracle字符集、 修改设置字符集以及常见的oracle utf8字符集和oracle exp 字符集问题。
一、什么是Oracle字符集
Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据。它使数据库工具,错误消息,排序次序,日期,时间,货
- png在Ie6下透明度处理方法
antonyup_2006
css浏览器FirebugIE
由于之前到深圳现场支撑上线,当时为了解决个控件下载,我机器上的IE8老报个错,不得以把ie8卸载掉,换个Ie6,问题解决了,今天出差回来,用ie6登入另一个正在开发的系统,遇到了Png图片的问题,当然升级到ie8(ie8自带的开发人员工具调试前端页面JS之类的还是比较方便的,和FireBug一样,呵呵),这个问题就解决了,但稍微做了下这个问题的处理。
我们知道PNG是图像文件存储格式,查询资
- 表查询常用命令高级查询方法(二)
百合不是茶
oracle分页查询分组查询联合查询
----------------------------------------------------分组查询 group by having --平均工资和最高工资 select avg(sal)平均工资,max(sal) from emp ; --每个部门的平均工资和最高工资
- uploadify3.1版本参数使用详解
bijian1013
JavaScriptuploadify3.1
使用:
绑定的界面元素<input id='gallery'type='file'/>$("#gallery").uploadify({设置参数,参数如下});
设置的属性:
id: jQuery(this).attr('id'),//绑定的input的ID
langFile: 'http://ww
- 精通Oracle10编程SQL(17)使用ORACLE系统包
bijian1013
oracle数据库plsql
/*
*使用ORACLE系统包
*/
--1.DBMS_OUTPUT
--ENABLE:用于激活过程PUT,PUT_LINE,NEW_LINE,GET_LINE和GET_LINES的调用
--语法:DBMS_OUTPUT.enable(buffer_size in integer default 20000);
--DISABLE:用于禁止对过程PUT,PUT_LINE,NEW
- 【JVM一】JVM垃圾回收日志
bit1129
垃圾回收
将JVM垃圾回收的日志记录下来,对于分析垃圾回收的运行状态,进而调整内存分配(年轻代,老年代,永久代的内存分配)等是很有意义的。JVM与垃圾回收日志相关的参数包括:
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-Xloggc
-XX:+PrintGC
通
- Toast使用
白糖_
toast
Android中的Toast是一种简易的消息提示框,toast提示框不能被用户点击,toast会根据用户设置的显示时间后自动消失。
创建Toast
两个方法创建Toast
makeText(Context context, int resId, int duration)
参数:context是toast显示在
- angular.identity
boyitech
AngularJSAngularJS API
angular.identiy 描述: 返回它第一参数的函数. 此函数多用于函数是编程. 使用方法: angular.identity(value); 参数详解: Param Type Details value
*
to be returned. 返回值: 传入的value 实例代码:
<!DOCTYPE HTML>
- java-两整数相除,求循环节
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
public class CircleDigitsInDivision {
/**
* 题目:求循环节,若整除则返回NULL,否则返回char*指向循环节。先写思路。函数原型:char*get_circle_digits(unsigned k,unsigned j)
- Java 日期 周 年
Chen.H
javaC++cC#
/**
* java日期操作(月末、周末等的日期操作)
*
* @author
*
*/
public class DateUtil {
/** */
/**
* 取得某天相加(减)後的那一天
*
* @param date
* @param num
*
- [高考与专业]欢迎广大高中毕业生加入自动控制与计算机应用专业
comsci
计算机
不知道现在的高校还设置这个宽口径专业没有,自动控制与计算机应用专业,我就是这个专业毕业的,这个专业的课程非常多,既要学习自动控制方面的课程,也要学习计算机专业的课程,对数学也要求比较高.....如果有这个专业,欢迎大家报考...毕业出来之后,就业的途径非常广.....
以后
- 分层查询(Hierarchical Queries)
daizj
oracle递归查询层次查询
Hierarchical Queries
If a table contains hierarchical data, then you can select rows in a hierarchical order using the hierarchical query clause:
hierarchical_query_clause::=
start with condi
- 数据迁移
daysinsun
数据迁移
最近公司在重构一个医疗系统,原来的系统是两个.Net系统,现需要重构到java中。数据库分别为SQL Server和Mysql,现需要将数据库统一为Hana数据库,发现了几个问题,但最后通过努力都解决了。
1、原本通过Hana的数据迁移工具把数据是可以迁移过去的,在MySQl里面的字段为TEXT类型的到Hana里面就存储不了了,最后不得不更改为clob。
2、在数据插入的时候有些字段特别长
- C语言学习二进制的表示示例
dcj3sjt126com
cbasic
进制的表示示例
# include <stdio.h>
int main(void)
{
int i = 0x32C;
printf("i = %d\n", i);
/*
printf的用法
%d表示以十进制输出
%x或%X表示以十六进制的输出
%o表示以八进制输出
*/
return 0;
}
- NsTimer 和 UITableViewCell 之间的控制
dcj3sjt126com
ios
情况是这样的:
一个UITableView, 每个Cell的内容是我自定义的 viewA viewA上面有很多的动画, 我需要添加NSTimer来做动画, 由于TableView的复用机制, 我添加的动画会不断开启, 没有停止, 动画会执行越来越多.
解决办法:
在配置cell的时候开始动画, 然后在cell结束显示的时候停止动画
查找cell结束显示的代理
- MySql中case when then 的使用
fanxiaolong
casewhenthenend
select "主键", "项目编号", "项目名称","项目创建时间", "项目状态","部门名称","创建人"
union
(select
pp.id as "主键",
pp.project_number as &
- Ehcache(01)——简介、基本操作
234390216
cacheehcache简介CacheManagercrud
Ehcache简介
目录
1 CacheManager
1.1 构造方法构建
1.2 静态方法构建
2 Cache
2.1&
- 最容易懂的javascript闭包学习入门
jackyrong
JavaScript
http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html
闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。
下面就是我的学习笔记,对于Javascript初学者应该是很有用的。
一、变量的作用域
要理解闭包,首先必须理解Javascript特殊
- 提升网站转化率的四步优化方案
php教程分享
数据结构PHP数据挖掘Google活动
网站开发完成后,我们在进行网站优化最关键的问题就是如何提高整体的转化率,这也是营销策略里最最重要的方面之一,并且也是网站综合运营实例的结果。文中分享了四大优化策略:调查、研究、优化、评估,这四大策略可以很好地帮助用户设计出高效的优化方案。
PHP开发的网站优化一个网站最关键和棘手的是,如何提高整体的转化率,这是任何营销策略里最重要的方面之一,而提升网站转化率是网站综合运营实力的结果。今天,我就分
- web开发里什么是HTML5的WebSocket?
naruto1990
Webhtml5浏览器socket
当前火起来的HTML5语言里面,很多学者们都还没有完全了解这语言的效果情况,我最喜欢的Web开发技术就是正迅速变得流行的 WebSocket API。WebSocket 提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术。这个新的API提供了一个方法,从客户端使用简单的语法有效地推动消息到服务器。让我们看一看6个HTML5教程介绍里 的 WebSocket API:它可用于客户端、服
- Socket初步编程——简单实现群聊
Everyday都不同
socket网络编程初步认识
初次接触到socket网络编程,也参考了网络上众前辈的文章。尝试自己也写了一下,记录下过程吧:
服务端:(接收客户端消息并把它们打印出来)
public class SocketServer {
private List<Socket> socketList = new ArrayList<Socket>();
public s
- 面试:Hashtable与HashMap的区别(结合线程)
toknowme
昨天去了某钱公司面试,面试过程中被问道
Hashtable与HashMap的区别?当时就是回答了一点,Hashtable是线程安全的,HashMap是线程不安全的,说白了,就是Hashtable是的同步的,HashMap不是同步的,需要额外的处理一下。
今天就动手写了一个例子,直接看代码吧
package com.learn.lesson001;
import java
- MVC设计模式的总结
xp9802
设计模式mvc框架IOC
随着Web应用的商业逻辑包含逐渐复杂的公式分析计算、决策支持等,使客户机越
来越不堪重负,因此将系统的商业分离出来。单独形成一部分,这样三层结构产生了。
其中‘层’是逻辑上的划分。
三层体系结构是将整个系统划分为如图2.1所示的结构[3]
(1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。
该层用于向客户端用户提供GUI交互,它允许用户