是2010年12月底那次软件工程实训, 给我了最直接的刺激。那时候是一个人扛下了整个项目, 代码进展得寸步难行。
2010年12月26日这一天,实训工作算是正式开始拉开了帷幕, 中软国际这个公司派的周褀还有朱映这两位程序员充当了指导的角色, 我们小组所承接的那个任务, 是给搭建一套物流配送系统, 具体是用JSP技术去弄的, 而我在这个组里头的情况比较特殊, 恰好只有我一个人是能写得动代码的那个人, 这大概就等于说我从头到尾全靠我自己一个人在硬撑着扛下来了。
老师的开场白, 把从可行性分析开始, 到需求分析、概要设计、详细设计、代码编写、测试, 一直到最终的验收, 这一条完整的流程线给梳理清楚了。听起来是挺有条理分明的, 可是真的一等到要动手操作去做的环节的时候, 我才发现我自己对于基础等于零起步的JSP是一无所知的。

在最近的两天时间里, 老师带着我们要对JSP基础语法以及数据库连接进行相关的梳理和回顾工作, 在此过程中所使用的编程开发工具包含了用于绘制模型的RationalRose、用于管理版本控制的SVN, 以及用于编写代码的MyEclipse。
课程开展伊始阶段, 我们尚可跟上教学节奏。然而随着课程内容向后半部分推进, 大家的大脑直接出现了宕机现象, 导致所记录的笔记变得越来越混乱。
我之前心里头有个想法, 觉得搞那个系统开发, 其实拼的就是课本里的知识。可结果, 拿到那个需求文档之后, 我连怎么拆解模块都懵了不知道咋整。接着详细设计才写了两页, 就直接卡死了, 彻底不动弹了。代码那栏基本上是一片空白一片白, 完全就是不知道怎么下手。
隔壁小组syz2同样是做物流方向的项目, 成员数量较多, 并且分工非常明确。于是, 我便鼓起勇气凑到她们身边去观摩, 重点观察她们是如何搭建JSP页面的, 以及如何连接MySQL数据库。我一边观看她们的操作, 一边借鉴其中的思路, 最终好歹将登录页面以及订单查询这两个页面成功运行起来了。
这段经历让我彻底地明白了, 课堂上的讲义是没法给人提供感觉的。只有当你对着真实的代码进行一行的又一行的阅读、修改以及运行的时候, 你才会知道一个HTTP请求在里面是怎么进行流转的。

在实训的第五天, 老师说协作这个事情是建立在一个人的素质上的, 如果个人表现不好的话就会把整个小组拖垮。老师说完这句话之后目光在我这里停留了几个秒的时间, 我的脸一下子就烧到了耳根的位置。
回头算账, 当一个人的身体同时被要求去管理前端页面内容、后端逻辑业务以及数据库连接这些完全不同方向的事情的时候, 其工作效率低下的程度简直可以达到一种让人离谱的程度, 到了12月31日交付前夜这个阶段, 软件测试环节基本上属于完全没做的状态, 最终验收结果之所以能够勉强过关, 完全是靠着老师采取通融这种非正常手段才实现的。
跟隔壁小组的同学小胖是直接说了一句大实话的, 他的原话是: 不会不丢人, 不会还装会, 团队就散了。这句话比老师那句话说得更让人心里难受的多的, 我那个时候的状态就是典型的闷着头硬撑着的, 不好意思开口的。
结果问题一直被藏着, 一直拖到了截止日期前一天才终于暴露了出来。整个小组的进度都被我这个人给压住了, 没办法往前推。等到后来大家坐在一起复盘工作的时候, 我们组长他并没有当场骂我, 可是他那一脸沉默的样子, 那种安静的气氛, 要比直接骂我一顿还要让人心里觉得难受、压抑得多。

在经过了五天的学习以后, 我对JSP的学习情况是从完全不懂的状态变成了一个可以使其正常运行的状态, 但是要说到能够进行维护工作这一点, 那还是相差甚远的。
在实际的工程项目开发过程中, 真正消耗人们精力的地方并不是编写代码这个动作, 而是如果在前面的四个步骤的设计环节中采取了一种敷衍了事的态度, 那么就会使得后续的所有环节都产生大量的返工问题。
如果再给一次机会的话, 我就会在我的第一天去那个地方, 把那些我不知道怎么做的模块都列成一个清单, 然后去找老师来问。我就不会闷声不响地直到第四天才被迫开口说话。因为我这么做的话, 就会把整个组的时间都给耗光掉。
你有没有在实训或者实习的时候, 碰到那种明明不会做但是还非要硬撑着的经历? 欢迎到评论区里面来聊一聊。要是你觉得很有同感的话, 那就点个赞, 或者是转给那些还在硬扛着的同学。