读书笔记--从代码到沟通

256 天前
 JustW

序言

各位程序猿/媛们,还记得你刚入行时写下的那些代码吗?是不是像一堆乱麻,连自己都看不懂?是不是像我一样,曾经天真地以为,只要代码能运行,就万事大吉?

哈哈,别担心,我们都经历过那个阶段。写代码就像学武功,一开始都是乱打一气,只有经过不断的练习和领悟,才能慢慢掌握其中的奥妙。

那么推荐大家可以看看文章末尾推荐的几本书籍.这些书籍就是指引我们从无名小辈到扫地僧的武功秘籍。

代码

命名:代码的“名片”

还记得那个名为 d 的变量吗?它就像一个没有名片的人,你永远不知道它是谁,它要做什么。这样的代码,就像一个江湖黑话满天飞的武林,让人摸不着头脑。

好的命名,就像一张清晰的名片,能让人一眼就明白它的身份和职责。比如,elapsedTimeInDays 比 d 好懂多了吧?这就好比武林中人,行走江湖,总得有个响亮的名号,让人一听就知道你是谁,你擅长什么。

所以,请记住以下秘诀:

好的命名是代码整洁的第一步,也是最重要的一步。它能让你的代码像优美的散文一样,清晰易懂,令人愉悦。

函数:代码的“士兵”

还记得那个长达几千行的函数吗?它就像一个臃肿的胖子,行动迟缓,效率低下。这样的代码,就像一支乌合之众,毫无纪律可言,战斗力自然低下。

好的函数,应该像训练有素的士兵,短小精悍,各司其职。每个函数只做一件事,就像每个士兵只负责一个任务一样,这样才能保证整个队伍的效率和战斗力。

所以,请记住以下秘诀:

好的函数是代码整洁的基石。它能让你的代码像积木一样,易于组合,易于维护。

示例

// 糟糕的函数
public void calculateAndPrintReport() {
  // 计算数据
  // 格式化数据
  // 打印报表
}

// 好的函数
public void calculateReport() {
  // 计算数据
}

public void printReport() {
  // 格式化数据
  // 打印报表
}

注释:代码的“点缀”

还记得那些不知所云的注释吗?它们就像一堆垃圾,只会让代码更难懂。这样的代码,就像一个脸上涂满油彩的小丑,让人眼花缭乱,却不知其意。

示例

i++; // 将 i 加 1

好的注释,应该像画龙点睛,起到解释和说明的作用,而不是画蛇添足。它应该简洁明了,直击要害,让人一看就懂。

所以,请记住以下秘诀:

好的注释是代码整洁的点缀。它能让你的代码锦上添花,但绝不能喧宾夺主。

示例

// 解释算法的注释
// 使用快速排序算法对数组进行排序
public void sort(int[] array) {
  // ...
}

格式:代码的“颜值”

还记得那些缩进混乱、毫无章法的代码吗?它们就像一堆杂草,让人头晕眼花。这样的代码,就像一个衣衫褴褛的乞丐,毫无美感可言。

好的格式,就像代码的“颜值”,能让你的代码赏心悦目,易于阅读。它就像一个穿着得体的绅士,让人一看就心生好感。

所以,请记住以下秘诀:

好的格式是代码整洁的门面。它能让你的代码更专业,更易于维护。

示例

// 糟糕的格式
if (condition) {
doSomething();
} else
{
doSomethingElse();
}

// 好的格式
if (condition) {
  doSomething();
} else {
  doSomethingElse();
}

对象和数据结构:代码的“骨架”

对象和数据结构,就像代码中的“骨架”,支撑着代码的整体结构。它们就像武功中的内功和招式,相辅相成,缺一不可。

对象,就像一个训练有素的特工,身怀绝技,却又深藏不露。它把数据隐藏在幕后,只向外界展示它能做什么,而不是它是什么。

数据结构,就像一个透明的玻璃箱,里面装满了各种数据,一目了然。它没有隐藏,也没有秘密,所有数据都直接暴露在外。

那么,什么时候该用对象,什么时候该用数据结构呢?

记住,对象和数据结构各有优劣,选择合适的工具,才能写出整洁的代码。

示例

错误处理:代码的“消防员”

错误处理,就像代码中的“消防员”,负责在代码出现问题时及时扑灭火灾。它就像武功中的防御招式,能够在关键时刻化解危机。

