微信小程序的编程模式

微信小程序反编译解析前端源码简单教程 根据吾爱大神教程一步一步成功解析出源码,分享一下这个过程 准备工作: 1.微信电脑版(主要是要有电脑端打开小程序的版本,因为直接从电脑上拿小程序代码) 2.node.js环境(反编译解析环境) 3.小程序程序包解密工具(这个主要是用来解密拿到的小程序包的) 4.反编译脚本 注:我使用的是win系统,因为解密工具包是EXE程序 1.首先安装好电脑的node.js编程环境 2.登录电脑版微信,然后搜索找到你想要的小程序进去访问,尽可能的多点点各种页面,确保所有页面代码加载下来 然后找到微. 阅读详情

作者简介: 范怀宇,轻芒联合创始人,毕业于清华大学,前豌豆荚技术负责人,专注于移动开发十余年,曾出版《Android 开发精要》。爱研习好代码和设计,相信好的产品能改变生活,好阅读乐分享。 
责编:唐小引,技术之路,共同进步。欢迎技术投稿、给文章纠错,请发送邮件至tangxy@youkuaiyun.com。 
声明: 本文为《程序员》2017年1月期原创文章,未经允许请勿转载,更多精彩文章请订阅 2017 年《程序员》。

导读: “轻芒小程序+”是由轻芒团队提出的小程序解决方案,它将替内容创业者免费搭建属于自己的微信小程序。在进行“轻芒小程序+”和其他小程序应用开发的过程中,本文作者与其团队对当前正火热的小程序开发有了更为深度的理解与认识,进而有了本文。(这里还有一篇满载真诚的微信小程序开发干货,点击查阅。)


从小程序诞生伊始,就有很多人开始研习其机理与特点,从源代码或整体架构的角度已经有很多不错的文章会令人受益。但理论是一回事,真正理解小程序,还需要实践,才能进一步理解其背后的想法,与已有平台的异同,以及如何去适应它,做出更有趣的小程序。

理解开发平台的特性,一个不错的角度就是从编程模式入手,看在这个平台上开发,需要如何书写和组织自己的代码,进而搞清楚三个问题:

  1. 数据如何获取;
  2. 界面如何呈现;
  3. 交互如何传导。

换而言之,就是从 MVC(Model-View-Controller)的视角去拆解这个平台的特性,从而理解其开发有何特点。

数据如何获取

程序的本质,可说就是数据的呈现和加工。所以,看一个客户端开发平台的基本能力,首先就要看能把哪些数据放在上面处理,有哪些局限?如果缺少了必要的数据获取方式,那对于开发者而言,巧妇也难为无米之炊。

从这点看,小程序提供的数据获取方式非常丰富,大概涵盖:

  • 通过 HTTPS 请求去服务端获取数据。支持 HTTPS 是最基本的,小程序对 HTTPS 有限制,除了要求通信协议是 HTTPS,出现的域名必须提前预设之外,还将应用层协议限定到了 JSON 格式下。这一点,可能比任何一个已有客户端平台都更为严苛。站在小程序的平台角度来看,通过这样的协议规定,对应用中流动的数据有了更强的管控能力;而对于开发者而言,则需要花些时间去调整自己的服务协议以便适应小程序的要求。
  • 可以在本地文件系统上存取数据。小程序提供了丰富的 API 供开发者在手机系统上存取文件。可用本地文件来做缓存、状态记忆等,为开发提供了便利。
  • 可以读写设备中的一部分信息。小程序开放了一些 API,帮助开发者获得设备上的基本信息,比如手机型号、屏幕尺寸、网络状态等。较为有价值的是可以选择获取手机上的图片等多媒体文件,这给做图像应用提供了可能;并且,它还提供了罗盘、重力感应器、地理位置等信息,对开发者理解用户所处的环境大有裨益。

从上面的介绍不难看出,小程序中的数据获取方式,和一般浏览器提供的相仿(也就是和 HTML5 应用能获取的信息),比原生的客户端更局限一些,但对于绝大多数的应用而言足够用了。

除此之外,小程序提供了微信生态中的一些数据,比如账号信息等。这对于微信庞大的生态而言,只是非常小的一部分数据,但却是开发小程序应用中最值得利用的数据。

举个例子,在其他平台上,如果想要获取微信的账号信息,需要通过一次用户授权。假如用户暂时不想提供,则会使程序呈现“未登录”状态,给整个服务的展开带来困难。而在小程序中,只要用户点开,就意味着完成了授权,开发者可以直接读取到小程序的账号信息,并同步到自己的服务端作为该用户的身份标识,从而实现“始终登录”的状态,使得后续服务可以更好地提供。

