121 基于MVC框架下的网上书店系统 002 项目开发计划
计划列表
一、笔记
1.1 spring、spring mvc、Hibernate、MyBatis、Shiro、Security等框架笔记
1.2 Maven、Gradle、Eclipse、Android Studio等工具使用技巧
1.3 前台页面代码片段记录、JQuery、Bootstrap框架使用
1.4 Android学习记录【以小项目形式】
二、周边技术
2.1 groovy
2.2 Python
三、周边工具
3.1 截图工具
3.2 PS
3.3 Axure
3.4 Powerpowerdesigner
3.5 Atom
四、英文文档
4.1 Spring In Action
计划说明
一、笔记
这一部分主要是记录一些技术上的问题,比如Spring MVC的配置,Hibernate的一对多、多对一,又或者Maven/Gradle多项目构建等。本来是想每个技术写一个系列,不过考虑到第一个项目主要是为了练习、提升写一个完整项目的能力,是为了写项目学技术,而不是为了技术写项目。所以就先零散的记录一些写121项目期间遇到的技术问题以及解决方案。
二、周边技术
这一部分主要是记录一些Java EE、Android之外的东西,比如说我使用的构建工具是Gradle,但是我应该会同时支持Maven构建,这就需要把Gradle的groovy脚本转换为Maven的xml脚本,用python来处理这个问题显然比较合适。又或者批量处理日志文件、自动备份数据库等问题,在我看来,这些问题不仅仅是Java EE开发或者Android开发所独有的,于是我把这些问题的处理需要用到的东西归为周边技术,虽然Python、日志分析、数据库管理等每一个都是很大的话题,不过现在还不是花费大量时间学习这些东西的时候,能把一些解决方案记录下来就可以了。
三、周边工具
这一部分就完全是备忘录形式的笔记了,比如PS的简单使用,Atom编辑器的配置、常用插件,或者是Powerpowerdesigner的使用等,只要不是和IDE相关的软件,全部放到这一部分。现在还处于使用工具的阶段,想要达到设计原型或者使用Powerpowerdesigner设计数据库这种水平,就是以后的事情了,先学会用工具再说。
四、英文文档
英文对我来说是一个短板,而且我的英语不是一般的差,基本上除了常见的error log可以看明白,其它的英文一概不懂。但是在现在这个时代,英文水平在某种程度上可以直接拔高工资水平,所以不想学也得学。而我学习的方法就是看英语技术资料。Spring In Action我认为就比较合适。
关于学习技术与写代码的那些事
学习编程技术,尤其是自觉编程技术,从来不是循序渐进的事。我觉得我不可能把Android的UI组件全部学完再去看activity ,这种学习方式不论是从效率上还是可行性上,都是不高的,我认为也是不可取的。当然,想要成为神一样的技术大拿,肯定得对一个领域的方方面面都非常了解,但是从头到尾的“一步一步”学习一个领域的东西,就算能坚持下来,那要不就是真的成了大神,要不就是什么也没学会。所以我觉得真要深入软件开发的某一个领域去钻研,那就应该不停的写项目,写涉及不同需求、不同行业的项目。比如我这次写的是关于在线商店的,那么下次就可能会是一个OA,多接触不同的行业需求,才能扩展视野,也能加深对软件开发技术的理解。在写项目的过程中,再记录所遇到的技术问题和解决方法。等到接触的差不多了,就可以再重头开始学习这个领域的东西,那个时候见识也有了,知识储备也有了,当然也就可以“一步一个脚印”的钻研了。
我之前写代码的时候,都是项目能运行,不报错就行,至于BUG,那基本上就是忽略。这次写这个系列我也不打算维护每个已完成的项目,最多挑几个我比较感兴趣的东西长期维护下去。原因有三:1、能力问题,现在还无法做到写出一个完整的设计文档,再按照设计文档写代码;2、经验不足,BUG肯定会有,把能解决的BUG解决掉就可以,不能解决的记录下来,下次再写类似的项目的时候争取避免或争取解决,如果还是不能解决,就得放到这人系列结束的时候使劲处理了;3、时间问题,这个列表中的项目,每个深入的做,都可以做得很大,但是我显然没有那么多时间,在我没有发现真正想要长期维护的项目之前,每个项目都只是找一个同类产品去模仿,比如121项目就是模仿当当在线书店,如果遇到了想要长期做下去的东西,也许会放到这个系列结束之后再去长期维护。
对自己的要求
-
认真记录问题,以及解决方案,最好能记录对于同一问题在不同情境下最合适的解决方案
-
经常push代码,再也不能出现因为电脑坏了结果丢失数千行代码的事
-
尽量以最佳实践去写代码
-
测试驱动开发,因为只有我一个人开发,所以更加应该使用测试驱动开发,这样如果某一部分有设计上的问题,修改起来就比较容易