分类目录归档:研发

59条有趣的程序员编程箴言

微信截图_20190722150833.png

下面收集的语录涉及软件开发、代码维护、调试纠错、软件bug、系统设计、文档、代码质量、测试和软件开发团队管理等方面。虽然它们有些搞笑,但却真实无比。只有程序员才能理解这些编程语句里的真正内涵。

程序员编程语录

  1. 一个好的程序员是那种过单行线马路都要往两边看的人。(Doug Linder)
  2. 程序有问题时不要担心。如果所有东西都没问题,你就失业了。(软件工程的Mosher定律)
  3. 程序员的麻烦在于,你无法弄清他在捣腾什么,当你最终弄明白时,也许已经晚了。(超级计算机之父Seymour Cray)
  4. 我想大部分人都知道通常一个程序员会具有的美德。当然了,有三种:懒惰,暴躁,傲慢。(Perl语言发明者Larry Wall)
  5. 编程时要保持这种心态:就好像将来要维护你这些代码的人是一位残暴的精神病患者,而且他知道你住在哪。(Martin Golding)
  6. 一个人写的烂软件将会给另一个人带来一份全职工作。(Jessica Gaston)
  7. 如果建筑工人像程序员写软件那样盖房子,那第一只飞来的啄木鸟就能毁掉人类文明。(Gerald Weinberg)
  8. 这世界最有可能毁灭的方式——大多数专家都同意——是次意外。这就是为什么会有我们,我们是计算机专家,我们创造意外。(Nathaniel Borenstein)
  9. 我们这个行业有个特别奇怪的现象:不仅我们不从失败里吸取教训,同时也不从成功中学习经验。(Keith Braithwaite)
  10. 一种新技术一旦开始流行,你要么坐上压路机,要么成为铺路石。(Stewart Brand)
  11. 如果没能一次成功,那就叫它1.0版吧。(佚名)
  12. 所有的程序员都是编剧,所有的计算机都是烂演员。(佚名)
  13. 工作进度上越早落后,你就会有越充足的时间赶上。(佚名)
  14. 当有这样的一种编程语言出现:它能让程序员用简单的英语编程,你将会发现,程序员都开始不会说英语。(佚名)
  15. 为什么我们没有时间把事情做对,却总有时间把事情做过头?(佚名)
  16. 傻瓜都能写出计算机能理解的程序。优秀的程序员写出的是人类能读懂的代码。
  17. 任何你写的代码,超过6个月不去看它,当你再看时,都像是别人写的。(Eagleson’s law)

编程/软件开发语录

  1. 按代码行数来评估软件开发的进度,就如同按重量来评估飞机建造的进度。(比尔?盖茨)
  2. 软件就像做爱。一次犯错,你需要用余下一生来维护支持。(Michael Sinz)
  3. 在水上行走和按需求文档开发软件都很容易——前提是它们都是冻结状态。(Edward V Berard)
  4. 最初90%的代码用去了最初90%的开发时间……余下10%的代码用去了另外90%的开发时间。(Tom Cargill)
  5. 注释代码很像清洁你的厕所——你不想干,但如果你做了,这绝对会给你和你的客人带来更愉悦的体验。(Ryan Campbell)
  6. 如今的编程是一场程序员和上帝的竞赛,程序员要开发出更大更好、傻瓜都会用到软件。而上帝在努力创造出更大更傻的傻瓜。目前为止,上帝是赢的。(Rick Cook)
  7. 软件设计最困难的部分……是阻挡新功能的引入。(Donald Norman)
  8. 为了理解递归,我们首先要理解的是递归。(佚名)
  9. 世上只有两类编程语言:那些拥有被人诟病的和那些没人用的。(Bjarne Stroustrup)
  10. 布尔的最优秀之初,就是即使你错了,也仅仅是差了一位而已。(佚名)
  11. 如果Java能实现真的垃圾回收,那大部分的程序都会在执行时删除自己。(Robert Swell)
  12. 理论上,理论和实践是没有差异的。但实践中,是有的。(Jan L. A. van de Snepscheut)
  13. 预备,开火,瞄准:这是最快的软件开发方法。预备,瞄准,瞄准,瞄准,瞄准:这是最慢的软件开发方法。(佚名)
  14. 编程是10%的科学,20%天份,和70%的让这天份符合科学。(佚名)
  15. 评估一个事情要比去理解你评估了什么容易。(佚名)
  16. 测评不会撒谎,但测评的人会。(佚名)
  17. 培养员工,即使他们有跳槽的风险。什么都不做而留他们在公司,这样风险更大。(佚名)
  18. 计算机科学的目标是做出一个东西,并且保证它至少能坚持到我们将它开发完成。(佚名)
  19. Java之于JavaScript,如同Car之于Carpet。 (Chris Heilmann)
  20. 起初就把事情做对是完全没必要的。但最后要把事情做对是绝对必要的。(Andrew Hunt与David Thomas)
  21. 数组的起始索引应该从0开始还是从1开始?我的0.5的折中提议被他们未经认真考虑到拒绝了——我认为是这样的。(Stan Kelly-Bootle)
  22. 程序必须是为了给人看而写,给机器去执行只是附带任务。 (Abelson / Sussman)
  23. 编程可以很有趣,你可以用它做密码学研究,但两者绝对不能合二为一。(Kreitzberg 与 Shneiderman)
  24. “拷贝-粘贴”是一种设计错误。(David Parnas)
  25. 计算机善于遵循指令,但不善于理解你的思维。(Donald Knuth)

软件纠错语录

  1. 删除的代码是没有bug的代码。(Jeff Sickel)
  2. 如果纠错是消除软件bug的过程,那编程一定是把它们放进去的过程。(Edsger Dijkstra)
  3. 代码纠错要比新编写代码困难一倍。因为,如果你写出了最聪明的代码,按此推算,你将没有更大的智慧来调试它。
  4. 想在自己的代码里找出一个错误是十分困难的。而当你认为你的代码没有错误时,那就更难了。(Steve McConnel)

软件bug语录 继续阅读 →

发表在 研发 | 标签为 | 留下评论

了解什么是微前端

作为前端开发人员,这些年来你一直在开发单体应用,即使你已经知道这是一个不好的做法。 您将代码划分为组件,使用 requireimport 并将package.json中定义的npm包或已安装的子git仓库添加到项目中,但最终构建了一个整体。 是时候改变它了。

为什么你的代码是一个单体?

除了已经实现了微前端的应用之外,所有前端应用本质上都是单一的应用。 原因是如果您正在使用 React 库进行开发,并且如果您有两个团队,则两个团队都应该使用相同的React 库,并且两个团队应该在部署时保持同步,并且在代码合并期间始终会发生冲突。 它们没有完全分离,很可能它们维护着相同的仓库并具有相同的构建系统。 单体应用的退出被标志为微服务的出现。 但是它适用于后端!😱 继续阅读 →

发表在 研发 | 标签为 | 留下评论

谷歌正在整合Chrome OS/Android的连接性

苹果用户长期享受于iPhone和Mac之间告诉的连接性和互通性,现在谷歌也在打通Chrome OS和Android系统生态。

近日,Chrome Story发现了一些代码段,表明谷歌计划让Android和Chrome OS更紧密地协同工作。谷歌Chrome OS与Android系统有一定程度的集成,但其功能与微软或苹果提供的功能差距较大。 继续阅读 →

发表在 研发 | 标签为 , | 留下评论

2019年初级程序员必备书单:《代码整洁之道》《重构》等

编者按:在程序员的职业生涯中,总是需要学习新知识(也许不光是程序员)。本文作者Khalil Stemmler最喜欢的学习方法之一就是看书,他总结了业内人士高度评价的9本书,希望能给程序员带来启发。原文标题Books that Junior Developers should read in 2019。

无论你是刚入行的新人,还是经验丰富的程序员,你都会意识到工作并非你提高自己编程技能和知识的最佳途径。 继续阅读 →

发表在 研发 | 标签为 , | 留下评论

HTTP Cache 浅析

基于http协议讲解缓存头Cache-Control在服务中的应用

一、Private browser caches 和 Shared proxy caches

缓冲这块并不怎么好理解,网上查阅的资料,都讲的比较模糊,就比如:Private browser caches 和 Shared proxy caches。

不同的 HTTP Cache 解决的问题和使用的场景是不一样的。个人理解浏览器缓存主要是为了避免不必要的请求和大量的网络传输,而代理服务器缓存主要是为了让服务离用户更近更有效率(当然也解决了请求和网络传输)。 继续阅读 →

发表在 研发 | 标签为 | 留下评论