一份可行的示例如下:

// 先调用登录接口,获得请求码
wx.login({
    success: function (res) {
        // 获取到请求码,继续请求用户的基本信息
        var code = res.code
        wx.getUserInfo({
            success: function (res) {
                // 获取到了加密的用户信息,去服务端解密并存储
                var userData = res.encryptedData
                var iv = res.iv
                wx.request({
                    url: 'https://my_account/...',
                    data: {
                        code: code,
                        user_data: userData,
                        iv: iv
                    },
                    success: function(res) {
                        // 在服务器上,解析并生成自己的账号验证信息
                        var user = res.data.user
                        var token = res.data.token

                        // 并且还可以存在本地存储上,供下次打开使用
                      wx.setStorage({
                            key: 'my_token',
                            data: token
                      })
                    }
                })
            }
        })
    }
});

界面如何呈现

小程序刚发布的时候,一片人开始惊呼 HTML5 的时代就要到来了,因为小程序在界面层使用了 HTML/CSS/JavaScript 这套 HTML5 的技术栈。但很快,随着聪明的程序员们对小程序的理解进一步加深,就发现小程序所说的 HTML/CSS/JavaScript 和 HTML5 中的完全不是一回事,其差异基本等同于 Java 和 JavaScript。

在小程序中,和 HTML 对应的是 WXML,保留下来的只有 HTML 的概念,而传统的<div>、<a>标签都完全被抛弃了。和 Facebook 的 React 类似,小程序引入了自己的 HTML 标签,它和 <article〉、<section> 这样的语义标签不同,小程序中的标签更像是传统客户端开发中的组件(或者叫控件),每个组件都有自己背后的职能和使用方式。比如:如果需要展示图片,就只能用标签,其他的都无法承载。而如果需要提供可选的文本,则只能使用<text>标签等。

这样的方式带来最大的问题就是传统的 HTML 页面都无法在小程序中呈现(而小程序正好,没提供类似 WebView 的客户端控件)。比如有大量的内容网站,其文章内容都是存储为一个 HTML 片段,无法直接呈现在小程序中。如果需要展示,一个思路是构建中间服务,将 HTML 转译成一种更简单利于渲染的中间格式数据,然后,在小程序端把中间格式的数据转换成小程序的标签进行呈现。我们在做“轻芒生活”的时候,正好设计并实现了一个转义服务,将任意一个 HTML 页面转换成中间格式(内部名是 RAML),解决了内容性 HTML 页在小程序上的呈现问题,如图 1 所示。

图 1   在小程序中呈现 HTML 内容页

图 1 在小程序中呈现 HTML 内容页

和 HTML 相比,小程序的 WXSS 算是比较完整地保留了 CSS 的特征,这一点还蛮出乎意料。WXSS 在语义上最大的不同,一是在于它支持了相对尺寸单位 rpx(responsive pixel),每 750rpx 等价于当前设备的屏幕宽度,它的引入,把那种繁复的屏幕尺寸适配变得简单了不少。而和 CSS 的另一个不同是它更像传统控件样式用法,不支持 CSS3 那么多的选择器,使用中更多的是一个控件一个 class。

小程序中虽然支持 ES6 标准的 JavaScript,但窗口级的 JavaScript 却完全被废弃掉了,开发者无法用 JavaScript 去调用 window、document 对象来修改界面元素完成逻辑。小程序中的 JavaScript 其实直接对应 Node.js 的用法,用来完成后台业务逻辑,而不是直接控制交互。小程序的这个设计,使其可以用到 Virtual Dom 的方式来渲染界面,让界面数据更新时的性能优化成为可能,但付出的代价就是少了窗口级 JavaScript 的那层胶水黏合,使得很多功能的开发变得极其呆板和繁复。

交互如何传导

所谓交互的传导,是当用户和界面发生交互时,平台框架通过何种方式告诉业务层,并将处理后的变化呈现回交互界面上。如果把 WXSS + WXML 绘制的页面看成“前端”,把 JavaScript 撰写的业务逻辑看成“后端”,你会发现,小程序的前后端交互特别像 Web 1.0 的模式,前端把交互行为封装成事件(event)发送到后端,后端处理完成后,通过 setData 方法将数据回传到前端,如图 2 所示。

图 2  小程序的交互传导

图 2 小程序的交互传导

