java - Web 程序员在应用领域的历险记(或需要实用的 Java 帮助)

标签 java

好吧,所以我是一名 compsci 大学生,正在上大学,还没有向某个专业方向发展。我从十几岁起就开始编程,当然知道我的东西 - 精通大约八种不同的语言以及 compsci 理论等。此外,我有大约四年的网络编程(主要是 PHP)在我身后,有自 web 2.0 开始流行以来,开始在该领域从事自由职业。

作为实习生,我现在的暑期工作是为工业而非软件相关的初创公司编写应用程序。该应用程序将用于管理生产线和物流流程。我选择 Java 作为我的语言,因为我不想搬起石头砸自己的脚。

我精通 Java 的语法、数据结构、语言理论等,但我完全不知道从哪里开始。我可以在脑海中完美地描绘出这个程序,我清楚地理解了问题并确定了解决方案的理论。也就是说,我不知道要使用什么库,并且担心它们不会被很好地记录下来。

以下是我将要做的事情的一些大纲:

  • 两个应用程序,一个服务器和一个 客户(其中会有很多 份)。
  • 服务器和客户端显然会 通过(我不知道)沟通。
  • 服务器和客户端 软件将具有 GUI。
  • 服务器软件必须 查询 MySQL 数据库。
  • 客户端软件必须在 GUI更新的感觉 对数据库进行更改。这个 是它不能成为的原因之一 一个网络应用程序。

我什至不确定某个框架是否适合我。我在网络自由工作中多次使用 MVC,但我不知道这将如何转化为桌面应用程序。

简而言之,我正在为这项工作寻找合适的库,以及关于我是否应该使用框架(如果是的话,使用哪个)的建议。谢谢。

最佳答案

这是暑期实习生的工作?老实说,如果你问我,这听起来更像是一个大项目。你说启动与软件无关?谁想出了这个主意?他们是否知道像这样的事情实际上可能涉及的(巨大)范围?

软件开发的业务与语言语法和库完全不同。它是关于需求收集、定义规范、编写代码、确保代码质量、对其进行测试等等。这些不是实习生应该合理期望的事情。对于这样的事情,您应该接受更有经验的监督,您可以向他们学习,以前做过这件事的人。

话虽这么说,除非有充分的理由,否则我可能会做网站而不是桌面应用程序。桌面应用程序在许多方面要复杂得多。您需要对客户端和服务器进行编码。沟通有点棘手。您必须担心在多个应用程序中维护状态的问题,如何处理被推送的更新等等。

简而言之,这是一项艰巨的任务。即使是一个网站也是一项艰巨的工作,但是很多这些问题都会消失。你可以用 Java 做到这一点。我当然编写了相当多的 Java 网站,但 PHP 可能是一个简单得多的选择。

此外,在 Java 上进行桌面开发也是一种折磨。 Swing 是(恕我直言)久经考验但开发起来非常痛苦。其他桌面库(例如 Netbeans RCP、Eclipse SWT)更现代,但有其他特质。

桌面远程处理库包括 Spring 远程处理、甚至 Web 服务和其他类似 Burlap 的内容。对于服务器端,我会使用 Tomcat 或应用程序服务器(Glassfish 是我的首选)、servlet 和 Spring。持久化可以通过 Hibernate 或 Ibatis(或许多其他选项)完成。

但老实说,桌面选项比基于 Web 的选项复杂得多。使用 PHP + jQuery + MySQL,您可能会更快地完成更多工作。

如果您要这样做,请尽可能保持简单。尝试定义最初交付所需的绝对最低限度并执行此操作。一旦有人拥有这些,他们就会更好地了解什么对他们有用,什么对他们不起作用。基本上,改进已经存在的东西比定义不存在的东西更容易。

关于java - Web 程序员在应用领域的历险记(或需要实用的 Java 帮助),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1158106/

相关文章:

java - 如何在 Android Mobile 中添加应用程序启动图像?

java - Spring boot application.yml 中的 Spring Kafka SSL 设置

java - 如何使用谷歌金融货币转换器API?

java - 无法在 spring 数据 rest 中启动 bean 'documentationPluginsBootstrapper'

java - 尝试运行corda时出现异常

java - Robot 在运行时无法找到 Robocode 库

java - 带有 JTextArea 而不是文本字段的 JOptionPane?

java - ObjectInputStream.readObject()在socket通信过程中永远挂起

java - 读取文件时验证每个读取的字节数组缓冲区

java - Card 类生成一个新的卡片对象