ChatGPT所代表的大数据模型已经确实改变了很多工作的流程和形态。作为一位走在新技术一线的小开发,自然也想借助一下其强大的代码生成能力来提高自己的工作效率,让更多的时间留给摸鱼创造和思考。然而,ChatGPT已经推出这么久了,相信大家也多多少少有体验过,自然也发现,ChatGPT在生成诸如注释、文档、CRUD和单元测试等规则性强的代码方面具有强大的生产力。然而,在让它生成重要的逻辑代码时,就很容易出现生成5分钟,调试5小时的离谱情况。作为一位客户端开发,需要写的CRUD和单元测试的代码实在是不多。逻辑代码的开发为了防止一些不可控的意外也没办法全权交给ChatGPT代理。因此,只能让其作为一个升级版的Google帮忙查一些文档和回答一些小问题。好像完全没有什么场景可以让ChatGPT发挥实力。然而,仔细一想🤔️,在客户端的需求开发过程中也存在这种规律性强,枯燥无味,但是又不得不写的代码类型。那么有没有一种可能让借助ChatGPT来生成这些枯燥的UI代码呢?其实自动生成UI代码并不是什么新问题,关于这方面的产品也已经不少。比如在司内,智能代码生成OTeam也正在开展相关工作,而外部也有很
之前在腾讯云也做过跨端开发,也是基于Electron的客户端,核心的一点就是开发便捷,社区支持度好,很多问题一搜就能找到。与前端的配合使用上也很方便,上手难度相对较低。做一些基础产品应用足够了,如果是打造专业级产品,确实需要更多的做优化、安全、防止反编译以及本地化应用的一些工作。我之前也遇到一些问题,在后续的文章中我再补充一些,主要是mac 在x86/m1 等不同架构cpu核心的编译与自动化构建、客户端性能优化、内存与cpu等优化。 原文来自 https://xie.infoq.cn/article/b3849f9749a65e99eb33fe020,作者:vivo 互联网前端团队-Yang Kun 一、背景在团队中,我们因业务发展,需要用到桌面端技术,如离线可用、调用桌面系统能力。什么是桌面端开发?一句话概括就是:以 Windows 、macOS 和 Linux 为操作系统的软件开发。对此我们做了详细的技术调研,桌面端的开发方式主要有 Native 、 QT 、 Flutter 、 NW 、 Electron 、 Tarui 。其各自优劣势如下表格所示:我们最终的桌面端技术选型
/* 给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像 3a 或 2[4] 的输入。*/const decodeString = (s) => { const reg = /(\d+\[\w+\])/; if(!reg.test(s)) { return s; } const val = /(\d+)\[(\w+)\])/.exec(s); if(val && val?.length > 0) { const num = parseInt(val[1], 10); const value = val[2]; let str = '';
本文转自km的一篇文章,看了vite原理,其利用esbuild 先启动服务器,然后再根据所需页面以来的module 再按需加载编译。因为没有那么多阻塞的任务,所以才看起来很快,具体分析如下所示。提到 Vite,第一个想到的字就是 快,到底快在哪里呢?为什么可以这么快? 本文从以下几个地方来讲快速的冷启动: No Bundle + esbuild 预构建模块热更新:利用浏览器缓存策略按需加载:利用浏览器 ESM 支持Vite 本质上是一个本地资源服务器,还有一套构建指令组成。本地资源服务器,基于 ESM 提供很多内建功能,HMR 速度很快使用 Rollup 打包你的代码,预配件了优化的过配置,输出高度优化的静态资源快递的冷启动No-bundle在冷启动开发者服务器时,基于 Webpack 这类 bundle based 打包工具,启动时必须要通过 依赖收集、模块解析、生成 chunk、生成模块依赖关系图,最后构建整个应用输出产物,才能提供服务。这意味着不管代码实际是否用到,都是需要被扫描和解析。而 Vite 的思路是,利用浏览器原生支持 ESM 的原理,让浏览器来负责打包程序的工作。而
微前端解决的三个核心问题: 1、解决异构前端网站的融合性问题,兼容多种前端框架和技术栈,新旧项目的融合为一个应用。 2、确保微前端应用之间全局变量、事件、样式资源等状态隔离,运行时状态不共享。 3、微前端应用之间的数据通信、数据状态与缓存管理,页面保活。方法一:使用iframe与自定义消息来传递;方法二:使用web Components, 通过主应用和微应用来通知 上面是微服务的定义,每个功能可以独立运行,也可以组合在一起来完成更复杂的业务功能。通常微服务讲的更多的是后台架构,微前端是微服务在前端中的一种实现方式。一个子应用可以有自己独立的仓库,独立构建、测试、上线,在运行时把这些功能组合在一起。多技术栈共存,当一个老项目运行着,此时又需要引进新技术,微前端就比较合适,如早年的 backbone 或者 vue2 等项目,当下要把 react + ts 引进来。 大型项目多团队负责,各团队可维护着自己的模块,比如大型控制台(如阿里云控制台、腾讯云控制台),各团队可以独立开发并上线,最后由统一的主应用来把各个团队做的功能组合在一起。 巨石应用,比如邮箱业务,除核心的邮件读
作者:jaysonxiao ,腾讯AlloyTeam 2021-04-07 发表的 协同编辑冲突处理算法综述 对协同编辑冲突处理算法的基本概念进行介绍,并对三种主流算法:OT、CRDT、AST,从理论层面分别对基本原理进行简单介绍,帮助从宏观角度更好地理解协同编辑冲突处理算法。我们可以在在线编辑器,多人协同工具的研发中使用到相关的算法和原理。 1.主流协同冲突算法简介 在实时协同编辑系统领域,OT(Operational Transformation)算法核心原理基于操作转换,是最早(1989年)被提出的协同冲突处理算法,而后因为Google Wave应用流行起来。OT算法相关的研究如今得到了广泛的实际应用,例如Google Docs和腾讯文档,底层的协同冲突处理算法都是基于OT算法实现。 AST(Address space transformation)算法,最早于2005年提出,其核心思想是在执行操作前回溯文档生成操作时的状态,通过转换地址空间实现协同。在协同编辑学术领域,相关的研究成果不断在提出,不过现实中的实际应用较少。 CRDT (Conflict-free
[TOC]在最近使用typecho 中对页面的中的部分功能进行了二次开发,所以将很久不用的php基础知识又重新学了一遍。上一次用还是在2013年用thinks php 开发海淘的电商网站。0 语法变量PHP 是一门弱类型语言,不必向 PHP 声明该变量的数据类型,会根据变量的值,自动把变量转换为正确的数据类型。PHP 脚本可以放在文档中的任何位置, 以 <?php 开始,以 ?> 结束:// 单行注释 、/* 多行注释*/ 、echo - 可以输出一个或多个字符串(用,隔开),无返回值[推]、print - 只允许输出一个字符串,返回值总为 1一 基本数据类型8种四种标量类型:boolean (布尔型逻辑型)、int (整型)、float (浮点型, 也称作double)、 string (字符串) 两种复合类型:array (数组)、object (对象) 两种特殊类型:resource (资源)、 null (NULL)二 运算符7种逻辑运算符:and 与、or 或、xor 异或、&& 与、|| 或、! 非、算数运算符:+、-、*、/、%、++、
这篇文章最早我是在360的时候,那个到时处理360手机商城,然后积累的一些经验,然后处理的然后只是很早之前都写出来了,但是这个没有发表,这次重新把它找出来了,在这里再重新同步一次。一、分我们知道,对于一个大型网站来说,可伸缩性是非常重要的,怎么样在纵向和横向有良好的可伸缩性,就需要在做架构设计的时候考虑到一个分的原则,我想在多个方面说一下怎么分:首先是横向的分:大的网站化解为多个小网站:当我们一个网站有多个功能的时候,可以考虑把这个网站拆分成几个小模块,每一个模块可以是一个网站,这样的话我们到时候就可以很灵活地去把这些网站部署到不同的服务器上。批注: 现在很多网站他运营着多个域名就比如CSDN,他的博客是blog.csdn.net ,写博客是用的write.blog.csdn.net,主站用www,每个站之间独立运营,让整个服务器的前面,Nginx负载均衡压力不会特别大,因为ng的负载每秒最大是3万多也有人说5万10万的,但是到最后限制最大的不是机器本身的性能反而是带宽。之前在博客上有看到有人,有人测redis最大连接是10万+的连接数时,那么需要的带宽1000G以上。所以连
业界常见的 4 种 Git 工作流,您可以选择任一预设的工作流作为初始配置,也可以选择自定义配置,全新定义团队需要的分支规则。一、Github Flow 模式GitHub Flow 是一个非常轻便的,基于分支的工作流,非常适合代码部署非常频繁的团队和项目。它最大优点就是简单,对于”持续发布”的产品是最合适的流程。 它默认 master 的更新与产品的发布是一致的。版本管理默认开启版本管理。开启后,拉取的分支将归属于版本,包括分支关联的需求、缺陷等数据也将从该版本关联的维度去筛选过滤。分支类型 默认 master 为主干分支。 自定义 2 种分支类型。 开发分支,分支名 dev/*,跟随版本。 修复分支,分支名 bugfix/*,跟随版本。分支拉取与合入规则 允许从所有类型拉取 dev,并自动同步源分支。 允许从所有类型拉取 bugfix 允许dev合并至dev、 master 允许bugfix合并至bugfix、 master 高级工具支持 默认开启分支权限管理。 默认开启分支变更文件覆盖提醒及自动同步。 需求、缺陷绑定设置若项目关联
评论: 之前在部分业务中使用了无界,通过微前端框架来解决多业务、异构前端业务的融合性问题。早期项目中都是直接用 iframe 。需要另外开发一套postmessage 的通信机制,另外父级框架刷新后iframe内部的地址和状态丢失。[无界](https://github.com/Tencent/wujie/)是鹅厂中台开源项目是基于Web Components + iframe 来实现的微前端框架。主要包含的内容有:通信模块(父子、兄弟模块间通信),状态于依赖共享,应用嵌套模块,js/css沙箱,内嵌脚本,预加载逻辑,单页应用的tab机制等。这里可以留个位,后续做一个源码分析。 | 导语iframe是一个天然的微前端方案,但受限于跨域的严格限制而无法很好的应用,本文介绍一种基于iframe的全新微前端方案,继承iframe的优点,补足iframe的缺点,让iframe焕发新生。目录背景无界方案使用无界适配成本实现细节 实现一个纯净的 iframe &nb
首乌
十年老程序员
粤ICP备2023052298号-1