JAVA毕业设计怎么做?有什么指导建议吗?_java开发在现在这种微服务架构体系中,业务代码还能使用各种设计模式吗?如工厂?


- #问答
  • 1、 JAVA毕业设计怎么做?有什么指导建议吗?

    这是一个针对性比较强的问题,由于目前很多大四的同学已经确定了自己的毕设题目,所以很多本科生都共同面临这样一个问题。由于今年我也有两名本科生的毕设指导任务(院校合作项目),所以我来说一下我的建议。

    编程语言类的毕设题目往往都比较具体,尤其是本科阶段的毕设题目往往都具有一定的实用性,这就决定了毕设的总统思路。第一件事就是掌握所使用的编程语言,比如Java语言,另外由于毕设题目往往有具体的应用场景,所以在学习Java的时候要针对不同的应用场景制定自己的学习路线。

    Java毕设的应用场景往往集中在Web开发领域,当然也有一部分移动互联领域和大数据领域的题目。如果是做Web开发领域那么需要学习的内容可以概括为三部分,分别是基础语法的学习;分布式开发部分的学习(数据库);框架的学习(SpringBoot、SpringCloud、SpringMVC等)。作为计算机专业的同学来说,使用两至三个月的时间应该能完全达到做毕设的要求。

    移动互联领域的开发和Web开发所需要的学习时间大致相同,不同的是所学习的内容有明显的区别,移动互联开发往往要学习Android平台的开发,总体难度并不大,所以学习时间上与Web开发基本一致。

    使用Java做大数据方向的毕设对本科生来说有一定的难度,但是往往也只是从一个点出发,本科阶段的大数据题目的覆盖面并不会太广。比较常见的情况是使用大数据技术完成某个特定领域(行业)的数据分析,比如电信领域、金融领域、教育领域等等。可以从三个部分来学习,分别是Java语言基础;Hadoop平台搭建(Spark);算法设计以及实现。在学习时间上可能会稍微长一些,但是毕设题目的制作时间并不会需要太长的时间,所以在总体上与Web方向是差不多的。

    在学习编程技术的同时要了解所做题目的行业背景,要做一定的调研,在实施这个过程之前往往需要跟指导老师做一个详细的沟通,通常指导老师会为学生推荐一些应用领域的专家,同学们可以跟这些应用专家采集具体的需求。这个环节是让毕设题目具备了实际的使用价值,也会避免很多重复性研究。

    在调研的过程中就要开始组织自己的毕业论文结构了,毕业论文的编写不同的学校有不同的要求,但是在大体结构上都是一致的,包括提出问题、分析问题、解决问题、总结等几个重要的部分,毕业论文要有清晰的思路,以及严谨的表述。

    我的主要研究方向是大数据和人工智能,目前也在带大数据方向的研究生,我会陆续在头条写一些关于大数据方面的文章,感兴趣的朋友可以关注我的,相信一定会有所收获。

    如果有大数据相关的问题,也可以咨询我。

    谢谢!

  • 2、 java开发在现在这种微服务架构体系中,业务代码还能使用各种设计模式吗?如工厂?

    当然能使用各种设计模式,Spring框架中有很多设计模式的体现,只要能在微服务体系中最终满足BASE理论,不还是照样在使用?

    先说说设计模式

    设计模式不是一种框架或中间件技术,而是对学习工作中代码进行高层次抽象的总结。设计模式不限于某种编程语言,JavaScript有设计模式,Java也有设计模式,只是表象不同而己。

    根据用途可将设计模式分为三类:结构型模式、行为型模式和创建型模式。经典设计模式有23种,每一个设计模式也有多种实现,例如单例模式(懒汉、饿汉、静态内部类和DCL等),还是题主说到的工厂模式(简单工厂模式、工厂方法模式等)等。

    分布式与微服务架构

    随着开发的项目越来越繁杂,开发效率和高并发情况下要求高可用,项目模块化与容错机制就显得很有必要,分布式孕育而生。将每个开发模块部署到独立的云服务主机上,就好像多个人在一起做不同分工的事,但是整个过程是相互协作完成,这和集群的理念相反。而微服务算是一种架构,也属于分布式范畴,例如SpringCloud就是微服务架构的一种体现。

    Spring中常用的设计模式

    学习Java语言,Spring是必经之路,SringMVC和SringBoot等都是Sring框架的衍生品。现在使用SringBoot结合SpringCloud实现微服务与分布式不是什么新鲜技术,在初创或者开发成本预算不多的公司已经是首先技术架构,上手容易,生态支持友好。

    Spring框架中有很多设计模式体现。例如简单工厂模式之BeanFactory,根据传入一个唯一的标识来获得Bean对象。再比如Spring下默认的Bean注解均为单例模式,将提供一个访问它的全局访问点,你可以通过设置singleton=“true|false”或者scope="?"来指定作用范围,例如RabbitMq需要ACK回调机制确保消息发送到交换机的话,rabbitmqTemplate就不能为单例模式,需要设置scope=SCOPE_PROTOTYPE,并通过构造方法注入而非Autowrite注解。还有在Aop中,使用Advice来增强被代理类的功能而使用到的代理模式等等。这些都没有因为微服务体系的出现而被舍弃掉。

    从以上三个方面阐述就会发现,微服务出现并不会导致现有一些技术或理论直接被弃用,而是通过新的理论或思想将这些精髓沿用,尽可能去靠近CAP原则。

Related Content: