背部,该项目团队去了一半多,我们出差。我将离开之前,闪亮强哥给了我学习技术的列表,以了解它:AngularJs,bootsrap,smartadmin,html5,css3。很多前景的技术。哎,学吧,等学好了这些前台技术。以后还能够多赚些外快,或者为以后的创业积累一些技术资本。只是,看这些真心枯燥。只是看着老外搞得那些绚丽的站点。心理不得不佩服呀!

这些天来了一位新同事,还是我那个项目组的,一開始看外貌我还以为是社招的,谁知道和我一样是个应届毕业生。华农的,洪哥一直强调要我们俩竞争意识,我也没怎么放在心上。后来他找我帮他装oracleclient,配置myeclipse的DB browser。还问我一些问题,只是我就当真如他说的“我看了好多书,操作方面缺乏一些”吧,只是他有一点我不太喜欢。就是非常喜欢抱怨。总是说公司太坑上不了外网,说看ext文档看的要死···哎,兄弟,都是这么过来的好不好,淡定一些···希望真如他说的那样,以后能够和他多请教一些“学术问题”···

部门副经理洪哥看我一直在自学,就给我一项任务:将word、excel中的特定字符所有替换为输入字符。形式不限,能够c/s,也能够b/s。我自己回去想了一想,首先想到要lucene建立索引。依据keyword进行查找。再高亮显示,像word的查找功能一样,进行替换。

于是连忙百度了一个c/s架构的类似于word的查找替换功能的样例,第二天再去问洪哥,发现原来自己搞错了需求,原来功能是要选中的文档中匹配的字符所有替换,能够多组进行替换。

依据需求再次想了一下:这样就不用lucene建立索引了。直接replaceAll,如今的关键是怎样改动word与excel文档,而且一次性选择多个文档。这两个问题纠结了好久,知道poi包是能够处理office的,可是曾经仅仅是提取纯文本,如今要改动文本,所以仅仅好百度,最终找到了相关的样例。可是对文档格式的有局限性,docx会出错;再来是文档的多个选择,一開始不想用其它jar包。直接用jsp+servlet处理。可是苦于每次的file的input仅仅能选择一个文档,这还好。能够用js的动态加入element来解决。但因为浏览器的安全性考虑,不能直接获取选择文件的全路径,这可慘了。不能直接在源文档上进行改动,必须上传呀。这样也倒好。能够用swfupload进行多文件上传,效果比較好。

经过一番思路的改动和重复測试。最终有了比較通顺的、可行的思路:用swfupload进行上传到一个暂时目录中,上传成功后表单提交成组的字符与替换字符,遍历暂时目录下的文档并查找替换,另存到特定目录下。将暂时目录删除。代码也都实现了,可是有下面局限:文档格式仅限于doc与xsl,对于替换后字符包括源字符的会卡死(poi包中Range.replaceText()的bug)···

给洪哥看。洪哥又提了一些需求。成组的字符与替换字符要通过配置文件获取。能够动态添加或者删除字符。这些都不是什么大问题,做了上面那个,自己在页面的js方面的确花了非常多功夫,看来前台真的不好搞呀!

总结:完毕一项功能。思路是最重要的,非常多代码网上都有,思路正确了能够省去不少麻烦,防止做到一大半由于一个细节无法攻破而重头開始做,相同。人活着也是,尤其是我们年轻的时候,当我们不知道怎么去选择的时候。拥有良好的、可行的思路会决定你的下半生。

到如今完毕了三项任务,一个编码转换器。一个基于ext的基础管理系统。另一个就是上面说到的字符转换器,由于公司的环境,无法与大家分享源码,实在羞愧···

版权声明:本文博客原创文章。博客,未经同意,不得转载。

