zoukankan      html  css  js  c++  java
  • 从.net到java,记录下这三个月的工作

    从事.NET开发已经4个年头,经过十余个项目的学习与沉淀,终于有了一套自己熟悉并且相对完善的技术体系,面对未知,不再惧怕。期间完成并广泛用于公司项目的作品包括:
    1. abp的二次开发框架BodeAbp
    2. 基于owin的sso系统
    3. 全自动数据表格react与jquery版
    4. 通用的属性系统
    慢慢的发现开发变得简单,感觉所有的业务需求都好像一种机械的重复,我似乎正在走进舒适区。然而技术海洋其深远辽阔远不是我腹中那三两滴墨水可以丈量,我要走的路还很长,恰逢公司五月启动了一个java平台网站的开发,而现有的技术团队都是.net,我们面临着极大的挑战。其中技术选型、开发框架的搭建都是我需要解决的问题,踏坑无数,又在坑里浴火重生。从.net到java,不是为了转型,而是丰富自己。
     

     
    万事开头难,在.net技术体系中摸爬滚打了几年之后初次接触到java,甚至连编辑器怎么使用我都是懵逼的,好在有万能的搜索引擎,经过两天疯狂的资料查询以及各种莫名其妙的内心挣扎。最终的技术选型为:
    • 开发工具:idea
    • web框架:spring mvc
    • orm:mybatis及其增强工具mybatis-plus
    • 日志:slf4j + log4j
    • 缓存:redis
     
    准备工作
    准备工作主要是JAVA开发环境的搭建,怀念.net一键安装visual studio的日子,主要工作有:
    • JDK安装
    • JRE安装
    • Tomcat安装
    • idea的安装以及破解
    • maven安装以及国内镜像的配置
    • redis的安装
    maven是java的包管理器,类似.net的nuget,前端的npm与yarn。
    后来集成了dubbo服务框架,就还需要dubbo-admin的部署以及zookeeper的安装。
     
    开发过程
    首次使用java开发项目,过程中遇到的问题真的是多不胜数,一个xml配置异常就让我纠结两天都不能解决,最终不得不删除项目重头再来,整个过程中像这样整个项目建了删,删了再建经历5次左右终于有了一个可以使用的简易开发框架,可以给他们写业务代码了。
     
    得益于.net工作对于web开发的认知,在经过了接近两周的阵痛期之后很快速的就上手了,遇到问题通过搜索引擎很快就能解决,很多思路是相通的,只是实现方式的差别而已,我们的开发速度也在逐渐的加快,期间也修复了不少开发框架中的BUG。
     
    两个月过去,不断的踩坑填坑,不断的重构项目,开发框架慢慢的趋于稳定,然而我们由.net切换到java,肯定不是单纯的换个新语言体验下生活,更多的是为了java体系中那些成熟的分布式解决方案(比如dubbo、spring cloud等),然后又开始了新一轮的阵痛期,期间项目结构发生过巨大的变化,就顺便又进行了一次大的重构,但此时对于java我解决问题的能力已经要比之前好多了,集成dubbo的过程中,遇到的问题几乎都在两个小时内都解决了。
     
    上周末,dubbo集成完毕,测试通过,开发几乎和以前一样。虽然是站在巨人的肩膀上搭建了我的第一个分布式应用,但是其完成时的喜悦依然是美好的。我也由此看到了以前搭建的.net框架的一些不足之处,算是另一种形式的反哺吧。
     
    最终成果
    整个项目结构在开发过程中不断的重构,重构过程中集成了dubbo服务框架,最终如下图所示:
    cczcrv-core:包括各种抽象基类与工具类、缓存的实现等。
    cczcrv-service-common:依赖cczcrv-core,包括所有服务接口、DTO、Model的定义。
    cczcrv-service-xxx:依赖cczcrv-core、cczcrv-service-common,服务的实现。每个模块均可集群部署,可拥有自己的数据库,可单独做读写分离等。
    cczcrv-web-website:依赖cczcrv-core、cczcrv-service-common,web层,调用远程服务,不依赖具体实现。
     
    写在最后
    我将业务代码删除之后将项目放在了Github,地址:https://github.com/liuxx001/bird-java,有兴趣的可以看看。
     
    参考项目:
  • 相关阅读:
    Swift的函数与函数指针、闭包Closure等相关内容介绍
    spring+dubbo整合
    常用设计模式-适配器模式
    常用设计模式-工厂模式
    java动态代理
    程序对关系型数据库批量操作
    springboot整合mybatis
    JAVA代码实现多级树结构封装对象
    springboot集成redis缓存
    springboot入门
  • 原文地址:https://www.cnblogs.com/liuyh/p/7307905.html
Copyright © 2011-2022 走看看