黑客马拉松Java开发者工具(企业级开发框架,简化开发过程提高代码效率)

Posted Java架构师-大仙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑客马拉松Java开发者工具(企业级开发框架,简化开发过程提高代码效率)相关的知识,希望对你有一定的参考价值。

在本文中,我将向您介绍有哪些黑客马拉松的Java工具,可以简化开发的过程,并提高代码的整体效率。

什么是黑客马拉松?

黑客马拉松通常是指在给定的时间范围内(如24或48小时),参赛者成功地解决某个问题,并交付出对应的应用程序的过程。它通常会涉及到如下环节:

  • 招募并组建团队去参加比赛活动。
  • 比赛组织者通知参与者,有关黑客马拉松的具体主题。
  • 团队通过协商,决定准备编写何种应用程序。
  • 团队在给定的时间内交付出应用程序,组织者判断输赢。

经典的Java企业级应用框架

在大多时候,参赛团队的大量时间往往会被浪费在配置等繁琐的过程中。为此,他们在比赛期间,通常会通过选择如下图所示的经典Java企业级应用框架,来搭建出最简单的程序架构,进而节省大量的开发时间。

常见的Java EE应用架构

用户界面(User Interface,UI)

用户界面对于绝大多数项目而言,都是不可或缺的重要部分。众所周知的一项基本原则是:UI不应过于酷炫,而应讲求的是实用。正如前面提到的,对于快速原型设计而言,团队需要拥有一个带有现成组件的框架库。在此,我向您推荐React,及其时下流行、且含有大量React库的material UI

Material UI的概览图

当然您也可以使用诸如:Vaadin、ZK、以及GWT等,通过Java生成和创建javascript用户界面的框架。

Java类的UI框架

HTTP API以及UI的通信方式

注意,HTTP并非唯一的通信方式,根据某些项目的实际需求,我们可能需要使用websockets来实现快速的通信。目前,业界有着许多可实现快速构建HTTP API的实用工具。在此,我向您推荐Spring Boot Web。它提供了丰富的功能,以便用户轻松地转换和解析各种HTTP请求。

Spring Boot Web的示例截图

业务逻辑

虽然这是一个非常灵活多变的部分,但实际上,业务层是一个针对服务或数据存储库的,能够起到承上启下的关键性作用层。该领域常用的工具包括:带有依赖注入(Dependency Injection,DI)和控制反转(Inversion of Control,IOC)模式的Google Juice。当然自己也可以自行进行编写业务逻辑。不过,我仍然会推荐您使用Spring Framework(https://spring.io/)。

使用Spring Framework的业务逻辑

云端API

有了前面的业务逻辑,我们可以引入各种服务了。如您所知,云服务提供了大量不同的API。其中,以AWS、Google Cloud、以及Azure为首的平台,都能够提供涵括了从语音识别到机器学习等应用领域的工具。不过,它们虽然功能强大,但是往往会持续向用户收费。因此您需要在构建应用程序时,慎重调用由它们提供的API逻辑。

云端API服务示例

实用的工具和库

在应用实现的过程中,为了避免重复造轮子,您可以使用诸如:Apache Commons或Guava Collections等不同的流行代码库。在此,您可以参考如下实用的链接:

GitHub有关Java的存储库:https://github.com/akullpp/awesome-java

实用的工具和库

数据库连接

最直接且最常用的连接SQL数据库的方案,当属使用诸如:Apache JDBC模板或Spring模板等JDBC包装器。不过,由于黑客马拉松比赛的时间有限,因此开发者经常会使用Spring Data,来实现数据访问对象(Data Access Object,DAO)的快速设计。Spring Data能够为各种SQL、以及NoSQL数据源,提供多种适配器和解决方案。在下面的代码例子中,我们采用了Spring Data JPA,为各种类提供开箱即用的CRUD(添加Create、检索Retrieve、更新Update和删除Delete)、以及查询操作。

Java

public interface UserDao extends JpaRepository<User, Long> { 
  
    User findUserById(Long id); 
  
} 

因此,其基本流程是:

  1. 生成与自己的数据表相匹配的类实体。

  2. 扩展Spring Data的各种接口,并使用它们。

Spring REST Data

而Spring Rest Data解决方案不仅能够为存储库生成 CRUD操作,还可以通过UI提供和公布带有CRUD的HTTP端点。例如:

@RepositoryRestResource 
public interface UserRepository extends PagingAndSortingRepository<User, Long> { 
    List<User> findByName(@Param("id") Long id); 
} 

在提供了HTTP API的前提下,应用程序能够通过ID去读取用户。一旦得以实现,下一个端点也就随即可用了:

纯文本

{ 
  "_links" : { 
    "users" : { 
      "href" : "http://localhost:8080/users{?page,size,sort}", 
      "templated" : true 
    } 
} 

数据库的准备

为了简化数据库的设计过程,您可以通过使用SqlYog应用,来生成表结构模式(schema)。在此基础上,您可以继续使用IntelliJ IDEA,来生成各种实体类。

数据库的准备:SqlYog和IntelliJ IDEA

JMS或调度程序

在讨论了业务逻辑或服务之后,我们需要重点考虑同步和异步的实现问题。通常,我们可以通过以Topic和Queue Pattern为代表的Java消息队列,来配合RabbitMQ、Active MQ或Kafka等工具予以解决。当然,无论采用哪种工具,您都需要花些时间,通过对它们进行额外的配置,才能运行并实现消息的代理。

JMS 或调度程序方案的示例

异步解决方案:Spring Quartz

幸运的是,大多数异步问题都可以通过各种简单的调度(scheduling)和触发(triggering)模式,来予以解决。在实践中,您可以使用由Spring提供的Quartz 解决方案,具体内容请参见–https://docs.spring.io/spring-boot/docs/2.0.0.M3/reference/html/boot-features-quartz.html。

简单快速的部署:Docker

Docker不仅是一个可用于快速部署应用程序的解决方案,而且还是一个拥有大量现成框架的百宝箱。您可以通过它,轻松地运行各种类型的预配置解决方案。

小结

正如《唐·吉诃德》的作者Miguel de Cervantes所言:“好的准备就已经胜利了一半”。希望上述有关Java工具的介绍与推荐,能够帮助您更加从容地参加黑客马拉松比赛,并取得好成绩。最新2021整理收集的一些高频面试题(都整理成文档),有很多干货,包含mysql,netty,spring,线程,spring cloud、jvm、源码、算法等详细讲解,也有详细的学习规划图,面试题整理等

以上是关于黑客马拉松Java开发者工具(企业级开发框架,简化开发过程提高代码效率)的主要内容,如果未能解决你的问题,请参考以下文章

感悟参加公司首届黑客马拉松有感

演绎另类黑客马拉松,机智云第二届中国智能硬件36小时开发大赛再现极速开发

免费机器资源硬核导师丰厚奖励|飞桨黑客马拉松第二期开始啦

免费机器资源硬核导师丰厚奖励|飞桨黑客马拉松第二期开始啦

信念不熄 热爱当燃|中创算力参加黑客马拉松比赛

For you |这是一封来自飞桨黑客马拉松的邀请函