我应该学习我们公司其他人编写的大型软件吗?我的工作可能是软件顶部的一个小模块,我可能不需要知道引擎盖下面的是什么,
但
发布于 2012-11-06 09:54:51
一般情况下的
我认为读好代码和读坏代码都很重要。
如果你只读垃圾代码,你可能不会从中学到多少东西。如果您阅读了好代码和坏代码的混合体,您可能会从中学到更多。好的代码应该教你新的东西,坏的代码,向你展示一般程序员的一般心态和要避免的陷阱,并让你意识到好的代码可以节省多少精力。
对比对帮助是非常重要的。
同样,对于另一个领域,斯蒂芬·金( Stephen )在他关于写作的回忆录中说,他建议阅读糟糕的小说。如果你不读不好的,你就不能欣赏那些好的,而且有各种各样的方法来接近写作。你可能会对你在那些不好的事情中发现的感到惊讶。
尽管如此,不要把你的一生都花在阅读那些看起来像是一群猴子或无聊的学生编写的代码上,他们对学习编程没有兴趣,他们只选了一门CS课程(除非这是你的工作,那么了解他们常见的错误并理解为什么经常发生这些错误是很有帮助的)。
比较和对比是非常重要的。例如,以三个主要的BSD系统的源代码为例: NetBSD、OpenBSD和FreeBSD。它们非常相似,但即使最简单工具的实现也不同(ls、cat等.)。当然,有一个比另一个更好(我已经8年没有检查过了,我不想在这里做出评判,我只是想给出一个个人体验,但当时OpenBSD代码给我的印象要比其他代码要优雅得多,而NetBSD代码对于学习如何使用宏和预proc守护程序非常有教育意义)。
内部代码的
中学习
你提到这也是关于阅读公司内部编写的代码。在这种情况下,我想说,更重要的是阅读其中一些。通过查看代码了解团队的心态是非常有趣的,但它也会让您更深入地了解程序的工作方式。
最后,它有一个非常具有历史意义的组成部分。不要只读当前的代码基。把你最喜欢的SCM客户端放在手边,然后潜藏在代码库的时间线上。有时非常有趣的是,为什么代码会变成现在的样子。它可以通过十几个不同年龄的不同程序员的手,或者你甚至可以看到,一个程序员可能已经成熟了一段时间。它还教你某些“古怪”和他们可能遇到的卑鄙的错误,以及他们为什么选择一种方法而不是另一种方法,即使看起来不那么优雅。
它给你提供了背景。
发布于 2012-11-06 09:40:03
是的,当然。为了成为一名程序员,学习和理解其他人的代码是绝对必要的。
从一般意义上说,学习和理解其他人的代码总是很好的,甚至不是您正在工作的系统的一部分的代码。这将帮助您看到在您自己的系统中是好的和坏的东西,并鼓励您想出新的更好的方法来改进您自己的代码。
掌握你所从事的整个系统的基本知识--不仅仅是你负责的组件--对于了解你如何与系统的其他部分进行交互是很重要的。
发布于 2012-11-06 15:50:45
不错的问题,每个程序员/开发人员都可以用自己的方式和学习方法编写代码。学习/分析他人的代码是成为更好的开发人员的原因之一。在其他代码中
学习者类型:
https://softwareengineering.stackexchange.com/questions/174773
复制相似问题