在开发路上发现了很多痛点,说一下自己的想法,同时也想看一下大家的经验想法。
作为强业务型开发,现在大部分公司就是分全栈或者前后端分离,因为自己是最开始做的就是全栈,我就先说一下全栈吧。
其实我还挺喜欢做全栈的,身兼前后端开发、测试、运维,有时候还要跟客户battle,其实最开始一段时间包括需求、交付整个全流程都是自己负责╮(╯▽╰)╭,负责这么多为什么还会喜欢呢?因为纯粹不需要过多扯皮,而且一个人就可以负责一个项目,不掺杂其他人代码,需求自己也明白哈哈。
后来自己也是前后端分离了,偶尔还是会改点前端代码,前后端分离出现的也是出现很多问题,沟通成本高了很多,这个功能应该是前端做还是后端做,数据格式不统一,前端说后端不行,后端说前端不行。
接下来正式探讨一下主题吧
1.多找多看
找一些与公司业务相近的开源项目或者其他非开源系统,我这里说的不是看源代码,直接看项目演示,看一下他们的系统是怎么做的,功能是怎么设计的,了解业务逻辑,为自己提供灵感。
2.会单点学习
系统性学习容易让人感觉枯燥,需要强大的耐心,那每次学一点更容易让人接受,在开发过程中总会碰到一些自己没用过甚至没见过的框架、注解、变量、方法等等,有些人就直接跳过了,反正不报错能用就行,这是很好的学习机会,拿出一点时间了解一下这是什么东西怎么用,以后最起码知道这个东西可以实现功能,然后再详细了解其用法。我学习VUE和UE都没有进行系统性学习,就是边做功能边学习,哪里不会学哪里,再结合自己java经验融汇贯通还是比较容易上手的。
3.会打预防针
首先要确认需求有没有问题,要会举一反三,业务流程能否走通,某些功能从开发角度能否实现,提前打好需求预防针,为后续开发省掉很多麻烦。
再就是测试,做完某个功能或者某个模块,要去测试通不通,本地都不通还指望线上不出问题?至少保证本地流程逻辑没问题,比如全部查询没问题,加上搜索条件出问题了。删除一条数据没问题,删除多条出问题了。
4.会看病
系统就是人,当系统出现bug就是生病了,那开发者就是医生要快速精准找到问题所在并对症下药。我觉得这是一个综合性的体现,技术、逻辑、经验都是发现问题并解决问题的关键
5.会开方子
自己是医生,但药不是自己做的,所以要了解药的特性,这个药有什么功能、要求、禁忌。 在做一个功能时,去网上找答案,找了很久都没找到,为什么两个人都不会做,自己找不到,别人却找到了,这也是找方子,这东西三言两语我感觉说不明白,还是自己参透吧。 比如要做一个车牌识别,我可以用阿里、百度的第三方服务,第三方服务有没有审核要求、价格是否合适,心中要有数,也可以自己启个服务,也可以买个专门的识别服务器,用什么就看具体需求了。 当了解的多了,当拿到一个项目时,就可以开出一个完整的方子。
6.会沟通
都说程序员嘴笨,但这个也是可以练的,不是人情世故,用开发者思维以及专业术语沟通,在同行之间沟通问题不大,但和产品或者项目经理之类的沟通,就有点对牛弹琴了,换位思考用通俗的语言加强沟通效率。