先说下背景:刚毕业,不到一年,之前写稿子,现在程序员。目前以程序员状态活了 3 个月,刚刚转正。外包公司打杂。(好在不加班,有时间自己学东西)
目前业余时间在做一个小项目(第一次做,具体内容不敢说,感觉会被喷。),在不断接触各类各种工具类,学到了各种工具类的用法,感觉是有一些提高(主要在学工具类为什么设计成这样,如何使用)。写代码过程中会不断出现问题,自己也能找出解决。但是目前有一些内容困扰着我,希望有相关经验的人可以指点一下。在这里谢谢大家。
具体问题: 1.做的这个东西是需要有一个交互界面的,不知道要用 java 的图形界面,还是起个服务器做成网页。(图形界面感觉更容易点,个人偏向于先用 配置文件 进行写代码最后把配置文件改成 gui,有需求的话再换成服务器做成网页。),所以怎么设计代码才能实现这样的切换呢?这算是 mvc 设计模式里面的东西么?
2.项目中需要的数据不是很多,不到 10 张表,每个表几百条数据,具体多少字段也不好说,没自己分析。我在想要不要用 xml 文件之类保存数据?关于使用数据库上有这个疑问。
3.如何估算这个东西要开发多久?
4.就算我看了 mvc 的设计模式,在工作中也用到了,但是在这个小项目中,我没办法把我的项目按照 mvc 的设计模式进行抽象,觉得很困惑。
5.目前代码写了一部分了,但是感觉按照这样的思路东西越来越长,虽然我已经尽力想办法缩减一部分代码了,如何才能知道我的代码是不是可以用设计模式再次简化?现在我才学习了几个月的时间,没有写过框架相关内容,看设计模式合适么?
其实还有不少问题,没有想好怎么问,就这些吧。
1
zhaogaz OP 如果有什么说错的地方,欢迎批评指正。谢谢大家。
|
2
misaka19000 2017-05-21 20:56:27 +08:00
GUI 的话还是用网页来写吧
|
3
Muninn 2017-05-21 21:08:46 +08:00 3
架构师过来给你说一句,架构是因需求而生的,有时候需求有小不同,架构差别就很大。
你整篇没提一点业务需求,而都在纠结架构的选择,好像天下的软件架构都一样似的。 觉得你还没到研究设计模式的水平,无论如何先实现出来再改吧。 写软件好像画油画,不满意的地方可以覆盖更改。 你需要到极高的水平才能像画水墨画,一气呵成,最后画龙点睛。不要盲目去追求这种境界。 |
5
murmur 2017-05-21 21:35:00 +08:00 1
1.做的这个东西是需要有一个交互界面的,不知道要用 java 的图形界面,还是起个服务器做成网页。(图形界面感觉更容易点,个人偏向于先用 配置文件 进行写代码最后把配置文件改成 gui,有需求的话再换成服务器做成网页。),所以怎么设计代码才能实现这样的切换呢?这算是 mvc 设计模式里面的东西么?
>java 设计 windows 界面很麻烦,所以肯定要 web 2.项目中需要的数据不是很多,不到 10 张表,每个表几百条数据,具体多少字段也不好说,没自己分析。我在想要不要用 xml 文件之类保存数据?关于使用数据库上有这个疑问。 >数据库只有大了会出问题,小了用 xml 怎么维护,随便上个 mysql 就可以了 3.如何估算这个东西要开发多久? >开发+设计+debug+后期维护,随便估一个,然后这个时间*pi 天就差不多了,难的要*10pi 4.就算我看了 mvc 的设计模式,在工作中也用到了,但是在这个小项目中,我没办法把我的项目按照 mvc 的设计模式进行抽象,觉得很困惑。 >先出东西再学设计模式,现在的 ide 已经智能到让你不知道什么叫设计模式了 5.目前代码写了一部分了,但是感觉按照这样的思路东西越来越长,虽然我已经尽力想办法缩减一部分代码了,如何才能知道我的代码是不是可以用设计模式再次简化?现在我才学习了几个月的时间,没有写过框架相关内容,看设计模式合适么? >先出产品再优化代码,第一个项目肯定写的屎一样,但是写不出来不就没法交差了么 |
6
lancerliu 2017-05-21 21:57:13 +08:00 1
似乎你刚开始学,那你做这个东西的流程应该是这样的:
1.写个很丑的东西(界面很丑,代码也很丑),但是可以实现功能 2.开始添加新的功能。在这个途中,你会发现,我是不是有很多代码是重复的?是不是有些功能可以用更简洁的代码来表达? 3.新的功能添加完毕了,并且可以用了。 4.你开始尝试着手优化你的代码。 5.然后你开始开发新版本,这个时候,你可以看看设计模式的书,尝试套一个合适的模式上去。 其他建议: 1.java 用 web,数据库用 mysql 或 sqlite,开发时间就是业余啊,每天 2 ~ 3 小时吧 2.设计模式是给具体业务的,不是为了用设计模式而用设计模式 3.代码简化现阶段的你是无所谓的,太早的优化代码就是原罪,完全没必要。什么时候代码简化?等你先把这个东西写出来吧。 |
7
zhaogaz OP @lancerliu
@murmur @misaka19000 感谢大家的指点,我已经做好了重构的心理准备。直接去写代码了。。。 其实想先用 GUI 的目的是因为简单看了看 java 的 swing,感觉能快速把东西弄出来。。还能有个页面,因为现在对 web 方面不熟悉,,不能很快的弄出来。。 不过看到大家这么说,感谢大家的建议。 |
8
EmdeBoas 2017-05-21 22:14:00 +08:00
不要提前优化...一边写一遍想着优化那样项目没法写下去的,用 web 有很多现成的轮子 美观又易用
|
9
vcfvct 2017-05-22 04:06:55 +08:00 via Android
从职业发展角度还是写 Web 的吧。swing 自己玩玩可以,job market 上毕竟 Web 是主流。My 2 cents.
|
10
sonyxperia 2017-05-22 15:56:19 +08:00
真的没有人带你吗?
|
11
zhaogaz OP @sonyxperia 你值得是什么类型的带?
|