`
wjm901215
  • 浏览: 154115 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

如何学会“偷代码”

阅读更多

学东西容易。化为己有难。

  我发现自己在最近的几个项目中偷窃了其它项目的思想。当然,并不是真正的“偷”,而是浏览和学习你欣赏的项目和开发者,从中窃取思想。诸如设计模式,重构方法等。Chris是如何处理hub里的命令行参数的?shell脚本和rvm上的Ruby是如何进行韦恩转化的?

  当你遇到问题,有点难度、需要你动一下脑子时,你要问“嗨,我怎么实现这个呢?”,这是个不错的问题入手点。

  一旦你遇到这种问题,当然,你可以在Google上搜索出一篇文章,找到方案。但如果你从别人哪里“偷”来,你会收获两点:

  1. 你的理解和那个特别的项目之间建立了思想上的连接。
  2. 你“拥有”了那个思想。

  “拥有”你偷来的东西是一种潜移默化的过程,但你可以想象出:你花大量的时间去理解这些思想,你把它应用到解决自己的问题里。这种思想上的过程是很有满足感的。突然灵光一闪,你开始明白为什么作者要重构这个方法,为什么他们需要一个辅助类了。

  不要误解;能够自己创造东西当然是最好。这是学习知识达到了另外一种完全不同的级别,大多数情况下都需要我们这样。但有时,从他人哪里学习优秀的经验是一种最快的启蒙方式——不是为了要解决你手头上的问题,而是要本质上理解其中的精髓。

  观察别人是如何解决你的问题的,要自己能够理解其中体现的思想,按照自己的观点重新塑造它,让这思想成为“你的”思想,你把它装在自己的脑袋里,以备下一个项目中使用。这也就是“学习”这个词的另一种说法,但就在我想到这种想象的、异样的说法时——哦,这正是几个月前在另外一个项目中从Homebrew哪里偷到的继承策略吗 ——我接受知识的能力提高了。

  一旦你对知识的吸收消化达到了这种水平,那这些外来的思想就成为了你脑海里捻之即来的自有思想了。

分享到:
评论

相关推荐

    PHP版网易新闻小偷程序 v1.0.rar

    一款基于PHP环境的新闻小偷程序,内部预设的规则是采集网易新闻的内容,只上传了首页,分类也很简单的,改下首页...程序更重要的是演示PHP代码的采集编写方法,很多采集都需要根据规则来定制代码,学会了举一反三。

    新闻小偷(新浪)加速加强版

    通过这些资料,用户不仅可以学会如何使用这款加速加强版的新闻小偷,还能了解到其背后的工作原理和技术实现。 综上所述,【新闻小偷(新浪)加速加强版】是一个集新闻浏览、搜索、历史查询于一体的应用,旨在提升用户...

    漂漂美术馆图片小偷 v1.0

    3. 配置文件管理:学会如何阅读和修改ASP中的配置文件,例如Config.asp,调整相关参数以满足特定需求。 4. 开源代码利用:学习如何分析和修改开源代码,增强软件功能或修复潜在问题。 5. 文件处理:理解不同类型的...

    FKQQ新闻小偷程序.7z

    5. **反爬策略**:很多网站有防止爬虫的机制,如验证码、User-Agent限制、IP封锁等,因此爬虫开发者需要学会设置代理、模拟登录、识别和输入验证码等技巧。 6. **数据存储**:抓取的数据通常需要存储,可以是文件...

    百度知道小偷程序 v1.0 测试版.rar

    5. 网络爬虫原理:理解HTTP协议,学会如何使用ASP发送HTTP请求,解析返回的HTML内容。 6. 错误处理:学习如何在ASP中添加错误处理代码,提高程序的稳定性和健壮性。 7. 安全性:了解基本的Web安全知识,防止因不当...

    [影音娱乐]JSP版Flash小游戏小偷_jsgame.zip

    学会使用调试工具,定位和解决问题。 10. **部署与维护**:学习如何将JSP应用部署到Web服务器,如Apache Tomcat,并了解如何进行后续的更新和维护。 总的来说,“[影音娱乐]JSP版Flash小游戏小偷_jsgame.zip”这个...

    网站模板小偷,闪站网站闪存

    7. **优化与调整**:原始抓取的模板可能包含不必要的代码或资源,用户需要学会优化和精简,以提高网站性能和用户体验。 8. **响应式设计**:现代网站通常需要适应不同设备的屏幕尺寸,用户应了解如何将非响应式模板...

    mtv小偷于主站同步更新免维护 -ASP源码.zip

    3. **数据库连接**:学会使用ADO(ActiveX Data Objects)与数据库进行交互,如SQL查询、事务处理等。 4. **文件操作**:了解如何读写文件,以及如何处理目录和文件系统。 5. **错误处理**:掌握Try-Catch机制,编写...

    简易打字游戏

    8. **调试和测试**:对于初学者来说,学会使用Visual Studio的调试工具进行代码调试和单元测试是非常有帮助的。这有助于找出并修复程序中的错误。 通过这个项目,开发者不仅可以学习到C#的基本语法和编程概念,还能...

    php100视频原始地址列表整理.doc

    - **学习目标**: 学会开发UBB代码解析器,扩展文本处理能力。 #### 41. PHP站内搜索、多关键字、加亮显示 - **知识点**: 实现站内搜索功能,包括如何支持多关键字搜索,以及如何对关键词进行加亮显示。 - **学习...

    JAVA 橙梦体育业务大厅实验报告

    实验中,学生需要学会如何使用try-catch语句块来捕获和处理运行时可能出现的异常,确保程序的健壮性。 3. **集合操作**:集合是用来存储和操作数据的数据结构。学生需要熟悉ArrayList、LinkedList等集合类,以及...

    stm32 ucosii iar

    7. **调试技巧**:学会使用IAR的调试工具,如断点、单步执行、查看变量状态等,以便于问题定位和优化代码。 8. **固件升级**:如果工程涉及固件更新,需要了解Bootloader的工作原理和如何编写或者配置适用于STM32的...

    中国站长报总第五期

    一天学会 玩透9种网页弹出窗口(精) 令人生厌的form元素! 让IIS服务器支持中文文件名 如何避免被人看成业余网站 把小商业网站做成大企业形象 提供两个常用合同书样本 :☆ 网站...

    sqli-lab操作详解

    SQL注入是一种常见的网络安全漏洞,主要出现在Web应用程序中。它允许攻击者通过在输入字段中插入恶意的SQL代码,来操纵数据库查询,获取...通过实践,你可以更深入地了解SQL注入的机制,并学会如何避免和防御这种攻击。

Global site tag (gtag.js) - Google Analytics