我现在作为实习生的暑期工作是为工业而非软件相关的创业公司编写应用程序.该应用程序将用于管理生产线和物流流程.我选择Java作为我的语言,因为我不想用脚射击自己.
我精通Java的语法,在数据结构,语言理论等方面,但我完全不知道从哪里开始.我可以在脑海中完美地描绘出这个程序,我清楚地理解了这个问题,并将解决方案的理论钉在了一起.也就是说,我不知道要使用哪些库,我担心它们不会被很好地记录下来.
以下是我将要做的一些概述:
>两个应用程序,一个服务器和一个
客户(其中会有很多
副本).
>服务器和客户显然会
通过(我不知道)沟通.
>服务器和客户端
软件将有GUI.
>服务器软件必须
查询MysqL数据库.
>客户端软件必须“有效”
GUI时更新GUI的感觉
对数据库进行了更改.这个
是它不可能的原因之一
一个Web应用程序.
我甚至不确定框架是否适合我.我在网络自由职业者工作中使用了很多次MVC,但我不知道这将如何转换为桌面应用程序.
简而言之,我正在为工作寻找合适的库,以及关于我是否应该使用框架的建议(如果是,那么).谢谢.
解决方法
软件开发业务与语言语法和库完全不同.它涉及需求收集,定义规范,编写代码,确保代码质量,测试等等.这些并不是实习生应该合理预期的事情.对于这样的事情,你应该受到更有经验的监督,你可以学习的人,以及之前做过这种事的人.
话虽如此,除非有一个非常好的理由,否则我可能会做一个网站而不是桌面应用程序.桌面应用程序在很多方面都要复杂得多.您需要对客户端和服务器进行编码.沟通有点棘手.您必须担心在多个应用程序中维护状态的问题,如何处理被推送的更新等问题.
简而言之,这是一项艰巨的任务.即使是一个网站也是一项重要工作,但很多这些问题都会消失.你可以用Java做到这一点.我当然编写了我的Java网站的公平份额,但PHP可能是一个更简单的赌注.
此外,Java上的桌面开发也是酷刑. Swing是(imho)尝试过的,也是真实的,但也很难开发.其他桌面库(例如Netbeans RCP,Eclipse SWT)更现代,但还有其他特性.
桌面远程处理库包括Spring远程处理,甚至Web服务和Burlap等其他东西.对于服务器端,我将使用Tomcat或应用程序服务器(Glassfish是我的首选),servlet和Spring.持久性可以通过Hibernate或Ibatis(或许多其他选项)完成.
但老实说,桌面选项比基于Web的选项复杂得多.使用PHP jQuery MysqL可能会更快地完成更多工作.
如果你这样做,尽量保持绝对简单.尝试定义最初交付所需的绝对最小值并执行此操作.一旦有人拥有它,他们就会更好地了解什么对他们有效,哪些无效.基本上,更容易细化已经存在的东西而不是定义不存在的东西.