标签 学习 下的文章

知道如何使用命令行工具

本文翻译自”Know How to Use Command-line Tool“,来自于《程序员应该知道的97件事》一书中的某个章节

现今,很多软件开发工具被打包成集成开发环境(Integrated Development Environments,IDE)提供给开发者。微软的Visual Studio和开源的Eclipse就是两个颇受欢迎的IDE,当然还有很多其他类似的工具。很多程序员喜欢使用IDE,这不仅是因为IDE容易使用,而且IDE还可以让程序员无需过多考虑一些过程中的微小细节,特别是构建过程。

不过,易用也有其负面因素。通常,一个工具容易使用,是因为这个工具在幕后替你作出了决定并自动地做了很多事情。因此,如果你只用IDE作为唯一的开发环境,你可能永远无法知道你的工具实际上究竟做了哪些事情。你点击一个按钮,一些奇妙的事情发生了,一个可执行文件就会出现在你的工程目录下。

使用命令行构建工具,你会了解到更多有关这些工具在工程构建过程中的行为细节。编写你自己的Makefile文件可以帮助你理解构建一个可执行文件过程中的每一步(编译,汇编,链接等)。用这些工具的命令行参数做些试验也是一个有价值的学习体验。最初开始使用命令行构建工具时,你可以使用一些开源的命令行工具,比如GCC。或者你也可以使用IDE自带的命令行工具。毕竟,一个设计精美的IDE只是一组命令行工具的图形前端而已。

与IDE相比,命令行工具除了可以帮助你增进对构建过程的理解之外,还能更容易更高效地完成某些任务。例如,grep和sed两个实用程序提供的查找和替换能力往往比IDE中提供的工具更为强大。命令行工具原生地支持脚本,支持自动化运行一些任务,诸如按预定时间制作日构建版本,为一个工程制作多个版本以及运行测试用例。在IDE中,这类自动化工作做起来可能非常困难(如果不是不可能的话),因为构建参数通常是通过图形界面的对话框设置的,并且构建过程是通过鼠标点击启动的。如果你一直没有脱离过IDE的襁褓,那你可能都无法意识到这类自动化的任务是可行的。

不过请等一下。难道IDE的使用没有使开发工作更简单,没有提高程序员的生产力吗?噢,不是这样的。这里提出的建议不是让你停止使用IDE。而是建议你“应该深入到幕后“,弄明白你的IDE到底为你做了哪些事情。而这么做的最好的方式就是学习使用命令行工具。接下来,当你回过头来使用IDE时,你就会更透彻地理解IDE为你做了哪些事情,并且知道如何控制构建过程了。另一方面,一旦你掌握了命令行工具的用法,体验到了这些工具提供强大功能和灵活性后,你也许会发现:与IDE比起来,你更喜欢命令行工具。

By Carroll Robinson

专业程序员

本文翻译自"The Professional Programmer",来自于《程序员应该知道的97件事》一书中的某个章节。

什么是专业程序员?

一个专业程序员的唯一的、最重要的特点是个人的责任。专业程序员会对他们的职业生涯负责,会对他们的估计负责,会对他们的计划承诺负责,会对他们的错误负责,会对他们的技艺负责。一个专业程序员绝不会将他们的责任推到其它人身上。

·如果你是一名专业程序员,你将对你自己的职业生涯负责。负责你的阅读和学习。负责让你紧跟上行业和技术最新发展的步伐。有太多的程序员认为培训他们是雇主的责任。对不起,这真是大错而特错。你想过医生会那样做吗?你想过律师会那样做吗?他们不会。他们会利用自己的时间并且自掏腰包对自己进行培训。他们花费大量业余时间阅读专业期刊或法院判决书。他们努力保持着与时俱进。我们也必须如此。你的雇佣合同明确地阐明了你和你的雇主之间关系。简而言之:他们承诺付给你薪水,你承诺做好工作。

·专业程序员会对他们编写的代码负责。除非他们认为代码可以正常工作了,否则他们绝不会发布代码。用一分钟考虑一下。如果你愿意发布那些你尚不确信可以正常工作的代码,那你怎么可能自称是一个专业程序员呢?专业程序员们预计QA(译注:Quality Assurance,质量保证)人员无法从他们的代码中找出任何问题,因为他们发布的代码都是经过彻底地测试验证的。当然QA也会发现一些问题,毕竟人无完人。不过作为专业程序员,我们的态度必须是:不给QA留下任何问题。

·专业程序员是富有团队精神的成员。他们不仅要对自己的工作负责,他们还对整个团队的成果物负责。他们相互帮助,相互指导,相互学习,甚至在必要的时候代替对方工作。当一个队友失败了,其他人会加进来。他们知道总有一天他们也会成为那个被代替工作的人。

·专业程序员无法忍受庞大的Bug列表。一个庞大的bug列表是草率的。一个在问题跟踪数据库中有着成千上万个问题的系统是一场因草率而导致的悲剧。事实上,在大多数项目中,对问题跟踪系统的急切需求恰恰是一种粗心大意的病兆。只有规模超级庞大的系统才应该有这么冗长的bug列表,并且需要自动化地管理它们。

·专业程序员不会制造混乱。他们以技艺为豪。他们保持代码整净,结构良好,易于阅读。他们遵循业界公认的标准和最佳实践。他们从不仓促行事。想像一下,假如你有一个灵魂出鞘的机会,你在体外观看一名医生给你进行心内直视手术。这位医生有一个最后期限(在字面意义上的)。他必须在心肺体外循环机损坏你太多的血液细胞之前完成手术。你想让他怎么做呢?你想让他像一个典型的软件开发者那样,仓促行事并制造一团混乱吗?你想让他说:“我一会儿会回来解决这个问题的”吗?或者你想让他仔细地遵守手术规范,不慌不忙,自信他的方法就是他能合理地采用的最好的方法。你想要混乱还是专业性?

专业程序员是负责任的。他们对职业生涯负责,对保证代码的正常运行负责,对他们的技艺的质量负责。即使是最后期限迫近,他们也不会放弃原则。事实上,当压力增大时,专业程序员会更加坚定地坚持那些他们认为是正确的原则。

By Uncle Bob

 

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言精进之路1 Go语言精进之路2 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com

欢迎使用邮件订阅我的博客

输入邮箱订阅本站,只要有新文章发布,就会第一时间发送邮件通知你哦!

这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats