好吧,所以我是一名compsci大学生,在大学期间,还没有扩展到某个专业领域。我从小就开始编程,当然知道我的东西 - 精通八种不同的语言以及compsci理论等等。此外,我有大约四年的网络编程(PHP主要)在我身后,有自从Web 2.0变得热门以来,该领域开始了自由职业。
我现在的暑期工作是为一个工业而非软件相关的创业公司编写一个应用程序。该应用程序将用于管理生产线和物流流程。我选择Java作为我的语言,因为我不想用脚射击自己。
我精通Java的语法,在数据结构,语言理论等方面,但我完全不知道从哪里开始。我可以在脑海中完美地描绘出这个程序,我清楚地理解了这个问题,并将解决方案的理论钉在了一起。也就是说,我不知道要使用哪些库,我担心它们不会被很好地记录下来。
以下是我将要做的一些概述:
我甚至不确定框架是否适合我。我在网络自由职业者工作中使用了很多次MVC,但我不知道这将如何转换为桌面应用程序。
简而言之,我正在为工作寻找合适的库,以及关于我是否应该使用框架的建议(如果是,那么)。感谢。
答案 0 :(得分:7)
这是一个暑期实习生的工作?说实话,如果你问我,这听起来更像是一个重大的项目。你说初创公司与软件无关吗?谁想出了这个想法?他们是否知道这样的(巨大的)范围实际上可能会带来什么?
软件开发的业务与语言语法和库完全不同。它涉及需求收集,定义规范,编写代码,确保代码质量,测试等等。这些并不是实习生应该合理预期的事情。对于这样的事情,你应该受到更有经验的监督,你可以学习的人,以及之前做过这个的人。
话虽如此,除非有一个非常好的理由,否则我可能会做一个网站而不是桌面应用程序。桌面应用程序在很多方面都要复杂得多。您需要对客户端和服务器进行编码。沟通有点棘手。您必须担心在多个应用程序中维护状态的问题,如何处理被推送的更新等等。
总之,这是一项很重要的工作。即使是一个网站也是一项重要工作,但很多这些问题都会消失。你可以用Java做到这一点。我当然编写了我公平分享的Java网站,但PHP可能是一个更简单的赌注。
此外,Java上的桌面开发也是酷刑。 Swing是(imho)尝试过的,也是真实的,但也很难开发。其他桌面库(例如Netbeans RCP,Eclipse SWT)更现代,但还有其他特性。
桌面远程处理库包括Spring远程处理,甚至Web服务和Burlap等其他东西。对于服务器端,我将使用Tomcat或应用程序服务器(Glassfish是我的首选),servlet和Spring。持久性可以通过Hibernate或Ibatis(或许多其他选项)来完成。
但老实说,桌面选项比基于Web的选项复杂得多。使用PHP + jQuery + MySQL可能会更快地完成更多工作。
如果您这样做,请尽可能保持绝对简单。尝试定义最初交付所需的绝对最小值并执行此操作。一旦有人拥有它,他们就会更好地了解什么对他们有效,哪些无效。基本上,更容易细化已存在的东西,而不是定义不存在的东西。
答案 1 :(得分:3)
我建议您只构建一个Web应用程序。从您使用AJAX描述它的意义上来说,Web应用程序可以是“实时”。建立一件事要容易得多。如果您还想拥有一个富客户端,那么您需要使用您不熟悉的技术(如Swing或SWT)构建UI并设计/实现通信机制。
查看Hibernate(ORM工具)和Spring(IoC框架)。他们有一个陡峭的学习曲线,但从长远来看,它们会让你的生活变得更轻松。对于UI部分,初学者可能更容易使用JSF。
作为最后一点,我认为你有一个过于雄心勃勃的计划。您所描述的不是一个简单的项目,需要具备许多技术的专业知识。不要试图一次性完成所有事情。
答案 2 :(得分:2)
答案 3 :(得分:0)
这可以像你想象的那样疯狂,或者你可以去做KISS。
如果您想要一些非常简单的东西(如不使用任何框架): *在服务器端,您可以使用RMI。此服务器端将使用普通JDBC连接到MySQL数据库。但有些人说这有点老了,所以如果你想要变得有趣,你可以尝试JAX-RS,它可以将JSON对象/ XML返回给你的客户端。 *您的客户端可以使用Swing(假设您正在开发桌面)或Servlet + JSP(假设您正在开发webapp)并通过调用服务器公开的RMI对象/ JSON对象/ XML连接到您的服务器。 p>
如果您希望在代码可维护性方面有所帮助,可能需要将Spring + Hibernate插入此应用程序。
祝你好运!答案 4 :(得分:0)
库?
数据库的等ORM机制我建议Apache Commons库用于所有实用工作(处理文件,IO等)。那里有很多东西可以帮你重新发明轮子。
像Log4j这样的标准日志记录框架将允许您以多种不同方式登录,过滤日志并轻松插入监控解决方案。
您没有说明基于浏览器的解决方案是否可以被客户端/服务器GUI接受,并且该决定将推动更多的进一步架构。
如果您正在寻找基于浏览器的解决方案,那么无论您最终选择哪种框架,我都会建议servlets的基础(毫无疑问,这里会推荐很多)。
到了这个阶段,它将成为一个重大项目。也许您需要专注于使基础(客户端/服务器功能)工作,并在以后担心GUI。否则,这是一项大量工作(GUI工作可能会耗费大量时间)。
答案 5 :(得分:0)
只有一个挑剔:
服务器和客户端软件都将具有GUI。
我建议您使用管理GUI,而不是GUI服务器,使用无头(用awt说法)服务器。