首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

2024 年让我想疯狂学习的几个框架。。

对于每个被介绍的框架,我们都强调了它们最大的优点,以便你了解它们在哪些方面表现出色,以及哪些方面可能会让你自己尝试一下!...例如,两者都使用 JSX,采用基于函数的组件方法,但 Solid.js 不是使用虚拟 DOM,而是将你的代码转换为纯 JavaScript。...Astro - 静态网站之王 Astro示例 适合人群: 如果你想要一个优秀的博客、CMS 密集型网站工具 一个可以集成其他库和框架的框架 如果你在 2023 年构建了一个内容驱动的网站,那么你很可能会选到...Qwik - 非常快 Qwik演示 适合人群: 如果你想要一个高性能的 Web 应用 现有 React 开发者,希望尝试性能高、学习曲线低的框架 我们最后但同等重要的框架是Qwik[7]。...Qwik 是另一个使用 JSX 和函数式组件的框架,类似于 Solid.js,为基于 React 的开发者提供一个熟悉的环境,以便尽可能快的上手。

33610

我想给你介绍一个假的苹果网站

例如: 这里有三个看起来差不多的字符 :a、a、α ,但是第一个是西里尔语里的 a,第二个是英文里的 a、第三个是俄文里的 α (数学题里的阿尔法) 虽然看起来都是 A,但计算机显然把它们当成不同的字符来对待...(注:DNS 即域名解析,通过网站域名来指向网站服务器IP) 为了让 DNS服务器能看懂这些“方言”,许多浏览器用一种叫 punycode 的编码方式, 把一些奇奇怪怪的“地方语言”翻译成网络 DNS服务器能懂的英文字符...基于这种方法,宅客频道试了试,用几个俄文,似乎也能拼出一个 http:// таоьао.com (淘宝的远房表亲) ?...虽然上面的 таоьао 一看就能分辨出是假的,但全世界有几千种文字,就不怕挑不出来个长得像的。 ? 如何提防这种攻击? 宅客亲测,目前大部分国产浏览器是不存在该问题的,这是个令人欣喜的消息。...不过宅客频道建议,在访问一些重要的网站时,尽量用手动输入网址的方式访问,不要轻易点击超链接,因为你点进去的每一个网站都可能是假的,虽然看起来没问题。