MY WAY程序(十三) 理念和技术的更多相关文章

  1. https://stackoverflow.com/与程序相关的IT技术问答网站

    https://stackoverflow.com/ Stack Overflow是一个与程序相关的IT技术问答网站.用户可以在网站免费提交问题,浏览问题,索引相关内容,在创建主页的时候使用简单的HT ...

  2. HR:“最喜欢阿里出来的程序员了,技术又好又耐艹!” 我:???

    面试造火箭,进厂拧螺丝?真的是这样吗? 缘起 估计不少同学都是被标题吸引进来的.事先声明,这句话不是我虚构的,而是我实实在在从同事的口中听到的,而且还不止一次. 当时的场景就是很正常的交谈,别人也并没 ...

  3. PHP程序员如何突破技术瓶颈

    身边有几个做PHP开发的朋友,也接触到不少的PHP工程师,他们常疑虑自己将来在技术上的成长与发展,我常给他们一些建议,希望他们能破突自己,有更好的发展. 先明确我所指的PHP工程题,是指毕业工作后,主 ...

  4. web应用程序测试方法和测试技术详述

    1.界面测试 现在一般人都有使用浏览器浏览网页的经历,用户虽然不是专业人员但是对界面效果的印象是很重要的.如果你注重这方面的测试,那么验证应用程序是否易于使用就非常重要了.很多人认为这是测试中最不重要 ...

  5. .NET和PHP程序员如何通过技术快速变现

    刚开始写博客不足之处望大家多多指点,少一些质疑多一些帮助,我们就能成为朋友. 上一篇:<.NET程序员我是如何通过一个产品在2年内买车买房>有很多同为程序员的小伙伴们给我留言,从整体的留言 ...

  6. Java EE开发技术课程第五周(Applet程序组件与AJAX技术)

    1.Applet程序组件 1.1.定义: Applet是采用Java编程语言编写的小应用程序,该程序可以包含在HTML(标准通用标记语言的一个应用)页中,与在页中包含图像的方式大致相同.含有Apple ...

  7. “五年经验”年薪50W分享Java程序员掌握什么技术才不会被淘汰

    在这个IT系统动辄就是上亿流量的时代,Java作为大数据时代应用最广泛的语言,诞生了一批又一批的新技术,包括HBase.Hadoop.MQ.Netty.SpringCloud等等 . 一些独角兽公司以 ...

  8. Applet程序组件与AJAX技术

    Applet 定义 Applet是一种运行于Web客户端环境下的Java程序组件. 工作原理 Applet以代码的形式嵌入Web页面中,用标签<applet></applet> ...

  9. 高级程序员与CTO技术总监首席架构师

    一.高级程序员 如果你是一个刚刚创业的公司,公司没有专职产品经理和项目经理,你就是公司的产品经理,你如果对你现在的开发员能力不满,那么你只需要的是一个高级程序员. 你定义功能.你做计划推进和管理,他可 ...

随机推荐

  1. Enum的简单了解

    Enum可以将一组具名的有限集合创建成一种新的类型,而这些具名的值可以作为常规的程序组件使用. 在创建enum时,编译器会为你生成一个相关的类,这个类继承自java.lang.Enum,所以enum本 ...

  2. 开玩笑Web它servlet(五岁以下儿童)---- 如何解决servlet线程安全问题

    servlet默认值是安全线的存在,但说白,servlet安全线实际上是一个多线程线程安全问题.因为servlet它正好是一个多线程的安全问题出现. 每次通过浏览器http同意提交请求,将一个实例se ...

  3. Linux从用户层到内核层系列 - GNU系列之glibc介绍

    题记:本系列文章的目的是抛开书本从源代码和使用的角度分析Linux内核和相关源代码,byhankswang和你一起玩转linux开发 轻松搞定TCP/IP协议栈,原创文章欢迎交流, byhankswa ...

  4. 用 C++ 标准模板库(STL)的 vector 实现二叉搜索树(BST)

    本文由 Justme0翻译自 Code Project 转载请参见文章末尾处的要求. 介绍 众所周知,要建一棵树,我们需要关注它的内存分配与释放.为了避开这个问题,我打算用C++ STL(vector ...

  5. hdu 4620 Fruit Ninja Extreme(状压+dfs剪枝)

    对t进行从小到大排序(要记录ID),然后直接dfs. 剪枝的话,利用A*的思想,假设之后的全部连击也不能得到更优解. 因为要回溯,而且由于每次cut 的数目不会超过10,所以需要回溯的下标可以利用一个 ...

  6. Android_app项目开发步骤总结

    做了几个android企业应用项目后,总结了项目的基本开发步骤.希望可以交流. 一 应用规划:      ※确定功能.      ※必须的界面及界面跳转的流程.      ※须要的数据及数据的来源及格 ...

  7. FUDCon - FedoraProject

    FUDCon - FedoraProject FUDCon: Fedora Users and Developers Conference FUD: An acronym for Fear, Unce ...

  8. malloc一次性最大能申请多大内存空间

    受用户态内存地址空间的限制.64 位系统下分配几个 T 不成问题. 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:zz matrix链接:http://www.zhihu. ...

  9. 再探vim经常使用命令

     最開始学习过vim,见 http://blog.csdn.net/u011848617/article/details/12837873 之后以前不了了之,当再次学习后,发现经常使用命令的掌握还 ...

  10. CentOS 网络设置修改

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 路由器网关:192.168.1.1 步骤: 1.查看网络MAC地址 [ro ...