`
deepinmind
  • 浏览: 449472 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
1dc14e59-7bdf-33ab-841a-02d087aed982
Java函数式编程
浏览量:41427
社区版块
存档分类
最新评论

如何进行框架的选择

阅读更多
当你在开发应用的时候,大多数时候你都在写一些处理资源的代码。那些打开数据库连接,分配内存之类的代码。更底层的就是和计算环境打交道的代码了。这些代码很恶心,尽管有些程序员特别好这一口,但怎么说,这种代码自然是越少越好。真正能产生商业价值的是那些处理业务逻辑的代码。当然,很明显你也不可能只写业务代码对吧。还有一类代码是用来运行这些业务代码的,当然了,基础架构和业务的代码的边界并不是那么清晰。你很难跟别人说这些是业务代码,那些是基础设施的代码。

你能做的就是选择一个适合业务场景的框架。那些比较容易配置,不需要大量模板代码,容易学习的框架。这样的话你可以更聚焦于业务代码。当然了,知易行难。现在项目还有这么多的不确定性,你怎么才知道长期来看哪个框架最好?这个很难确定。不过你可以试一下,争取能更准确一些。有一个能遵循的选型的模型就最好了。那么在这里,这个模型应该是什么样的?

在一个项目的生命周期里,肯定是需要花费一些精力来开发业务逻辑的。如果业务逻辑是确定的,那么需要开发的代码量肯定不会变化太大。由于有些编程语言写起来可能比较啰嗦,代码量上面可能会略有不同。同时还有学习框架的成本,不过这个对于一个长期的项目而言可以忽略了。你只需要在项目的开始阶段费点工夫,比如中sprint中的1,2阶段,在那以后这个成本和整个的开发量相比就无足轻重了。对于我自己建立的这个模型而言,我会忽略掉这块的工作,一个原因也是因为我没办法提前预估平均每个程序员大概需要多少时间来学习某个框架。

那么最终简化版的模型就是比较开发商业价值的代码以及配置和支持所选框架的代码之间的比例。怎么去衡量这个?

我通常是。。好吧,其实也算不上经常。选择框架也不是每天都干的事。我们团队上一次做这个选择的时候是这样的:

我们先选取了5个可选的框架。第一轮我们先剔除掉了一个并不是太有名用的也不是很多的框架。我们也不想赶这个时髦。另一个被淘汰掉是因为最近的一次调查表明这个框架完全不适合我们。那么还剩三个。最后我们在GitHub中去搜索那些使用到了其中某个框架的项目,每个框架至少挑两个。我们一共看了8个项目,去统计它们的业务代码和框架代码之间的比例。紧接着我们意识到,在有限的生命中这个是完成不了的,因此我们将它简化了下。我们开始按类的名字对它们进行分类。有一些业务类的名字是和业务数据相关的,有些是以某些业务功能来命名的。剩下的那些都认为是框架支持、配置的类。

最终的成果写到了之前的一个PPT中,我们加了两页幻灯片来分析这三个框架的优点及缺点。毫无疑问,最终的结果高度一致:计算表明,框架需要的配置和支持代码越少,大家就越喜欢。

那么这个选型的附加价值是什么?

做这个测试我们必须去审查项目,同时我们也学到了很多关于这些框架的知识。虽然和正常写代码没法比,但总比盯着那些宣传资料要强。我们接触了开发人员在面临实际的问题以及实际的框架特性时所写出的实际代码。这有助于评估员了解到更多的知识,让他能快速提高,以便让我们知道什么是该注意的,什么是该去尝试的。

还有一个尤其重要的结果就是,我们对这个决策的结果没有太多疑问。如果结果是相反的,那么麻烦就大了,这会让我们很困惑:为什么大家会选择一个需要更多与业务无关代码的框架。不过所幸没有。结果跟我们的直觉一致。

那么我是不是推荐使用这种方式来进行框架选型呢?当然不是。不过它可以作为 一个很好的补充,这只会花掉你的SCRUM团队的两到三天的时间而已,而且这还能让你的团队接触一下新的技术。




原创文章转载请注明出处:http://it.deepinmind.com


英文原文链接
2
1
分享到:
评论

相关推荐

    WEB项目开源框架选择

    在进行框架选择时,还要考虑社区支持、文档完善程度和更新维护频率等因素。强大的社区支持意味着问题解决和新功能的快速迭代。同时,考虑框架的成熟度,避免选择过于新颖但稳定性欠佳的框架。 总之,WEB项目开源...

    安卓图片选择框架

    在安卓应用开发中,图片选择框架是不可或缺的一部分,它帮助用户轻松地在手机相册中选取图片。"安卓图片选择框架"就是这样一个工具,旨在提供高效、易用的图片选择功能,广泛应用于社交、电商、媒体等各类应用程序。...

    Python语言的网站开发框架研究.pdf

    Python语言在网站开发领域中扮演了重要角色,其众多开源Web框架和扩展库为网站开发提供了便捷的开发...在进行框架选择时,开发者应当综合考虑框架的特性、社区支持、文档和扩展性等因素,以确定最适合项目的开发工具。

    Android万能图片选择框架.

    "Android万能图片选择框架"就是为了满足这一需求而设计的,它旨在提供一个全面、高效且用户友好的图片选择解决方案,同时注重防止内存溢出(Out Of Memory,简称OOM)问题,以确保应用的稳定性和性能。 一、图片...

    swift-iOS图片选择浏览框架使用PhotoKit和AssetsLibrary双框架

    本项目“swift-iOS图片选择浏览框架使用PhotoKit和AssetsLibrary双框架”提供了一个解决方案,它允许用户在应用内方便地选择和查看图片,同时兼容iOS 6到10的老版本系统。该框架通过集成PhotoKit和AssetsLibrary两个...

    android好用的相册选择框架(转载)

    4. 处理结果:当用户完成选择后,框架会回调指定的方法,提供选择的图片路径或URI,开发者可以根据这些信息进行后续处理,如显示图片、上传服务器等。 在`photopicker`这个文件夹中,可能包含了该框架的源代码、...

    图片选择框架

    《图片选择框架详解》 在移动应用开发中,图片选择功能是不可或缺的一部分,无论是社交应用中的个人头像设置,还是电商应用的商品上传,用户都需要一个便捷的方式来选取他们想要的图片。"图片选择框架"就是为了解决...

    Android-ImageSelector图片选择框架

    **Android-ImageSelector图片选择框架详解** Android-ImageSelector是一个专为Android应用设计的自定义图片选择库。它旨在提供灵活、可控的图片选择功能,避免因依赖第三方库而导致项目失控的问题。本框架的设计...

    设置框架和框架集的属性

    选择框架或框架集是非常重要的,用户可以在编辑窗口中选择框架或框架集,也可在“框架”面板中进行选择。选择框架或框架集后,可以对其进行属性设置,实现网页的布局和设计。 框架和框架集的属性设置包括框架的名称...

    ios 数据请求框架 图片请求框架 刷新框架 kvc框架,进度条框架

    在iOS应用开发中,使用各种框架能够极大地提升开发...在实际开发中,开发者可以根据项目需求和团队技术栈选择合适的框架进行集成。同时,保持对新框架和技术的关注,有助于提升开发技能,适应快速变化的移动开发环境。

    WG框架 参考重要的框架 参考重要的

    下面将深入探讨框架的重要性以及如何参考和利用它们进行高效开发。 首先,框架的核心价值在于其抽象和模块化的特性。它们将复杂的系统分解为可管理的部分,使开发者能够专注于业务逻辑而不是基础架构。例如,Web...

    基于c#的CAD二次开发目标框架选择手册

    ### 基于C#的CAD二次开发目标框架选择手册 #### 一、引言 在进行CAD(Computer-Aided Design)二次开发时,选择合适的技术栈至关重要。尤其是在使用C#语言进行二次开发的情况下,正确地搭配Visual Studio版本与...

    风度框架安卓12 (框架修改器软件下载安装包).zip

    风度框架是一款针对Android系统的框架修改工具,专为Android 12版本...如果你是一个喜欢挑战、追求个性化的Android用户,那么风度框架可能是你的理想选择。不过,在享受自定义的乐趣时,也要记住安全第一,谨慎操作。

    使用遗传算法进行特征选择(DEAP 框架)_python_代码_下载

    数据科学家发现很难选择正确的特征来获得最大的准确性,尤其是在处理大量特征时。目前有很多方法可以选择正确的功能。但是如果特征空间真的很大,我们将不得不挣扎。遗传算法是一种解决方案,它从其他特征中搜索最佳...

    后端开发框架探索与选择

    通过了解不同框架的特点和优势,并结合项目需求和个人偏好进行选择,可以大大提高开发效率和系统性能。同时,保持对新技术和新框架的关注和学习也是非常重要的。希望本文能帮助读者在后端开发框架的选择上做出明智的...

    Dreamweaver网页设计之:框架.pptx

    最后,在对框架或框架集进行操作之前,必须先选择框架或框架集。选择框架可以通过按住 Alt 键同时鼠标左键单击欲选择的框架,或者在“窗口 > 框架”中启用框架控制面板,在面板中用鼠标左键单击欲选择的框架。选择...

    Web前端框架技术综述.pdf

    在实际项目中,开发者需要根据项目的需求选择合适的框架技术,并根据项目的需求进行框架技术的配置和优化。 五、结论 Web前端框架技术的发展使得Web应用程序的开发变得更加简洁、快速和高效。了解Web前端框架技术...

    基于Caliburn.Micro框架的WPF的MVVM开发框架

    在CM框架中,可以利用EmguCV进行模板匹配,实现图像检测等功能。 9. **右键菜单**:在WPF应用中,右键菜单的实现可以通过绑定到视图模型的命令来完成。CM框架提供了便捷的绑定机制,使得菜单项可以直接触发视图模型...

    微服务架构的基础框架选择.pdf

    微服务架构的基础框架选择是一个关键决策,涉及到项目的技术栈、维护成本和长期发展。本文将对比分析两个热门的微服务框架——Spring Cloud和Dubbo,分别从背景、社区活跃度和架构完整度三个方面进行深入探讨。 ...

Global site tag (gtag.js) - Google Analytics