programmer是程序的思考者,而coder只是一个执行者
劳心者制人,劳力者制于人
如果项目不紧的情况下,应该从需求做起,最好能够穷尽所有的需求,遇到与别人模块交互的情况,规定好与别人交互的接口。
然后才是开始设计,抓住需求当中的名词,想想是否设计成为类,然后根据测试用例,来设计框架结构,至少要说出这么做的优点,遇到其中比较复杂的模块,详细设计内部逻辑,遇上需要维护状态,应该描绘出状态。总之不应该出现,到开发的时候打补丁的情况。
最后才应该是coding,根据原来的思路来进行coding,可能在不断coding过程中会反馈到需求,随着项目的进行,可能会有当初没有考虑到的需求,这次应该反馈到项目需求部分,重新考虑设计,再继续coding下去,这个过程中可能以前的code需要修改,也有可能是反馈到设计部分,然后再继续coding。
通过这样一步一步迭代获取最后的结果。做一个新项目反馈可能会比较多,但是做过之后有了经验会在需求和设计部分将以前遇到的问题给化解掉,而不会到coding时才发现需要修改。
不要一上来立马就coding,要想清楚你要做什么,至少在脑中应该设计下,你要怎么做,复杂一点应该做详细的设计,如果是一个单独的模块应该从需求开始做起。这样做到你能预测到自己将来计划,一切都是可控的,不会出现到后来推倒重来或者一直都是打补丁的情况。
做一个programmer,而不要做一个coder