开源虽好,但应吃透

编程技术史发展到今天,逃不过的一个话题就是开源,开源是一个趋势,连微软的.net编译器也搬到了github上,足见开源的分量。现在开发软件很少重头做起,大部分都是在开源软件的基础上做修改,总之就是二次开发。

二次开发的优点是:开发速度快、不必纠结底层、代码健壮性较高等等。但是缺点也很明显,如果是开发企业级应用,很可能会有相关“协议”的约束,而且如果对于代码内部的原理不清楚的话,一旦出现问题,维护就比较麻烦。

所以,对于开源的软件,应该尽量吃透开源代码精神,然后再用自己的方式实现,这样在提高可维护性的同时,也能够提升自己的编码能力。

对于较大的开源软件,需要分模块,团队中每个人负责一个模块。

对于较小的开源软件,则可以一个人独立分析。

时间: 2024-11-06 03:54:42

开源虽好,但应吃透的相关文章

S5PV210开发系列八_Yaffs的移植

S5PV210开发系列八 Yaffs的移植 象棋小子    1048272975 Nand作为市面上最基本的非易失性闪存技术之中的一个,应用在各种固态大容量存储解决方式中.因为Nand flash自身的特点,Nand存储器往往须要一款专用的Nand文件系统进行管理.开源的Yaffs文件系统因为其优异的性能,在Nand flash中受到广泛的应用,笔者此处就Yaffs的移植作一个简单的介绍. 1. Yaffs概述 Yaffs是由Aleph One公司所发展出来的Nand flash文件系统,专门为

什么是垂直应用架构

垂直应用架构? 刚看到这个名词的时候,我还是挺犯嘀咕的...什么是垂直应用架构呢?答案是 分层 设计开发的应用,就符合 垂直应用架构. 通过 联想到 植被的垂直分布,就比较好理解--分层. 本篇博文的产生背景,在阅读阿里巴巴开源的Dubbo用户应用时,其论述到了随系统复杂度的增长,系统架构的变化和侧重点: 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本.        此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键. 垂直应用架构 当访

我必须得告诉大家的MySQL优化原理2

如果有同学看完上一篇关于MySQL文章,文末留有两个很开放的问题,如有兴趣可以在脑袋里想想.本文也会试着回答这两个问题,希望能给你一些参考.现在可以思考一个问题,如果数据量非常大的情况下,您根据业务选择了合适的字段,精心设计了表和索引,还仔细的检查了所有的SQL,并确认已经没什么问题,但性能仍然不能满足您的要求,该怎么办呢?还有其他优化策略吗?答案是肯定的.接下来继续和您讨论一些常用的MySQL高级特性以及其背后的工作原理. 分区表 合理的使用索引可以极大提升MySQL的查询性能,但如果单表数据

【React Native】源码分析之Native UI的封装和管理

??ReactNative作为使用React开发Native应用的新框架,随着时间的增加,无论是社区还是个人对她的兴趣与日递增.此文目的是希望和大家一起欣赏一下ReactNative的部分源码.阅读源码好处多多,让攻城狮更溜的开发ReactNative应用的同时,也能梳理RN项目的设计思路,增加自己的内功修为,^_^. ??好的,就让我们轻松的开始吧.此篇是以Android平台源码分析为主,分享Native UI的封装和管理,重点涉及react-native源码中com.facebook.rea

【文件共享服务之一】 Samba服务

        ******************理论部分***************** Samba: 是一款在Linux/Unix系统上实现与windows系统进行文件共享的免费开源软件.广泛应用于Unix-like与Windows之间,提供文件共享和打印机共享服务,使得不同系统之间跨平台共享资源更加便捷. Samba服务: 由服务端及客户端程序构成,采用的是smb/cifs网络协议. SMB协议: 英文全称为 Server Message Block(服务协议块),该通信协议是微软公司

ASP.NET导出Excel文件

第一种最常见,并且最简单的方式,直接把GridView导出,导出格式为文本表格形式. protected void btnSaveExcel_Click(object sender, EventArgs e) { string FileName = "xxx"; System.IO.StringWriter objSW = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter objHTW = new System.Web

XML文件解析之DOM4J解析

1.DOM4J介绍 dom4j的官网是http://www.dom4j.org/dom4j-1.6.1/,最新的版本是1.6.1,根据官网介绍可知.dom4j是一个易用的.开源的库,应用于Java平台XML.XPath.和XSLT,并且提供了对DOM.SAX和JAXP的完全支持.主要功能包括针对Java平台设计完成支持Java的集合框架:完全的支持JAXP, TrAX, SAX, DOM, and XSLT:为XML文档的简单导航完全集成的XPath支持:基于事件的过程模式完全支持大量的文档或者

MySQL优化原理(二)

如果有同学看完上一篇关于MySQL文章,文末留有两个很开放的问题,如有兴趣可以在脑袋里想想.本文也会试着回答这两个问题,希望能给你一些参考.现在可以思考一个问题,如果数据量非常大的情况下,您根据业务选择了合适的字段,精心设计了表和索引,还仔细的检查了所有的SQL,并确认已经没什么问题,但性能仍然不能满足您的要求,该怎么办呢?还有其他优化策略吗?答案是肯定的.接下来继续和您讨论一些常用的MySQL高级特性以及其背后的工作原理. 分区表 合理的使用索引可以极大提升MySQL的查询性能,但如果单表数据

揭秘“撩”大数据的正确姿势:生动示例解说大数据“三驾马车”

我是我:"缘起于美丽,相识于邂逅,厮守到白头!" 众听众:"呃,难道今天是要分享如何作诗?!" 我是我:"大家不要误会,今天主要的分享不是如何作诗,而是<揭秘:'撩'大数据的正确姿势>,下面进入正题." 话说当下技术圈的朋友,一起聚个会聊个天,如果不会点大数据的知识,感觉都融入不了圈子,为了以后聚会时让你有聊有料,接下来就跟随我的讲述,一起与大数据混个脸熟吧,不过在"撩"大数据之前,还是先揭秘一下研发这些年我们都经