个人项目复盘

作为一个新手,该怎样从头到尾完整的开发一个项目呢?我将从:开发前、开发过程中、开发完成后,三个方面来分享我的思考。

项目开发前

项目开发前你要做的就是:需求分析

需求分析就是理清楚:你的项目要解决的问题有哪些?你所面对的用户分别有哪些需求(可能是个多用户系统)?

如果学过 UML 你可以画「用例图」
读者用例图
画用例图是描述系统需求的方式之一,你可以用简单的思维导图来代替 UML。

注意:你个人开发的项目最好是自己平时所接触的,这样你才容易找到自己的需求,明白自己要做的到底是什么。

如果开发时一头雾水不知该如何开始,你可以「借鉴、参考」。模仿所开发方向同行业优秀案例,结合自己的想法进行改造优化。

比如我开发的图书管理系统,我就参考了百度排名比较靠前的:北京大学图书馆、温州市图书馆的主页布局。

开发过程中

开发的过程要做的就是,根据需求具体实现功能,将「做什么?」变成「怎么做?」。先根据自己的项目需求画出系统的具体结构。
项目结构图
根据项目的结构图,逐步的按照模块来实现自己的系统。

作为新手,GitHub 上类似的开源项目可以给你不少参考。我在开发时也在上面参考了一些项目,在学习别人代码的同时,提高了自己的编程能力。

开发的过程中可能会遇见不少困难,Google 英文 搜索可以让你更快的找到优质答案,基本上(初级码农)能遇见的问题网上都已经有了解决方案。

StackOverflow,是我搜索结果,指向最多的网站,编程界也有「面向 StackOverflow」编程的玩笑,这里的答案比百度搜索到的 CSDN 的答案更专业跟具体,可以帮你更好的 了解问题并解决问题

系统界面的美观很重要。善用一些前端的 UI 框架,例如:Bootstrap、Semantic UI、JQuery UI 等。如果不是有很强的个人设计能力,对色彩的敏感度很高,采用以上的 UI 框架可以很好的帮你美化界面。
界面对比
提高用户体验,和用户互动。用 JavaScript 和 Ajax 在表单提交等地方给用户 正确/错误 的输入反馈。

设计一个良好的数据库。这里也要考虑你的项目是以「代码优先」,还是「数据优先」。一个良好的数据库设计可以降低你项目的耦合性。可以参考数据数库设计的「第一范式」、「第二范式」、「第三范式」来优化你的数据库设计。

开发完成后

项目开发完成后,要进行必要的功能测试。对每一模块的每一个功能进行测试根据测试结果对项目中出错的代码进行修改。

没有经过测试的代码,谁也不能保证不会出错。例如:我的项目 1.0 版本,对于读者修改密码的表单验证就有两个错误。

$("#submit").click(function () {
    if (pwd1.val().trim().length <= 0) {
        layer.msg('请勿更改为空密码', { icon: 2, time: 1000 });
        pwd1.focus();
        return false;
    }
    else if (pwd2.val().trim().length <= 0) {
        layer.msg('请勿更改为空密码', { icon: 2, time: 1000 });
        pwd2.focus();
        return false;
    }
    else if (pwd1.val != pwd2.val) { // val 没有带括号,结果恒等
        layer.msg('二次输入密码不一致,请重新输入密码!', { icon: 2, time: 1000 });
        pwd2.focus();
        return false;
    }
})

pwd1.val != pwd2.val 导致表单提交验证检测出错,控制台并不会报错。在实际的功能测试中才发现了这行代码的错误。

这里推荐:单元测试,这也是开发者必须掌握的技能,针对每个独立的模块进行测试,不盲目的判断自己的代码正确与否。根据测试的结果来看是否要修改自己的代码

总结

1、在 BUG 中成长。对于我这样的初级码农来说,BUG 出现最大的可能性是对于某一方面的知识尚未掌握,在解决 BUG 的同时填补自己的知识盲区。

2、实际说话,不主观判断。程序出错后,不主观判断某一段程序的正确与否,而是根据测试的结果来推荐出错的位置,有时候可能是你打错字了。(学会自己做测试)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值