小程序提供的 Events,基础的有类似单击、长按、触摸、滑动等,对于视频播放器等控件,还有监听播放、暂停等。这些事件比较基础,没有更高级的手势、多点触控等相关事件,但也还足够让开发者具体了解用户的输入,进而做出响应。 而小程序给界面响应的唯一方式,是通过 Page 中的 setData API 对界面上的数据进行更新,小程序会比较两次调用期间数据的变化,来决策需要更新哪部分的交互界面。

举个实际的例子,假设开发者需要做一个滑动切换页面的效果,在小程序中该如何实现?首先,是将变量数据引入渲染页面:

<view class="page" id="current-page" 
        style="left:{{distance}}rpx;"
        bindtouchstart="movePage" bindtouchcancel="movePage"
        bindtouchmove="movePage" bindtouchend="movePage">
</view>

可以看到,distance 是一个模版参数,它初始值为 0,表示移动的距离。通过 bindtouchstart 等函数绑定上 JavaScript 的方法,将事件回传。

movePage: function(event) {
    var status = {
        needUpdate: false,
        distance: 0
    }
    // 处理各种事件,计算是否需要刷新,和移动方向
    if ("touchstart" === event.type) {
        // 开始计算移动
        ...
    } else if ("touchend" === event.type) {
        // 判定移动的距离是否足够.
        ...
    } else if ("touchcancel" === event.type) {
        // 被打断就算了.
        ...
    } else if ("touchmove" === event.type) {
        // 计算移动距离
        ...
    }
    // 根据移动的距离,来更新界面
    if (status.needUpdate) {
        this.setData({
            distance: status.distance
        })
    }
}

而在 JavaScript 一端,则捕获事件、计算偏移量,然后将新的偏移量送到前端界面。

从这里可以看到,小程序的交互是典型的单向模式,前端回传事件,数据单向地推到前端,而不是通过类似“变量”、“状态”等方式来告知。这样的模式下,开发者对界面变化的控制往往不可能太精准,整个核心都依赖于小程序对两次数据变化的 diff 计算,这将会最终影响整个交互的性能。

小程序开发模式的特点

至此,我们可以来总结一下小程序开发的一些特点了。整体来看,小程序是借了 HTML5 的技术栈,行了传统客户端开发的模式,这一点和 React 等平台会比较相近,可以视为 HTML5 的一个新分支。

从设计思路看,小程序做了大量的“限制”,最大的限制是开发者其实无法通过 JavaScript 这样的编程语言直接对界面进行控制,而是通过数据驱动来间接实现。这对于缺少开发经验的人而言,是有益的事情,因为降低了理解的门槛,但对于复杂的应用来说,这个模式开发起来比较呆板,往往是一个变化多处修改,增加了理解代码的成本。

开发小程序的坑

开发小程序的日子,也是一个踩坑的历程。简单总结,小程序中的坑大概来自这几个方面:

  • Web 兼容性。小程序引入了 HTML/CSS 作为技术栈,并在其基础上进行了定制。很多开发中的问题都来自于“定制”,因为你并不知道哪部分是被定制,哪部分是被继承了。比如,你用了一个 CSS 语法,发现并不生效,或者效果和浏览器中的不一样,于是,只能换一个写法,结果很有可能又会继续发现,这个新的写法可能效果也不对,于是只能继续尝试,如此反复,可能会消耗大量的时间。
  • 开发环境不稳定。小程序的开发,是基于微信自制的 IDE,但当下,IDE 的稳定性、易用性都非常差,时常出现 Bug,你以为是程序写错了,但其实,是 IDE 的 Bug,重启一下 IDE,一切都迎刃而解了。于是,当你日后开发小程序时出现某种异样,先重启 IDE,再看问题还在不在,也许是种更节省时间的方式。
  • 缺少真机调试环境。小程序的运行时其实就是微信,微信几乎没提供任何真机上的调试工具(也不能说完全没有,有一个只能在真机上瞪着眼睛看的日志框)。在模拟器中调试好的程序,可能在真机上运行起来并不如预期。比如,我们碰到过真机上白屏、位置错乱、动画效果不对,以及 Android 上至今还不能运行等问题。这对于稍微复杂的程序而言,颇为梦魇,想做一些细粒度的调整和优化,基本只能靠猜。
  • 闭源且缺少学习资料。小程序整体上是闭源状态(虽然模拟器和 IDE 部分可以通过反编译来看),且缺少足够的学习资料。如果一旦碰到控件如何使用、为什么这么用不对之类的问题,就只能靠不停地试来解决,也需要耗费大量时间。

