首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Git,Shell,和面向运气的编程

Git,Shell,和面向运气的编程

作者头像
HelloMin
发布2022-08-11 14:29:27
发布2022-08-11 14:29:27
2130
举报
文章被收录于专栏:Pair ProgrammingPair Programming

前言: 这篇文章和技术有关,和代码有关,必然有些朋友是看不下去,觉得索然无味的,这很正常,我并不担心。让我觉得有点担心的,是我也许会暴露自己的编程水平。

我想聊的,是一些程序员工作中可以用到的小小技巧和工具,没有用过的朋友如果使用后,应该会感到工作效率有所提升,可是它们都太小太常见,我已经可以想像出我老板看到这篇文章之后的第一反应,必然不是“你真是太棒了”,必然是“你居然才知道这些?你以前都是怎么干活的?”之类的吐槽,说实话我自己也很惊讶,为什么我可以一直无视这些轻而易举的事情。 最近开始更多的看技术相关的东西,试着去理解一些之前觉得太难太烦的东西,发现其实真的静下心来了解之后,很多也不过如此。在过去几年的工作中,遇到问题,只要找到一个解决方法,能work就行了,一些似懂未懂的点,也就那么随便的忽略了。于是一而再,再而三的栽进类似的坑里。

偶会有一起开发的同事问:这里是不是可以这么做/那么做,会更好;这里是不是有点问题?之类。其实很多问题之前我都是有印象的,总有那么一两秒觉得:emmmm这个好像哪里不对?但是这样的念头总是很快就过去了,自己也没有去深究到底哪里不对。直到它变成了bug~~ 所以,我最近在想...我是不是一直都是“面向运气的编程”???

《禅与摩托车修理艺术》一直没有看完,但是有一个场景让我印象深刻:作者回忆有一次把车送去摩托车修理店的经历,为他修车的工人随意的修补了车,却引出了另一个问题,导致他离开修车店之后,摩托车出现故障,不得不再找一家店修理。 作者讲到这里感慨道,人们怎么会用这种旁观者的态度对待自己的工作,仿佛那不是他们的工作一般。他指的是第一家店的工人完全没有理解摩托车的构造,只是随意的去拆了东墙补西墙。当时看到这句话的我犹如当头一棒,这不就是我对待工作的样子吗?

原来我一直都只是在用战术上的勤劳,来掩饰自己战略上的懒惰而已。 不过我的懊恼和气馁已经差不多过去了(即使想到我领导的吐槽)。因为一旦去了解,去学习,发现很多之前觉得模糊不清的东西变得渐渐清晰,彼此之间开始出现联系,而不是一个个僵硬的知识点,编程这个工作中吸引我的那种优雅的东西又再次出现了。也许我开始的很晚(相比于其他程序员),但我至少开始了。 关键是,这感觉很棒。我想我有一点点开始想起做程序媛的初心了。

好了,以上就是本文冗长的导言。下面来介绍下我觉得帮我省了不少时间的小工具。

Git

Git已经很优雅很好用了(给Git鼓掌),但还是有很多可以让它更好用的办法,比如:

1.1 设置别名

为git设置别名,输入命令的时候少打几个字母,别小看,真的能省一些心,比如,git status可以缩减成git st。最简单的做法:


$git config --global alias.st status


1.2 善用参数

有时候提交了commit之后想要补充一点东西,又不需要更改commit信息了,以前我总是会傻傻的先git commit -s,什么都不改,然后保存退出。最近才知道,原来给commit命令后面补充一些参数,就可以避免再次修改commit信息了:


$ git commit --amend --no-edit


真的难以相信我最近才开始这么做...

1.3 设置合理的remote名称

使用gitlab的开发,往往是在自己fork了主项目之后,在自己的远端项目上开发,时不时需要和远端项目同步代码。一开始我给我的各个项目设置不同的remote名称,每次同步代码还得想想现在是在哪个项目...终于有一天意识到自己的脑残,于是把每个项目的远端项目都设置为一个名字:MAIN,然后在所有项目目录下,都只需要执行同样的命令,就可以同步主项目远端代码了


$ git fetch MAIN & git rebase MAIN/master


Shell小脚本

一直立志要学习写小脚本,一直没行动。直到最近,需要在两个项目下执行编译/安装/复制aar包之类的操作,cd过来cd过去,自己都要烦死了,才终于写了个小脚本,在一个目录下把编译aar,拷贝aar到另一个目录,在另一个目录编译apk,安装编译好的apk到手机,回到当前目录。差不多就是这样的一个小脚本了:


#! /bin/bash

./gradlew assembleDebug

cd ../mainDir

cp compileDir/result-debug.aar mainDir/result-release.aar

./gradlew :main:installDebug

cd ../compileDir


且不说相对路径之类的还可以改进的东西,这个脚本能做的事情已经让我很满意了。结果我还是把自己坑了一次:某次我改好了代码编译安装之后,发现我的改动根本没生效,于是我又用了几种方式来实现想要的效果,发现依然没生效。直到最后我才发现,第一步打包aar的命令已经失败了,但是之后的命令继续执行,于是我改来改去,装的都是一开始的apk!

原来只需要在脚本最前面设置一下错误退出就好了!


set -o errexit

...


以上,就是我最近的小小心得了。如果你觉得有用,那样最好。如果你早就知道了并且觉得这没什么了不起,嗯,我也觉得没什么了不起。不过我觉得我比昨天的自己做的更好了,很棒。

Schönes Wochenende!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-03-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Pair Programming 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档