1、IDE:优先跟随团队约定的IDE,用过phpstom和netbeans 。 优先推荐phpstom ,因为更专业,他家的其他编辑器的快捷键和界面也能够让你很快上手。 写代码的时候,先想好步骤,先写注释占坑,没完成的加todo标签. 不想写面条代码的话,可以试试phpstom的Refactor-Extract-Method功能进行简单重构。
2、本地开发环境,docker或vagrant建议要会一样。 因为你可以打包box或镜像给团队的其他成员,确保大家环境,软件版本都是统一的,而且里面用linux环境,对个人学习也很有帮助。 基本上服务器也都是linux系统,不要等到能到线上操作的时候对着黑漆漆的命令行窗口就两眼一抹黑。 推荐学习《鸟哥的linux私房菜》,这类知识和技能都是不容易过期的。 phpstudy或者wamp,只适合初级程序员,而且还有可能会遇到各种莫名其妙的环境坑,不利于后续成长。
3、版本控制软件: Git (mac下推荐使用SourceTree)。 这个无需多言,基本是行业标准了(抛弃svn或者ftp上传代码吧),但是也要会写基本命令,还有git流程确实很重要,之前是直接提交代码到master分支的……后来换了团队使用了类似GitHub的协调方式,从主仓库fork派生仓库到你个人名下,之后自己开发完真要上线的时候再请求合并,这样的话项目负责人对每个人提交的内容就大致有所了解,有空的时候还能把把关进行code review,提交备注要规范,那些commit直接写up,fix,1的该拉出去打一顿! 只要这一步做好,配合git命令就可以知道你最近的工作内容,周报,月报不用愁了,别以为我是在开玩笑,试试下面这个命令的威力就知道了
git log --pretty=format:"%h - %an, %ar : %s" --since=1.month -1000 | grep 你的Git用户名
4、switchHosts。 是的,你也可以自己修改host文件,但是不够直观啊,能借助工具一键切换任意环境的一批host难道不香吗?非得挨个挨个去注释不用的host?
5、浏览器,chrome。 确实好用,有好用的插件扩展,登录自己的谷歌账号之后可同步密码,书签等内容,很方便。 要学会开调试面板,别的不说,作为一名web开发人员,你好歹要会看Network,js报错的话,看Console也可以大致知道是哪里报错。
6、文档神器 石墨文档。 这个不错,在线编辑,多端支持和同步数据,界面简单,支持基本的word,excel导入导出,能写简单文档并且带文档目录,还能写思维导图。 以前用的百度脑图,但是后面还是转到石墨文档这边来了,写得多了,思路也就清晰了,基本的条理性也会逐渐Get了。
7、alias ,别名使用。 一般也没有谁记性那么好能记住那么多命令,把自己常用的一些shell命令写到bashrc文件里面去,就可以用自己定义的好记的语句了,要学会用一些东西给自己的工作提升舒适度。
8、mysql工具,推荐phpmyadmin。 界面友好有中文支持。 说到mysql,平时自己在写一些统计类的查询的时候,要是对效率不确定,可以在SQL之前加一下desc 看看扫描行数以及索引使用情况。 这个挺有用的,有时候一些表不是你建的,你以为的那些应该有的索引未必会有。 开发常常犯的一个错误是以为测试没问题正式就没问题,测试和正式一个基本你要知道的区别就是数据量不一样。 稍微专业一点的运维都会定期把慢SQL发出来,这些都是得定期优化的,否则会在关键时刻变成定时炸弹。 优化本身就是一个持续的过程,数据在增加,功能也在叠加或者频繁修改,没有一成不变的东西,一个系统除非不再维护使用了,否则熵增定律还是会得到验证的。
9、通讯工具,假如你们公司也有用钉钉,那么我觉得也可以利用起来。 可以自己拉个群,群里加一个机器人,之后在一些特定时候需要去调试一些线上奇葩情况的时候,钉钉机器人可以把你需要的消息及通知,自动推送到钉钉群。 要是有产品或者运营经常要找你要定期统计数据而又嫌做个后台系统给他去查比较麻烦的时候,也可以自己用定时任务的方式查出数据,之后推送到钉钉群,后续把要数据的人拉到群里即可。
10、接口调试工具,本人以前是用paw收费软件的,后来发现Postman挺强大的,便也转用postman。 这类工具在你调试接口的时候很有用,有时候你自己忘了如何写一些简单的curl请求代码的时候,也可以用这类软件模拟请求,之后使用它的代码生成功能(能有很多编程语言版本哦)。 本人在用钉钉消息推送的时候,就是先模拟成功之后再复制生成代码的。 顺便提一句,postman配合apizza可以更强大哦。
11、对接文档,用过apidoc,也用过淘宝的rap或者eolinker。 这些工具的使用基本大同小异,最重要的是,作为一名后端人员,特别是写接口的,前端、APP、客户端等开发的同学都需要靠这个来和你对接。 字段和返回结果注释、路由网址、请求方式都得写清楚,不然没有规范别人和你合作会很不流畅,写好对接文档,及时更新,才是一个合格的接口仔啊!
谈完工具,继续分享一些我个人在坚持的认为好的习惯
1、动手能力很重要。 这里面我特别强调——搜索能力,要学会搜索,不要一遇到问题,就放弃或者直接去问人,好歹你要挣扎一下啊! 本人有一大学舍友,挺牛叉的,人家成绩不是顶尖的,但是动手能力强啊,懂很多,周边很多人不懂的总是去问他。 他也很有个性,一句“你不会自己搜索吗?” 直接怼过来,说实话,被怼了几次之后,我也学会了搜索技能。 要知道,很多你遇到的IT问题网上基本有答案,搜不到你想要的,有可能是因为你用的是百度而不是谷歌。 一番搜索之后还不行,再考虑加群,上论坛发贴提问,问牛人。 要知道大家都很忙的,你提的问题太简单可能都不屑于回答你。 有时候不要太懒,我上面提到的那些工具,为何不给链接出来?是觉得真有心或者感兴趣的,会自己去搜索去了解。
2、向身边的人学习。 团队会有各种技术栈的人,有机会要跟别人学学一些小技巧,慢慢积累你也懂得多了,例如: 和运维学习,别的不说,起码你会几个linux命令,或者知道去哪里看日志,或者看看运维用的一些工具,也许哪一天你就会用得上。 自己不会搭环境,咋办? 要么你人缘好人家教你,要么人家给你介绍一些简单的集成软件都够你用的了,例如: 宝塔面板,个人本地环境我觉得还是可以试试的。 和你身边 的测试同事打好关系,因为人家也是在帮你完善程序,做人不能太自信,即便你自测了,多个人帮你测不是坏事。 能在上线前找出问题还好,要是上了线才发现问题一堆,个人觉得你的绩效也好不到哪里去。 在测试同事那里我学会了简单的抓包(用的 Charles),web页面我可以看控制面板知道是发起了哪些请求返回了啥结果,但是app,除非你去问app开发人员,不然你也只能抓包了,不是吗?
3、切忌心直口快。 程序员容易吃这个亏,特别是你直面需求方的时候,人家来一个需求,都还没说完你就直接说,不行,不能做…. 即便确实不能做,建议你也别那么快答复,假如是因为第三方依赖的原因做不了,那还可以直说,否则的话,建议你等别人说完,自己也想一想(即便是假装的),之后再郑重给对方一个答复,不能做,也说明一下情况。 当然,你要是能有更好的做法或者额外选择给到对方就更好,起码人家不是一无所获,不是吗?否则拒绝得多了,人家可能会给你打小报告或者穿小鞋也说不准。
4、不要吝啬你的笔墨。 做开发的经常会遇到频繁切换的情况,有时候一忙了就不知道自己要干嘛了。 我个人习惯拿笔记一下,已经养成习惯了。 把今天要做的列出来,排一下优先级,要是中途有临时任务插入,那么就重新评估优先级排个一二三,干完一个接一个,这种状态挺好的,应该没有几个人喜欢那种突然想不起自己刚才在干嘛或者要干嘛的感觉吧。
5、谨慎。 老生长谈,但还是提醒一下,假如你charge了正式环境的数据库权限,还拿了写的权限,建议用和平时操作本地或者测试数据库不同的工具,这样子起码给自己一种标记,一不小心删错数据或者搞错库,是一个悲剧,要尽量避免。 最好是再拿一个只读权限的数据库账号,因为除了DBA或者运维,其实开发并不需要经常去操作数据。 开发查数据倒是挺频繁的,用只读账号起码算是给自己上一层保险,真到要操作数据的时候,再换账号好了。 此外,平时开发建表的时候,建议加一个标记字段,用于标示记录是否有效,算是达到一种软删除的效果吧。 delete 用多了没好处,忘了加where条件就惨了。 不要奢望数据有备份,有又如何?该你承担的事故责任不会因为有备份而减少。 要在最开始的时候就把好关。
6、莫嫌麻烦。 流程就是流程,要遵守,不规范的操作多了去了,但是希望你不要这么干,例如: 不经测试直接上线(感觉良好能用人头担保也别这么做)。 新开的临时项目由于要紧急上线就直接不部署测试环境,只给一个环境给到前端同学,告诉他们正式测试都用同一个域名,等上线之前再去清理测试数据。 真紧急,没办法,但是,忙完之后有时间一定要把测试环境补上,不然等到二次迭代的时候就懵逼了,因为他没测试环境,所以跑到正式环境去测??呵呵,是坑总得填,不填留着始终是个祸害。
暂时就是这些了,over!
转载请注明:爱学习爱分享 » 一个 PHP 从业者的常用开发工具和习惯分享