极客时间-左耳听风-程序员攻略-程序员修养

徘徊边缘 提交于 2021-02-08 23:53:07

程序员素养帖子:What are some of the most basic things every programmer should know?

Bad architecture causes more problems than bad code.
坏的体系结构比坏的代码引起更多的问题。
You will spend more time thinking than coding.
你会花更多的时间思考而不是编码。
The best programmers are always building things.
最好的程序员总是在构建东西。
There’s always a better way.
总有更好的方法。
Code reviews by your peers will make all of you better.
你的同龄人的代码审查会让你们所有人都变得更好。
Fewer features for better code is always the right answer in the end.
减少特性以获得更好的代码始终是正确的答案。
If it’s not tested, it doesn’t work.
如果没有测试,它就不起作用。
Don’t reinvent the wheel, library code is there to help.
不要重新发明轮子,图书馆的代码是有帮助的。
Code that’s hard to understand is hard to maintain.
难以理解的代码很难维护。
Code that’s hard to maintain is next to useless.
难以维护的代码几乎是无用的。
Always know how your business makes money, that determines who gets paid what.
总是知道你的生意是如何赚钱的,这决定了谁会得到什么报酬。
If you want to feel important as a software developer, work at a tech company.
如果你想成为一名软件开发人员,在一家技术公司工作。

97 Things Every Programmer Should Know其中有 97 个非常不错的编程方面的建议。这篇文章是比较经典的,别被 "97" 吓住,你可以快速浏览一下,会让你有不同的感觉的。另外,在工作一段时间后再来读,你会更有感觉。

英文能力

必须指出,再往下走,有一个技能非常重要,那就是英文。如果对这个技能发怵的话,那么你可能无缘成为一个程序员高手了。因为我们所有的计算机技术全部来自于西方国家,所以如果你要想成为一个高手的话,那么必须到信息的源头去。英文的世界真是有价值的信息的集散地。你可以在那里,到官网上直接阅读手册,到 StackOverflow 上问问题,到 YouTube 上看很多演讲和教学,到 GitHub 上参与社区,用 Google 查询相关的知识,到国际名校上参加公开课……

1、坚持 Google 英文关键词,而不是在 Google 里搜中文。

2、在 GitHub 上只用英文。用英文写代码注释,写 Code Commit 信息,用英文写 Issue 和 Pull Request,以及用英文写 Wiki。

3、坚持到 YouTube 上每天看 5 分钟的视频。YouTube 上有相关的机器字幕,实在不行就打开字幕。

4、坚持用英文词典而不是中文的。比如:剑桥英语词典(https://dictionary.cambridge.org/) 或是 Dictionary.com 。你可以安装一个 Chrome 插件 Google Dictionary。

5、坚持用英文的教材而不是中文的。比如:BBC 的 Learning English ,或是到一些 ESL 网站上看看,如 ESL: English as a Second Language 上有一些课程。

6、花钱参加一些线上的英文课程,用视频和老外练习。

问问题的能力

写代码的修养

  • 《代码大全》
  • 重构:改善既有代码的设计》这本书是 Martin Fowler 的经典之作。这本书的意义不仅仅在于 " 改善既有代码的设计 ",也指导了我们如何从零开始构建代码的时候避免不良的代码风格。这是一本程序员必读的书。
  • 修改代码的艺术》,作者将理解、测试和修改代码的原理、技术和最新工具(自动化重构工具、单元测试框架、仿对象、集成测试框架等),与解依赖技术和大量开发和设计优秀代码的原则、最佳实践相结合,许多内容非常深入。这本书可以让你不仅能掌握最顶尖的修改代码技术,还可以大大提高对代码和软件开发的领悟力。
  • 代码整洁之道》,这本书提出一种观念:代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护和升级奠定了良好基础。本书作者给出了一系列行之有效的整洁代码操作实践。这些实践在本书中体现为一条条规则(或称 " 启示 "),并辅以来自现实项目正反两面的范例。
  • 程序员的职业素养》,讲解成为真正专业的程序员需要什么样的态度、原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。

另外,作为一个程序员,Code Review 是非常重要的程序员修养。 Code Review 对我的成长非常有帮助,我认为没有 Code Review 的公司都没有必要呆(因为不做 Code Review 的公司一定是不尊重技术的)。下面有几篇我觉得还不错的 Code Review 的文章,供你参考。

除了 Code Review 之外,Unit Test 也是程序员的一个很重要的修养。写 Unit Test 的框架一般来说都是从 JUnit 衍生出来的,比如 CppUnit 之类的。学习 JUnit 使用的最好方式就是到其官网上看 JUnit User Guide中文版)。然后,有几篇文章你可以看看(也可以自行 Google):

