V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhaogaz
V2EX  ›  Java

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

  •  
  •   zhaogaz · 2017-05-21 20:42:31 +08:00 · 3257 次点击
    这是一个创建于 2503 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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

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

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

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

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

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

    你需要到极高的水平才能像画水墨画,一气呵成,最后画龙点睛。不要盲目去追求这种境界。
    zhaogaz
        4
    zhaogaz  
    OP
       2017-05-21 21:26:13 +08:00
    @Muninn 已经给您发送邮件,盼复!
    murmur
        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.目前代码写了一部分了,但是感觉按照这样的思路东西越来越长,虽然我已经尽力想办法缩减一部分代码了,如何才能知道我的代码是不是可以用设计模式再次简化?现在我才学习了几个月的时间,没有写过框架相关内容,看设计模式合适么?

    >先出产品再优化代码,第一个项目肯定写的屎一样,但是写不出来不就没法交差了么
    lancerliu
        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.代码简化现阶段的你是无所谓的,太早的优化代码就是原罪,完全没必要。什么时候代码简化?等你先把这个东西写出来吧。
    zhaogaz
        7
    zhaogaz  
    OP
       2017-05-21 22:10:41 +08:00
    @lancerliu
    @murmur
    @misaka19000


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

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

    不过看到大家这么说,感谢大家的建议。
    EmdeBoas
        8
    EmdeBoas  
       2017-05-21 22:14:00 +08:00
    不要提前优化...一边写一遍想着优化那样项目没法写下去的,用 web 有很多现成的轮子 美观又易用
    vcfvct
        9
    vcfvct  
       2017-05-22 04:06:55 +08:00 via Android
    从职业发展角度还是写 Web 的吧。swing 自己玩玩可以,job market 上毕竟 Web 是主流。My 2 cents.
    sonyxperia
        10
    sonyxperia  
       2017-05-22 15:56:19 +08:00
    真的没有人带你吗?
    zhaogaz
        11
    zhaogaz  
    OP
       2017-05-22 20:44:53 +08:00
    @sonyxperia 你值得是什么类型的带?
    zhangneww
        12
    zhangneww  
       2017-05-27 14:13:08 +08:00
    @zhaogaz 就是说,你一个新手程序猿,公司让你独立做项目?没人帮你?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5401 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 08:32 · PVG 16:32 · LAX 01:32 · JFK 04:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.