首页 文章 精选 留言 我的

精选列表

搜索[向量化],共10000篇文章
优秀的个人博客,低调大师

工作这么多年,你能向新人解释清到底什么是面向对象编程?

微信搜 「yes的练级攻略」干货满满,不然来掐我,回复【123】一份20W字的算法刷题笔记等你来领。 个人文章汇总:https://github.com/yessimida/yes 欢迎 star ! 你好,我是 yes。 面向对象编程想必大家都耳熟能详,但是写了这么多代码你对面向对象有清晰的认识吗? 来看看这几个问题: 到底什么是面向对象编程? 和面向过程编程有什么区别? 什么又称为面向对象语言、面向过程语言? 用面向对象语言写的代码就面向对象了? 面向对象编程真的就这么好吗? 复杂的业务用面向对象编程就合适了吗? 我还真没具体地定义过到底什么是面向对象编程。 所以假设有人问到底什么是面向对象编程?有什么好处? 一时还真不知道怎么说,或者说成体系的解释。 这篇文章我就谈谈我的理解,也试着看能不能说清啥叫面向对象编程。 正文 从二进制命令到汇编语言。 从汇编语言到面向过程语言再到面向对象语言。 计算机语言的发展是为了便于人类的使用,使其更符合人类的思考方式。 计算机的思路就是取指执行,一条直道走到底,它可不会管你什么抽象,不管什么业务建模,通通得给它变成一条条指令,排好顺序让它执行。 而我们人类不一样,我们的思维在简单场景来看是一条道,但在复杂场景就需要做各种分类,才能理清楚关系,处理好事务。 就像法庭,分为法官、书记员、法警、原告、被告、证人等角色。 这么多人分好类,按照法庭审理各司其职,一个案子才能高效、顺利得审判。 再回到计算机语言来,汇编我就不说了,面向过程其实就是一条道的思路,因为起初就是按计算机的思路来编写程序。 我就拿用咖啡机煮咖啡为例,按照面向过程的流程是: 执行加咖啡豆方法 执行加水方法 执行煮咖啡方法 执行喝咖啡方法 很简单直观的操作,你可能没什么感觉,我再按面向对象思想来分析下这个流程。 在执行煮咖啡操作前要抽象出:人和咖啡机(分类),然后开始执行: 人.加咖啡豆 人.加水 咖啡机.煮 人.喝咖啡 是不是有点感觉了? 面向过程,从名字可以得知重点是过程,而面向对象的重点是对象。 从这个例子可以看出两者的不同:面向过程是很直接的思维,一步步的执行,一条道走到底。 而面向对象是先抽象,把事物分类得到不同的类,划分每个类的职责,暴露出每个类所能执行的动作,然后按逻辑执行时调用每个类的方法即可,不关心内部的逻辑。 从例子可以看出面向对象编程执行的步骤没有变少,整体执行流程还是一样的,都是先加咖啡豆、加水、煮咖啡、喝,这个逻辑没有变。 无非就是划分了类,把每一步骤具体的实现封装了起来,散布在不同的类中。 对我们程序员来说是最最直接的感受:变的其实就是代码的分布,煮咖啡的代码实现被封装在咖啡机内部,喝咖啡的代码实现被封装在人内部,而不是在一个方法中写出来。 代码的分布确实是最直观的,但是变得不仅只是分布,而是思想上的变化。 就是上面提到的计算机思维到人类思维的变化。 我认为这个变化是因为软件的发展,业务越来越复杂。 人们用面向过程语言编写复杂的软件时,需要按照不同的功能把一些数据和函数放到不同的文件中,渐渐地人们就发现这不就是先分类吗? 并且好像业务分析下来都能和现实世界的东西对应上? 于是人们慢慢地总结、提炼就演变成了面向对象,再根据面向对象的特性提炼出关键点:封装、继承和多态。 而这个面向对象思想就类似我们人类面对复杂场景时候的分析思维:归类、汇总。 所以面向对象编程就成为了现在主流的编程风格,因为符合人类的思考方式。 面向过程编程和面向对象编程从思想上的变化是:从计算机思维转变成了人类的思维来编写编码。 所以我们知道面向对象编程其实是一种进步,一种更贴近人类思考方式的编码风格,是源于人们用面向过程编程时的经验总结。 至此我们知道了面向对象编程的来源,相信知晓了来源能更好的理解面向对象。 那到底什么是面向对象编程? 面向对象编程(Object Oriented Programming,OOP)是一种编程范式或者说编程风格。 学术一点讲就是把类或对象作为基本单元来组织代码,并且运用提炼出的:封装、继承和多态来作为代码设计指导。 这其实就是面向对象编程。 其实从上面煮咖啡的流程应该能 get 到这个含义了。 OOP 说白了就是拿到需求开始分析,进行抽象建立业务模型,每个模型建立对应的类。 思考业务的交互,根据交互定义好接口并做好接口的控制访问,将于此类相关的数据和动作都封装起来。 抽象出父类,子类继承父类来进行代码的复用和扩展。 执行功能时用父类来调用,在实际代码运行过程会进行动态绑定,调用子类的实现达到多态的特性。 多态,学术点讲就是:运行时用相同的代码根据不同类型的实例呈现出不同行为的现象。 如果有新功能要实现,只需要创建一个新子类,以前的执行逻辑不需要发生变化,这就是「开闭原则」,对修改关闭,对扩展开放”。 来简单的看个代码可能会有更直观的感受,没记错的话大学时也是拿动物举例。 狗是动物、鸭子是动物,所以有个 Animal 类。 然后能发声,所以有 voice 方法。 publicclassAnimal{ publicvoidvoice(){ System.out.println("动物的叫声"); } } 然后搞个 Dog、Duck 继承 Animal 实现各自的 voice。 publicclassDogextendsAnimal{ publicvoidvoice(){ System.out.println("汪汪汪~"); } } publicclassDuckextendsAnimal{ publicvoidvoice(){ System.out.println("gagaga~"); } } 然后到时候就可以实例化不同的对象来达到多态的效果。 publicclassTest{ privateAnimalanimal; publicvoidsetAnimal(Animalanimal){ this.animal=animal; } publicvoidvoice(){ animal.voice(); } } 多态带来的好处,无非就是 Test 里面代码不用动,你想要狗叫你就 new Dog 然后 set 进去,如果要鸭子就 new Duck 然后 set 进去。 如果加入了新动物那就建一个新动物类 set 进去就行,符合开闭原则。 和面向过程编程有什么区别? 其实从上面煮咖啡和动物的这两个例子应该能感受出来区别。 最重要的是思想上的区别,上面也已经提到了。 还有一点就是数据和动作。 面向过程编程这种编程风格是以过程作为基本单元来组织代码的,过程其实就是动作,对应到代码中来就是函数,面向过程中函数和数据是分离的,数据其实就是成员变量。 而面向对象编程的类中数据和动作是在一起的,这也是两者的一个显著的区别。 什么又称为面向对象语言、面向过程语言 面向对象语言其实就是有现成的语法机制来支持类、对象的语言,比如 Java。 当然还要有支持继承、多态的语法机制。 面向过程语言就反着理解,没有现成的语法机制来支持类、对象等基本单元来组织代码。 当然不是你用了面向对象语言写出来的代码就面向对象了。 你要通篇就一个 class,一堆杂乱无章都往里面塞,不归类、没有封装的意识,一条直到,这可不叫面向对象编程。 当然也不是用面向过程语言就写不出面向对象的代码,只是由于语法层面的不支持,写起来没那么方便,需要用一些手段,具体就不展开了。 所以语言只是为了更好的支持编程范式,重要的还是思想上的转变。 面向对象编程真的就这么好吗? 结论先上:软件设计没有银弹,没有最好的,只有合适的。 前面也提到了面向对象更符合人类的思考方式,这其实就是优势,能 hold 住复杂的需求。 复杂的需求关系都是错综复杂的,我们分类、抽象、封装就能得到一个个规范化的模块(类)。 大型项目都需要很多人协同合作,因为划分的清晰,每个人只要实现自己负责的模块。 然后根据模块之间关系再组装起来即可。 脉络清晰也使得我们开发的时候思路也异常的清晰,提升开发的效率。 并且由于封装的特性,类的内部是高度内聚的,会利用访问控制权限暴露出有限的访问,这使得类内部的数据不会被随意更改,提高代码的维护性。 还有前面提到的继承,提高代码的复用性,由继承实现的多态也符合开闭原则。 我还看过一个很形象的解释(很久之前看过,忘了出处),说面向过程是蛋炒饭、面向对象是盖浇饭。 蛋炒饭混合在一起,盖浇饭是分层的,如果不要葱,盖浇饭把上面的菜拨了直接换个没葱的菜,蛋炒饭就难搞了,得重新炒一份。 其实这个比喻体现的思想就是面向对象可维护性比较高,而且可以重用,更加灵活。 而面向过程就不易维护,不易扩展。 这个比喻没错,上面的说法也没错,但是我觉得需要加个前提:在合适的场景。 虽说我上面列了很多面向对象编程的优点,但是软件设计没有银弹,没有最好的,只有合适的。 当你做一个很简单的玩意,比如简易计算器,你抽象来抽象去其实意义不大,直接按照面向过程的设计一条道走到底才是最合适的。 就像我们平日里面写代码,是否遇到个情况:为了一个功能需要新建一个类,然后类里面就一个方法。 因为按照面向对象的思维,这个是需要抽象的。 然后为了复用还做了继承、预留了一些接口等等,就想着以后扩展。 可能过了很多年到这个项目扑街了,都没扩展上。 在项目里很多地方都做了这样的钩子,都白费,没鱼儿上钩。 还不如当时就直来直往的写,绕来绕去的新同事进来看的都一脸懵逼。 有些人说代码就是得这样写,就是要为了之后的扩展,设计模式上! 扪心自问一下,有多少之后用上了? 所以有很多大牛在那里骂: “面向对象编程是一个极其糟糕的主意,只有硅谷里的人能干出这种事情。” — Edsger Dijkstra(图灵奖获得者) “有时,优雅的实现只需要一个函数。不是一个方法。不是一个类,不是一个框架。只是一个方法。” — John Carmack(id Software的创始人、第一人称射击游戏之父) “面向对象编程语言的问题在于,它总是附带着所有它需要的隐含环境。你想要一个香蕉,但得到的却是一个大猩猩拿着香蕉,而其还有整个丛林。” — Joe Armstrong(Erlang语言发明人) 还有挺多,我就不列出来了。 确实有时候写代码的时候能明显感觉到有时候需要的只是一个函数。 所以对于那些:别问,问就是面向对象,还有一些大肆鼓吹设计模式的:别问,问就是设计模式 的人而言,我是不认可的。 还是那句: 软件设计没有银弹,没有最好的,只有合适的。 复杂的业务用面向对象编程就合适了吗? 一般的说法是面向对象适合复杂的场景,这句话其实也不全对。 当时我在打 LOL 的时候就在感叹,这技能的释放,然后又因为加了 buf 可能有什么特别的计算,每一次版本变更好像改的东西挺多啊。 就像亚索出来的时候,这狂风绝息斩对石头人的大没用,被蝎子拉了也没用,这不是得做很多判断啊。 每新出一个英雄,new 一个对象,其他英雄对象都得改啊,因为新英雄针对不同英雄可能有不一样的伤害效果。 总之我觉得很复杂,每一次改动会涉及很多很多,所以脑子里面就有疑问这是怎么做的,面向对象的话得改好多呀。 前几天我看到了知乎 invalid s 的回答,给我解了惑。 原来复杂的业务用面向对象编程还真不一定合适。 他举的是 WOW 的例子,虽说我不知道 LOL 是不是这样做的,但是这不重要。 他让我知道在这个场景里面如果是以面向对象来设计,那面对如此繁多的职业、种族和技能,在频繁地版本迭代下是招架不住的。 我截个图,链接我放文末。 这种情况可以利用法术/技能数据库化即表格化来解决。 所以从中可以看到不是面对复杂的场景就直接上面向对象的,还是得具体情况具体分析,面向对象不是万能的。 最后 其实我还看到有人说面向对象的本质是对真实世界的映射,这还真不一定。 我们平日写代码能很明显地感受到有时候就是为了抽象和复用搞了一个类。 而且很多情况抽象出来的类和现实对应不上,反正就是为了需求而造的一个类。 网上也看到很多言论,说啥 OOP 就是错的、或者说 OOP 就是对的。 我觉得都很极端,还是那句软件设计没有银弹,没有最好的,只有合适的。 关于面向对象还想提一下。 在去年我写 Fork/Join 的时候提到了分而治之。 面向对象其实也有这味道。 拿古代举例,皇帝其实不知道具体治理细节,也不用管理具体细节,一个国家这么大的庞然大物抽象了很多事务,分成了很多类官员。 然后将每类官员需要做的事情封装好,让每类官员各司其职。 皇帝只需要统筹全局,根据每类官员的职责颁发不同的任务即可,不需要关心他具体是如何实施的。 皇帝只要说,让各县都推行啥啥啥,即可。 其实等于只要招呼县令这个类去做事情,管你哪个县,皇帝不需要关心。 然后每个县令得到相同的命令,但是会有各自的治理方法,这其实就是多态。 这其实就是面向对象的思想。 好了,说了这么多不知道能不能讲清什么叫面向对象,如果不清晰的话还望见谅,毕竟能力有限。 我再稍微的总结一下面向对象编程: OOP 其实就是一种编程范式或者说风格,是一种以类或对象为单元来组织代码的编码方式,让代码高内聚,低耦合。 OO 符合人类面对复杂事物时思考方式,抽象、建模、分类、归类。 最后,欢迎加我好友进行深入地交流,备注「进群」,拉你进交流&内推群。 平日的面试题遇到难处,或者看某个知识点翻遍全网的资料还是感觉很模糊、不透彻,可以私聊我,给我留言。 遇到合适的我会整理写出一篇文章,我不会的去请教别人也给整出来。 那种工作遇到很细节的场景的还是别了,这种问你上司比较合适:) 欢迎关注我的公众号【yes的练级攻略】,更多硬核文章等你来读。 微信搜索【yes的练级攻略】,关注 yes,回复【123】一份20W字的算法刷题笔记等你来领,从一点点到亿点点,我们下篇见。 个人文章汇总:https://github.com/yessimida/yes 欢迎 star ! 巨人的肩膀 https://www.cnblogs.com/hdu-2010/p/3778515.html https://www.zhihu.com/question/20275578/answer/26577791 本文分享自微信公众号 - yes的练级攻略(yes_java)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

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

[Android] Android工程以jar包形式向第三方应用提供服务

参考:http://www.cnblogs.com/0616--ataozhijia/p/4094952.html 以API 19为例: 系统默认提供的android.jar整体大小为:21.8 MB 手动删除资源文件后, android.jar大小为: 2.6 MB 从中可以确定: jar包中是可以放入资源文件的 那么 jar包中的资源是如何被调用的?? 以纯java方式: 见参考 以Android方式: 参考:http://blog.csdn.net/liguangzhenghi/article/details/8858544 1、jar被包含进其他项目后,最终生成的apk文件中包含jar中的资源(目录结构也是一样的),这个可以通过zip打开jar和apk查看。 2、jar中的资源应该也是被jvm管理起来的,但是由于其实际id与原始jar项目中产生的id不一致,导致使用原始jar项目中的资源id不能访问到实际资源。只能通过getClass().getClassLoader().getResourceAsStream()的方式进行访问。 对于使用jar方式进行组件开发,有以下需要注意: 1. jar包中一般只包含代码不包含资源。 2. 如果要在jar中包含资源,则资源文件不应该放在默认的res目录下(因为导入其他项目后可能出现重名冲突),应该在package目录下创建专用的资源目录,如此通过pakcage的不重名来确保导入后资源不冲突。同时,jar中代码不能直接使用R类中资源id进行访问,应该通过getClass().getClassLoader().getResourceAsStream()进行加载。 3. 字付串资源可以定义成常量的方式来使用。 分类: Android Pro 本文转自demoblog博客园博客,原文链接http://www.cnblogs.com/0616--ataozhijia/p/4097595.html如需转载请自行联系原作者 demoblog

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

第三代北斗芯片发布 2020年北斗计划向全球提供服务

9月16日,“全球首颗支持新一代北斗三号信号体制的多系统多频高精度SoC芯片”正式发布。该芯片用于北斗三号卫星系统建设,在无需地基增强的情况下,便可实现亚米级的定位精度,实现芯片级安全加密。 雷锋网了解到,未来,该芯片可被广泛应用于车辆管理、汽车导航、可穿戴设备、航海导航、GIS数据采集、精准农业、智慧物流、无人驾驶、工程勘察等领域。 北斗卫星导航系统总设计师杨长风透露,北斗三号全球系统的建设已全面启动,计划今年年底发射四颗卫星。目前正扎实推进北斗全球系统的组网建设和北斗二号区域系统的稳定运行。预计2020年前后全面建成具备覆盖全球的服务能力,届时北斗产业规模将达到2400亿元。 作为国家重要的信息基础和战略设施,卫星导航定位系统是国家综合国力的重要标志。2003年12月,中国自行研发设计的“北斗一号”卫星导航定位系统建成并正式开通运行

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

NFV玩家在MWC上向移动运营商大力推广其产品

2016年世界移动大会(MWC2016)这一周的焦点,以新手机、充电器、VR头戴式耳机和大展台展示为主,另外也有大量有关网络功能虚拟化(NFV)产品的发布。 思科也加了进来,并宣布了用思科UCS服务器、Nexus交换机构造的NFV解决方案,以及一个“强化和自动化过的“红帽OpenStack版本。 思科产品和解决方案高级营销经理Volker Tegtmeyer称该解决方案是 “开放式、模块化和可扩展的” 。 俗称博格人的思科在NFV上的另一个合作伙伴是英特尔,该解决方案包括了英特尔的开放网络平台和增强平台感知技术。 该解决方案是一个专门针对移动目标的解决方案,其目标包括所有2G到4G里的东西(以及Wi-Fi和小蜂窝网络),思科称解决方案是一个计算/存储/网络基础架构预置包,提供营运商级别的“性能、可用性、安全性和可扩展性” 。 Cavium公司 半导体供应商Cavium与ONOS项目联手,展示了旗下运行移动NFV的ThunderX服务器和Octeon Fusion-M基带处理器示范产品。 Cavium称,示范产品的目的是确认可行性,它展示了“SDN(软件定义网络)和NFV移动无线应用的具体使用案例” ,包括无线接入网络(C-RAN)、移动边缘计算和诸如进分组核心(EPC)的虚拟化核心功能。 该项演示是Cavium对ONOS项目的第一个贡献,也标志着Cavium加入了该项目。 Applied Micro公司 德国嵌入式系统装备公司Kontron和Applied Micro展出一个基于ARM的服务器平台,针对的目标是SDN/NFV领域。 他们展示了一款Symkloud 10GbE模块化服务器,其设计含两个Applied Micro X-Gene的基于64位ARM架构处理器v8-A单片系统(SoC)。 两家公司表示,裸机SDN交换同时支持传统数据流的OpenFlow数据流。其架构的设计是为了提供“强大的单线程处理器性能”,确保运行虚拟网络功能时所需的延迟和性能组合。 ETSI推动开源NFV 身处NFV标准设立中心的ETSI在巴塞罗WMC上推出称之为OSM的开源NFV管理之作。 ETSI称自己已经开始开发开放源代码管理和业务流程(MANO)栈,以与NFV行业规范工作组(ISG)的工作形成互补。 参与者可用MANO栈实现NFV服务,并将反馈提供给ISG,还可以促进 NFV解决方案 之间的的互操作性。 原文发布时间为: 2016年02月26日 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

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

