前端开发者使用JS框架的三个等级

目前前端开发者使用JS框架是种很普遍的现象,因为框架可以加快开发速度,同时避免各类浏览器的兼容性问题。不过同样是用框架开发,不同开发者的境界水平还是有一定差距,本文将这些前端开发者分为三个等级。

第一种境界:了解各类框架、并熟悉甚至精通某种框架的使用,但并未看过框架代码、或者并不理解框架核心细节的实现,甚至不清楚框架的设计原理、基本思想、适用场景。这类人的编程思路始终限制在”特定框架“的范围内,尽管能使用框架写出满足需求的代码。

这种人停留在”会用“框架的阶段,他们很在乎各种框架的比较,且一定要对框架分出三六九等。这些人写代码的思路始终没有离开”功能实现“。

第二种境界:精通各类框架,熟读各类框架源码,非常了解各类框架的核心功能的细节实现,熟识各类框架的优缺点和适用场景,权衡利弊后理性选择相对适用业务逻辑的框架,并能根据业务的需要有针对性的修改框架核心代码使之更加满足可维护性和性能上的需求,但依然要基于某种框架进行业务开发,框架的范围依然停留在组织代码、第一层的抽象和组件的模块化的范围内。

这种人停留在”精通“框架的阶段。他们的特点是有能力去对框架做有针对性的二次封装,甚至有些人有能力重写框架核心代码,但依然要基于某种框架做扩展和hack。这些人写代码的思路始终在”代码管理和框架级别的抽象“。

第三种境界:异常精通各类框架,同时精通业务逻辑,娴熟的对业务逻辑进行抽象,具备传统软件工程师的基本素质,有能力设计业务框架,并根据业务逻辑的需要重写合适的底层框架。这类人的编程思路已经完全脱离“框架”的限制,达到一种真正自由超然的境界。

这种人已经达到技术方和需求方一致认可的“专家”级别,技术功底扎实、同时精通业务。他们写代码的思路已经完全脱离“框架”,并始终围绕业务逻辑,主要工作即为业务逻辑层面的抽象和接口设计。

那么,你在哪个境界?

【Web APIs】JavaScript 开发框架 ① ( JS 框架核心概念 | JS 框架与 JS 插件 | 常用前端框架 | 使用 Bootstrap 实现轮播图 ) 一、JavaScript 框架 1、JS 框架核心概念 2、JS 框架与 JS 插件 3、常用前端框架 二、使用 Bootstrap 实现轮播图 1、Bootstrap 核心概念 2、代码示例 3、执行效果 阅读详情

相关推荐

UCIe相关开源项目记录

目前找到的和UCIe协议有关的5个开源项目,如果也有正在做的朋友,欢迎私信交流

m0_64102565的博客 821

前端能力八大等级,每一级附送晋升方法

文章目录一、入门级(选秀阶段)能够解决一些问题:怎么进阶:二、解决问题(常在阶段)本阶段特征:进阶之路:三、优化方案(贵人阶段)特征提升之路:四、全局观(嫔位)特征:提升之路:五、深度(妃位)特征:进阶:六、广度(贵妃)特征晋升:七、领军人(皇后) 一、入门级(选秀阶段) 能够解决一些问题: 常见HTML标签和属性、时间、方法,常见的CSS属性也了解,也掌握了JavaScript最基础的语法、条件、语句和循环还有简单常用的算法。起码可以完成一些前端的需求。要了解一些常用工具比如:Webstrom、Subl

黑马程序员官方博客 3136

linux下autocad完美替代品bricscad的安装运行

前言 在Linux平台下,能完美兼容.dwg文件的软件并不多。 虽然国产的中望和浩辰为适配uos操作系统,近期都推出了linux版本,但目前好像还没有对应的破姐流出。(如果有的话请私信我或留下评论) 然而有了这一款源自比利时的软件——bricscad,linux下查看和编辑.dwg文件再也不是噩梦了! 安装pj 资源链接:https://pan.baidu.com/s/1dC7zarlqwuO5fa4CBL_KGQ 提取码:24j6 1.下载对应的压缩包,解压并安装其中对应的deb或rpm软件包。 2.在C

weixin_35259117的博客 4478

前端框架的分级

各大前端框架可以按照"封装度"的标准来区分,设计出一套网页皮肤,封装度为0。 层层封装到可以直接用后台语言写页面,封装度为10。 1级:纯html+css,基本就是不使用任何框架,仅用DreamWeaver设计出来的页面或者使用网页查看源代码扒下来的皮肤。 2级:bootstrap的出现是一个里程碑事件,发源于twitter,引入了不少html5/css3的特性。由于它对响应式的支持以及良好

软通大学企业博客 2615

Calibre license失效的解决方法

Calibre license失效的解决方法

qq_45354630的博客 6478

手把手教你复现KDD 2024时空预测顶会论文:以UniST和ImputeFormer为例的代码实战与避坑指南

本文详细指导如何复现KDD 2024顶会论文中的UniST和ImputeFormer模型,涵盖环境配置、数据处理、模型训练及评估等关键步骤。通过实战案例和避坑指南,帮助研究者掌握时空预测与插补技术,提升在智慧城市、交通管理等领域的应用能力。

weixin_29204205的博客 279

web前端工程师不同级别分别掌握哪些技能

随着大前端时代的到来,移动互联网颠覆了PC互联网。接下来,前端将颠覆原生App世界。而近几年,前端技术能力的值钱程度很突出,名列前茅。这正代表了前端技术的当前行情。前端工程师一般分为初级工程师、中级工程师、高级工程师、架构师或技术经理角色。不同级别的web前端工程师都应该掌握哪些知识呢 初级前端工程师:能熟练使用html、css、js 主要工作还是搭建静态页面,主要工作可能是给一些工作做企业官网居...

