《程序员的38堂成长课》
第一课 心系代码
思考:
1. 你是否关注代码?你的关注在工作中是如何体现出来的?
我会关注我所编写的代码以及其他人所编写的代码。在编写代码过程中,我会首先考虑即将编写的代码与已有代码之间的联系,并考虑如何包、类、方法的结构以保持整个项目架构的整洁。其次,我会考虑所编写代码的功能正确性,这一部分主要通过代码设计阶段的逻辑推演以及代码部署到测试环境后的人工测试来完成。另一方面,在编写代码时,我会考虑尽量避免我的代码出现《重构》一书中提及的“代码坏味道“。
2. 作为一个程序员,你需要提升自己吗?哪些领域是你提升的重点?
我需要提升自己。我认为,目前对于计算机底层的知识掌握是我提升的重点。例如操作系统、网络。其次,对于数据库、消息队列等重要中间件的掌握也亟需提升。此外,在系统架构设计上,分布式系统架构、微服务、整洁架构等知识也需要补充。最后,我需要不断优化我的编码规范,学习如《代码大全》、《测试驱动开发》等经典书籍。对于编程语言的掌握也需要持续提升。
3. 你认为“优秀的程序员能写出好的代码,平庸的程序员则不能”这句话正确吗?有没有可能好的程序员也会写出糟糕的代码?在什么情况下会这样?
正确。首先,如何衡量一段代码的好坏?我认为代码可读性、测试完备度等必然纳入考量标准。如果一名平庸的程序员仅满足于完成业务功能,并就此打住,那么他自然而然不会太过注意代码的可读性与测试完备度,因此,他无法写出好的代码。如果缺乏对代码品味的提升,有可能他甚至不知道好的代码应该是怎样的。那又如何去谈写出好的代码呢?
第二课 保持外观整洁
思考:
1. 你是否应该调整遗留代码的排版方式,使之符合公司的编码规范?或者是保持原有的排版风格?为什么?
可以调整,调整排版方式不会对代码功能产生任何影响。可以将遗留代码的编码规范调整为当前团队一致遵守的编码规范。
2. 你认为代码自动格式化工具有价值吗?这类工具在多大程度上依赖于你所用的编程语言?
有价值。使用IDEA工具,配置一致的代码规范模版后,可以一键格式化代码。相较于依赖开发者个人去手动遵守编码规范,使用代码自动化格式工具不但降低了这项工作的复杂度,也使得团队成员的代码格式化结果保持一致。
3. 整洁的代码风格和良好的设计哪个更重要?
个人认为,借助代码自动格式化工具,整洁的代码风格更易于实现。可以以较低的成本显著提升项目质量。另一方面,相较于代码风格的一致,良好的设计更难通过自动化来实现,而需要靠开发者自身的智慧以及经验。日常开发场景负责多变,要实现良好的设计,每一个场景都需要仔细思考。然而,不可否认,良好的设计对项目质量的影响更为深远。代码风格仅仅是一个项目的外观,具体内在仍然要靠良好的设计来实现。
4. 你当前项目的代码风格一致吗?你能做些什么来改善它?
我目前的代码风格不太一致。目前,考虑团队内成员在IDE中配置同一代码规范模版,借助代码自动格式化工具实现项目代码风格的统一。
5. Tab 缩进和空格缩进哪个更好?为什么?你觉得这个话题重要吗?
我个人认为这个问题不太重要,特别是在所有团队成员都采用相同的IDE时。
6. 你觉得遵循语言本身的编码规范和命名方式重要吗?你是否觉得用“特有”的风格把应用代码和标准库区别开来更好一些?
重要。
7. 颜色会使代码结构更清晰。你是否觉得有语法高亮和着色功能的编辑器对编码规范的要求可以低一些?
不认为。颜色仅起到辅助作用。真正决定代码可读性的还是代码的文本结构。