刚刚接手一个公司项目特别是刚刚入职的新手,对着庞大又杂乱的公司老项目,真的是一点都不知道怎么看,但我还是有一点独立开发自己写的小项目的经验,对于项目的逻辑业务的功能还是可以写得出来的,所用的基本框架都是大同小异,快速上手完成公司的给的项目也是没有问题。但是,对于协同工作的经验为0,项目提交后负责让你修改的大量内容,无异于重新写一遍项目,遇到个特别严格又有代码洁癖的,简直可以让人掉完头发。刚刚开始一直在想,明明功能已经完成,且没有什么bug,就算改了对项目的速度什么也没有提高,为什么要这样改。甚至我都觉得是不是这个负责人故意针对我,想显示他的代码比我厉害多少。现在释怀了好多,毕竟好的代码结构对日后的维护还是便利许多的。(没办法,他是上司,他说改你能不改啊,好好安慰下自己吧)。在这里我就记录下他让我修改的项目的一些结构。
基本功能能分就分
这点我是觉得没有什么异议的,将代码的每个基本功能都分为几个类或方法,能大大的降低耦合性,减少大量的代码量,而且后面写代码真的快了好多。
最开始写代码大多数都是一个功能一个方法写完,写完还觉得这样看得更清晰,一个业务一个代码,查找和修改都分简单。也不会改这个业务还要考虑别的业务是否使用到这个代码造成影响,但了解和使用把每个业务分为一个个基本功能分开出来后,真的爽,以前一个月完成的内容一两个星期就解决了。
大多数小公司来说,一个项目的实体也就那几个,来来回回就是对他们反复操作,将每个功能分分开出来,就是做了几个积木的模板,然后无限复制,以后要用那个就用那个,写了一个业务等于写八个。
了解清楚项目结构,知道每个方法应该写在那个文件下
这个是真的最大的问题,有时候你觉得你找到了这个逻辑的归属的地方,但他又不只是这个地方。就好比我第一个接受的项目,是一个地方人才网站,后台分为企业后台和个人后台,然后他又分有什么学校啊,社招啊,那个那个地方等。最开始我要对企业后台进行修改,我找到了企业后台的action,就将所有企业后面的action方法都写在这里了,然后被说得,简历应该放去这个,职位放去这个,用户放去这个,得,就没一个对的。但对于刚刚接手项目的我觉得这是肯定会遇到的问题,毕竟一个项目再怎么简单,一个公司的几万行代码也有吧,你全看一遍也记不住啊,很多没有注释什么的就更麻烦了,作为一个富有激情想快速去显示自己的代码才华的人,怎么会去慢慢摸摸的看这些代码吗(真的又多又乱啊,谁看得下去啊)。那对于项目中很多分类的地方再负责人叫你改过去的时候,神马!!还有这样个地方啊!!我没见过啊!!我不知道!!
代码尽量不要新写,能在他原来的代码里改就改,可以在他下面写个新的,后面删了原来的去替换,命名要一样
这点我最开始是很不理解的,我们的设计模式不是说了,代码要扩展,不能修改。而且吧,你鬼知道这个代码改了后项目还能不能启动的了。但是被说得,你这个写了新的,那原来的还用不用,不用不是留一堆垃圾代码在这里。所以要找啊,改版写个新的功能都要去原来的里面找,看有没有一样的或近似的,还能不能直接用,不能用就改,改了后看看有没有别的要用,新累。
数据在前端处理好再发回后台,后台返回数据能在前端处理就在前端处理
这个我是挺不想改的,我觉得这就是每个人技术的侧重点和理解不同。我是相对于js的操作更熟悉于java,那有啥我能用java做的就弄呗,所以我所有数据都是在后端处理的,前台页面前端给页面我后我是能不改的都不改,前端只有发送数据、接收数据和显示数据而已。但相对的就后端的代码就多一点,什么数据处理就多,但我觉得这样清晰哼多,逻辑没什么也好看,而且最重要的是,对于idea来说,你后端的代码报错他会精确的告诉你是哪一行错,什么错误,而前端页面报错一般就是,500啊,这个东西他不认识啊,有时候不小心写个你不知道的查询数据为空,他前端处理不了,你可能还得找半天。
但他让我这样做也是有他的理由,他觉得吧,这些数据处理前端做的会比java容易,而且比较统一。你后端只用查询数据然后发送过来,前端在显示数据的同时做下判断就好了,而且每个页面对数据的命名什么都不太会一样,可能是不同的前端做的页面给你,基本都是去百度翻译命名,不像后端有一个数据库有统一的命名,那在不同的页面就有自己的处理手段不用后端去分别写方法封装。
至少我对于前端js这些技术的学习并没有那么广。对于很多东西还不了解,所以会比较按照自己能解决的办法去写业务。至于说,不学怎么会,上班写的项目,公司都是催啊催,赶啊赶,怎么可能会去学新方法来写啊,能写出了就写啊。那怎么选择呢,当然是.............听你上司的吧,他最大,他说算,你个打工仔怎么那么多话啊。
不懂一定要去问
这个说得比较直白,大家都知道啊,但是什么是不懂啊,如果想得多的,你会发现会有超级多不懂的,很多业务我们拿到手会按自己的主观认识去想是什么做的,但是,当你做出来之后那个提交会发现你想的和产品和负责人想的有超级多不同,哪怕一个业务,流程什么都写的很清晰,但你理解的清晰和他们的也有不同,所以刚刚开始写的时候最好把整个项目模拟一遍,不要添加任何自己的理解,一个流程中存在不清晰或没有表述的,比如,有些他会说这个删除了,另一个页面上还有这条记录,记录是保留的,但提示这条记录已删除了,怎么提示!!!在当前页面提示还是点击弹出提示,点击时弹出还是弹出这条记录的页面提示,诸如此类的问题,不要等做出来才发现问题去改。做一个项目之前,要当自己是傻的,你没有写的我都不会。