首页 文章 精选 留言 我的

精选列表

搜索[多语言适配],共10000篇文章
优秀的个人博客,低调大师

搜狗输入法 Linux - V2.3 版发布,完美适配优麒麟 19.10

昨天已发布优麒麟操作系统 19.10 版本,该版本集成了全新的控制面板和软件商店,不知道大家是否已下载体验。今天小编要为大家介绍一下随系统发布的搜狗输入法 Linux-V2.3 新版本。如果你是一位长期使用五笔打字的用户,那这对你来说无疑是一个再好不过的消息。 搜狗输入法 Linux 版由优麒麟团队与搜狗公司联合开发,本次新版本研发历时一年半,是目前为止跨度最大的一个版本,新增五笔输入、符号大全等功能,并基于优麒麟 19.04 和 19.10 版本持续进行优化和大量 bug 修复工作,目前在优麒麟系统上的运行效果、稳定性已和 Windows 上完全一致。 在优麒麟19.10上使用搜狗输入法 1)进入系统后,可通过通知区域右键或 Ctrl+Shift 键切换至搜狗拼音/五笔输入法。 2)通过搜狗拼音输入法图标右键菜单,更换输入法皮肤。 3)通过搜狗拼音输入法图标右键菜单,设置输入法。 4)通过搜狗五笔输入法图标右键菜单,打开符号大全。 本次发布主要特性有: 新增五笔输入法; 新增符号大全功能; 新增跨 Windows、Linux 平台离线词库导入、导出、清空功能; 修复用户输入特定词崩溃问题以及大量 bug; 已知问题:Ubuntu 19.04 上 qq 和微信无法登录问题需要升级qt库到4:4.8.7+dfsg-7ubuntu3。 搜狗输入法最新版已提前集成到优麒麟最新版 19.10 中,可直接下载镜像安装http://www.ubuntukylin.com/downloads/进行体验;其他Linux系统用户可单独点击 https://pinyin.sogou.com/linux/ 或https://www.ubuntukylin.com/applications/39-cn.html下载搜狗输入法安装。

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

服务端接口自动化测试工具大全及适配环境解析