安全防范

OWASP - Open Web Application Security Project

OWASP 是一个开源的、非盈利的全球性安全组织,致力于应用软件的安全研究。其被视为 Web 应用安全领域的权威参考。2009 年,国际信用卡数据安全技术 PCI 标准将其列为必要组件,美国国防信息系统局、欧洲网络与信息安全局、美国国家安全局等政府机构所发布的美国国家和国际立法、标准、准则和行业实务守则参考引用了 OWASP。

https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project

OWASP Top 10 项目 是程序员非常需要关注的最基本的也是最严重的安全问题,现在其已经成了一种标准,这里是其中文版《OWASP Top 10 2017 PDF 中文版

下面是安全编程方面的一些 Guideline。

伯克立大学的 Secure Coding Practice Guidelines

卡内基梅隆大学的 SEI CERT Coding Standards

一篇和 HTTP 相关的安全文章也是每个程序员必须要读的——《Hardening Your HTTP Security Headers》。

防御性编程(Defensive Programming):The Art of Defensive ProgrammingOverly defensive programming

软件工程和上线

系统上线是一件比较严肃的事,这表明你写的软件不是跑在自己的机器上的玩具,或是实验室里的实验品,而是交互给用户使用的,甚至是用户付费的软件。对于这样的软件或系统,我们需要遵守一些上线规范,比如,需要认真测试,并做上线前检查,以及上线后监控。下面是几个简单的规范,供你参考。

完美软件:对软件测试的各种幻想》,这本书重点讨论了与软件测试有关的各种心理问题及其表现与应对方法。作者首先阐述软件测试之所以如此困难的原因–人的思维不是完美的,而软件测试的最终目的就是发现对改善软件产品和软件开发过程有益的信息,故软件测试是一个信息获取的过程。

Google 软件测试之道》,描述了测试解决方案,揭示了测试架构是如何设计、实现和运行的,介绍了软件测试工程师的角色;讲解了技术测试人员应该具有的技术技能;阐述了测试工程师在产品生命周期中的职责;讲述了测试管理,并对在 Google 的测试历史上或者主要产品上发挥了重要作用的工程师的访谈,这令那些试图建立类似 Google 的测试流程或团队的人受益很大。

Checklist :

Server Side checklist

Single Page App Checklist

Monitoring 101

附录:编程规范

有修养的程序员才可能成长为真正的工程师和架构师,而没有修养的程序员只能沦为码农。

编程语言相关

C 语言

C++ 语言

Go 语言

  • Effective Go ,Go 的语法不复杂,所以,Go 语言的最佳实践只需要看这篇官方文档就够了。

Java 语言

JavaScript 语言

PHP 语言

  • PHP FIG,PHP 编码规范及标准推荐。
  • PHP The Right Way,除了编码规范之外的各种 PHP 的最佳实践,还包括一些设计模式,安全问题,以及服务部署,Docker 虚拟化以及各种资源。
  • Clean Code PHP,《代码整洁之道》的 PHP 实践。

Python 语言

Ruby 语言

Rust 语言

Scala 语言

Shell 语言

Node.js 相关

Mozilla 的编程规范

前端开发相关

最后是一个前端开发的各种注意事项列表,非常有用。

  • Front-End Checklist ,一个前端开发的 Checklist,其中包括 HTML、CSS 和 JavaScript,还和图片、字体、SEO、性能相关,还包括关一些和安全相关的事项,这个列表真的是太好了。

移动端相关

  • Kotlin

Coding Conventions

  • Objective-C 语言

Objective-C Style guide,Style guide & coding conventions for Objective-C projects。

Google Objective-C Style Guide

NYTimes Objective-C Style Guide ,The Objective-C Style Guide used by The New York Times。

  • Swift 语言

API Design Guidelines

Swift - 一个 Swift 的相关编程规范的教程。

Swift style guide

Metova’s Swift style guide:https://github.com/metova/swift-style-guide

Xmartlabs Swift Style Guide:https://github.com/xmartlabs/Swift-Style-Guide

API 相关

开发工具相关

Markdown 相关

JSON

Git 相关

正则表达式相关

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!