• 做个小命令而已 至于那么纠结么


    文本文件都是要部署到服务器的,DOS mode终究是不行的。可每次等到服务器传输时再自动转,也不是很可靠,因为有时文件夹中间有些jar文件,有时还有些xls文件,不能乱转。

    于是想自己写个Dos2Unix4Win。大概一年了都,虽然经常没空搞私活,但好歹做过两个版本,为啥还是不太靠谱呢。

    【第一版】

    第一版是纯Java,MVC分层或者其实只是VC分层。

    核心其实很简单,文件用FileReader直接readLine(),直接附上换行符就FileWriter写出文件。

    然后也提供了命令行直接运行的方式,输入源文件、目标路径,就可以处理了。因为想支持目录操作,所以设置了文件类型的过滤配置。

    可就是图形界面方面花了很多时间,用Swing,晦涩难用,工具又不支持,做出来效果不好看。

    在组里分享出来,结果没人用,大抵是因为交互界面不友好,还不如用FTP工具传上去再下回来。

    没人用也就先放那儿吧。可是直到有一天,我自己需要用到,便拿出来,结果发现。。。目录穷举根本没做好,根本就是个废物。。。

    更重要的是后来,捣腾了个Window Builder,能轻松解决UI问题。才考虑做第二版。

    【第二版】

    模块1,单个文件转换,直接抄以前的。

    模块2,单元测试组件。因为想用比较偏向TDD的方式来做,所以局部先搭起了测试用例。

    模块3,界面。因为这次的界面工具很强力,所以想先从界面下手,其实想做成个界面小应用。WB其实是Eclipse的一个插件,所以这次基本上就是在Java上像.NET一样写界面。也抛弃了丑陋的Swing,而使用了优美顺滑的SWT。
    (Standard Widget Toolkit,一来使用原生窗口所以柔顺丝滑如潘婷的广告一般,二来其设计真的要优于Swing/AWT。布局管理器更加鲜明和灵活,事件多数封装成widgetDefaultSelected(SelectionEvent arg0)调用方便,还有如Tree和DirectoryDialog等非常常用非常实用的组件。)

    模块4,文件夹遍历。这一块直接用了递归,要说可以算是深度优先遍历。本来打算边递归边把文件处理掉,但想想递归里做太多事不好,于是只是获取列表,返回一个File类型的ArrayList。当时也考虑过LinkedList,不过只需要遍历,链表此时没啥优势,反而耗资源。

    模块5,Controller层面的黑盒测试。设计了五个用例。
    1.单文件处理,没啥特别;
    2.单文件处理,文件比较大(用了个100MB的压缩包);
    3.目录处理,有若干层子目录,但都没有文件;
    4.目录处理,压力测试,至少十层子目录;
    5.目录处理,压力测试,文件数目非常多(直接用了某个档案目录,共700多个文件)。
    虽然还不是最完整的,但覆盖了绝大多数情况了。而且都是用来处理普通文件,完全不考虑访问权限的情况了。

    模块6,容错及日志处理。容错一开始就有注意,空值判断等都有做,所以基本上都是IOException层层往外抛,在最外层处理。日志是配了log4j,但还没决定哪些地方要记录。

    模块7,文件过滤处理(白名单黑名单)。还没做。

    现状是核心功能都写完了,基本能用了,于是导出了一个可执行jar文件在外面跑。于是杯具发生了,因为调用了SWT库,整个包臃肿达16MB。。。这么简单的功能,居然大到用邮件发不出去!(邮箱限制了4MB附件。)

    于是乎我又陷入迷茫了。。。自己凭空想象的需求,总有点那个那个的。。。小程序没有友好界面是没人用的,可是这么臃肿,传输也十分不方便的。。。究竟,能从什么地方下手呢?

  • 相关阅读:
    NetBeansRCP-添加/修改NetBeans的JVM启动参数
    (OK) install Android Studio 3.2 preview on Fedora 27
    (OK) Research, implementation, and improvement of MPTCP on mobile smart devices
    android-ktx
    ARM要risk(危险)了!开源的RISC-V来了,这不是危言耸听!
    表情符号大全
    (OK) Fedora 27
    Latex写算法的伪代码排版
    中国论文数超过美国 施一公:“垃圾文章”太多
    TCP/IP重传超时--RTO
  • 原文地址:https://www.cnblogs.com/syjkfind/p/2781769.html
Copyright © 2020-2023  润新知