在互联网时代,服务端测试已经成为一个重要的产品保障手段,各对此公司实施的方法和技术也不同,本文我们就来讨论一下。 互联网服务端接口自动化是各个公司都需要一部分业务,如何快速高效地完成接口测试呢? 以帮助大家实现高效的接口测试为出发点,本文包含了我在互联网接口测试领域的一些方法和心得,希望大家一起讨论和分享,内容包括但不仅限于: 互联网服务端接口测试介绍; 接口测试常用的工具、平台、框架; 接口测试的一些问题和实践。 下图是经典的测试金字塔,服务接口测试在中部,承上启下,由此可见其重要性。 互联网服务端接口测试介绍 目前市场上有很多支持接口测试的工具,能够提高测试效率。但是让你一天完成100个接口测试任务,你觉得可能吗? 你可能会说有工具就行,但不是所有工具都能支持你完成这个任务。下图是我挑选的几款工具: 1. fiddler fiddler是一个 HTTP 协议调试代理工具,Web和手机测试都会用到,同时也支持接口测试。后面我会专门介绍。 2. postman 它是 Google 开发的一个插件,安装在 Chrome 浏览器上,能支持不同接口测试请求,可以管理测试套件和自动化运行。弱点是自动化断言功能不强大,不能和 Jenkins、代码管理库进行持续集成测试。 但是,它绝对是一个很好的半手工、半自动化测试工具。我一般在写自动化接口测试用例,会打开 postman 进行辅助测试和 Debug,下文会有介绍。 3. wireshak 这是一款抓包工具,支持 TCP、UDP、HTTP 。如果做底层网络数据测试,一般都需要用到它,但是用作接口测试,它就有点不友好。因为刷新数据太快,不好定位每个操作对应的接口。所以,在这里就不过多介绍该工具。 4. soupUI 这是一款提供有开源免费版和企业收费版的软件。在国外的接口测试中,使用较多。该工具能够支持接口自动化测试和接口性能测试,也支持和 Jenkins 做持续集成测试。了解一下就可以,可以下载一个社区免费版,做一个 Demo 试试。 5. Java 代码做接口测试 为什么要用代码做接口自动化测试呢?一些工具功能是有限制,很多公司需要一些特定的功能,工具不支持,只好用代码进行开发。一般用 Java 做自动化测试,主要利用 httpclient.jar 包,然后利用 JUnit 或者 TestNG 这样的单元测试工具,进行测试用例的开发,接着在 Jenkins 上创建一个 job,进行持续集成测试。 6. Python 代码做接口测试 和 Java 一样,用 Python 做接口测试,可以利用一个功能强大的第三方库 Requests,它能方便地创建接口自动化用例。Python 下的单元测试框架,一般采用unittest。生成测试报告,一般选择 HTMLTestRunner.py。同样,可以结合 Jenkins 做持续集成测试。 7. LoadRunner 不要以为 LoadRunner 只能做性能测试,它同样可以做接口自动化和接口压力测试。只是我们很多人,不会利用 LoadRunner 的函数,设计接口测试用例。 8. JMeter JMeter 同 LoadRunner 一样,都以性能测试出名,一般用 JMeter 也是做接口性能测试。例如 Java+Jmeter+Ant+Jenkins 做接口性能监听测试。JMeter 如何做接口测试,可以查阅官方文档和 CSDN 博客专栏《JMeter 性能测试》。 上面说了这么多工具,基本覆盖了接口功能测试、接口自动化测试、接口性能测试。这里提一下,推荐 Python 语言下的一个性能测试工具 Locust。自己百度并安装下,很简单的 Web 界面,作为一个轻量级的协程测试工具,感觉很不错。 服务端测试也应该具备一些计算机基础知识的能力,例如下面几个领域的知识。 操作系统和网络 互联网里最大的应用场景就是高并发、高可用、高性能的线上服务,做这类系统实际上考验的是我们对操作系统和网络的理解。任何一个系统最后都是运行在操作系统之上的,也都运行在网络之上的,包括分布式系统,所以,需要在操作系统和网络上一定要有较深的造诣,尤其是高并发和高性能。 如果对操作系统原理一无所知,基本很难理解什么是并发和锁,很难理解高性能用什么指标来衡量,以及怎么实现高并发、高可用和高性能。 对于操作系统,我们必须了解 CPU 的多核体系结构、内存分页和缓存技术、磁盘 IO 的优略和网卡 IO 的情况,并且要理解计算机的工作原理,会根据这些指标粗略评估服务能够输出的性能。 对于网络,必须理解理论上定义的7层模型,了解 TCP/IP 的三次握手。另外我们在分布式服务架构中多数使用应用层的HTTP协议,所以还需要对 HTTP 协议有很深刻的理解。 算法和数据结构 应用层面的小伙伴们可能对算法和数据结构的应用比较少,即使有应用也比较简单,但是算法能力代表了一个人的逻辑思维和思考能力,能把各种基础算法理解的人智商都不会低,能够把程序写好的人逻辑思维一定很强。 一般在面试小伙伴的时候,我都会考察一下他会不会高级算法,例如递归、剪枝、贪婪、动态规划。仔细想一下就会知道,会动态规划的人,他不是勤奋的就是聪明的,无论哪一样,你都有录取他的冲动。 线上高并发服务方向 线上高并发服务是个强需求,无论你开发哪类应用和网站,线上服务都是必须的,有了服务才有了功能,才有了产品,我也主要从事互联网后台高并发服务的设计与实现。 解决高并发服务其实并没有那么难,这些年高并发服务的技术栈也已经没有了门槛,只要投入足够的成本,构建可伸缩的服务不是问题,达到多大的 TPS 也都不是问题,核心思想就是“分而治之,大而化下,小而化了”。 我们使用的缓存抗读、消息队列抗写、数据库分库分表、缓存分片、应用层伸缩、减少竞争、7层负载均衡、三四层负载均衡等,以及 CDN、DNS 轮训等等,这一切都是“分而治之”的思想。 大数据方向 大数据是最近比较火的方向,大小公司都在使用大数据技术。大公司使用大数据分析技术从众多数据中分析出业务模型,得出有价值的结果,来帮助企业制定市场和销售策略,中小公司多数使用大数据出报表和做风控等。 所有的大数据技术的根基都来自 Mapreduce、GFS 和 Bigtable 这三篇论文,推荐大家阅读这些论文: MapReduce: Simplifed Data Processing on Large Clusters The Google File System Bigtable: A Distributed Storage System for Structured Data 理解了这些基础技术原理,再去学习 Hadoop、HBase、Storm、Spark、Cassandra、MongoDB、ES 等都不是问题。 接口测试常用的工具、平台、框架 自动化测试可以快速自动完成大量测试用例,节约巨大的人工测试成本;同时需要拥有专业开发技能的人才能完成开发,且需要大量时间进行维护(在需求经常变化的情况下),所以大部分具有很好开发技能的人员不是很愿意编写自动化用例。但由于软件规模的高速增长,人力资源的逐步稀缺,自动化测试已是势在必行。 下面是我精选的8个 Java 测试工具和框架。 1. Arquillian Arquillian是一个基于 JVM 高度创新性和可扩展的测试平台,允许 Java 开发人员轻松创建自动化集成、功能和验收测试。Arquillian 允许在运行时间执行测试。可以用来管理单个或多个容器的生命周期,捆扎测试用例、从属类和资源。它还能够部署归档到容器中,在容器中执行测试、捕获结果,并创建报告。它集成了常见的测试框架,如 JUnit 4、TestNG 5,并允许使用现有的 IDE 发布测试,并且由于模块化的设计使其能够运行 Ant 和 Maven 测试插件。 2. JTest JTest也被称为“Parasoft JTest”,是一款由 Parasoft 公司推出的自动化 Java 软件测试和静态分析软件。JTest包含的功能有:单元测试情况下的生成和执行、静态代码分析、数据流的静态分析、度量分析、回归测试、运行时错误检测。此外,它还具备了同行代码审查流程自动化和运行时错误检测的功能,如竞态条件、异常、资源和内存泄漏、安全漏洞攻击。 3. The Grinder The Grinder是一个 Java 负载测试框架,运行简单,且其分布式测试采用了许多负载注入机器。只要有 Java API,The Grinder 就可以进行负载测试。这包括 HTTP Web 服务器、SOAP 和 REST Web 服务器、应用程序服务器,以及用强大的 Jython 和 Clojure 语言写的包含了自定义协议的测试脚本。 The Grinder 的 GUI 控制台允许对多个负载注射器进行监测和控制,并自动管理客户端连接和 Cookies、SSL、代理感知和节流连接。 The Grinder 在 BSD 风格的开源许可下是免费的。 官方网站:Downloading The Grinder 4. TestNG TestNG是一款为 Java 编程语言设计的测试框架,灵感来自于 JUnit 和 NUnit。TestNG 可覆盖范围更广的测试类型,如单元、功能性、端到端、一体化等。它还有一些新的功能,可以使之更强大和更容易使用,如注解、具备大型线程池各种策略的运行测试、多线程的代码测试、灵活的测试配置、参数化数据驱动的测试支持等等。TestNG 支持各种各样的工具和插件,比如 Eclipse、IDEA、Maven 等等。 5. JUnit JUnit是一个为 Java 编程语言设计的单元测试框架。JUnit 为测试驱动开发框架的发展发挥了重要作用。它是现在被统称为 xUnit 的单元测试框架大家庭的组成成员之一,源于 SUnit。在编译时,JUnit 可以连接作为 JAR,用于编写可重复的测试。 6. Powermock PowerMock是一款支持单元测试源代码的 Java 框架。虽然 PowerMock 可以作为 Mocking 框架,例如作为 Mockito 和 EasyMock 的扩展而运行,但它还具备更强大的能力。PowerMock 利用自定义的类加载器和字节码操纵器,来确保静态方法的模拟、静态初始化的删除、函数构造、最终的类和方法以及私有方法。它的主要目的是通过最少的方法和注释来扩展现有的 API,以获得额外的功能。 7. Cucumber Cucumber是 BDD 模式下实现可执行规范(Executable Specifications)的开源工具,但是它的使命并不局限于做自动化验收测试,更加重要的在于其能够在团队成员之间构建统一的交流基础(feature 文件)、规范交流用语(Domain Specific Language)、提高各个利益相关方(Business Stakeholders)沟通效率和效果,从而达到提升产品质量、做出客户期望得到的产品这一最终目标。 8. Python Unittest Python 单元测试框架 Unittest,是基于 Java 中流行单元测试框架 JUnit 设计的,其功能强大且灵活,对于熟悉 JUnit 的人来说,掌握 Unittest 很简单。 Unittest 涉及的知识点较多,但核心的只有一部分,本文将介绍它最核心和基础的内容。 类似 JUnit,使用 Unittest 编写 Python 的单元测试代码,包括如下几个步骤: 编写一个 Python 类,继承 Unittest 模块中的 TestCase 类,这就是一个测试类。 在上面编写的测试类中定义测试方法(这个就是指的测试用例),每个方法的方法名要求以 test 打头,没有额外的参数。在该测试方法中调用被测试代码,校验测试结果,TestCase 类中提供了很多标准的校验方法,如最常见的 assertEqual。 执行 unittest.main() ,该函数会负责运行测试,它会实例化所有 TestCase 的子类,并运行其中所有以 test 打头的方法。 以下是Python Unittest 测试用例执行的关系图。 我们下面看一些例子,编写如下的 Python文件。 (1)手工加载批量用例。 import unittestclass TestOne(unittest.TestCase): def setUp(self): print '\ncases before' pass def test_add(self): '''test add method''' print 'add...' a = 3 + 4 b = 7 self.assertEqual(a, b) def test_sub(self): '''test sub method''' print 'sub...' a = 10 - 5 b = 5 self.assertEqual(a, b) def tearDown(self): print 'case after' passif __name__ == '__main__': # 1、构造用例集 suite = unittest.TestSuite() # 2、执行顺序是安加载顺序:先执行test_sub,再执行test_add suite.addTest(TestOne("test_sub")) suite.addTest(TestOne("test_add")) # 3、实例化runner类 runner = unittest.TextTestRunner() # 4、执行测试 runner.run(suite) (2)自动加载批量用例。 import unittestimport osclass TestOne(unittest.TestCase): def setUp(self): print '\ncases before' pass def test_add(self): '''test add method''' print 'add...' a = 3 + 4 b = 7 self.assertEqual(a, b) def test_sub(self): '''test sub method''' print 'sub...' a = 10 - 5 b = 5 self.assertEqual(a, b) def tearDown(self): print 'case after' passif __name__ == '__main__': # 1、设置待执行用例的目录 test_dir = os.path.join(os.getcwd()) # 2、自动搜索指定目录下的cas,构造测试集,执行顺序是命名顺序:先执行test_add,再执行test_sub discover = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py') # 实例化TextTestRunner类 runner = unittest.TextTestRunner() # 使用run()方法运行测试套件(即运行测试套件中的所有用例) runner.run(discover) 接口测试的一些问题和实践 以 TestNG 为例,它是一套根据 JUnit 和 NUnit 思想而构建的利用注释来强化测试功能的一个测试框架。TestNG 设计涵盖所有类型的测试,如单元、功能、端到端、集成等。学习 TestNG 之前需要先学习编程语言 Java、配置本地 JDK 环境(JDK1.5 版本或以上)和安装 Java 开发工具 Eclipse。 接下来,我们一起来学习 TestNG。 1. 在 Eclipse 中安装 TestNG。 打开 Eclipse Help -> MarketPlace,在搜索框里面输入 TestNG 搜索,然后安装 TestNG 插件。 2. 安装成功后,在项目的 package 上右键可以看到 TestNG -> Create TestNG class。 这里可以勾选 TestNG 的注解方法,主要注解方式有: @BeforeSuite:被此注解的方法将在所有测试运行之前运行该方法。 @AfterSuite:被此注解的方法将在所有测试运行之后运行该方法。 @BeforeTest:被此注解的方法,将在测试运行之前运行。 @AfterTest:被此注解的方法,将在测试运行之后运行。 @BeforeClass:被此注解的方法,将在当前类的第一个测试方法调用之前运行。 @AfterClass:被此注解的方法,将在当前类的所有测试方法调用之后运行。 @BeforeMethod:被此注解的方法,将在每个测试方法调用之前运行。 @AfterMethod:被此注解的方法,将在每个测试方法调用之后运行。 @DataProvider:标志着一个方法,提供数据的一个测试方法。 至此环境搭建完成,可以开始写测试的 case 了。 3. 从一个简单的测试 case 开始入手,代码如下: package com.pingan.ff.zijin;import org.testng.annotations.Test;import org.testng.annotations.DataProvider;import org.testng.annotations.BeforeTest;import org.testng.annotations.AfterTest;public class NewTest { @Test(dataProvider = "dp") public void f(Integer n, String s) { System.out.println("第一个参数是"+n+",第二个参数是"+s); } @DataProvider public Object[][] dp() { return new Object[][] { new Object[] { 1, "a" }, new Object[] { 2, "b" }, }; } @BeforeTest public void beforeTest() { System.out.println("------------开始测试------------"); } @AfterTest public void afterTest() { System.out.println("------------结束测试------------"); } } 右键 Run As -> TestNG Test,运行后结果如下图所示。 从测试的结果可以看到执行的顺序是 beforeTest() -> Test() -> afterTest(),同时 Test() 方法从 dataProvider dp 里面接收参数。如下图所示。 转自公众号:CSDN技术头条 作者:SoftwareLuke 链接地址:https://mp.weixin.qq.com/s?__biz=MzA4Mzc0NjkwNA==&mid=2650784584&idx=1&sn=934fbedff493e622671ef93f6f97cc46&chksm=87faaa7fb08d2369822f988cf8080f285cf2abc50524c9662d96b71140617e3235ae9955adae&mpshare=1&scene=23&srcid=0327GWQGY3J7WLUuOrAOVaHC%23rd

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