简而言之,作为一个新的开发平台,微信小程序从本身的稳定性,以及配套的工具链上都不算完善。对于早期开发者而言,需要耗费额外的精力去尝试和探索,但这也许就是一个新平台的价值和代价吧。

文章来源:http://geek.youkuaiyun.com/news/detail/133497

微信小程序-屏幕高度分析详解 微信小程序高度 阅读详情

相关推荐

微信小程序深度解析

内容简介 从小程序诞生伊始,就有很多人开始研习其机理与特点,从源代码或整体架构的角度已经有很多不错的文章会令人受益。但理论是一回事,真正理解小程序,还需要实践,才能进一步理解其背后的想法,与已有平台的异同,以及如何去适应它,做出更有趣的小程序。 虽然小程序发布的时间还不长,但其目前的用户体验、开发者体验都已经达到比较优秀的水平,而且微信团队对小程序长期保持着积极推进的态度,我们可以预见小程序生态在...

GitChat 1545

微信小程序全方位深度解析

微信小程序是微信在2016年9月15日发布的一种新的应用形态,不需要下载安装即可使用的应用。本套视频教程将会带大家从基础环境搭建、配置、api的使用到开发出一个app的完整流程.

健身达人微信小程序的设计与实现ssm

MyEclipse的立足就是为了企业人员用的,企业开发讲究效率,不可能让所有的开发人员来了从电脑安装软件先开始,配置环境又需要花费太久的时间,MyEclipse就解决了这样的烦恼,只要安装了软件,各种Java程序都可以进行开发,可以对各种语法自动的进行检测,有效的提示细节处错误,并且可以在写作上面让对一些整段代码的移动复制都很便利,应用部署也是一键到位。总的说来,健身达人微信小程序实现了信息资源的共享,让信息可以以更好的方式进行传播,让管理员的管理水平得到提升的同时,也让商品信息计算机化。

2402_82389843的博客 1070

【小程序】解析小程序原理

