当前位置: 首页 > 科技观察

面向开发者的Java编程马拉松工具

时间:2023-03-21 17:17:50 科技观察

【.com速译】Hackathon竞赛(Hackathoncompetitions,see--https://en.wikipedia.org/wiki/Hackathon)可以说是激励开发者开发自己的竞赛之一创建解决方案的有效方法。不过,这个领域还是比较冷门的,开发者可能对游戏整体,甚至与之相关的概念和工具都不熟悉。在本文中,我将向您介绍哪些hackathonJava工具可以简化开发过程并提高代码的整体效率。什么是黑客马拉松?黑客马拉松通常是指参与者在给定时间范围内(如24或48小时)成功解决某个问题并交付相应应用程序的过程。它通常包括以下步骤:招募和组建团队参加比赛项目。比赛组织者告知参赛者有关黑客马拉松的具体主题。团队协商决定编写什么应用程序。团队在给定的时间范围内交付应用程序,由组织者评判赢家和输家。很多时候在经典的Java企业级应用框架中,参与团队的大量时间往往浪费在配置等繁琐的过程中。为此,在比赛中,他们通常会选择下图所示的经典Java企业应用框架来构建最简单的程序架构,从而节省大量的开发时间。通用的JavaEE应用架构用户界面(UserInterface,UI)用户界面是大多数项目不可或缺的重要组成部分。一个众所周知的基本原则是:UI不应该太酷,但应该实用。如前所述,为了快速制作原型,团队需要有一个包含现成组件的框架库。这里给大家推荐一下React,它的素材UI,时下很流行,包含了大量的React库。MaterialUI概述当然,你也可以使用Vaadin、ZK、GWT等框架,通过Java生成和创建JavaScript用户界面。Java类UI框架HTTPAPI和UI通信方式注意HTTP不是唯一的通信方式。根据一些项目的实际需要,我们可能需要使用websockets来实现快速通信。目前业界有很多好用的工具可以快速构建HTTPAPI。在此向大家推荐SpringBootWeb。它提供了丰富的功能,使用户可以方便地转换和解析各种HTTP请求。SpringBootWeb业务逻辑示例截图虽然这是一个非常灵活多变的部分,但实际上,业务层是服务或数据存储库的关键层,可以起到承上启下的作用。该领域常用的工具包括:具有依赖注入(DI)和控制反转(IOC)模式的GoogleJuice。当然你也可以自己写业务逻辑。但是,我仍然建议您使用SpringFramework(https://spring.io/)。使用SpringFramework的业务逻辑云API有了前面的业务逻辑,我们就可以引入各种服务了。如您所知,云服务提供了大量不同的API。其中以AWS、谷歌云、Azure为首的平台可以提供涵盖从语音识别到机器学习等应用的工具。然而,尽管它们很强大,但它们往往会持续向用户收费。因此,在构建应用时需要仔细调用他们提供的API逻辑。CloudAPI服务示例实用工具和库在应用实现过程中,为了避免重复造轮子,可以使用ApacheCommons或GuavaCollections等不同的流行代码库。在这里,您可以参考以下有用的链接:Maven官方库列表Java十大有用库GitHub的Java相关仓库--https://github.com/akullpp/awesome-java有用的工具和库数据库连接最直接和连接到SQL数据库的常见方法是使用JDBC包装器,例如ApacheJDBC模板或Spring模板。但由于黑客马拉松时间有限,开发者往往使用SpringData来实现数据访问对象(DAO)的快速设计。SpringData可以为各种SQL和NoSQL数据源提供多种适配器和解决方案。在下面的代码示例中,我们使用SpringDataJPA为各种类提供开箱即用的CRUD(添加创建、检索检索、更新更新和删除删除)和查询操作。JavapublicinterfaceUserDaoextendsJpaRepository{UserfindUserById(Longid);}因此,它的基本流程是:1.生成一个匹配自身数据表的类实体。2、扩展SpringData的各种接口并使用。SpringRESTData和SpringRestData解决方案不仅能够为存储库生成CRUD操作,还可以通过UI提供和发布带有CRUD的HTTP端点。例如:@RepositoryRestResourcepublicinterfaceUserRepositoryextendsPagingAndSortingRepository{ListfindByName(@Param("id")Longid);}在提供HTTPAPI的前提下,应用可以通过ID读取用户。一旦实施,下一个端点立即可用:纯文本{"_links":{"users":{"href":"http://localhost:8080/users{?page,size,sort}","templated":true}}数据库准备为了简化数据库设计过程,可以使用SqlYog应用程序生成表结构模式(schema)。在此基础上,可以继续使用IntelliJIDEA生成各种实体类。数据库准备:SqlYog和IntelliJIDEAJMSorscheduler讨论完业务逻辑或者服务,我们需要重点关注同步和异步的实现。通常,我们可以使用以Topic和QueuePattern为代表的Java消息队列,配合RabbitMQ、ActiveMQ或Kafka等工具来解决问题。当然,无论使用哪种工具,都需要花费一定的时间通过额外的配置来运行和实现消息的代理。JMS或调度程序场景的异步解决方案示例:SpringQuartz幸运的是,大多数异步问题都可以通过各种简单的调度和触发模式来解决。在实践中,您可以使用Spring提供的Quartz解决方案,详情请参见https://docs.spring.io/spring-boot/docs/2.0.0.M3/reference/html/boot-features-quartz。HTML。部署简单快速:DockerDocker不仅是一个可以用来快速部署应用的解决方案,还是一个拥有大量现成框架的百宝箱。有了它,您可以轻松运行各种类型的预配置解决方案。总结正如《唐·吉诃德》的作者米格尔·德·塞万提斯所说:“胜利已经准备好了一半”。希望以上Java工具的介绍和推荐,能够帮助大家更加从容的参与到黑客马拉松中,取得不错的成绩。原标题:HackathonJavaToolsforDevelopers,作者:DmitryEgorov