首页 文章 精选 留言 我的

精选列表

搜索[AI编程],共10000篇文章
优秀的个人博客,低调大师

JetBrains 编程工具已准备好更新至 2023.2

IDE 系列的第二个年度更新现已发布,涵盖 IntelliJ IDEA、WebStorm、PyCharm、DataGrip、GoLand、DataSpell 以及 All Products Pack 订阅中包含的其他工具。请参阅下面的摘要并更深入地了解您感兴趣的产品的更多信息。 JetBrains IDE 2023.2 更新带来多项可以增强您的开发体验的改进。该版本添加了 GitLab 集成以简化开发工作流,允许开发者直接从 IDE 处理合并请求。 该版本还包括多项用户体验增强功能,例如 Search Everywhere(随处搜索)中的文本搜索、便于在打开的项目之间导航的彩色项目标题、Windows 和 Linux 主工具栏中重做的汉堡菜单,以及在 Project(项目)视图中按修改时间对文件排序。此外,2023.2 更新还包括用户界面改进和 bug 修正,旨在确保更流畅、更高效的开发体验。 此外,还有更多产品特定的更改: IntelliJ IDEA 2023.2 增强了对许多框架和技术的支持,包括 Kubernetes、Docker、Spring、GraphQL、HTTP 客户端、数据库工具等。提供了新 Java 语言检查和代码分析改进、增强的代码高亮显示和格式字符串导航、对 Javadoc 注释中 @snippet 标记的改进支持等。升级的 IntelliJ Profiler 现在具有编辑器内性能提示,可以通过在装订区域中提供易于解释的颜色编码注解增强分析体验。 WebStorm 2023.2 具有针对 JavaScript 和 TypeScript 的错误格式设置改进、CSS 嵌套支持、Vue 语言服务器 (Volar) 支持、稳定的新 UI、GitLab 集成、面向插件开发者的 LSP 支持等。 PyCharm 2023.2 充满精彩新功能!得益于 Django 表单、模型和视图的新实时模板,以及在 Endpoints(端点)工具窗口中处理 Django 端点的功能,处理 Django 项目的效率将有所提高。PyCharm 提供了开箱即用的 Black 格式化程序。使用新的 Run Anything(运行任何内容)工具可以快速创建和启动运行/调试配置、启动 Python 控制台和管理 Python 软件包。 DataGrip 2023.2 支持 Redis 集群,提供了与独立 Redis 相同的功能集。我们重做了架构迁移对话框,更直观地展示哪些对象将在迁移期间受到影响。我们还为数据编辑器和查看器添加了新的时区设置,并在 Redshift 中引入了对外部数据库和数据共享的支持。 GoLand 2023.2 提供了与 Go 模块的改进集成、用于在函数形参与方法接收器之间双向迁移的重构,以及对 errors.Is 和 errors.As 的支持。在此版本中,您还将发现全新的 GitLab 集成和 Kafka 插件。 CLion 2023.2 改进了低级、远程和嵌入式调试的体验,重新构想了 PlatformIO 集成,改进了对 vcpkg 的支持。 DataSpell 2023.2 引入了 Polars 支持、增强的表数据探索、改进的 UI 等。流行 DataFrame 库 Polars 现已集成到 DataSpell 中。此版本简化了数据探索,新 UI 将增强工作效率和个性化。此外,我们还为 Big Data Tools 和 Database Tools 插件添加了显著的工作效率和便利性增强,以及配置 Jupyter 托管服务器的功能,并改进了 DataSpell 与外部应用程序之间的同步。 Rider 2023.2 改进了对 C# 的支持,为处理局部函数和原始字符串以及解决常见 Entity Framework 问题提供了新检查。我们对 UI 做出了大量改进,最终确定了 IDE 时尚、现代且高度可自定义的新外观。Rider 的游戏开发再次获得提升,更新了 Unity 的 DOTS 功能,优化了 Unreal Engine 的蓝图索引。 PhpStorm 2023.2 包括针对 PHP 中泛型的改进、Laravel Pint 支持、对 PHP 断言的原生支持、GitLab 集成、Search Everywhere(随处搜索)中的文本搜索、针对插件开发者的 LSP 支持等。 RubyMine 2023.2 包含多种改进,例如 Ruby on Rails 项目中的 Turbo 代码补全、更新的 UI、性能增强、RBS 支持的新功能等。 .NET 工具和 VS 扩展程序 ReSharper 2023.2 中首次亮相的功能包括轻松创建和浏览单元测试,以及预测调试器模式。ReSharper 2023.2 和 Rider 2023.2 都改进了对 C# 的支持,为处理局部函数和原始字符串以及解决常见 Entity Framework 问题提供了新检查。 我们对 Rider 的 UI 做出了大量改进,最终确定了 IDE 的新外观,并已将其设为所有新用户的默认设置。Rider 2023.2 中的游戏开发再次获得提升,更新了 Unity 的 DOTS 功能,优化了 Unreal Engine 的蓝图索引。 ReSharper C++ 2023.2 添加了多项新的 C++20 和 C++23 功能,并引入了 Safe Delete(安全删除)重构,让您可以从源代码安全移除符号。 今天的文章就到这里了。我们希望这些更新能让您创造卓越软件的工作更加愉快并帮助您提高工作效率。 我们推荐使用免费的 Toolbox App 安装和升级您的 JetBrains 工具。如果您还没有使用,请下载应用来轻松管理您的开发者工具! JetBrains 团队 本博文英文原作者:Eugene Toporov 更多阅读推荐 新发布 IDE 新 UI 的这 5 个设计,用了就离不开! JetBrains Qodana:代码质量平台 JetBrains Aqua: 测试自动化 IDE Fleet 公共预览版 调研报告 2022 开发人员生态系统现状 Python 开发者年度调查 代码审查工具报告 Kotlin Multiplatform 使用现状 IDE 使用技巧 10个热门 IDE 主题推荐 帮助提升 IDE 性能的一些做法 IDE 中的“快速功能” 最被低估的快捷键| 比较任何内容 IdeaVim 技巧|代码注释 ⏬ 戳「阅读原文」了解更多 本文分享自微信公众号 - JetBrains(JetBrainsChina)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