MWC新看点:5G网络从标准化向商业化迈进

今年的世界移动大会(MWC)有关5G无线蜂窝系统的讨论预计会从去年的标准化转向下一步,即商业化。 5G无线蜂窝系统越来越接近现实,诸如AT&T、Verizon和韩国KT等运营商都在准备5G网络的相关试验。事实上,韩国希望在自己主办的2018年冬季奥运会上以某种形式展示5G,尽管官方推出5G的目标日期是2020年,其步伐仍是一个真正的挑战。 诺基亚网络创新营销负责人Volker Held告诉记者,“我们确实需要与有关行业开展对话,需要展示5G能够做什么,从这些行业了解他们的需要,并确保他们加入标准化的过程。技术上已经大多受到控制,但现在我们需要把其放在一个实际环境里……一个大的挑战是生态系统。” 分析师Peter Jarich(他将主持MWC的两个讨论会)预计,商业化的需要将使得核心网络成为焦点。一方面,虚拟化、网络分层和无线接入网络架构等等的承诺是重要的,但Jarich表示,与运营商对话时核心却是一套更“容易的”说法,运营商所寻求的是在商业化5G上进行短期投资。 Jarich还称,“问题是,新的商业模式总是很艰难的。如果我是一个搞金融的人,我看了这个后,觉得这个模式的引进意味着我的生意成本会下降10%。如果我是新入行做生意的人,就会非常不确定新的5G业务到底会带来什么。“ 至于哪个市场会首先成功地商业化5G也有不同的看法,一个特别的原因是,5G网络可能覆盖亚千兆赫波段到100千兆赫波段,千兆赫波段是物联网使用的,而100千兆赫波段是给城市地区的超密度连结使用的。Held称,一些诸如交通运输基础架构和汽车等关键性任务系统是5G的最佳商业化领域,因为这些使用案例需要大容量、毫秒级延迟和强劲的连接。 诺基亚将在MWC上展示采用即时5G网络运行的自立车辆,不过Held表示,展示的系统将使用桌面上的小型车。这些汽车完全由网络驾驶,并会连接到几个边缘云上,车辆移动时可以将信息内容从一个云转移到另一个云里。 诺基亚公司还将演示其他5G商用方案,包括:低延迟5G网络,用于远程智能控制的同步互联机器人;体育场里实况多播,对许多智能手机进行同步数据传输;交互式虚拟现实体验,处在不同远程位置的用户一起画一幅画等。 他表示,“在时下的网络里,需要针对不同的情况定制管理体验。在5G的场景里,一切都是自动完成的,以预放模式完成。”Held还指出,“所以需要建立人工智能。” Jarich表示,“虽然像Kumu Networks一类的创新公司有其用武之地,但最引人注目的演示将是那些‘大佬’们,他们有钱,有话语权。” 他表示,“我们将看到来自韩国、日本、AT&T、沃达丰、西班牙电信的产品。令人惊讶的是美国可能是一个比预期更强大的队伍。我们不想将此看作地区之战,但美国的到来令人吃惊。” 尽管有MWC的演示,但很多技术问题还是不能忽视的。Jarich表示,例如,需要定义新的空中接口和无线接入技术。 Jarich 表示,“空中接口在我们谈5G时对一切都将是至关重要的,这涉及到如何在物联网通信里利用低数据速率、如何在增强现实和上下文通信里达到超高数据速率、如何支持低频率和高频率。“ 他表示,具体的芯片讨论还处于早期阶段。不过,他希望听到来自ARM和英特尔的消息,希望听到有关这些公司如何在虚拟无线接入网(RAN)里利用通用计算架构的计划 。 Held还表示,“5G的讨论不仅仅是无线技术的讨论。我们的重点是要将一个新的无线解决方案与新的架构结合在一起。这意味着需要能够控制和管理每一个端到端的数据流。” 5G的讨论也是一个标准化的讨论,3GPP从去年9月开始着手5G标准化的工作,具体事项将于今年确定。联合国国际电信联盟已经为5G标准制定了时间表,希望至2020年可达成完整的协议。欧盟5G基础架构私有伙伴关系(5GPPP)也在致力于标准化制定工作。但这也让不少在等待世界无线电通信大会(WRC)有关低频带相关问题进展的业内玩家感到失望。 美国的频率分配(来源:NYU无线) 因为5G的频率尚未有定论,一众公司在盯着一大块频段。诺基亚在28GHz、50GHz、60GHz、73GHz和90GHz上展示过。Held指出,要在整个频谱上做调研,这一点颇为重要,因为不同的频率传播特征不同,所具有的信道模式不一样。他还表示,厘米波频段(3-30GHz)比毫米波频段( 30-300GHz)的潜力更大。 并且,Jarich和Held有信心将这些在不同频率的示范和试验最终应用到2019 WRC会场之上。但其间仍然有很多工作要做。Jarich表示,例如,运营商需要在有关“他们想在什么地方发力、那些5G功能能对他们起到重要的作用”等问题上给出自己的判断。 原文发布时间为:2016年02月23日 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。e

资源下载

更多资源
Nacos

Nacos

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

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等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册