小程序实际的运行环境是在托管平台(也称为托管环境)。 托管平台可以是本机应用程序(类似于 Web 浏览器),也可以是(嵌入的引擎)操作系统。小程序通常需要经过托管平台审核才能上线,而** Web 应用只需要拥有一个 Web 服务器(以及可选的域名)即可上线。其中,小程序包含一个全局的 [[[#manifest]]] 文件和零个或多个页面清单文件**。 清单文件通常采用 JSON 格式。如下所示,这是一个典型的小程序目录结构: 另外,小程序的运行环境分为视图层和逻辑层。 视图层只处理渲染并监听发生的事件,逻辑

前端进阶之路 | 中大厂、外企、国企内推 | 面试培训 | 简历修改 4340

前端异步编程系列之事件发布/订阅模式(2/4)

上一篇文章中,主要是介绍了什么是异步编程,而这从这篇文章开始,我会介绍一些异步编程的一些解决方案。 目前异步编程的解决方案主要有一下几种: 1.事件发布/订阅模式 2.Promise/Deferred模式 3.流程控制库 而我们这一篇文章主要是介绍第一种,即事件发布/订阅模式,后续会介绍Promise/Deferred模式以及es6的Promise实现,至于第三种,我并不是太过于了解,所...

qq_33024515的博客 2817

微信小程序飞机游戏项目实战教程

本文还有配套的精品资源,点击获取 简介:本项目介绍了微信平台上的微信飞机游戏,一款轻量级、易于分享的小程序游戏。通过源码学习和实战操作,开发者能够深入掌握小程序开发框架、游戏逻辑编程、数据状态管理、用户交互设计、图像动画处理、网络请求存储、微信API集成、性能优化和版本控制部署等关键技能,为小游戏开发打下坚实基础。 1. 微信小程序开发框架介绍 微信小程序自...

weixin_36184718的博客 2424

微信小程序MVC编程模式,让页面的js文件只做控制器,只调用网络请求network.js的方法而不写网络请求的代码

MVC 编程模式:Model(数据),view(视图也就是html+css),controller(控制器也就是js) 。 controller(控制器)的职责是控制我们代码交互的过程,但它本身并不做任何的逻辑处理。可以把控制器想象成交警,他只指挥车辆怎么走,而不会替你去开车。 在前端中一些专门储存方法的js就是起的控制器的作用,如小程序项目中的 index.js 文件就只做控制器,具体的方法...

threewhisky的博客 2565

小程序解析Xml

微信小程序解析Xml,以及Html文档,常用在小程序文章显示

微信小程序thinkphp/laravel编程能力比赛与选拔辅助系统

在基于微信小程序的编程能力与选拔辅助系统上面,管理员对可以管理用户信息,管理比赛类型、编程比赛、报名信息、比赛成绩、比赛论坛、考试试卷、试题、系统、历年考试等。总之,设计并开发这款基于微信小程序的编程能力与选拔辅助系统对用户来说是非常实用的,一定会被大力的推广开来数据库工具:Navicat/SQLyog等都可以前端开发框架:vue.js数据库 mysql 版本不限小程序端运行软件 微信开发者工具/hbuiderx后端语言支持以下技术栈:整个小程序架构由两个部分组成:逻辑层和视图层。

qq840612233的博客 1006

小程序架构详解

小程序是一种不用下载就能使用的应用,也是一项门槛非常高的创新,经过将近两年的发展,已经构造了新的小程序开发环境和开发者生态。小程序也是这么多年来中国IT行业里一个真正能够影响到普通程序员的创新成果,现在已经有超过150万的开发者加入到了小程序的开发,与我们一起共同发力推动小程序的发展,小程序应用数量超过了一百万,覆盖200多个细分的行业,日活用户达到两个亿,小程序还在许多城市实现了支持地铁、公交服务。小程序发展带来更多的就业机会,2017年小程序带动就业104万人,社会效应不断提升。 此文档为结构详解

STC51单片机串口多字节数据接收的优化策略

本文深入探讨了STC51单片机串口多字节数据接收的优化策略。针对数据丢包、粘包等常见痛点,核心思路是采用“缓冲队列+定时器超时”模式,将实时处理转变为“先收纳,后处理”。文章详细讲解了硬件初始化、中断服务程序优化(快速入队与激活超时裁判)以及主循环的非阻塞设计,并进阶介绍了环形缓冲区实现与错误处理,旨在构建稳定可靠的串口通信系统。

weixin_29264201的博客 374

2021秋软工实践第二次结对编程作业

2021秋软工实践第二次结对编程作业 这个作业属于哪个课程 构建之法-2021秋-福州大学软件工程 这个作业要求在哪里 2021秋软工实践第二次结对编程作业 个人学号 031902130 结对成员学号 031902101 结对成员博客链接 GitHub 仓库地址 GitHub - yddtcsn/bobing 视频演示链接 重点难点分析 本次实验在初次拿到题目,经过简单商讨后,我们最后打算用JavaScrip...

secretmem的博客 393

DETRs with Collaborative Hybrid Assignments Training论文阅读与代码

在这篇论文中,作者观察到在DETR中将过少的 Query 分配为正样本,采用一对一的集合匹配,会导致对编码器输出的监督稀疏,严重损害编码器的区分特征学习,反之亦然,也会影响解码器中的注意力学习。为了缓解这个问题,作者提出了一种新颖的协同混合分配训练方案,名为Co-DETR,以从多样的标签分配方式中学习更高效、更有效的基于DETR的检测器。这种新的训练方案可以通过训练多个并行辅助 Head ,以一对多的标签分配方式(如ATSS和Faster RCNN)进行监督,轻松增强端到端检测器中编码器的学习能力。

qingjing0413的博客 1156

微信小程序 三 声明式导航、编程式导航及导航传参、下拉刷新、上拉触底事件、自定义编译模式、应用和页面生命周期函数、内嵌 和 外联 的 WXS 脚本、案例

1.0 页面导航 1. 什么是页面导航 页面导航指的是页面之间的相互跳转。例如,浏览器中实现页面导航的方式有如下两种: ① <a> 链接 ② location.href 1.1 小程序中实现页面导航的两种方式 声明式导航 在页面上声明一个 导航组件 通过点击 组件实现页面跳转 编程式导航 调用小程序的导航 API,实现页面的跳转 1.2 页面导航 - 声明式导航 1. 导航到 tabBar 页面 tabBar 页面指的是被配置为 tabBar 的页面。 在使用 组件跳转到指定的 tab

m0_55170432的博客 1962

基于FPGA的TDC延迟链优化与码密度校准方法(1)——原理与实现

本文深入探讨了基于FPGA的时间数字转换器(TDC)延迟链非均匀性问题及其码密度校准方法。通过分析工艺偏差、温度电压影响等根源,详细介绍了码密度测试原理、逐位校准技术及气泡消除算法,并分享了自适应校准策略与多场景应用实践,有效提升TDC测量精度至皮秒级。

kiwi8的博客 488

WPF实战:利用Live Charts实现高性能动态曲线可视化

本文详细介绍了如何在WPF中使用Live Charts实现高性能动态曲线可视化,特别适用于工业监控和金融分析等实时数据场景。通过增量渲染、内存复用和硬件加速等核心技术,Live Charts能够高效处理高频数据更新,显著提升图表流畅度。文章提供了从基础实现到工业级优化的完整解决方案,帮助开发者应对各种性能挑战。

weixin_29189373的博客 407

也许下一个爆款微信小程序就来自于你!CodeBuddy超高效开发,落地你的灵感创意!

今天我们特别转载来自公众号 孟健AI编程 倾情撰写的技术分享:利用CodeBuddy 高效开发小程序,落地你的灵感创意!文中包含详细开发教程,欢迎大家一起来使用CodeBuddy,体验 AI 编程的快乐!

cloud_studio的博客 3773

Ta-Lib源码解析(三):蜡烛图指标 (Candlestick Indicator) #(附Python重构代码和示意图)(补充中)

蜡烛图指标为识别K线形态的指标,笔者认为重点在于定义方式所提供的思路,背后的投资逻辑可以借鉴但不建议直接参考文档的翻译内容和源码逻辑存在不一致的现象,笔者分别列出中文百科中的定义和源码实际逻辑,供大家参考技术分析理论中的一些模糊词,ta-lib中给出了精确的定义源码

量化就是探索生活 3254

基于物联网的环境调节系统(ESP32-C3+Onenet+微信小程序)

大概一整个物联网流程都搞定了,顺便把硬件无线集成化了,微信小程序的界面和功能都比以往升级和添加了新的东西,要是想要源码或者相关资料的可以私信我,但不是免费的,这是我个人努力摸索出来的,还请谅解。...

帕法西尔的博客 5480

Springboot + vue 实现导出word

Springboot + vue 实现导出word 后端代码 使用word先创建好已知的模板 使用word工具另存为.xml格式的文件 使用freemarker ftl模板 将修改后的xml文件复制到开发工具中,将文件后缀修改为ftl文件,并且将里面的动态值使用${}包裹例如:${zyjn} word工具类 /*** * * Project Name:maventest * <p>生成word工具类<br> * * @ClassName: WordUtil *

qq_45542373的博客 2895

手把手教你学Simulink--使用Simulink进行双冗余电机驱动系统的故障切换验证

提高系统可靠性:当一个电机或其驱动器出现故障时,另一个可以立即接管,避免系统停机。增强安全性:对于一些关键任务的应用场景(如飞行控制),确保即使在硬件故障情况下也能维持基本操作能力。简化维护:允许在不影响系统正常工作的情况下进行维护和更换故障部件。确定可能发生的故障类型(如过流、欠压、温度过高),以及每种故障对应的条件。通过上述步骤,我们简要介绍了如何基于Simulink实现双冗余电机驱动系统的故障切换验证。

MHD0815的博客 438

Trae:又一个AI开发神器,带你使用

Trae 作为字节跳动推出的 AI 编程工具,凭借其强大的功能和友好的用户体验,为开发者提供了一个高效、便捷的编程环境。无论是初学者还是经验丰富的开发者,都可以通过 Trae 提升编程效率,快速实现项目目标。如果你正在寻找一款能够提升开发效率的工具,Trae 绝对值得一试!对比Cursor,暂不做评价。版权声明:本文内容由作者原创,未经授权禁止转载。如需引用,请注明出处。

DZh_Ming的博客 2291

2024年CSP-X复赛真题题解(T1:购物)

2024年CSP-X复赛真题题解(T1:购物)

王老师青少年编程 1180

微信小程序开发的革新之路:智能编程工具助力高效开发

最新接入DeepSeek-V3模型,点击下载最新版本InsCode AI IDE 微信小程序开发的革新之路:智能编程工具助力高效开发 在移动互联网时代,微信小程序已经成为企业、开发者和用户之间的桥梁。它不仅为用户提供便捷的服务体验,也为开发者提供了广阔的创新空间。然而,随着市场需求的不断增长,如何快速、高效地开发出高质量的小程序成为了摆在每一位开发者面前的挑战。幸运的是,智能化编程工具如雨后春笋般...

inscode_076的博客 712

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

上一篇: 理解MVC,MVP和MVVM设计模式
下一篇: Android 新安全机制之动态权限申请
对自己好点
博客等级 码龄16年 7粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值