我是做商业软件设计开发的,开源软件给我的印象并不好。sf.net上的东西,好的不多,多数烂兮兮的,没有思路,没有清晰的概念,缺乏规划和文档,模块设计和代码考虑情况太少太少,可读性和可理解性几乎为零。
更不用提国内的了,到网上一搜,框架满天飞,实际的东西很少,翻来覆去都是那一套。这里还不说只是把国外的东西介绍和翻译到国内的这种情况了,只要不是“贪天之功,以为己力”,也还是对大家都有好处的。
对于开源,我感觉,只有商业软件能做得好了,才能说得上开源软件的发展。做得东西太烂,给自己一个辩解说是开源的,这没有任何意思。开源软件和商业化的开发有千丝万缕的联系,有着本质的关联。
做开源,需要对开源这件事本身的背景和需要有足够清晰的了解才说得上,并且,开源的话,也要有自己的发展路线,有自己的需求和需求管理,有清晰的概念、好的架构,优雅的实现和丰富的测试,不是一两个人心血来潮就搞一个的,那样肯定搞不好。
因为国内商业软件领域其实做得不好,所以,对开源,也没有什么迫切的需求,也不能催生开源软件发展的环境,所以,我想,开源发展还有待时日。我是个做商业软件的,在这个阶段里,努力把自己的工作做好就行了。这本身就是对开源的一种间接支持。
再有,其实做开源比作商业软件更需要水平,控制需求的水平(包括需求的收集、分析、剪裁、变更),设计的水平(架构、模块、文档的能力、变更的控制)、代码的水平(写出简洁优雅的实现)。可不是掌握几个流行的框架就能作出来的,或者说了解掌握了Java或C++就能做到的。尤其是,设计者和开发者要以商业软件对可延续性、可追溯性、质量至上的要求来要求来要求自己的开源软件,这是正道,如果资源不足或者时间不足,一是苦自己,挤时间,二是找一些真正志同道合的朋友分担,三是放弃;降低要求凑合做肯定是最坏的选择。
再有,态度决定一切,做开源,目的是什么?兴趣吗?做商业软件不容易所以独辟蹊径吗?不愁生活打算做点事业吗?帮助别人做义工吗?等待商业软件厂商的收购吗?想把技术研究的成功贡献给社会吗?我倒不是说哪种目的一定是对的,但是目的不同,做事情的方式一定有所不同,做出的东西也一定大不一样。
最后提一句,不管做什么方面的设计开发,世界上没有免费的午餐,自己的问题还得自己上心,自己努力寻求解决,一定要摒弃速食主义的做法,一定不要为了节省点代码和时间,用一堆别人的代码(开源和免费)来构建自己的产品(或许,特殊情况下有些项目会这么做,也很难责怪)(即便是优秀的开源产品,例如Apache、Spring、Hibernate还不一定适用于自己的场景呢,何况多数开源软件本身设计和实现很一般)。人们不这么想不这么做了,开源软件也就能得到发展了。
相关推荐
显示每日和每月的总工作时间(绝对或相对)。 启用编辑工作时间段。 午餐时间通知并回家(加班)。
So,我的第一个"作品",就这样出现的,虽然功能并不复杂,但我也依然非常开心,在此过程中,也顺便学习了git的一些用法,也知道了如何把自己的代码加入cocoapods豪华午餐,中间也遇到了一些问题,自己也解决了一些,还有一些...
它被设计为一个中心位置,每个人都可以找到专为MPC设计的开源软件以及该主题的入门资料。 此外,该列表按字母顺序给出,并分为积极维护或最近开发的库类别。 请随时使用您知道的任何MPC软件或资源进行拉取请求,...
主要有三个方面,新型的数据与机器关系当中的第一条 就是重新考虑架构与算法,重新考虑舍得,有舍才能得,天下没有免费的午餐,所以必 须要舍弃一些,得到一些新的。必须舍弃贵族化的高端小型机和UNIX服务器,得到...
主要有三个方面,新型的数据与机器关系当中的第一 条就是重新考虑架构与算法,重新考虑舍得,有舍才能得,天下没有免费的午餐,所以 必须要舍弃一些,得到一些新的。必须舍弃贵族化的高端小型机和UNIX服务器,得到平...
Molly钱包($ DAG桌面钱包) Molly钱包是Constellation Network的官方$ DAG钱包。... 然而,许多钱包在视觉上并不吸引人,功能和实用性受到限制,因此被视为事后的想法。 我们希望将其带到最前沿,
我认为每天只有一小时的目标对我来说似乎很容易控制,而不是感觉除非我每天至少花 3 小时学习它是不值得的。 工作/资源链接: 第 2 天 7月1日 今天的进展: 我开始学习 SQL,现在我对数据库、选择查询、插入、更新和...
请注意,这并不是一个很棒的列表(尚未)。 请通过贡献和评论帮助我实现目标。 2020年12月更新我们现在有500多个链接/资源! 重点是讨论重新排序和排序所有这些链接,我想使其尽可能可用。 添加了地球观测介绍。 ...
撇开障碍不谈,他们确实拥有大量(或多或少)干净的数据集,涉及许多非常有用的主题,例如人口统计、免费或减价午餐、考试成绩和英语作为第二语言的学生。 我不确定其他州的机构是否有类似的工具,但您可以在 上找到...
撇开障碍不谈,他们确实拥有大量(或多或少)干净的数据集,涉及许多非常有用的主题,例如人口统计、免费或减价午餐、考试成绩和英语作为第二语言的学生。 我不确定其他州的机构是否有类似的工具,但您可以在 上找到...
请注意,这并不是一个很棒的列表(尚未)。 请通过贡献和评论帮助我实现目标。 2020年9月更新我们现在有450多个链接/资源! 重点是讨论对所有这些链接进行排序和排序,并在“光学图像非深度学习的Python处理”部分中...
社区创造了“回调地狱”一词,这表明,在事件循环编程模型的屋顶下,事情可能并不总是那么美好和快乐。 这个演讲是关于在基于 JS 的平台上有效处理异步代码的抽象和工具。 我们将切入控制流库、React式编程、promise...
我们不得不为五个迟到的人等待更长的时间(这是由于交通原因)。 然后我们作为一个完整的小组被陪同到研讨会室,并被允许在那里就座。 在这里举行了有关毕业信息的PowerPoint。 在这个通用 PowerPoint 之后,一位...
matlab不运行一段代码2015-08-27-unh Python课程大纲 设置 确保午餐前每个人都安装了Anaconda python并运行测试脚本。 (TD)安装anaconda python2.7发行版 (TD)将笔记放在etherpad中,以便学生将其下载到他们的...
该MatLab代码旨在模拟自旋回波序列中质子在90度脉冲后的T2移相,这是由于质子的扩散以及与纳米粒子产生的磁场不均匀性的相互作用。 该算法主要基于PA Hardy和RM Henkelman的论文“由磁性微粒引起的横向弛豫速率增强...
继续成长为编码员岗位课程 最重要的是找到让自己保持动力的方法。 你会有很充实的日子,你会想要真正挑战自己,让...很多时候,毕业生会坐在一起,谈论他们在做什么,一起去吃午饭或在一天结束时喝一杯。 远程实现! 大
Bag”(基本上是我们在团队中进行的知识共享午餐时间谈话/演示),因为我们作为一个团队使用 JDK7 编写 Java 程序。 这个存储库包含我在演讲中使用的代码。 我还添加了使用的幻灯片(这不是内容繁重,我使用它主要是...
并这样做是为了早午餐。 然后,您可以给分类器一个新的手势,它将告诉您训练有素的手势中最相似的是什么。 #不,我是说,它是如何在引擎盖下工作的? 它基于一个称为概率模型的概率模型,该数学模型是用于对具有...
本节将使用一个包含90个实验语句的csv文件,例如“该男子看到医生在早上诊治过的那个病人”),并重新组织它们以供脚本的其余部分使用。 首先,它为句子设置新列。 这包括带有条件信息的各个列,以及用于块索引的列...
餐厅营业查看系统Java源码我的午餐 个人项目:一个网站,人们可以在其中上传他们的饭菜图片。 去做 我想此时我可以编写一个非常基本的 nginx 扩展。 我不知道如何快速添加异步 redis,但我认为我可以将其与共享内存...