首页
学习
活动
专区
圈层
工具
发布

Redux 真的被高估了吗?我在大型项目中发现的真相

前阵子在修一个 bug,一个弹窗怎么都关不了。 我打开代码一看,吓到了。...我就在想:为什么一个简单的 UI 交互,要走这么复杂的流程? 后来我翻了翻项目代码,发现这不是个案。 真实的数据 我问过一个做中后台的哥们儿,他们项目 Redux 代码 3000+ 行。...我说,这里面有多少真的需要全局? 他想了想说:"也就 30%?其他的都是……下拉菜单、表单、弹窗这些东西。" 我又看了另一个项目。...但是……一般的 CRUD 应用、普通的中后台系统、小团队的项目? Redux 往往是过度设计。 一个真实的重构故事 我参与过一个电商平台的重构。原来是 Redux 全家桶。...很多项目在 Redux 里维护了一套"前端数据库"——把所有后端数据都缓存在 state 里。这带来了: 数据同步问题(前端改了,后端也改了,两边怎么保持一致?)

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

    反思我在管理中犯过的重大错误

    近一年来,我在管理中犯下的2个重要错误。该错误导致团队结构不清晰,骨干核心人员不稳定,易流失。...1、资源错配 2、逮着一个人疯狂用 目录 1、背景描述; 2、我是如何犯错的,以及我为什么犯错; 3、这两个错误带来了哪些影响; 4、规避和改进方式; 一、背景描述 成立3年的初创公司,10人编制的测试团队...组内结构划分可见下图所示: 二、我是如何犯错的,以及我为什么犯错 错误一:资源错配 对于组长的选择,以及组内骨干的选择,如下图所示: 其中标记为组长的,是在团队内部小组内被任命为小组长,标记为骨干的...两个业务小组中,初中级员工干中高级员工的活,中高级人员为相对边缘角色。这样的资源错配,直接引发了核心、骨干员工的离职率高的后果。 我为什么会这样做: 本质上是一个“谁能谁上”还是“谁上谁能”的问题。...如果一直干不了或者干不好,给于低绩效,并考虑让其离职换人; 2、核心人员要存在主备,中高级员工互为主备; 3、初级员工,如果发现悟性、态度、潜力都很好的,正常培养一个就好,且不用刻意去拉初级员工; 4、

    2.6K10

    利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误

    利用 ReSharper 自定义代码中的错误模式,在代码审查之前就发现并修改错误 发布于 2018-03-20 11:54...---- 预览效果 我们团队中自定义了一个代码风格规范,在单元测试中 Assert.AreEqual(foo.GetType(), typeof(Foo)); 应该被换成 Assert.IsInstanceOfType...当然,在“Custom Pattern”列表中也可以统一设置所有模式的警告级别。 ? 最后,把这些规则保存到团队共享中,那么所有安装了 ReSharper 的此项目的团队成员都将遵循这一套规则。 ?...它能够帮助我们发现一些潜在的错误。...于是,我们可以编写一个自定义模式来发现和修改这样的错误。 ? 你认为可以怎么写呢?我在下面给出了我的写法。你还可以发掘出更多的潜能吗?非常期待! ?

    2.4K00

    在 Python 脚本中处理错误

    在 Python 脚本中处理错误是确保程序稳健性的重要部分。通过处理错误,你可以防止程序因意外情况崩溃,并为用户提供有意义的错误消息。...以下是我在 Python 中处理错误的常见方法和一些最佳实践:1、问题背景当运行 pyblog.py 时,遇到了以下错误:Traceback (most recent call last): File...user can enable them at http://example.com/blogname/wp-admin/options-writing.php为了解决此问题,尝试使用以下代码来处理错误...但遇到了以下错误:Traceback (most recent call last): File "C:\Python26\Lib\SITE-P~1\PYTHON~1\pywin\framework\...记住在处理异常时,最好为用户提供有意义的错误消息,并在必要时记录异常信息以供后续分析。

    2.6K10

    我在赏金计划中发现的RACE条件漏洞

    在一个引人注目的案例中,FBI报告说,攻击者使用这种方法从位于加利福尼亚和内华达州的赌场通过现金提款自动柜员机从花旗银行窃取了超过100万美元。攻击者在60秒的时间内发送了几乎相同的查询。...正文: 我最近在Bug赏金计划中发现了RACE条件漏洞。 描述: 当设计为按特定顺序处理任务的计算系统被迫同时执行两个或多个操作时,就会发生条件竞争攻击。最终,应用程序被迫执行意外动作。...攻击场景: 在这个项目中,每个创建好的管理员在其团队中只能新增3个三个成员。 但是,我通过使用RACE条件竞争漏洞创建了4个团队成员。...我遵循的步骤是: 1.单击添加团队成员按钮发出请求并使用burp捕获该请求 ? 2.” 邮件和姓名”将会作为被攻击字段以利用条件竞争漏洞。...4.现在,在intruder选项中单击“attack”。 5.Burp将在点击的一瞬间向服务器发送请求。由于存在RACE条件竞争漏洞,我成功地添加了4个团队成员。现在,我的团队中共有4位团队成员。

    69610

    我在软件工程师生涯中犯下的七个错误

    和其他人一样,我在这条职业道路上也犯过不少错误。一般来说,我不会在犯错的当时就意识到自己做错了什么事情;我往往是在接触了正确的做事方式之后才知道自己之前的路走岔了。...这个观点是错误的。 文档往往是陈旧、过时或完全错误的东西。我曾花了很多时间来给我的代码编写文档(还是 XML 文档,还记得吗?),结果只是发现每当我更改代码时都需要更新文档才行。...我本可以通过编写自动化脚本来真正“节约”一些时间,但是我浪费在修复每个错误和支持其他人上的时间比我可以“节约”的时间要多很多倍。你的软件应该支持一键构建;需要的操作再多一点都是浪费时间。...而且 Visual Studio 是如此强大,以至于人们可以轻松地一步步检查代码并即时检查代码中的值。但是,如果你沉迷在调试器里面,它就会带来害处。...曾经有一段时间,我害怕对我的代码进行哪怕是最轻微的修改,因为任何更改都可能会,也可能不会导致破坏性更改。有几次,一个神秘的问题突然冒出来,追究其根本原因却发现是我几个月前引入的一个重大更改。

    1.1K10

    JavaScript中错误正确处理方式,你用对了吗?

    ,并且很难发现。...隐藏的错误可能会花费好几个小时的调试时间。尤其是在具有深度调用堆栈的多层解决方案中,这个错误会更难发现。所以这是一种很差的错误处理方式。 错误处理(二) 下面是另一个错误处理方式。...代码库可以从try...catch块中释放出来,这也使得调试变得容易。在JavaScript中,把错误处理当作事件处理很重要。...通过日志可以清楚的看到,具体什么情况触发了什么错误。在调试时调用堆栈也会非常有用,所以不要低估调用堆栈的作用。 在JavaScript中,错误信息仅适用于单个域。...结论 在进行错误处理时,不要隐藏问题,而应该及时发现问题,并采用各种方法追溯问题的根源以便解决问题。

    1K10

    在Vue中,为什么在回调函数中this会指向错误?

    在Vue中,回调函数里的this指向出错,是JavaScript自身this动态绑定机制造成的,并非Vue的问题。...下面详细解释具体缘由以及解决办法: 一、JavaScript里this的绑定规则 在JavaScript中,函数里this的指向由函数的调用方式决定,而非定义位置。...二、Vue组件里回调函数的问题 在Vue组件中,虽然组件方法的this默认指向组件实例(遵循方法调用的规则,例如this.foo()中的this指向组件),但在以下这些回调场景中,this的指向会发生改变...三、解决Vue中this指向错误的方法 1. 使用箭头函数(最推荐) 箭头函数会捕获其定义时的上下文的this值,这样就能保证在回调中使用的this是Vue组件实例。...-- handleClick中的this指向组件 --> 总结 在Vue中,回调函数里this指向错误的根本原因是JavaScript的this绑定机制。

    32610

    我在Github上发现了一个好东西!

    一直以来,我都很想深入学习一下数据库。我这个人学东西,如果只知其然而不知其所以然是非常难受的,啥都想去了解下背后的原理,学编程语言是这样,学操作系统也是这样。...因为每条数据都是32个字节,所以可以非常方便定位任意一条数据的位置:第n条数据的位置在32*(n-1)偏移处。...但如果,我们在每条数据记录中增加一些额外的信息,用来指示id比它小的在哪里,id比它大的又在哪里,是不是就能顺着这些额外的信息“顺藤摸瓜”找到你要找的数据呢?...而每一次走入一个分支,就对应着一次文件I/O,所以在实际使用中,不会使用二叉树,而是使用开了非常多个叉的树——B树或者B+树。...如果用B树或者B+树来将文件中的数据在逻辑上组织起来,要查找数据就会快得多。 用id来查找数据问题解决了,但如果要用name来查找又该怎么办呢?

    69430

    使用Jupyter和Prodigy发现文本分类中的错误标签

    使用Jupyter和Prodigy发现文本分类中的错误标签Prodigy是由spaCy开发团队打造的现代化数据标注工具,专门用于收集机器学习模型的训练数据。...本视频将展示如何设置Prodigy来发现文本分类任务中的错误标签。虽然这些技术主要应用于文本分类,但它们同样适用于一般的分类任务。...章节内容错误标签 (0:00)谷歌情绪数据集 (3:03)启发式方法 (7:46)Jupyter环境应用 (9:12)错误标签检测模型 (12:16)Jupyter实践 (15:26)嵌入技巧 (21:...官方网站和文档谷歌情绪研究论文Whatlies嵌入可视化项目Doubtlab可疑标签检测库技术要点通过结合Jupyter Notebook的灵活性和Prodigy的专业标注功能,可以系统性地识别和修正训练数据中的错误标签

    10710

    我在ThoughtWorks中的敏捷实践

    而Story本身存在错误并不在讨论范围之内。实际上在开发过程中,也未发生过这种情况,因为一旦客户的需求变更后,Story卡也会及时变更过来。...我比较推荐DEV在kick off后将Story划分成子任务列表,按照依赖关系和优先级排序,逐个干掉他们。...看看有没有新的代码坏味道,看看有什么不合理的设计甚至是错误的设计,等等。...另一方面,如果这个时候发现代码的坏味道,需要改进的地方,下班后可以花少量时间作出更改。...如若客户觉得每两周一次过于频繁,团队可以变通调整迭代周期,通常建议的是1~4周,不宜太长,太短也没什么效果,至于如何权衡这个时间,有两点可以参考: 在探索中找到适合团队的迭代周期,如果发现每个迭代时间不够用

    3.7K30

    使用 mDNS 在局域网中轻松发现系统

    mDNS(多播 DNSMulticast DNS)允许系统在局域网中广播查询其他资源的名称。Fedora 用户经常在没有复杂名称服务的路由器上接有多个 Linux 系统。...在两个系统中执行同样的步骤 。 设置主机名并测试 现在你已完成常见的配置工作,请使用以下方法之一设置每个主机的名称: 如果你正在使用 Fedora Workstation,你可以使用这个步骤。...在第一台机器上这么做:$ hostnamectl set-hostname castor。...如果你在 pollux ping castor.local,同样的技巧也适用。现在在网络中访问你的系统更方便了! 此外,如果你的路由器也支持这个服务,请不要感到惊讶。...但是,如果遇到麻烦,请使用 avahi-browse 和 avahi-tools 软件包中的其他工具来查看可用的服务。

    4K10

    我在机缘巧合下发现豆瓣主站存储型XSS

    作者;南方有梦 圈子内的小大佬,叮咚信安核心成员,目前正在面壁思过中 0x00 缘起 2/19晚上十点左右,我在这一天”忙碌”的网课生活中解放出来。...因为傍晚挖到联想的漏洞,想着既然它们在漏洞盒子有项目那么应该有自己的应急响应平台吧。 然后我尝试百度:联想应急响应 我一个个的打开,当我打开豆瓣的网站时。...0x01 XSS因 我开始挖掘这个xss是如何产生的,一个快捷键:Ctrl + U打开了前端源代码查看 因为xss的弹窗无非就是alert(),confirm()和prompt() 我就本着习惯先去查看了...alert 很快就找到了罪魁语句: 然后我回到前端,查看是哪个用户插入的语句 开启我的F12,装逼功能(当然不是修改页面哈...) 找到了真正的大佬 0x02 XSS果 我也满足一下自己的b格,给自己弹了一个b话十足的句子 于是呢,我就想着去xsspt创建项目,这样有人打开我就能梭哈一波了。

    30520

    AI智能体在药物发现中的应用概述

    AI智能体正成为药物发现领域的变革性工具,能够在复杂的研究流程中自主推理、执行任务并持续学习。...更重要的是,它们无法在药物发现这种复杂且高度耦合的工作流中自主协调多步骤推理与决策。 近期兴起的一类新方法,AI智能体(agentic AI)有望突破这些限制(图1)。...图4 AI智能体系统中的记忆与外部集成 AI智能体加速药物发现应用 用于分子优选的综合文献分析 在临床前药物发现中,从大型分子数据集中进行全面文献分析是一项繁琐且耗时的任务。...在药物重定位中,传统发现方法依赖交叉参考异构数据集,以发掘市场上已有药物的潜在新疗法。然而,手动交叉参考既耗时又消耗资源,同时容易遗漏隐藏在生物学和化学数据集中的某些关联。...本研究展示了AI智能体系统在药物发现流程中的多种应用,从文献综述、毒性预测到自动化实验流程生成及端到端决策制定。

    50410

    在错误分析中并行多个想法

    我通常会创建一个表格,查看100个分类错误的开发集样本并记录在表格上,同时进行注释。用有小开发集里的4个错误分类样本来说明这个过程,你的表格大概将会是下面的样子: ?...表格中Image3的Great cat和Blurry列都被勾选了:可以将一个样本与多个类别相关联, 这就是为什么最后的百分比加起来不足100%的原因。...虽然我已经将这个过程首先描述为类别分类(Dog, Great cat, Blurry), 然后查看样例对他们进行分类。实际中,当你查看样例时,可能会受到启发,然后提出一些新的错误类别。...例如,当你查看过十几张图像后,你发现许多错误都经过Instagram(一款美图软件)的滤镜处理。你可以在表格中添加一列Instagram,看看图像是否被滤镜处理过。...错误分析并不会得出一个明确的数学公式来告诉你最应该先处理哪个问题。你还必须考虑在不同错误类别上取得的进展,以及每个错误类别所需的工作量。

    2.1K10
    领券