责任链和策略设计模式-基于Java编程语言

作者:京东物流 钟磊 1 前言 最近在梳理接口逻辑的时候发现,代码中使用的策略和责任链设计模式给我留下了非常深刻的印象。一个业务逻辑流程通常非常适合使用责任链和策略设计模式来实现,因为一个业务需求通常可以拆分成一个个独立的逻辑处理单元并按顺序组合而成,而责任链设计模式可以很好的链接整个业务流程,同时策略设计模式可以将业务中变化的算法部分抽离出来,从而复用主要的公共逻辑并可以灵活替换业务算法,使用这两种设计模式可以灵活扩展我们的代码以适应不同的业务需求。由于这两种设计模式非常实用,下面简单介绍一下我对这两种设计模式的理解和它们在Spring框架源码中的应用。 2 责任链设计模式的一般定义 责任链设计模式是设计模式中的一种行为型设计模式。其基础结构类似于一个链条,整个链条由一个个单独的链环组成,每个链环在程序代码中就是一个独立的处理单元,每个处理单元都有自己负责的独特逻辑,当一个处理请求来到这个链条后,会依次沿着每个处理单元进行传递直到这个请求被处理完毕为止。 2.1 使用场景: 1.一个业务请求需要经过一组处理单元的处理。这种场景类似于一个业务逻辑流程中设置了多个功能不同的处理单元,一个业务请求需要经过这多个处理单元的串行处理。  2.程序中存在能处理同一个请求的多个处理单元,但决定具体使用哪个处理单元需要在程序运行时根据请求动态确定。  2.2 类图结构和Spring AOP框架中的应用 1:类图结构  2:责任链设计模式在Spring AOP框架中的应用 Spring框架中的AOP模块就使用了责任链设计模式将目标方法的一次调用过程包装成了一条方法调用链来增强目标方法。Spring AOP模块中包括了Before、After、AfterReturning、AfterThrowing、Around这五种通知方法,Spring AOP模块将这些通知方法和目标方法通过动态代理的方式包装成了一条调用链来分别履行各个通知模块的处理逻辑,下面是Spring AOP的源码分析图。  Spring AOP通过递归的方式来实现责任链的功能,首先将所有的通知方法进行排序,然后利用一个List索引来控制整个执行流程的开始和结束,在整个责任链中Before通知负责执行前置处理,After通知负责执行后置处理,AfterReturning方法负责在目标方法成功执行返回后执行处理逻辑,AfterThrowing方法负责在目标方法异常执行后执行处理逻辑。Spring AOP将通知方法包装成方法调用链上的每一个节点,巧妙地利用责任链模式完成了目标方法的处理增强。 3:泛化的责任链设计模式 在日常代码的编写中,责任链设计模式并不需要如此严格的结构,只要代码整体流程由一个个独立的处理单元构成,并且按一定顺序组合组合而成,那么也可以看作是一种更加泛化的责任链设计模式,也能很好的满足开闭原则,例如下面这种更加常用的代码结构。  上面这种结构同样也能实现责任链处理功能,也可以更加简洁的进行编写,同样可以很好的进修改和灵活扩展,在维护代码的适合也会更加清晰。 2.3 责任链模式的优点: 1.每个处理节点都有自己的独特的处理逻辑,明确各自在整个流程中的职责,符合类的单一职责原则。 2.构建的责任链可以根据业务需求进行灵活改变,能动态进行顺序调整以及动态插拔,满足重要的开闭原则。 3.降低了请求发送者以及请求处理者之间的耦合度。 3 策略设计模式的一般定义 策略设计模式同样也是设计模式中的一种行为型设计模式,其在结构上的表现就是将可变的算法策略部分从业务代码逻辑中独立出来,将这些算法策略形成策略池,从而可以随时替换和更新,使得我们的代码结构更加灵活、更易扩展。 3.1 使用场景 1:当代码需要根据上下文逻辑来选择使用不同的业务算法时,我们可以使用策略设计模式来优化代码的判断结构,从而避免大量的if/else分支判断。  2:当代码的主体处理逻辑大致相同,仅仅在部分的业务算法上存在不同时,可以将这些不同的业务算法抽离出来,从而能避免大量重复的代码编写,并能复用主体代码逻辑。  3.2 类图结构和Spring框架中的应用 1:类图结构  2:Spring框架中的应用 Spring框架中给我们开发者留下了非常多的扩展策略点,实现了可动态插拔的功能扩展,其中典型的一个策略扩展点就是BeanPostProcessor接口,BeanPostProcessor接口允许我们在Bean的初始化前和初始化后做一些逻辑处理策略来改变Bean的属性,允许我们对Bean进行改造和个性化,Spring AOP就是利用BeanPostProcessor这个策略扩展点实现了动态代理Bean的创建,下面是Spring AOP后置处理器的源码分析。  Spring AOP通过导入AspectJAwareAdvisorAutoProxyCreator这个实现了BeanPostProcessor接口的后置处理器,在Bean初始化后进行了一个动态代理类的创建,其在postProcessAfterInitaliztion方法中的WarpIfNecessary中方法中实现了代理类的创建。Spring框架利用这种模板加策略的设计模式让我们可以个性化扩展框架的功能,让框架变得非常灵活可扩展,我们也可以根据业务需求加入自己的BeanPostProcessor策略来实现自己的独特逻辑,很好地满足了重要的开闭设计原则。 3:泛化的策略设计模式 同样地我们也不必严格按照定义的策略设计模式进行编写,只要在整体上满足业务主体逻辑不变,将变化部分抽离出来,形成可以按需扩展的策略思想就行了,下面以SpringBoot自动装配的源码来说明这种更加泛化的策略模式。SpringBoot自动装配机制是按照用户当前的代码运行环境并结合@Conditional注解来动态为我们自动加载需要使用的类,这种策略设计模式是一种更加泛化的策略设计模式,同样满足策略设计模式的按需选择,动态插拔的设计原则。SpringBoot的自动装配机制的原理如下: ①SpringBoot在@EnableAutoConfiguration注解中使用了@import注解导入了EnableAutoConfigurationImportSelector类。  ②利用EnableAutoConfigurationImportSelector类的selectImports方法来加载jar包里面META-INF/spring.factories文件中配好的类。   ③最后结合各种@Conditional注解来实现按需加载的策略设计模式。  SpringBoot这种按需自动装配的策略设计思想,在结构上并不严格符合策略设计模式的结构,但他的整体设计思想非常符合策略设计模式,我们在项目中也可以通过配置文件的方式来灵活切换我们代码中使用的策略算法。 3.3 策略设计模式的优点: 1:可以在程序运行时动态选择切换需要使用的独立业务算法。 2:将可变的业务算法与业务主体逻辑剥离,实现更加灵活的维护和扩展。 3:满足开闭原则,无需修改原有的代码逻辑就能实现不同业务算法灵活切换。 4 结合策略设计模式和责任链设计模式 将策略设计模式和责任链设计模式进行结合就能形成灵活可扩展的流程结构,能应对多变的业务需求,下面是将两者进行结合的结构图。  一个request在经过每一个handler处理单元时,会根据request的上下文内容选择合适的策略进行处理,然后将这所有的handler串联起来形成完整的业务流程。 5 总结 在日常代码的编写中,业务需求的变化总是不定的,这样会导致我们的代码会频繁的随着需求的改变进行调整,稍加不注意的话就会导致我们的代码非常臃肿和复杂,累加到一定程度后会变得难以维护,这时预先使用合适的代码设计模式能有效的缓解这种情况,文中描述的责任链和策略设计模式能有效满足代码编写的开闭原则,能更加有效的应对随时变化的业务需求。

优秀的个人博客,低调大师

Luau 0.543 已发布,基于 Lua 的脚本编程语言

Luau(发音 /ˈlu.aʊ/)是一门快速、轻量、安全、采用渐进式类型化且支持嵌入的脚本语言,派生自 Lua,目前 Luau 0.543 发布了,该版本带来如下变更: 分析变化 提高类型检查稳定性 改进用于三向比较 (X < Y < Z) 的ComparisonPrecedence lint 建议 在解析无效类型注释时改进错误的位置信息 运行时更改 编译器无法再配置为生成字节码版本 2;未来版本中将删除对版本 2 的运行时支持 提高与 AArch64 上数字常量的比较性能 社区贡献 修复类定义中重载的元方法 #653 更新公告:https://github.com/Roblox/luau/releases/tag/0.543

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册