?分享一下我觉得非常实用的编程技术
I Git相关
git是分布式管理系统,是多人协同开发利器,常用的命令有:
git clone xxxxx.git # 克隆一个远程仓库
git checkout -b dev # 新建一个dev分支
git add -A && git commit -m "comment" # 提交本次更新
git branch -m old_name new_name # 修改分支名称
git log --graph # 将提交记录可视化,方便查看分支之间的演化关系,如下所示
除上面常用git命令,更高级一点的命令如git merge squash, git rebase可让提交记录看着更清晰简洁
II Shell相关
shell是Linux里的一个概念,意思是系统外面的一层壳,是用户提交命令和系统交互的界面,类似window系统的cmd.
1. shell类型
工作中使用linux系统的人更多一些,常用的shell是bash shell,所以脚本.sh文件开头一般都/bin/bash意思就是使用bash shell解析该脚本。除了bash,其实还有ksh,csh,zsh等shell。
前几年我看了一篇配置zsh+vim+ternimal的博客,于是试了一下,zsh有一点很方便的地方,就是切换路径的时候不用输cd,直接输路径即可,如图:
->这个符号也更简洁美观一点。
2. bashrc
提到shell,需要知道~/.bashrc这个配置文件,shell的环境变量一般在该文件中编辑,每次新建一个shell都从该文件中读配置。如果当前shell中修改了相关变量,使用source命令就可使其直接生效,不用重新打开新的shell。
3. nohup
好多朋友在使用ssh连接远程服务器时会遇到一个情况:在shell意外断开或者窗口关闭时,其中执行的程序不受影响继续执行。试想晚上11点在家登陆服务器启动一个脚步处理数据,此时想关上电脑睡觉,如果直接盖上电脑,那么ssh会断开,程序就挂了,使用nohup命令可避免此问题,一般如下使用:nohup python xxx.py > log 2>&1 &. 其中2>&1 是输出重定向,最后一个&,是放后台执行。
4. crontab
启动一个定时脚步,比如每天晚上12点更新一次数据库,那么可以使用crontab -e启动,默认进入vim编辑器。
5. vim
刚参加工作时的同事都使用vim,于是我也开始用vim从一开始不习惯到现在爱不释手,vim可以解放双手,秒开上万行的文件,而且可以使用vimrc加入各种配置,熟悉之后可大大提高编程效率。在编辑器内使用vs,sq可实现水平、垂直分屏,方便编辑多个文件。
III Sql
不论是后端开发还是算法同学都可能使用分布式数据库如Hive,ODPS处理数据,高效的写出sql也是一项必备技能,除了常规的多表联合查询,熟练掌握UDF(用户自定义函数)在关键时候可以帮到你。普通UDF可以实现一行输入对一行输出,UDAF实现多对一,UDTF实现一对多。很多平台有sdk可以很方便的写UDF,如阿里云中有python sdk,照着模仿很方便就能写出自己的UDF
IV 意识
对,没错!最后一点也是最重要的就是意识。对业务有没有主人翁意识,遇到问题有没有自己上网搜索解决的意识,出现问题有没有及时沟通讨论,据理力争的意识。
---------
喜欢的朋友可以点关注我的微信公众号烟晓寒,分析互联网技术和行业动态~