Android 5.0 到 Android 6.0 + 的深坑之一 之 .so 动态库的适配

(原创:http://www.cnblogs.com/linguanh) 目录: 前序 一,问题描述 二,为何会如此"无情"? 三,目前存在该问题的知名SDK 四,解决方案,1 对 N 前序: 嫌无聊的请跳过。上次发博文是同年8月,时光荏苒,空闲时间少,现在都接近年关了,其实这4个月学了很多,接触了IM(非第三方),学习了 golang 并采用它成功完成仿朋友圈页面的服务端api,等等..等等..,由于这个问题的确是业界超级"毒瘤",趁午休时间,尽我程序员的"干货"思维,少废话,尽通俗。 码字发文。 一,问题描述 先简单阐述下几个概念,这些不是重点。 1,Android 编译时候的 api 版本,指的是你要生成的这个 apk 所依赖的 sdk 版本,例如 api 23 即是 Android 6.0 ; 2,.so 动态链接库,为 Linux 下的库文件,Windows 是 .dll,Android 是基于 Linux 内核的,所以使用的是 .so,在安卓上面,一般由 C/C++ 语言进行 Jni 编程后,采用 NDK 工具编译后所生成的,可以参考下我之前的一篇教程博文:http://www.cnblogs.com/linguanh/p/4624768.html 3,.so的作用,主要是提供系统底层函数,供应用层使用。不用它行不?可以,在Android已经提供了的情况下,你不需要再自己添加,例如一个 View 的绘制,里面都有很多 Native 关键词的函数,这个就是底层函数,Android api 对应的是它已经提供了。那么如果,你老板要去实现,语音,图像,视频处理等系统没有的功能,你就只能自己写 .so 来供调用了。 问题来了: 发生的环境:此类问题一般发生在 Android 6.0 及其以上的系统,具体也存在于其他的 api 版本,主要集中在 api >=23; 具体表现是:同一个 APP 在 api <=22 的 sdk 情况下编译,可以运行正常,不存在闪退或者 .so 库加载失败的情况,当你采用 api >=23 的sdk 编译的时候,安装到 Android 6.0 及其以上的手机的时候,大范围出现崩溃 或者 .so 库加载失败,而在 6.0 以下的手机却正常; Catch的信息:dlopen failed: cannot locate symbol "XXXX" xxxx.so, XX 是泛配,此类崩溃信息,你完全可以对号入我"座"。 二,为何如此无情? 如果只为解决问题,可以不看这部分。 现在我用一句话说白它,就是:不同链接方式时,dlopen会打开指定的系统中(手机中)或提供的动态库,并使用dlsym获取符号地址,也就是说,如果,在此时的手机中如果找不到,那么就会出问题,一般和 API 有关系。 人为因素就是,编译这个 .so 库的人,他在编译的时候没考虑到下面这些情况,导致提供给别人用的时候,或者自己用的时候在高 API 版本手机出现问题。 感兴趣的就接着看下面详解吧!上面问题描述的第二点提到 .so 是运行在 Linux 环境下的,而且在 Android 里面一般由 NDK 编译,编译的时候,我们可以指明一种文件叫做 Application.mk,里面有一行APP_STL := XXX 指明库的链接方式,默认是静态,STL的取值: 1)system,默认的值,最危险方式,直接和手机系统版本挂钩,采用手机最小版本的.so库链接 2)gabi++_static 3)gabi++_shared 4)stlport_static 5)stlport_shared 6)gnustl_static 7)gnustl_shared 如果不特别定义的话,“system”运行时库是默认的值。除此之外,凡是后面带“_static”的,表示其是一个静态链接的运行时库(运行时库的代码包含在编译后的程序中);而凡是后面带“_shared”的,表示其是一个动态链接的运行时库(运行时库在程序运行时被动态加载进来)。如果去除动态或静态链接的因素,则除了默认的“system”运行时库之外,还有所谓的“gabi++”运行时库、“stlport”运行时库和“gunstl”运行时库。如果想支持C++异常的话,必须要使用gunstl运行时库。 主要是两种,静态链接,动态链接: 动态链接,是指在生成可执行文件时不将所有程序用到的函数链接到一个文件,因为有许多函数在操作系统带的dll文件中,当程序运行时直接从操作系统中找。 静态链接,是把所有用到的函数全部链接到 .so 文件中; 重点来了,上面说到了,静态链接是会把所需要的都搞到exe中,其实不然,这个说法是早期的了,对于现在的 Android 发展来说,为了使程序方便扩展,具备通用性,已经采用插件形式来链接动态库,编译时的静态和动态链接仅仅是程度问题。插件加载形式有: 1)dlopen 2)dlsym 3)dlclose dlopen打开指定的系统中(手机中)动态库。并使用dlsym获取符号地址,也就是说,如果,在此时的手机中如果找不到,那么就会出问题,一般和 API 有关系。 三,目前存在该问题的知名SDK 根据我所了解到的,存在这类问题的 SDK 有,百度地图、环信、高德地图、语音库 speex, 不知道修复没有,这些 SDK 一但在你的 APK 编译版中中设置 API >=23 就会出现各种问题,闪退或者抛出异常。 四,解决方案,1 对 N 主要有两种: 1- 委曲求全,指标不治本,把你的 APK target API 先降低到 23以下,若不行再把 编译时 API 降低到 23 以下,还出问题就继续降低,这意味着,你很多 Android Sdk 的新控件用不了; 2- 在 Application.mk 中修改 APP_STL,重新编译 .so ,如果,我说如果你没有源码,那么悲剧了,要么等他们解决,要么采用第一种,建议尝试,APP_STL := gnustl_shared, 这种方式,对于所需要的外部动态链接函数、符号,在 NDK 13b 中都会独立生成一份,全部引用就解决此类问题,例如 1 private void load() { 2 try { 3 System.loadLibrary("gnustl_shared"); 4 System.loadLibrary("speex"); 5 } catch (Throwable e) { 6 Log.d("zzzzz","加载语音库异常 :"+e.toString()); 7 } 8 } 3- 如果需要 libgnustl_shared.so 的,留邮箱,我发一份你。 至此,基本讲完了,下期 开源二次开发的IM 服务端系统。 如果您认为这篇文章还不错或者有所收获,您可以通过扫描一下下面的支付宝二维码 打赏我一杯咖啡【物质支持】,也可以点击右下角的【推荐】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力、

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

解决Java多张图合成JPG时出现红色前景及多列自适应适配

在当今数字化信息飞速发展的时代,图像处理技术在各个领域都占据着举足轻重的地位。从社交媒体上用户分享的精美图片,到电商平台琳琅满目的商品展示,再到各种广告宣传中的创意合成图,高质量的图像合成技术已经成为提升视觉效果、增强用户体验的关键手段。Java作为一种功能强大、应用广泛的编程语言,在图像处理领域也发挥着重要作用,为开发者提供了丰富的工具和库来实现各种复杂的图像操作。

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册