1.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    重构 -- 我是一个类,难道我不配有专属的测试代码吗?

    这点我以前确实没想过 刚看到这个观点的时候,我是很不以为然的,谁让它标题不吸引人>>>《构建测试体系》 就这标题,谁不知道要测试啊。还好我没有“以貌取文”,我认真的看了下去。...每个类都配备测试代码,烦不烦啊你? 烦。但是项目run的时候爆了烦不烦?那会儿可就不是一个人烦了,那是一个团队一起烦。...就比方说上次我们服务器客户端对接测试一个项目,中间数据传输出问题了,好了,现在是谁的问题都不知道。。。 然后测试端也只能跟后边等着了。...这种问题其实完全可以避免,甚至可以不发生,只要给每个类配备一个测试代码。 写一个测试代码能花多少时间,十分钟,测试一下能花多少时间,十分钟。害怕测出问题?...行吧,我写,那怎么写啊? 怎么写那是个人自己的事情。但是,我想说的是,测试代码,最好写在功能类之前,这样可以预先界定功能类的具体功能,也可以把思路清晰一下。 至于测试代码要测试哪些东西?

    73940

    一个让我欲罢不能的 GitHub 开源项目!

    自 2015 年的千播大战至今,社交直播已经衍生出很多不同的玩法了。传统的简单 “你说我听”,已经再基础不过,又很难给观众带来 “刺激” 的形式了。...但问题是,实时音视频技术背后有非常多的坑,很难有一个人能从后端到前端自研出来一套直播系统。而通过调用不同的 API 来搭建是最佳的实践途径。...我们通过以下代码可以让用户加入 RTC 频道,实现音视频的互通。 func join(channel: String, token: String?...可以结合 FUClient 这个类的实现与 FaceUnity 的文档来集成美颜模块。...不论是想体验一下社交直播应用开发,还是想基于此做个自己的直播应用的童鞋,都可以去试试: GitHub 地址: https://github.com/AgoraIO-usecase/agoralive

    2.4K10

    ​我修复了一个 Vite Bug,让我的项目首屏性能提高了 25%

    充满好奇心的我,决定研究一下为什么 Vite.3.x 会有这么一个负优化,于是我仔细研究源码,最终发现了问题的根源,并给 Vite 提交了修复的代码图片大概测了一下,修复前的页面首屏时间为 1m06s,...图片知道问题之后,我们只要将 glob 的转换逻辑加上即可如何修复,这个过程就不细说了,因为也不需要关心了,说多了反而让文章更难理解。...,让浏览器重新拉取最新的 echart/coreVite 实际上会根据打包前后的 file hash,来决定是否需要刷新页面,如果所有依赖的构建前后文件 hash 没有被改变,则不会刷新页面,例如第二次构建...虽然是一个小小的 bug,但实际上过程是充满坎坷的,每一个小小的问题都能研究几天,但最后回顾起来,这个过程学到了很多收获还是非常大的。...如果这篇文章对您有所帮助,可以点赞加收藏,您的鼓励是我创作路上的最大的动力。

    1.4K31

    一个列表赋值的坑,让我懂了Python的对象机制

    一个诡异的现象揭秘背后的原理Python对象的分两类1. 可变对象(Mutable)2. 不可变对象(Immutable)3.关键区别如何创建真正的副本?1. 浅拷贝(shallow copy)2....简单来说: x 和 y 指向内存中的同一个列表对象 修改其中任何一个,都会影响到另一个! Python对象的分两类 1....不可变对象: 看似赋值传递引用 但修改时会创建新对象 不会影响原对象 特殊情况 - 元组包含可变对象: x = ([1, 2], 3) y = x y[0].append(4) print(x) #...([1, 2, 4], 3) # 虽然元组不可变,但其中的列表是可变的 ([1, 2, 4], 3) 如何创建真正的副本?...如果你想要一个完全独立的副本,有两种方法: 1. 浅拷贝(shallow copy) x = ['a','b','c'] y = x.copy() # 或使用 list(x) 2.

    4900

    爱人啊,我想带你去世界的任何一个地方--java篇

    女店员微笑着询问,“我们这里有能在水下自由活动的潜艇、在太空中尽情翱翔的飞船、在地下随意钻行的地下车……”   “呒……我只想要一个可以带我和妻子到任何地方去的东西。”...我一边试图理解他们的各种奇异产品,一边回答道。   “这样的话,我想您需要的是一种万能交通工具。”女店员很殷勤的帮助我出主意,“不过恐怕我们现有的单项产品无法满足您的要求。”   ...女店员看出我的不满,解释道,“为了您的安全,我们必须在各种可能遭遇的不同环境下对其进行测试。”   “这样啊。”我听了感觉他们做事很稳妥。想了想,又问:“最近听说,不久后人类将可以在多维空间中穿梭。...店员礼貌的报了一个价钱。我听了一扬眉毛并轻轻地打了一个口哨,然后便对她后面说明的什么数种分期付款、银行有减息政策之类的毫不感兴趣了,并慢慢地向门外退去。   ...终于退出了C的店门,我来到Java的门前,透过玻璃门向里面张望。一个头戴鸭舌帽,穿着蓝领白T恤衫的精神小伙子,忙开门把我迎入。我抬头看了他一眼,见到鸭舌帽上也印着那只咖啡杯。

    41530

    一个让我感到 细思极恐 的开源项目!

    大家好,我是小 G。 去年,一款角色扮演游戏在国内市场悄然崛起,并在年轻人群体中得到了广泛传播,它有着一个响当当的的名字,叫「剧本杀」。 剧本杀玩法非常简单。...国内一个开发者团队给出了答案,那就是:让人类跟 AI 展开剧本杀终极对决! 剧本杀:人类 VS AI 这个人类与 AI 共同参与的剧本杀,主要在微信上进行。...当一个 AI 学会玩弄权术的时候,它会变得有多足智多谋? 这里再给大家看几个例子,让大家看看 AI(蔡晓)是如何在这场游戏中,通过瞒天过海、美人计等各种计谋来暗度陈仓,运筹帷幄,左右人心的。...在面对一个对自己有好感的异性时,AI 会主动为自己设立一个脆弱、无助的小女孩角色,并向其他异性朋友求助。...对于一般开发者来说,想让 AI 实现这点,就必须先找到切实可行的 NLP(自然语言处理)技术方案。 上述剧本杀开源项目,作者所采用的,是目前国内最大的单体中文 NLP 模型:浪潮源 1.0。

    59120

    云游戏的一个“杀手级”特性让我相信它的未来

    但是,我想云游戏将有望改变“游戏机大战”的格局,我们可以从任天堂的 Switch 上看出这一点。而最终,以云游戏为核心的游戏世界,才是我们都应该拥抱的未来,它会让电子游戏的发展变得更好。...Netflix 竭尽全力让我的网络保持良好的连接,这就意味着把视频的质量降低到了让人无法直视的地步。即便如此,影片也会由于缓冲而暂停,就好像是在插播广告。...但光盘可以作为所有权的证明。 我的网速非常快(下行速率 750Mbps,上行速率 500Mbps),但即便有这样的网速,要想下载这些大型游戏也需要花很长时间。...不过,在我考虑这个问题之前,我必须确定我想卸载哪款现有的游戏,以便为新游戏腾出硬盘空间。我没有足够的硬盘空间再去下载了。...它们各有利弊,但云游戏就是这些公司将会持续投入的领域。 通过消除游戏最大的障碍之一——昂贵的硬件,让更多的人能够从中获益,玩更多的游戏。

    47920

    产品小姐姐让我做一个登录模块、我赶紧打开了自己的这篇文章

    SpringBoot整合Shiro完成用户认证 前言 最近在做一个管理系统,神奇的是最后发现登录模块竟然没有安排人去做(不得不吐槽一下公司的开发流程emm),好在这个管理系统是内部使用的,目前基本没什么用户...技术选型 第二天一大早我就开始考虑方案:脑海中的第一反应就是使用shiro来做权限认证,因为之前接触过shiro,但是不是自己开发的,而且开发完成后几乎没有过这方面的改动,因此自己对shiro也始终处于一知半解的程度...需求分析 由于时间紧迫、产品小姐姐对这块的要求也没那么严苛、跟我说只需要可以通过用户名+密码实现登录功能就完事了(其实是让我CV)。但是作为一条有梦想、有追求的程序员,怎么能甘心于此?...这样也不至于让后面接手的兄弟骂自己不是。于是我按照经典的五张表重新设计了这个需求。时间有限,准备先完成用户认证、动态菜单这两个功能。 表结构设计 趁着年轻还有头发、我赶紧设计出了如下的几张表。...,这里我通过其表现方式不同将其划分为了3大类,分别是目录(MENU)、功能按钮(FUNCTION)、页面跳转(FORWARD)。

    54120

    “我让 AI 写了一个 AI 的故事,又让另一个 AI 画出它”

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 前几天在 Hacker News 上的一则热帖有点意思,可谓极致套娃——“我让 AI 写了一个 AI 的故事,又让另一个 AI 画出它。”...,但随后与机器人成为朋友。”...一个机器人,就站在街道中间。 一开始我很害怕,但后来我意识到它没有任何做任何事。我走过去说:“嗨。”它转过头来对我说:“你好,人类。” 我很震惊。 我以前从来没有和机器人说过话。...未来关于 AI 道德的讨论还会继续,但拥有一个可以模仿人类思维的工具真的很疯狂。” @tikkun:“人工智能生成的内容和娱乐的未来将是疯狂的!我们还要多久才能拥有无限的高品质娱乐?...@turtledove:“这背后有多少尝试,又有多少人为的管理?每个‘我让 AI 做……’的故事似乎都忽略了“在选择这个好例子之前,过滤了多少垃圾。”

    51340

    一个hashCode问题的追问,差点让我陷入无底洞

    你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough...,但大家也都知道他是一把双刃剑,因为使用不好就有可能导致内存泄漏了 实际工作中我们都是使用线程池来管理线程 「具体请参考 我会手动创建线程,为什么要使用线程池」,这种方式可以让线程得到反复利用(故意不让...GC 回收), 现在,如果任何类创建了一个ThreadLocal变量,但没有显式地删除它,那么即使在web应用程序停止之后,该对象的副本仍将保留在工作线程中,从而阻止了该对象被垃圾收集,所以乱用也会导致内存泄漏...的右上角或当前类鼠标右键就可以点击运行查看了 运行起 VisualVM 就是这样子了 不要走,还没结束,在总结这篇文章的时候,我还发现了「新大陆」 HashCode 真是根据对象内存地址生成的?...到这里你也就应该知道了,如果你还想使用偏向锁,那最好重写 hashCode() 方法,避免使偏向锁失效 总结 为了解决群的这个问题,发现新大陆的同时也差点让我掉入【追问无底洞】,不过通过本文你应该了解内存溢出和内存泄漏的差别

    72040

    一个Bug,让我发现了Java界的.AJ(锥)!

    你的键盘里总是有很多被抓碎的头发! 但,哪怕是抓了这么头发,还是遇到了一个满脑子都是骚操作的小伙。傅哥,我的切面怎么拦截不到?...我是照着你的《SpringBoot 中间件设计和开发》专栏写的,你给我看看吧,我都弄了一天了 接下来我带着大家一起看看什么是快乐星球,他是怎么一顿骚操作让切面拦截不到的! 二、满脑子都是骚操作 1....接下来我把自己的工程里的 DoJoinPoint 拷贝过来粘贴进去,噗察一下贴进去了,没提示替换,虽然有报错但两个类能共存,如下: 这就神奇了哈,我当时怀疑是不它那 DoJoinPoint 不是一个正经...有看不见的特殊字符? 既然发现这个类不对,那行先删掉。让程序先跑起来,确保除了这个类其他的内容没有问题,这样也好排查问题。 还别说,去掉这个错误类,程序可以正常运行,拦截到切面内容了。...既然程序能跑了,我就想着这可以看看问题出在哪了,没想到就只打开个文件夹,就发现了一个神奇的AJ!这货压根就不是 Java 类! 3.

    42910

    我为什么要创建一个不能被实例化的类

    但如果有一天,你发现我写了这样一个类: class People: def say(self): print(f'我叫做:{self.name}') def __new...一个不能被初始化的类,有什么用? 这就要引入我们今天讨论的一种设计模式——混入(Mixins)。 Python 由于多继承的原因,可能会出现钻石继承[1]又叫菱形继承。...为了保留多继承的优点,但又摒除缺点,于是有了混入这种编程模式。 Mixins 是一个 Python 类,它只有方法,没有状态,不应该被初始化。它只能作为父类被继承。...每个 Mixins 类只有一个或者少数几个方法。不同的 Mixin 的方法互不重叠。...但是 在写 Mixins 类的时候,我们不会写__init__方法,也不会写类属性。并且 Mixin 类中的方法看起来更像是工具方法。 我们可以写很多个 Mixin 类,然后用一个子类去继承他们。

    3.4K10

    老板让只懂Java基本语法的我,基于AQS实现一个锁

    我:就是一个工具类是吧,嗯今天下午就给你吧 老板:嗯,那你抓紧时间搞吧,大家都等着用呢 我:哦好的 先写个框架 关于锁,我还算有一个模糊的认识的,要让使用者可以获取锁、释放锁,来实现多线程访问时的安全性...继续想,我怎么在这俩方法里实现这种锁的效果呢?...看来我需要用一个子类继承它,然后实现它指定的一些方法,其他的事情这个父类都会帮我做好的。...这个原理很容易理解,但这似乎用起来确实不太友好,怪不得老板那么生气。有没有办法,让同一个线程持有锁时,还能继续获取锁(可重入),只有当不同线程才互斥呢?...我希望 AQS 的给你的第一印象不是什么抽象的队列式同步器,而只是一个为了更方便实现各种锁而提供的一个包含几个模板方法的类而已,虽然并不准确,而且显得很 low,但实则可能恰恰是说到了本质。 7.

    28720

    一个让我耳目一新的数组去重方法

    tmp[item]) { result.push(item); tmp[item] = true; }}上面两种方法是最原始的去重方法了,现在基本不用了三、利用ES6的reduce方法去重...= Array.from(new Set(array))充分利用Set的不重复特性来达到去重的目的直到最近,我收到了某公众号推送的一条消息,标题叫“一个让面试官对你产生好感的数组去重方法”,点进去之后...,确实有让我耳目一新的感觉,废话不多说,先看代码const ary = array.filter((item, index, originArray) => { return originArray.indexOf...(item) === index;});看懂了代码后,第一感觉是,在我没全面使用es6之前,我怎么就不知道还有这个方法来去重。...这个方法充分利用了数组的indexOf方法的特点,那就是它永远只会返回第一个被查找元素的索引,那么,在filter方法中,非第一个的就会被过滤掉,真的不得不服有些人的举一反三的能力,有了这个方法,就算不适用

    23631

    客户一个无厘头的BUG ,让我的青春痘炸了2颗

    02 来看看我们的毛豆同学,公司上线的某款产品,客户反馈的是一个如何无厘头的BUG # 关键词:APP 登录页 手机号转义成中文 # 产品类型:某款 APP # 登录终端:iphone5E #...下面是用户录制的视频;很有意思;虽然是一个简单的小功能,但是我真的还是第一次,算是学习到了!所以投入话题中,接下来一起探讨。...04 我们来简单分析分析;首先用户只是输入手机号并未做点击获取验证码向后端发送请求的操作,也未点击任何其按钮;到这一步我个人看到这里基本把后端出现问题的可能性排除了; # 出现我脑海里 手机兼容性问题?...描述 该bug 客户重进多次手机百分百必现,然后前端校验只允许输入数字;然后用户都未触发登录,想从数据如何传入到数据库等方式去查看也行不通; 后来我咨询我身边的前端,说有可能是前端代码哪里写了该几个字,...点界面某个事件触发了;导致该问题出现,我心里想,如果是代码写了这几个字前后端开发不至于定位半天无果;需要客户不断的补充场景信息啊!

    49910

    老板让我5天完成一个百万级营销活动,我和我的团队做了4件事情

    在数字化营销的浪潮中,小程序已经崛起为品牌与消费者沟通的主要桥梁,平日精品秒杀、限时抢购活动形式丰富多样,以及双11、618等购物节带来的高频活动和巨大流量,技术团队必须快速、高效地支撑业务需求。...左右滑动查看图片 随着业务的不断深入扩展,技术团队面临问题复杂度越高,蒙牛集团技术团队就接到了这样的挑战,在面向全国用户推广「每天来运动」营销活动中,开发团队只有短短2周的时间来完成从启动到上线的全过程...,首先快速整合钉钉用户体系,此外还要对三方小程序进行快速改造,由于活动规划了高达数百万的奖金池和10万QPS的并发访问量,安全上还要防范黑产和黄牛的侵扰。...借助云开发平台导入外部标准身份源能力,开发者无需自行编写复杂的鉴权代码,更先进的安全标准协议也确保了用户数据的安全性。在支持多端同步和社交账号登录基础上,提升了用户体验,同时降低了应用的维护成本。...不仅帮助技术团队快速响应市场变化,还保障了用户体验的流畅性和安全性。 通过云开发,开发人员也能够专注于创新和优化用户体验,同时确保应用的稳定性和扩展性,为业务的快速发展提供强有力的技术支撑。

    11710

    一个三方依赖产生的漏洞,差点让我丢了本月绩效!!!

    起因 某天的早上我悠哉的来到了工位,吃起了早餐并接了一杯水,刚准备大干一场的时候,主管来了。 张口就是:小刘啊 你这个月的绩效要被扣没了啊! 我很是不解啊 难道我犯啥错了 上次忘了冲厕所?...刘总答曰:你上次更改的版本发布后 出现了一个漏洞 说罢丢了张图给我 我前思后想 后思前想 都没印象代码里有这东西 于是说: 刘总 这个不说百分之百 与我无关 至少百分之九十与我不搭边,这项目我刚参与...我先排查下 完了 给你答复。 刘总说: 好 那这个就交给你了,顺便把漏洞修复了 我找人事给你重新核算下绩效。 感觉有点不对啊 这大哥就是想让我改bug吧!!!!!! 算了 先看问题。...patch-package 可以理解为 为npm 插件 打一个补丁,这个补丁可以用于修改 node_modules 文件中的内容,且修复完成后 重新下载依赖不会被还原。...而我们并不知道那个文件中会存在 owen23355@gmail.com trash@rubaxa.org 我如果想知道 文件中是否存在 指定字符 我就要遍历这个文件夹的每一个文件 然后进行判断。

    1.7K30

    巴掌大的空间可以组成一个Jetson集群?让我来揭秘(2)

    今天继续带着大家揭秘Seeed公司这台可以插入4个Jetson NANO/NX模组的系统。 大家应该还记得这台系统的长相吧,巴掌大的空间可以组成一个Jetson集群?让我来揭秘(1) ?...今天的任务就是要试着把这台系统装起来,跑起来! ? 电源 首先第一个要解决电源供电的问题。要能带动4个模组,还是通过Type-C供电,到底是需要什么样子的电源呢?...市场上单独销售的Jetson NANO模组和Jetson Xavier NX模组,也就是自带16G eMMc都是支持的。 安装后是这个样子: ? ? 有开发者之前给我留言问是必须插入4个才能工作么?...接着需要生成一个SSHkey 先要在主节点上生成一个Key ssh-keygen 然后用下面这个指令复制到各个节点(包括主节点) ssh-copy-id 最后在主节点上生成一个集群文件...但是当我们将4个节点全部运行起来,同时让NX执行6份任务,每个NANO执行1份任务时候,花费时间是5秒。 ? 运行结果是这样子的。 ? 表明集群配置是成功的。

    1.4K20
    领券