作为刚入行的写代码的人,有个疑问,我感觉应该算架构类的问题。

2017-05-21 20:42:31 +08:00
 zhaogaz

先说下背景:刚毕业,不到一年,之前写稿子,现在程序员。目前以程序员状态活了 3 个月,刚刚转正。外包公司打杂。(好在不加班,有时间自己学东西)

目前业余时间在做一个小项目(第一次做,具体内容不敢说,感觉会被喷。),在不断接触各类各种工具类,学到了各种工具类的用法,感觉是有一些提高(主要在学工具类为什么设计成这样,如何使用)。写代码过程中会不断出现问题,自己也能找出解决。但是目前有一些内容困扰着我,希望有相关经验的人可以指点一下。在这里谢谢大家。

具体问题: 1.做的这个东西是需要有一个交互界面的,不知道要用 java 的图形界面,还是起个服务器做成网页。(图形界面感觉更容易点,个人偏向于先用 配置文件 进行写代码最后把配置文件改成 gui,有需求的话再换成服务器做成网页。),所以怎么设计代码才能实现这样的切换呢?这算是 mvc 设计模式里面的东西么?

2.项目中需要的数据不是很多,不到 10 张表,每个表几百条数据,具体多少字段也不好说,没自己分析。我在想要不要用 xml 文件之类保存数据?关于使用数据库上有这个疑问。

3.如何估算这个东西要开发多久?

4.就算我看了 mvc 的设计模式,在工作中也用到了,但是在这个小项目中,我没办法把我的项目按照 mvc 的设计模式进行抽象,觉得很困惑。

5.目前代码写了一部分了,但是感觉按照这样的思路东西越来越长,虽然我已经尽力想办法缩减一部分代码了,如何才能知道我的代码是不是可以用设计模式再次简化?现在我才学习了几个月的时间,没有写过框架相关内容,看设计模式合适么?

其实还有不少问题,没有想好怎么问,就这些吧。

3281 次点击
所在节点    Java
12 条回复
zhaogaz
2017-05-21 20:52:00 +08:00
如果有什么说错的地方,欢迎批评指正。谢谢大家。
misaka19000
2017-05-21 20:56:27 +08:00
GUI 的话还是用网页来写吧
Muninn
2017-05-21 21:08:46 +08:00
架构师过来给你说一句,架构是因需求而生的,有时候需求有小不同,架构差别就很大。

你整篇没提一点业务需求,而都在纠结架构的选择,好像天下的软件架构都一样似的。

觉得你还没到研究设计模式的水平,无论如何先实现出来再改吧。

写软件好像画油画,不满意的地方可以覆盖更改。

你需要到极高的水平才能像画水墨画,一气呵成,最后画龙点睛。不要盲目去追求这种境界。
zhaogaz
2017-05-21 21:26:13 +08:00
@Muninn 已经给您发送邮件,盼复!
murmur
2017-05-21 21:35:00 +08:00
1.做的这个东西是需要有一个交互界面的,不知道要用 java 的图形界面,还是起个服务器做成网页。(图形界面感觉更容易点,个人偏向于先用 配置文件 进行写代码最后把配置文件改成 gui,有需求的话再换成服务器做成网页。),所以怎么设计代码才能实现这样的切换呢?这算是 mvc 设计模式里面的东西么?

>java 设计 windows 界面很麻烦,所以肯定要 web

2.项目中需要的数据不是很多,不到 10 张表,每个表几百条数据,具体多少字段也不好说,没自己分析。我在想要不要用 xml 文件之类保存数据?关于使用数据库上有这个疑问。

>数据库只有大了会出问题,小了用 xml 怎么维护,随便上个 mysql 就可以了

3.如何估算这个东西要开发多久?

>开发+设计+debug+后期维护,随便估一个,然后这个时间*pi 天就差不多了,难的要*10pi

4.就算我看了 mvc 的设计模式,在工作中也用到了,但是在这个小项目中,我没办法把我的项目按照 mvc 的设计模式进行抽象,觉得很困惑。

>先出东西再学设计模式,现在的 ide 已经智能到让你不知道什么叫设计模式了

5.目前代码写了一部分了,但是感觉按照这样的思路东西越来越长,虽然我已经尽力想办法缩减一部分代码了,如何才能知道我的代码是不是可以用设计模式再次简化?现在我才学习了几个月的时间,没有写过框架相关内容,看设计模式合适么?

>先出产品再优化代码,第一个项目肯定写的屎一样,但是写不出来不就没法交差了么
lancerliu
2017-05-21 21:57:13 +08:00
似乎你刚开始学,那你做这个东西的流程应该是这样的:
1.写个很丑的东西(界面很丑,代码也很丑),但是可以实现功能
2.开始添加新的功能。在这个途中,你会发现,我是不是有很多代码是重复的?是不是有些功能可以用更简洁的代码来表达?
3.新的功能添加完毕了,并且可以用了。
4.你开始尝试着手优化你的代码。
5.然后你开始开发新版本,这个时候,你可以看看设计模式的书,尝试套一个合适的模式上去。

其他建议:
1.java 用 web,数据库用 mysql 或 sqlite,开发时间就是业余啊,每天 2 ~ 3 小时吧
2.设计模式是给具体业务的,不是为了用设计模式而用设计模式
3.代码简化现阶段的你是无所谓的,太早的优化代码就是原罪,完全没必要。什么时候代码简化?等你先把这个东西写出来吧。
zhaogaz
2017-05-21 22:10:41 +08:00
@lancerliu
@murmur
@misaka19000


感谢大家的指点,我已经做好了重构的心理准备。直接去写代码了。。。

其实想先用 GUI 的目的是因为简单看了看 java 的 swing,感觉能快速把东西弄出来。。还能有个页面,因为现在对 web 方面不熟悉,,不能很快的弄出来。。

不过看到大家这么说,感谢大家的建议。
EmdeBoas
2017-05-21 22:14:00 +08:00
不要提前优化...一边写一遍想着优化那样项目没法写下去的,用 web 有很多现成的轮子 美观又易用
vcfvct
2017-05-22 04:06:55 +08:00
从职业发展角度还是写 Web 的吧。swing 自己玩玩可以,job market 上毕竟 Web 是主流。My 2 cents.
sonyxperia
2017-05-22 15:56:19 +08:00
真的没有人带你吗?
zhaogaz
2017-05-22 20:44:53 +08:00
@sonyxperia 你值得是什么类型的带?
zhangneww
2017-05-27 14:13:08 +08:00
@zhaogaz 就是说,你一个新手程序猿,公司让你独立做项目?没人帮你?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/362815

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX