我是一个新手程序员,通常当我在自己的项目上工作时,我总是感到我的代码设计不是最好的,我讨厌这种感觉。我最终花时间查找事物,但是随后我却很容易被很多细节所淹没,例如可供选择的设计模式以及何时使用抽象类或接口。我是否应该尝试一次学习所有内容?
我是一个新手程序员,通常当我在自己的项目上工作时,我总是感到我的代码设计不是最好的,我讨厌这种感觉。我最终花时间查找事物,但是随后我却很容易被很多细节所淹没,例如可供选择的设计模式以及何时使用抽象类或接口。我是否应该尝试一次学习所有内容?
Answers:
我的建议是:别担心。
经验是最好的老师,如果不编写代码,就不会获得经验。同样,设计糟糕的代码被写入比伟大的设计是更好不是。
因此,编写更多代码。完成您的项目。认为代码不理想的感觉可能是正确的。您可能会在这段代码中遇到问题。而当你有这些问题,然后你会了解到底为什么这是不好的。您将从第一手经验中学到的方法比从“查找事物”中学习的方法更多。
另外,不要希望这种“代码气味”的感觉会消失。随着您变得越来越好,您将解决一些问题,但是开始注意到新的,更晦涩/高级的问题。
我最好的建议是专注于罗伯特·哈维(Robert Harvey)建议的基础知识。软件开发是一个复杂的庞然大物,要花费大量时间甚至无法远程掌握,尤其是在良好的界面设计方面。如果没有先体验一下软件开发的许多方面,确实很难。即使是最基本的注释代码,也可以得到赞赏。从第一天开始,我们就教您编写有据可查的代码。我承认,直到我真正地尝试理解几个月前写的代码后,我才真正意识到好的注释的价值。许多编程概念都可以这样说。例如,数据封装,低耦合模块和清晰的接口。
我遇到的最有价值的资源是我的同事。你会写不好代码。接受。您要做的是确保随着时间的推移编写出更好的代码,从而将您定义为程序员。例如,当我刚开始工作时,我的公司没有任何形式的正式代码或设计审查程序。我承担了自己的工作,使自己的工作受到我更资深的同事的批评,老实说,我觉得我在第一年工作的大部分时间都是白痴。
软件开发是一种持续的学习经验。提出大量问题,审查代码,了解更多资深人士提出的建议的原因,不要害怕质疑资深开发商提出的建议的有效性,最重要的是不要害怕犯错。最终,刺激因素或不知所措的感觉。为了记录...学习曲线很烂。
看一看马丁·福勒(Martin Fowler)着的《重构:改进现有代码的设计》。您应该做的第一件事是重构代码,以提高代码的可读性并降低复杂度以提高其可维护性。
重构代码时,您已经在使用设计模式,封装代码等。
这是我读过的有关该主题的最好的书之一。它提供了许多有用的食谱。
实用的程序员是一个很好的资源。“ Windows破损”一章描述了您看到自己的位置。简短而明智的反应是解决问题。
当您开始修改设计时,有助于了解您不满意的地方。很容易得出模糊的答案,例如“到处都是”或“我为什么在那里做?”。但是,请花点时间查看您是否使用了任何常用模式。
一旦确定了要去的地方,就采取小而容易可逆的步骤到达那里(即,这就是重构的目的)。每次改进代码时,请考虑对其余代码的影响。您使事情变得更好还是更糟?至少这是我使秩序混乱的方法。