Web框架标准之期待篇

??? 做java的总爱提出一些标准,事实上web相关行业总是在提出一些标准,java开发者最为甚之。被逼的,我理解,功能强大的框架层出不穷,特色各异,web开发,基本功能就是那些东西,随便翻开一本web开发指南,也就拼凑个八九不离十了。于是大家提取了一些共性的精华,提出了所谓的行业标准,这些行业标准无疑就成了新兴web框架的样板,嗯,分久必合,正处于这个阶段吧。

以下是django框架设计者提出的web框架标准:
=================================================
一个优秀的Web框架有下列关注点:
提供URL映射
很容易显示,验证和重显示HTML表单
对用户提交的东西转换成容易操控的数据结构
通过模板系统分离内容和显示
方便同持久化层集成
更高的抽象,提升生产率
去除你的程序瑕疵
=================================================

我也凑凑热闹,提出一些自己的补充:

对不同数据库(主流)提出通用的数据访问接口;
提供通用而且方便扩展的权限控制接口;
便于数据迁移,数据迁移记录存档;
随框架附带通用代码生成环境;
随框架附带运行以及测试环境;
提供舒适的文档生成环境;
远程项目发布,管理环境;

我提出的标准,在一些框架中已经有实践并成熟运用的案例了,相信新兴框架以及成熟框架的改良版本会渐渐把这些标准融合于自身。


我觉得大家都应该提出自己的web框架标准,不是凭空想象,如今的web开发,无论从技术支持上还是开发环境上,基本都已经做到“你敢想,我就敢做出来”的程度,web是服务于人的,为了吸引人,web变得有人性了,web开发者也是人,对于web框架来说就是用户,用户提出了需求,web框架还有不实现的道理吗。。。

最后引用 ruby on rails 的一句精髓,习惯大于配置,这个习惯,想必就是指的标准吧。
1003090.html?type=1

老刘. 2007-12-17 14:45 发表评论
基于STM32L4XX、HAL库的DP83822 以太网收发器(PHY)驱动程序设计 一、简介:DP83822是德州仪器(TI)推出的一款低功耗、高性能10/100Mbps以太网物理层收发器(PHY)。它具有以下主要特性:支持10BASE-T和100BASE-TX以太网标准低功耗设计,适合嵌入式应用MII/RMII接口,方便与微控制器连接内置自检和诊断功能支持自动协商和手动配置工业级温度范围(-40°C至+85°C) 阅读详情

相关推荐

基于Simulink的永磁同步电机(PMSM)无位置传感器矢量控制与龙伯格观测器设计​

本文介绍了基于Simulink的永磁同步电机(PMSM)无位置传感器矢量控制方法,重点讲解了龙伯格观测器的设计与实现。主要内容包括:1)系统架构与数学推导,通过静止坐标系状态方程和极点配置构建观测器;2)Simulink建模步骤,从电机模型搭建到观测器核心代码实现;3)仿真结果对比分析,显示龙伯格观测器相比滑模观测器具有更好的平滑性和抗噪能力;4)工程部署建议,包括参数在线辨识、低速补偿策略和代码生成优化。该方法实现了全速域无感运行,稳态转速误差小于1%,为低成本高可靠性电机控制提供了有效解决方案。

amy_mhd的博客 161

web-frameworks未来功能:社区投票选出的最期待特性

你还在为Web框架性能不足而烦恼吗?还在纠结不同语言框架的兼容性问题吗?本文将结合社区反馈和项目现状,为你揭示web-frameworks项目未来最值得期待的三大特性,帮助你更好地选择和使用Web框架。读完本文,你将了解到性能优化、跨语言兼容和云原生支持等关键特性的发展方向,以及如何参与到项目的贡献中。 ## 性能优化:突破极限的速度提升 性能一直是Web框架的核心竞争力,从项目的性能测试数据

gitblog_00914的博客 806

DATCOM GUI——DATCOM-Tools使用介绍

简介 本工具以1976年美国空军稳定性与操纵性计算程序(USAF STABILITY AND CONTROL DIGITAL DATCOM PROGRAM)为基础进行开发,目的是提供更为简洁方便的外形输入方式,并带有三维绘图与气动特性输出功能。 安装与环境配置 1、 代码以Holy Cows公司提供的DATCOM程序为基础,首先下载其安装包(window,Linux均有)。 2、 安装到你想要的位置,注意不要有中文路径 3、 测试DATCOM是否能够正常运行。复制examples文件夹中的Citation

qq_40800981的博客 1万+

Web标准(网页标准)

Web 英文意为 网络,Web 标准,即网络标准,是一个非常大而泛的概念,牵扯到软件和硬件(计算机网络、操作系统、硬件驱动和通信协议等等,这个题目本身就太大了)。下文所讲的 Web 标准就是指前端网页页面的标准。

u012764358的博客 1414

奈曼-皮尔逊准则

奈曼-皮尔逊准则 如果各个假设的先验概率P(Hi)(i=0,1)P(H_i)(i=0,1)P(Hi​)(i=0,1)已知,并且每种判决的代价函数已知,这时,可以用贝叶斯准则进行判决。 如果进一步假设正确判决不付出的代价,而错误判决代价相同,即c00=c11=0,c01=c10=1c_{00}=c_{11}=0,c_{01}=c_{10}=1c00​=c11​=0,c01​=c10​=1,这时可以用最小平均错误概率准则进行判决。 在不知道先验概率P(Hi)(i=0,1)P(H_i)(i=0,1)P(Hi​)(

little_soldier的专栏 1万+

模拟CMOS 第2章 MOS器件物理基础

模拟CMOS 第2章 MOS器件物理基础 文章目录模拟CMOS 第2章 MOS器件物理基础2.1 基本概念2.1.1 MOSEFT开关2.1.2 MOSEFT结构2.1.3 MOS符号2.2 MOS的I/V特性2.2.1 阈值电压2.2.2 I/V特性的推导2.3 二级效应2.4 MOS器件模型2.4.1 MOS器件版图2.4.2 MOS器件电容2.4.3 MOS小信号模型2.4.4 MOS SPICE模型2.4.5 NMOS与PMOS器件的比较2.4.6 长沟道器件与短沟道器件的比较附录A 用作电容器MO

椰子奶糖的博客 5196

最实用的web前端开发知识框架图

把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的是想要颠覆人们对于前端只有三大块(html、css、js)的认识——做web前端需要的比这三大块要多得多。1、分类所有知识框架,那肯定是一个结构型的展现,就是一棵树。web前端的知识点非常多,也非常散,需要好几层结构来组织这个体系,否则就会显得很乱。那么如何组织、把谁和谁放在一块儿?这是真正值得我们去思考的,...

hello_world_csdn的博客 1万+

YOLOv8训练流程-原理解析[目标检测理论篇]

本篇文章主要介绍了YOLOv8训练的流程,主要介绍了Task Aligned Assigner正负样本匹配策略以及YOLOv8的损失计算。

ice 4516

对WEB标准以及W3C的理解与认识

本文主要讲述了WEB标准以及W3C的理解与认识,以及W3C组织制定的标准来开发页面会有哪些好处~

hxy771503的博客 989

【C++】ROS:ROS1环境配置与基础示例

ROS1环境配置与基础示例

DevFrank的博客 2103

【Bug已解决】[Bug]: ValueError: No user query found in messages QWEN 3.5 27B VLLM 0.16.0 NIGHTLY 解决方案

用 vLLM 0.16.0 nightly 给发聊天请求时,服务端在处理消息时抛ValueError,请求失败。

博客 402

Drash未来路线图:Web标准驱动的JavaScript框架发展趋势

Drash作为一款强类型、运行时无关的Web框架,基于Web Standards构建结构化HTTP服务,正引领着JavaScript框架的新发展方向。本文将深入探讨Drash的未来发展规划,为开发者揭示这一框架如何通过标准驱动实现跨环境兼容与功能创新。 ## 一、Web标准优先:框架设计的核心原则 Drash从根本上坚持Web标准优先的设计理念,这一点在其架构中得到了充分体现。框架的核心代码如

gitblog_00162的博客 206

MuJoCo 入门教程(四)建模

在 MJCF 中,一个体可以包含多个关节,因此无需引入虚拟体来创建复合关节。相反,只需在同一主体中定义构成所需复合关节的所有原始关节即可。例如,可以使用两个滑块和一个铰链来模拟在平面内运动的肢体。其他 MJCF 元素可以在嵌套的主体元素所创建的树中定义,特别是关节、几何体、场地、摄像机、灯光。当一个元素被定义在一个肢体内时,它就固定在该肢体的局部坐标系上,并始终随其移动。涉及多个机构或根本不涉及机构的元素,将在运动树之外的单独部分中定义。

机器人控制与仿真应用 4162

Web开发期待的CSS的一些功能

著名的 Web 设计网站 CSS-tricks.com 最近组织了一次调查,请15名顶尖的 Web 设计师对 CSS 提出自己的期望,15名设计师包括 Jon Hicks,Wolfgang Bartelme, Mint 的 Shaun Inman 以及 Stuff and Nonsense 的 Andy Clarke。 调查结果显示,最被期待的 CSS 功能是 CSS 圆角,其它期待的功能包括...

web前端基础入门教程 908

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Java Web框架标准化必要性探讨

[b]java的web框架[/b] java的web框架众多的原因在于java的web框架只在servlet一层提供了标准,没有进而再往上作标准。因此,每个web框架都建立自己基于servlet之上的各种不同标准。 struts1使用Struts制订的Action接口 webwork,struts2使用Model和Action同一Action接口 Spring的Controller...

Qieqie 297

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

html5标准文档,html5我们期待的标准

html5我们期待的标准html5:HTML5——我们能等到真正的标准吗?疯狂代码 http://doc.xuehai.net/ :http:/http://doc.xuehai.net/HtmlJiaoCheng/Article19070.html 本地存储相关的 API 作为最新的 HTML5 规范草案的一部分,我们在上个星期看到一些浏览...

weixin_39583751的博客 95

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

使用Web标准的十个理由

如果你是一名刚刚接触web标准的网页开发人员或者设计人员,并且正为是否采用标准,是否花时间去学习而犹豫不决,看完此篇后也许能坚定你对于web标准的信心。对于已经使用web标准的专业人士来说,以下的内容看起来在显而易见不过了。欢迎发表你的意见,以使更多的人了解web标准。1、web标准使你看起来更专业其它的开发人员或者那些可能成为我们主顾的人看到你的作品后,会认为你是一个喜欢与技术保持同步的人,同其

Cocowool的专栏 1429

期待Web Component的未来

Web Component本身不是一个规范,而是一组技术的应用,Web Component现阶段主要分为三部分:`Custom element`、`Shadow DOM`、`Template`。通过它们的搭配使用,可以让我们在不借助第三方框架(react,vue)的情况下,构建独立的,可重用的自定义组件。

bu_leng的博客 292

如何选择一个web框架

几乎对于你想要使用的每一种语言都有大量的web框架(我们在下面的部分列举了一些比较受欢迎的框架)。有这么多选择,导致很难决定选择哪个框架为你的新web应用提供最好的开端。 一些影响你决定的因素有: 学习代价:学习一个web框架取决于你对底层语言的熟悉程度,它的API的一致性与否,文档质量,社区的体量和活跃程度。如果你完全没有编程基础的话,那就考虑Django吧(它是基于上面几条标准来看最容易学习的了)。如果你已经成为开发团队的一部分,而那个开发团队对某一种语言或者某一个框架有着很重要的开发经历,那么就坚

幽幽幽幽古溪 642

小白福利:Web前端开发知识框架图

Web前端工程师都应该知道的Web前端开发知识框架图。把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的是想要颠覆人们对于前端只有三大块(html、css、js)的认识——做web前端需要的比这三大块要多得多。下面就来和小编一起看一看Web前端开发知识框架图。 在学习过程中有什么不懂得可以加我的WEB前端学习交流扣扣qun,前面是133,中间868,...

web前端新手学习之家 895

sink的Web标准简历

工作1年,想换个道德高一点的公司,应聘“Web标准PHP开发”或者“Web标准设计师”。 写了个Web标准简历: http://www.doubanxia.com/people/blackegg/index.html 或者 http://www.doubanxia.com/people/blackegg/index.xhtml 图: 投了豆瓣,等了一个星期了。但愿豆瓣在我吃不上饭之...

weixin_33781606的博客 73

Python的WEB框架

协议分类 现今的Python的Web协议有两种,一种是WSGI,另一种是ASGI。 WSGI 点击进入百度百科 定义 (Python Web Server Gateway Interface,缩写为WSGI)是Python应用程序或框架和Web服务器之间的一种接口。 发展 如何选择合适的Web应用程序框架成为困扰Python初学者的一个问题,这是因为,一般而言,Web应用框架的选择将限制可用的Web服务器的选择,反之亦然。那时的Python应用程序通常是为CGI,FastCGI,mod_python中的一个

github_34169373的博客 323

如何更新Web标准下的docmode

作者简介: Rey Bango,作为Microsoft的一个技术传播者,一直致力于推进客户端Web开发的实践经验,并帮助Microsoft满足社区需求。他对于HTML5可能带来的丰富的交互的Web应用有着极大的热情。同时,Rey也是jQuery JavaScript项目小组的成员之一,以及.net杂志的作者。     文档兼容性定义了一个浏览器是如何展现你的网站的。你把你的期待对浏览器告知

WebAppTrend 807
上一篇: 网站上线
下一篇: 会是这一年吧
52bb
博客等级 码龄22年 8粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值