DIY迷你邮件客户端开发手记(一)

简介:

       基于娱乐开源commons-email-1.x包之后,花了点时间重新整理了一下代码和GUI设计,只想利用已有的组件搭起一个自己的邮件客户端,如果在往高出走点,也可以弄一个邮件服务器来。

      1.开发目的

        简单,甚至单纯的可怕。造重复的轮子,感受不一样的过程

      2.开发环境

       主流Java开发IDE NetBeans ; 使用开源jxl.jar,jdom-1.0.jar,commons-email-1.x包,对邮件发送进行简单的二次封装,可以参见http://aiilive.blog.51cto.com/1925756/1038558

      3.需求,功能

       需求很实在,就是在学习的过程中想切身的感受一种软件开发的迭代的过程。功能自然是基本满足发邮件的功能,主要想着是弄一个可以将已经存在的文档中的电子邮件地址直接作为收件人来使用,这样也就达到根据不同的策略来实现不同的业务处理的功能。

     4.GUI设计

       软件的核心是其中对错综复杂的业务进行的处理,不过没有良好的用户界面,显然是挑战这么多年Windows的权威和价值观。所以,关于GUI的设计也是一门很深的学问。自己这个邮件客户端,满足自身对美学的要求即可,不敢舍本逐末,也不敢残害视角。

       贴出来一张最终的界面图:

    5. 停下来多想想。

       5.1  如何编写这些策略性的邮件发送处理

       5.2  如何处理一些关于字符串,邮件地址验证,获取收件人地址信息

       5.3  用户界面的布局,各个组件在特定时间的状态

       5.4  如何测试,并且保证已经完成的代码将可以直接添加到工程中使用

    6. 错过5,瞎忙乎了一阵

        写到这里算是对这几周利用碎屑时间开发这个小应用的总结和反思吧。

     第一,虽然是碎屑时间,但是没有对整个应用做一个较为全面的分析和组织策划,而是匆忙的打开IDE,迫不及待的写代码,最后的结果是后面更多的碎屑时间用来收拾前面留下来的问题,基本上是对前面的代码重新写了一遍,而且还有点可惜的删减,重构,组织和整合。

  第二,经常会被一些事情打断手头这个应用的开发,由于没有很好的设计,每次都感觉是新东西一样,还得再次熟悉,各个类之间的关系显的格外混乱,相反更是浪费时间,还打击了积极性。

  第三,深思熟虑的重要性。没有考虑好,请不要动手,可惜动手了;没有设计好,请不要动手,可惜动手了;没有测试完成,请不要开始下一块的编写,可惜还是动手了。可能大多数人都会烦这个毛病,最后的苦果当然还得用自己碎屑的时间给吃掉,这是何苦呢!这可能是苦逼生活来源的一部分吧。好的软件是设计出来的,真没错,错在太急于看到显示出来的东西了。完了,开发周期延长了,瞎忙了一统。

     这是回过头来看已经发生的问题,触目惊心的让人寒颤。本来看到自己做的东西,展示在自己面前了应该像刚开始动手写的那会激动一下,可惜这个时候一切全无。倒是有Shift+Delete的冲动。软件工程中有这么一个笑话吧,说是人类制造的三种东西不能去看: “法律,香肠,软件”。可以想象这些东西产生的过程,应才是极为丰富和让人烦躁不堪的。

        这里想回到一个关于为什么写博客的问题上,理解很简单,休闲的文章算是认识生活,感受生活,留下美好事物;技术文章自我剖析,揭露自我,追求进步。很多事情是无法经历的,也有很多事情是没有必要再去重走。所以写下手记,提醒自己也同时帮助能够从中获取帮助的人。软件开发的这个反反复复的过程,也许受够了,不过如果继续从事,那么自然要安下心来继续承受,但是承受的方式,态度将决定了能否感受到其中的愉快和成就感。说不定,还真Shift + Delete已成完成的工程,没关系,接下来会更好。



本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/1063834,如需转载请自行联系原作者

相关文章
|
7月前
|
设计模式 缓存 前端开发
一款清新优雅的中后台模板,内置丰富可配置的主题(强烈推荐)
Soybean Admin 是一个基于 Vue3、Vite3、TypeScript、NaiveUI、Pinia 和 UnoCSS 的清新优雅的中后台模版,它使用了最新的前端技术栈,内置丰富的主题配置,有着极高的代码规范,基于 mock 实现的动态权限路由,开箱即用的中后台前端解决方案,也可用于学习参考。
|
10月前
|
小程序
微信小程序项目实例——图片处理小工具(自制低配版美图秀秀)
微信小程序项目实例——图片处理小工具(自制低配版美图秀秀)
|
Web App开发 安全 API
五款轻量级的办公软件,界面简洁且无广告
五款轻量级的办公软件,界面简洁且无广告
205 0
五款轻量级的办公软件,界面简洁且无广告
Qt-网易云音乐界面实现-6 迷你个人中心实现
这个界面除了麻烦耗时,没有啥技术含量。暂时我也就把它称为迷你个人中心,因为后面还有一个个人中心了。 先看下完成品
109 0
Qt-网易云音乐界面实现-6 迷你个人中心实现
|
C++
Qt-网易云音乐界面实现-3 音乐名片模块的实现
Qt-网易云音乐界面实现-3 音乐名片模块的实现
125 0
Qt-网易云音乐界面实现-3 音乐名片模块的实现