我将开始开发一个已经由其他人构建的网站。主要脚本是购买的,然后由首席程序员进行调整。领导离开了,我是唯一的程序员。
从未见过领导,代码中没有论文、文档或注释来帮助我,而且还有许多带有单字母名称的函数。还有一些代码全部压缩在一行中(比如应该有 200 行的地方却只有一行)。有几百个文件。
我的问题是:
这是我的第一个重大突破,我真的希望一切顺利。
关于问题:
我刚刚使用notepad++(扩展替换)和netbeans(格式选项)将文件从1696行更改为5584行!
要重新格式化源代码,请尝试这个在线漂亮打印机:http://www.prettyprinter.de/
要了解 HTML 和 CSS,请使用 Firebug。
为了理解 PHP 代码,请在调试器中单步调试它。 (我个人不能推荐 PHP 调试器,但我听说过关于 Komodo 的好消息。)
首先将整个内容检查到源代码管理中(如果还没有的话),然后当您弄清楚各种函数和变量的作用时,将它们重命名为合理的名称并检查您的更改。
如果您可以在开始之前拼凑一些粗略的回归测试(例如使用Selenium),那么您可以合理地确定您不会破坏任何东西。
哎呀!我感受到你的痛苦!
需要开始的一些事情:
如果您不使用源代码管理,请在完成设置之前不要执行任何其他操作。当您修改这些文件时,您需要能够恢复到以前的、可能可以工作的版本。您使用哪种源代码控制系统并不像使用一个源代码控制系统那么重要。 Subversion 简单且应用广泛。
获取一个具有良好 PHP 语法荧光笔和代码文件夹的编辑器。哪一种很大程度上取决于平台和个人品味;我喜欢JEdit和Notepad++。这些将帮助您导航页面内的代码。 JEdit 的文件夹是最好的。 Notepad++ 有一个很酷的功能,当您突出显示一个单词时,它会突出显示同一文件中的其他出现位置,因此您可以轻松地看到例如标签开始的位置或使用变量的位置。
通过搜索并用 '
;
' 替换 ';\n
' 来展开那些长行——至少你会在自己的一行中得到每个语句。上面提到的漂亮打印机将执行相同的加缩进操作。但我发现手动输入并缩进代码是开始熟悉代码的好方法。分析网站的主要用例并跟踪每一个。如果您是前端人员,那么从前端开始然后回到数据库可能会更容易;如果您是后端人员,请从数据库开始,看看与它对话的内容,然后如何使用它来呈现页面——无论哪种方式都有效。使用 Firefox 中的 FireBug 来检查例如表单以查看字段的名称以及它们发布到的页面。查看 PHP 页面,看看接下来会发生什么。使用一些 echo() 语句打印出各个位置的变量值。最后,破解数据库并熟悉其架构。
起泡沫,冲洗,重复。
祝你好运!
你能得到一份购买的原始脚本版本吗?这可能是有记录的。 然后,您可以使用 Beyond Compare 等比较工具来提取已进行的任何修改。
如果函数名称只有一个字母,则可能是代码使用某种工具进行编码(我认为 Zend 有一个类似的工具 - Zend Encoder?),因此人们无法复制它。如果有的话,您应该尝试找到一个未编码的版本,因为这会节省大量时间。