但是,如果消防员到处乱跑,只会让火势蔓延得更快。同样,如果错误处理代码写得不好,只会让代码更加混乱,难以维护。

所以,请记住以下秘诀:

好的错误处理应该像隐形的防护网,在代码出现问题时及时保护,而不是像个碍手碍脚的家伙,到处添乱。

边界:代码的“国境线”

边界,就像代码中的“国境线”,将你的代码与外部世界隔离开来。它就像武功中的门派之别,划清了界限,避免了冲突和混乱。

如何守好这道“国境线”,是写出整洁代码的关键。

所以,请记住以下秘诀:

好的边界应该像一道坚固的城墙,保护你的代码免受外部世界的侵害,同时又能方便地与外界沟通。

单元测试:代码的“侦察兵”

单元测试,就像代码中的“侦察兵”,负责在代码中寻找 bug 和缺陷。它就像武功中的练功桩,帮助你不断提升代码的质量。

但是,如果侦察兵漫无目的地乱跑,只会浪费时间和精力。同样,如果单元测试写得不好,不仅不能保证代码质量,反而会成为代码维护的负担。

所以,请记住以下秘诀:

好的单元测试应该像一把锋利的匕首,直击代码的要害,快速、准确地找到问题。

类:代码的“建筑师”

类,就像代码中的“建筑师”,负责构建代码的整体结构。它就像武功中的心法,决定了你的代码能走多远。

一个好的建筑师,应该懂得如何设计出结构合理、功能清晰的建筑。同样,一个好的程序员,应该懂得如何设计出结构清晰、易于维护的类。

所以,请记住以下秘诀:

好的类应该像一个精密的仪器,每个部件都各司其职,共同协作,完成复杂的任务。

代码整洁之道:持续精进

除了上面提到的内容,我还想补充以下几点:

我个人的建议是,不要把代码整洁看成是一种负担,而应该把它看成是一种投资。整洁的代码可以提高开发效率,降低维护成本,让你的代码更易于理解和扩展。

最后,我想说,代码整洁之道,没有终点,只有不断精进。让我们一起努力,写出更整洁、更优雅的代码吧!

开发

作为一名开发者,我深知开发不仅仅是敲代码,更是一项需要沟通、协作和不断改进的系统工程。以下是我在阅读过程中总结的一些经验:

持续沟通

正如书中所说:“开发者必须在许多层面上进行交流” ,与团队成员、用户和其他利益相关者的有效沟通是项目成功的关键。

及时修复漏洞

代码中的漏洞就像房间里的“破窗户”,如果不及时修复,就会让房间变得越来越脏乱。因此,我们应该养成及时修复漏洞的习惯,避免问题越积越多。

持续重构代码

代码重构就像整理房间,可以让我们更容易地理解和维护代码。我们应该定期对代码进行重构,消除重复、冗余和难以理解的代码,让代码更简洁、更高效。

使用合适的工具

工欲善其事,必先利其器。选择合适的工具可以让我们事半功倍。

保持学习的态度

软件开发是一个快速发展的领域,新的技术和工具层出不穷。作为开发者,我们需要保持学习的态度,不断学习新的知识和技能,才能跟上时代的步伐。

注重团队合作

软件开发是一个团队合作的过程,我们需要与团队成员相互协作,才能完成项目目标。

关注用户体验

最终用户是软件的使用者,他们的体验决定了软件的成败。

拥抱变化

软件开发是一个充满变化的过程,需求可能会变更,技术可能会更新。作为开发者,我们需要拥抱变化,灵活应对各种挑战。

追求卓越

作为注重实效的开发者,我们应该追求卓越,不断提升代码质量和开发效率,为用户提供更好的软件产品和服务。

享受开发的乐趣

软件开发是一项充满挑战和乐趣的工作。我们应该享受开发的过程,从中获得成就感和满足感。

总结

注重实效的开发不仅仅是编写代码,更是一项需要沟通、协作和不断改进的系统工程。通过有效的沟通、及时的修复漏洞、持续的代码重构、使用合适的工具、保持学习的态度、注重团队合作、关注用户体验、拥抱变化、追求卓越和享受开发的乐趣,我们可以成为更加注重实效的开发者,为用户提供更好的软件产品和服务。

让我们一起努力,用代码改变世界!(世界太大,不如从自己开始)

参考书籍

1.《代码整洁之道》

2.《程序员修炼之道:从小工到专家》

3.《重构:改善既有代码的设计》

760 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1024009

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX