Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 416|回复: 0

[默认分类] Java应用级产品开发平台APDPlat作者杨尚川专访

[复制链接]
  • TA的每日心情
    开心
    2021-12-13 21:45
  • 签到天数: 15 天

    [LV.4]偶尔看看III

    发表于 2018-5-20 11:15:06 | 显示全部楼层 |阅读模式

    APDPlat是Application Product Development Platform的缩写,即应用级产品开发平台,可以帮助你快速开发基于B/S多层架构的信息管理系统。而对于java初级开发者,也能从APDPlat中学到众多的架构设计原则及编码技巧。
    项目官网:http://apdplat.org/
    在线Demo:http://apdplat.net/(用户:admin  密码:admin)
       

       
    为了使大家对APDPlat有进一步的了解,本期我们采访了APDPlat的作者杨尚川
       
    欢迎大家推荐更多开源项目给我们,支持中国的开源项目发展,如果您和您的团队希望展示创业理念和有趣之处,或者有朋友正在创造这样的价值,请联系我们,发信到blog@csdn.com即可。
       
    先来个自我介绍吧!
       
    我叫杨尚川,从2005开始就一直从事Java开发。2010年开始NUTCH相关框架的研究,目前为独立咨询顾问,专注于大数据、搜索引擎等相关技术。
       

       
    APDPlat是什么?有哪些功能?
       
    APDPlat是Application Product Development Platform的缩写,意为应用级产品开发平台。
    作为应用级产品的开发平台,APDPlat提供了应用容器、多模块架构、代码生成、安装程序、认证授权、备份恢复、数据字典、web service、系统监控、操作审计、统计图表、机器绑定、防止破解、数据安全、内置搜索、数据转换、maven支持、WEB组件、内容管理等功能。

    开发这个项目的初衷是什么?为什么会选择开源?  
       
    2008年我发起这个项目,最初的目的是为了方便自己做项目,之后一直持续重构,持续改进,特别是对简洁的追求。目前APDPlat只有不到一万五千行Java代码,其中还有很多代码是工具类或是为扩展做准备的代码。
    2010年以后,我主要从事NUTCH相关的研发工作,而且APDPlat已经相对成熟,所以2012年我选择将APDPlat在GitHub上面开源,希望能吸引更多的开发者,注入新鲜的血液,同时也希望以码会友,共同交流。
       
    APDPlat的实现原理是什么?采用了哪些技术和框架?  
       
    APDPlat底层几乎全部采用Java开源框架,对Spring、Struts2、Compass做了定制修改,接管了系统启动和关闭的控制权,统一了配置文件,并实现了诸多平台级的功能,为应用级产品开发铺平了道路。
    对于一个平台来说,讲究成熟稳定,功能丰富,因此需要众多的框架来支持,而不是去重新发明轮子。APDPlat用到的开源框架主要有:

      web前端采用EXT JS
      前端控制器采用Struts2
      IOC容器采用Spring
      ORM采用JPA,默认实现是Hibernate
      内置搜索采用Compass,扩展方案采用Solr
      认证授权采用SpringSecurity
      代码生成采用freemarker
      日志组件采用SLF4J
      调度组件采用Quartz
      验证码采用Jcaptcha
      Web Service采用CXF
      SQL监控采用P6SPY
      JS和CSS压缩采用YUI Compressor
      JAVA代码混淆采用Allatori
      获取系统信息采用Sigar
      单元测试采用JUnit
      配置文件加密采用Jasypt
      缓存采用EhCache或是Memcached
      数据库连接池采用CommonsDBCP
      Office文档操作采用POI

    APDPlat的目标用户及定位是什么?  
       
    APDPlat的目标用户是广大的Java工程师。
    因为APDPlat是基于众多Java开源框架的,所以没有扎实的Java功底是驾驭不了的。对于Java的入门者或是初级工程师来说,可以把APDPlat当成一个案例来学习。只有熟练掌握Java技能的工程师才能使用APDPlat做到“快速开发”。
    APDPlat并没有提供可视化的建模环境,所以它不是“针对业务人员的快速开发平台”。
       
    与同类型的开发平台相比,你认为APDPlat的优势或特色是什么?
       
    对于同类型的开发平台,我所知甚少,很难比较。
    在我看来,APDPlat开箱即用,默认提供的功能不需修改立即可用,尤其适合研发能力相对薄弱的微小企业以及工作室。
       
    APDPlat的性能如何?  
       
    混淆优化JAVA代码,并使用“懒加载”以及“缓存”技术,Java代码的性能表现优异。
    压缩优化CSS和JS,并启用HTTP、GZIP以及浏览器缓存,Web前端的性能也表现优异。
       
    有没有统计目前采用APDPlat平台开发的应用有多少?有哪些典型应用?  
       
    在GitHub开源后,目前APDPlat已经被Fork了170多次,至于用户开发了哪些应用,我还没有得到反馈。就我自己来说,典型应用主要是B/S架构的管理信息系统。
       
    如何基于APDPlat快速开发?  
       
    要想基于APDPlat实现快速开发,需要阅读APDPlat  Wiki,并有两个前提:
    一是需要对JPA有深入的理解
    二是需要对EXT JS有深入的理解。  
       
    目前APDPlat的开发团队有几个人?如何参与贡献?
       
    APDPlat正在招募开发队员,目前的开发主要是我一个人。
    在GitHub上面Fork APDPlat,增加功能或是BUG修复之后,使用GitHub的Pull Request可参与贡献。
       
    APDPlat的开源协议是什么?你对开源怎么理解?你如何看待国内的开源环境?
       
    APDPlat采用Apache License Version 2.0作为开源协议。
    开源的项目更让人放心,因为它公开、透明、安全、可控。参与开源项目需要持续地投入时间与精力,要有奉献与协作精神。
    目前国内具有开源精神的人还不是很多,大家对如何使用开源项目很热衷,而参与开发的就少了。
       
    APDPlat的未来发展计划?
       
    APDPlat将来要加入工作流、Android客户端、安装程序、完善现有的功能、BUG修复。
       
    另外,你还推出了一套Nutch相关框架视频教程,你对想学习Nutch的同学有什么建议?
       
    《Nutch相关框架视频教程》是一系列的视频教程,详细讲解了跟Nutch相关的框架,这些框架主要有Lucene、hadoop、Solr、Tika、Gora、Hbase等,其中Nutch是网络爬虫、Lucene是全文检索工具包、Hadoop是分布式存储与计算、Solr是搜索服务器、Tika是内容分析工具包、Gora是ORM的大数据版、HBase是基于Hadoop的分布式数据库,都是Java开源框架。
    作为一个Java工程师,这些技术我相信大家都有所耳闻,尤其是Lucene,几乎可以应用到带有搜索功能的所有项目中。Solr基于Lucene,提供了更多的企业级特性。Tika可以从各种不同的文档中提取元数据和结构化文本内容。Nutch从一开始的搜索引擎演变为如今的网络爬虫,在进化过程中,产生了Hadoop、Tika和Gora三个项目,如今这三个项目都发展迅速,极其火爆,尤其是Hadoop,其已成为大数据和云计算的代名词。
    我希望这套视频能对学习的同学起到抛砖引玉的作用,激发大家学习大数据、搜索引擎的热情。  

       
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-4-19 19:33 , Processed in 0.381075 second(s), 54 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表