qf2019的博客 1351

FortiWeb 相对路径遍历漏洞复现(CVE-2025-64446)

FortiWeb是Fortinet公司推出的企业级Web应用防火墙(WAF),专为保护Web应用和API抵御高级威胁设计。它集成人工智能与机器学习技术,通过双层检测引擎(HMM模型与SVM向量机)精准识别异常流量,可防御OWASP Top 10攻击、SQL 注入、XSS、DDoS及恶意机器人。其核心功能包括API自动化保护、虚拟补丁集成(兼容Acunetix等第三方扫描工具)及智能流量分析,支持HTTP/2、WebSocket等现代协议。(CVE-2025-64446)

iSee857的博客 466

JavaScript常用前端框架和库浅谈_前端框架设计-js(1)

除了前端框架之外,JavaScript库也是前端开发中常用的工具。以上这些JavaScript库都是前端开发中常用的工具,它们提供了丰富的功能以及易于使用的API接口,使得开发人员可以更轻松地处理常见的任务和增加网页的交互性。掌握这些库将有助于提高开发效率和增强用户体验。常用JavaScript库的简单使用方法:on()$.ajax()_.map()importimport.then().catch()moment().format()

2401_85124286的博客 1281

pip install安装markitdown时出现ERROR: ‘packages/markitdown[all]‘ is not a valid editable requirement解决方案

本文主要介绍了pip install安装markitdown时出现ERROR: ‘packages/markitdown[all]’ is not a valid editable requirement解决方案,希望能对使用markitdown的同学们有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 2万+

【嵌入式】AMIC和DMIC(什么是数字麦和模拟麦)

最近在做一个关于MIC的项目,同事不太清楚AMIC和DMIC的区别,又有高手详细解释了其原理,在此整理记录一下,方便后续查阅。

Bigan(安)的博客 8545

JavaScript常用前端框架和库浅谈_前端框架设计-js

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。较、计算等。* 注意Moment.js的日期格式,使用合适的格式字符串进行日期的格式化和解析。技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。

m0_60388292的博客 1944

Python 安装 PyTorch(GPU)详细教程

本章教程,介绍如何安装PyTorch GPU版本的具体教程。

猿小白的博客 1613

JavaScript框架有哪些?JS框架汇总

JavaScript是一种多范式语言,支持事件驱动,功能和命令式(包括面向对象和基于原型的)编程样式。JavaScript最初仅用于客户端。但是,如今,JavaScript也被用作服务器端编程语言。总而言之,用一个简单的句子来说-JavaScript是网络的语言。 什么是JavaScript框架,为什么要使用一个? 软件框架是一种抽象,其中可以通过其他用户编写的代码有选择地更改提供通用功能的软件。JavaScript框架是用JavaScript编写的应用程序框架,程序员可以在其中操纵功能并方便使用。 框架更

qq_36272264的博客 5974

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

为什么说dagger.js 是最适合后端开发者使用的前端框架

后端开发者常面临前端框架复杂、构建工具繁琐的问题。轻量级框架dagger.js提供零配置方案,仅需引入一个脚本即可运行,采用指令驱动DOM方式,无需记忆复杂API,天然适合管理后台等场景。其20KB体积、无依赖特性可嵌入现有后端页面,实现渐进式增强,完美契合后端开发者模板引擎思维,让前端开发回归HTML+JS的简洁时代。

2404_89388058的博客 844

深度学习工具包 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")

【前端知识】Javascript前端框架Vue入门

Vue.js(发音为 /vjuː/,类似于 “view”)是一款用于构建用户界面的JavaScript框架。渐进式框架:Vue被设计为可以自底向上逐层应用,使其成为一个渐进式框架。这意味着开发者可以逐步地采用Vue.js,而不必一开始就完全重写现有的项目。视图层关注:Vue的核心库只关注视图层,易于上手,并且便于与第三方库或既有项目整合。MVVM架构:Vue.js是一个提供了MVVM(Model-View-ViewModel)风格双向数据绑定的JavaScript库,专注于View层。

wendao76的专栏 1657

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

vue.js前端框架技术

AngularJS是一种由Google开发的前端框架技术,它采用了模块化和组件化的开发方式,能够更好地管理网页的结构和数据。React是一种由Facebook开发的前端框架技术,它采用了虚拟DOM和单向数据流的方式,使得网页的更新更加高效。理解HTML的标签和语义,熟练使用CSS布局和样式设置,以及掌握JavaScript的基本语法和特性,是进一步学习其他前端技术的基础。在前端开发中,有许多优秀的框架和技术可以选择,每种框架都有其特点和优势,可以满足不同的开发需求和场景。

Xdl3087477967的博客 2477

js html 前端框架,推荐20款 JavaScript 框架给前端开发者

下面,我们给大家提供了一个用于HTML5开发的各种用途的JavaScript库列表。这些框架能够给前端开发人员提供更好的功能实现的解决方案。如果你有收藏优秀的框架,也可以在后面的评论中分享给我们。1. EasyStar.jsIf you build HTML5 games or other interactive content, then be sure to check outEasy...

weixin_39720516的博客 623
上一篇: Java Servlet实现静态页面技术
下一篇: JPA学习笔记1-实体bean配置,jpa增删改api,jpasql增删改
IMSIB
博客等级 码龄17年 5粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值