java 要怎么学才能写企业级 jar 包 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chenhui7373
V2EX    Java

java 要怎么学才能写企业级 jar 包

  •  
  •   chenhui7373 2015-10-30 10:35:38 +08:00 3308 次点击
    这是一个创建于 3705 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在做即时通讯,看到环信的一个消息实体类,就想到了这个问题。

    源链接:
    http://www.easemob.com/apidoc/android/chat/com/easemob/chat/EMMessage.tml

    其实我只想写个消息实体类,但我觉得有必要提这个问题...

    15 条回复    2015-10-30 21:04:19 +08:00
    funky
        1
    funky  
       2015-10-30 11:12:21 +08:00
    上面知识 jar 的 doc 但是我不太明白你说的意思,
    fwrq41251
        2
    fwrq41251  
       2015-10-30 11:26:32 +08:00
    关于怎么写 java doc,参考 oracle 的文档 http://www.oracle.com/technetwork/articles/java/index-137868.html
    然后 eclipse 里就有生成 doc 的功能,点几下就行了
    chenhui7373
        3
    chenhui7373  
    OP
       2015-10-30 11:41:42 +08:00
    @fwrq41251 可能我提问的方式不对,我想知道的是要有怎样的水平才能写 jar 包,然后要怎么达到这种水平。依然感谢!
    vietor
        4
    vietor  
       2015-10-30 11:44:19 +08:00
    “企业级“这三个字就是骗人的,一般解释为”有企业“在用。有一些情况是解释为”使用了 ERB “。
    vietor
        5
    vietor  
       2015-10-30 11:44:52 +08:00
    修正 EJB
    WalkingEraser
        6
    WalkingEraser  
       2015-10-30 11:54:19 +08:00
    设计模式,泛型,反射,动态代理,我猜的
    funky
        7
    funky  
       2015-10-30 11:58:53 +08:00
    企业级就是唬人的。但是狭义下的企业级可能是指 IBM 的 EJB(无责任猜测)
    cnhongwei
        8
    cnhongwei  
       2015-10-30 12:07:53 +08:00
    1 、没有必要使用 EJB ,现在都轻量级了,还用这玩意干什么?
    2 、你例子中也不是一个实体类,就是一个正常的 Bean 。
    3 、技术达到能写 EJB 的唯一条件就是:蛋疼。
    HentaiMew
        9
    HentaiMew  
       2015-10-30 12:15:11 +08:00
    “企业级”....."jar 包".... 原谅我一看标题就把你归在初学者范围内了。
    如果你想写 jar ,也就是 java 的 library 。
    你需要了解构建工具,例如简单的 maven ,在后者是相对复杂的 gradle 。
    至于什么水平写 library ,没有这个限制... 企业级通常在框架领域是指能上实际生产环境并且能承受
    例如数据量大,事物密集,架构复杂,保证安全性等因素的并且通常是某一件事的新解决方案。
    假若,我写一个很简单的 tools 库,专门处理 java 中各种繁琐而简单的小步骤,例如一个个简单 API 就能转换字符串和时间,转换对象和 JSON 、判断 string 和 object 是否非空包括 null,“”和.size=0 等等等等。
    只要保证正确性和优雅的实现,然后写好一个个方法上的文档注释,用构建工具打包,自动生成 doc ,没人会觉得你这是一个很烂的库,一样可以用在企业项目中。
    至于你觉得的环信,是因为代码架构和模式优雅,而你自己无法写出或者重构出这样的代码,你不了解这样做的思想,只是认为很有逼格,所以提出了这么一个问题,对不对。。。
    bramblex
        10
    bramblex  
       2015-10-30 12:55:48 +08:00
    “企业级”?

    1. 你给你的 jar 包建一个公司。
    2. 雇佣一个庞大的穿着西装革履的销售团队。
    3. 把你的 jar 包使用授权费定价位 50w 。
    4. 让你的销售团队多跑大企业和政府的 IT 部门负责人,并且给对方许诺 20 个点的回扣。
    5. 好了,你的 jar 包现在就是“企业级”的 jar 包了。
    bramblex
        11
    bramblex  
       2015-10-30 13:00:54 +08:00
    提供“企业级”软件产品的都不是科技公司
    而是打着科技公司名义的金融公司,而且主营业务是保险。
    Felldeadbird
        12
    Felldeadbird  
       2015-10-30 13:03:49 +08:00
    把 jar 包容量做大。接口要多,但必须绕口。 对外高兴地说,这是重量级的企业包,
    phx13ye
        13
    phx13ye  
       2015-10-30 13:35:54 +08:00
    spring 是坠吼的,不服不辩
    Cloudee
        14
    Cloudee  
       2015-10-30 13:42:33 +08:00
    LZ 说得是复用,不是企业级
    从简单的开始,比如说常用的小工具经常封装个 Util 类之类的,就能放到一个 jar 里面,要是发布的话好好写 javadoc 就是。
    然后考虑一下能不能通过抽象适配一类场景,封装成类,通过继承或者组合来适配具体的业务。一个 jar 包是不是足够的内聚,是不是能去掉一些用途不太大的依赖。
    如果向用户 Web 应用的话,还可以考虑是不是对 IoC 框架友好,比如如果作为 Service 层,是不是对多线程友好,状态是不是要抽取出来用独立的对象来保存,是不是能作为单例存在,配置能不能完全通过 get/set 属性来实现。
    逐渐打磨就是了。
    idamien
        15
    idamien  
       2015-10-30 21:04:19 +08:00
    我斗胆来加个评论,希望不会被喷死
    楼主的 jar ,说白了就是中间件,或者说通用模块
    写这种东西在一开始就要注意设计架构,使用接口,应用设计模式等等
    慢慢积累就好
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2480 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 05:21 PVG 13:21 LAX 21:21 JFK 00:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86