精华内容
下载资源
问答
  • 这一段时间都现有的项目上开发开发的前提要弄清楚业务逻辑业务逻辑蕴藏项目的各个代码片断,所以从代码去分析出业务逻辑一个程序员成长的必经之路。我很佩服我们头,他不看代码的情况下,就靠...

    “分析代码中的业务逻辑”,是逆向工程的一个子集,在大型系统开发/维护过程中,已经成为一个程序员的必经之路。

    在软件开发领域,所谓的“逆向工程”是指从可运行的程序系统出发,运用解密、反汇编、系统分析、程序理解等多种计算机技
    术,对软件的结构、流程、算法、代码等进行逆向拆解和分析,推导出软件产品的源代码、设计原理、结构、算法、处理过程、运行方法及相关文档等。 

    众所周知,我们使用了几十年的软件系统的开发方法,都是在围绕:可行性研究与计划,需求分析,概要设计,详细设计,实现,集成测试,确认测试,使用和维护这几个阶段在进行,这其中就包含了“需求分析”和“该要设计”。对于程序员来说,“需求分析”和“概要设计”是指导后面的“详细设计”,“实现”的依据。它们虽然作为软件系统商业机密的组成部分,不允许被外传,但是在公司团队内部,它们对相关项目的程序员来说是开放的。既然,程序员是“实现”阶段的执行者,手里有源代码,又能够看到“需求分析”和“概要设计”,那何来逆向工程呢?

    实际的情况是,开发中的好多阶段,例如:可行性研究与计划,需求分析,概要设计,详细设计都被弱化了,特别是对于那种已经完成了首个版本开发且已经上线的系统,通过迭代来引入新功能时,开发几乎就直接进入“实现”阶段了。

    加之开发和维护过程中的人员流动因素,可想而知,经过多个这样的迭代,就会出现“需求分析”和“概要设计”的真空,开发人员要弄清楚前几个迭代的业务逻辑,就只能从分析代码入手,从分析整个系统的运行行为入手,来还原之前的“需求分析”和“概要设计”,进而确保新功能的实现能够很好的衔接现有功能。

    因此,作为一个程序员,直接分析原有代码,导出其中的业务逻辑,是工作中一条绕不开的路。既然绕不开,就直视它,根据项目特点,找到分析代码,导出业务逻辑的特定方法。作为一个程序员,会成长成什么样子,由很多因素决定。但对于我来说,我希望能够在程序员的这条路上走得再远一些。

    参考:

    软件逆向工程

     

    展开全文
  • 不太确定这些人中的大多数人说...至于哪里和如何编写业务逻辑,我们的许多人拥抱mvc或mvvm或接近它的东西。如果你正在构建一个应用程序,并像Rubyists(例如),结构他们的代码,你可能会看着做一些像这样 – 一...

    不太确定这些人中的大多数人在说什么。

    “图书馆的巨大海洋”是社区正在积极工作的东西。检查:http://search.npmjs.org/#/_analytics – 昨天发布了8个软件包

    它不会为你解决你的软件设计。至于在哪里和如何编写业务逻辑,我们中的许多人拥抱mvc或mvvm或接近它的东西。如果你正在构建一个应用程序,并像Rubyists(例如),结构他们的代码,你可能会看着做一些像这样 – 一个没有人会告诉你如何构建你的代码。

    一些更受欢迎的图书馆做日常工作:

    > Sinatra灵感,使用它来建立一个典型的网络应用程序

    > Stats:3407 watchers,286 fork,on pull request 778

    >与那纳特拉本身比较! 2529观察者,366叉

    >使用connect,它支持各种中间件:

    >会话,

    >各种路由,

    >静态文件

    >大约15种不同的模板引擎

    >验证,表单处理等等

    > caolan / async:https://github.com/caolan/async – 帮助管理异步业务逻辑

    >数据库,选择你的感觉

    >“这是一个完整的Redis客户端node.js.它支持所有Redis命令”

    测试驱动开发是节点的核心。有15种不同的TDD包可供选择,从完全代码覆盖分析到自定义断言模块。

    说所有模块不完整是愚蠢的。有一个令人难以置信的专门组的人建立和维护吨工作开源在这个社区的每一天。

    可能有一些原因要通过节点,但不适用于非活动社区或缺乏库。

    展开全文
  •  Struts一个JSP Model2基础上实现的MVC框架,主要分为模型(Model)、视图(Viewer)和控制器(Controller)三部分,其主要的设计理念通过控制器将表现逻辑和业务逻辑解耦,以提高系统的可维护性、可扩展性和可重用...
    表示层框架Struts
         Struts是一个在JSP Model2基础上实现的MVC框架,主要分为模型(Model)、视图(Viewer)和控制器(Controller)三部分,其主要的设计理念是通过控制器将表现逻辑和业务逻辑解耦,以提高系统的可维护性可扩展性和可重用性。 

    业务逻辑层框架Spring
        Spring是一个解决了许多J2EE开发中常见问题并能够替代EJB技术的强大的轻量级框架。这里所说的轻量级指的是Spring框架本身,而不是指Spring只能用于轻量级的应用开发。Spring的轻盈体现在其框架本身的基础结构以及对其他应用工具的支持和装配能力。与EJB这种庞然大物相比,Spring可使程序研发人员把各个技术层次之间的风险降低。
        Spring框架的核心是控制翻转IoC(Inversion of Control)/依赖注入DI(Dependence Injection)机制。IoC是指由容器中控制组件之间的关系(这里,容器是指为组件提供特定服务和技术支持的一个标准化的运行时的环境)而非传统实现中由程序代码直接操控,这种将控制权由程序代码到外部容器的转移,称为“翻转”。DI是对IoC更形象的解释,即由容器在运行期间动态地将依赖关系(如构造参数、构造对象或接口)注入到组件之中。Spring采用设值注入(使用Setter方法实现依赖)和构造子注入(在构造方法中实现依赖)的机制,通过配置文件管理组建的协作对象,创建可以构造组件的IoC容器。这样,不需要编写工厂模式单例模式或者其他构造的方法,就可以通过容器直接获取所需的业务组件。

    数据持久层框架Hibernate
        O/R mapping技术是为了解决关系型数据库面向对象的程序设计之间不匹配的矛盾而产生的。Hibernate是目前最为流行的O/R mapping框架,它在关系型数据库和Java对象之间做了一个自动映射,使得程序员可以以非常简单的方式实现对数据库的操作。

    另外,关于MVC又是另外一个概念,应该说SSH是基于MVC的开发模式。
      MVC(Model/View/Controller)模式是用得比较多的一种设计模式,好象最早是在Smaltalk中出现。MVC包括三类对象。Model是应用对象,View是它在屏幕上的表示,Controller定义用户界面对用户输入的响应方式。
    展开全文
  • 前言:本系列针对于React界面开发痛点的一些解决方案,只是React应用偏向展示的一环构建一个业务与UI分离的react应用本篇基于HOC方案并未使用Hooks业务逻辑与UI编写一个react组件前,我们一定要弄清两件事...

    前言:本系列是针对于React在界面开发痛点的一些解决方案,只是React应用中偏向展示的一环

    构建一个业务与UI分离的react应用

    本篇是基于HOC方案并未使用Hooks

    业务逻辑与UI

    在编写一个react组件前,我们一定要弄清两件事。

    1. 什么是UI?
    2. 什么是业务逻辑?

    UI:组件的具体展示元素,通俗点就是组件的长相。接受到合理的数据就可以展示出一个合格的组件。

    业务逻辑:获取数据、发送请求等等有比较明确的独特业务的逻辑。

    为什么要业务逻辑与UI分离?

    在编写react组件的时候,经常会出现业务逻辑相似,UI基本相同的组件,可能只是获取的数据方式有一些不同。

    for example: 掘金的感兴趣小册列表为例子

    d05d6ab63a1c16078af64e4bc9ff2a0c.png
    1. 最外层的红框为这个小册的组件Booklet
    2. 左侧的是小册的封面
    3. 右侧上方的是小册的名称
    4. 购买人数
    5. 小册的链接

    以上这些都是Booklet组件的UI元素

    在Component中:

    Booklet组件只需要知道以下数据就可以正常工作:

    1. 小册的封面(imageUrl)
    2. 小册的名称(name)
    3. 购买人数(buyerNums)
    4. 链接(link)

    UI组件并不需要知道:

    1. 如何获取数据,(如何根据小册id如何获取到的)
    2. 数据何时回来,(请求结束填充数据)
    3. 请求的具体处理,(请求开始、结束、容错、什么时候开始loading等等)

    以上这些应该在哪里处理?

    在Container中

    1. 根据小册ID获取数据。
    2. 判断请求的当前状态。(loading、error、success、cancel)。
    3. 制作好数据传递给Component

    想要分离UI与业务逻辑时遇到的常见痛点

    1. 生命周期中包含请求代码,不好抽离。
    2. 内部state导致组件后续扩展能力差。

    如何解决以上问题。

    recompose可以合理解决以上问题。

    在传统的写法中:

    path: components/card/index.jsxclass Card extends React.PureComponent {      state = {            name: undefined,    link: undefined,    buyerNum: undefined,    logoUrl: undefined,  }   componentDidMount() {    getCardById(this.props.id).then(card => {      const {name ,link, buyerNum, logoUrl} = card;      this.setState({        name,        link,        buyerNum,        logoUrl,      })    });  }  render() {    const {name ,link, buyerNum, logoUrl} = this.state;    return (      
    {name}
    {name}
    {buyerNum}人已购买
    试读
    )}}

    上面的代码就是标准的业务与UI不分离

    难以维护的影响

    后续需求仍然使用这个卡片组件的UI,但是变成了卡片列表包含多个卡片,使用卡片id获取卡片数据的业务逻辑就很不合理。

    如何解决?

    UI与业务分离

    UI层

    ff8bb4b36fd6fba92f84e086daf7d8e1.png

    业务逻辑层

    1bd8b64fb6c6ffe7634b9d7c76d362d5.png

    新的代码种Card的UI组件不再被任何业务逻辑干扰。Card的container包含了本次根据id获取卡片的业务逻辑。如果后续需要卡片列表。只需要一个CardList的container去获取数据,渲染Card的UI组件。

    UI与业务分离的思路已经讲完了。

    下一期会讲一讲reselect这个简洁的第三方库如何减少react组件无意义的render。

    展开全文
  • Struts属于三层的表示层 主要用来规范程序结构的 Spring属于三层业务逻辑层 主要用来处理业务的,可以提高程序的开发效率 Hibernate属于三层的数据层 主要用来简化数据库的访问操作
  • 上例,将捕获到的异常信息打印到日志,这样就可以不影响业务逻辑的情况下,还知道出现了什么异常,可以进一步解决问题。 二、实例解释 最近工作,发现其他人员开发的模块功能catch语句块中调.
  • 今天代码开发中看到一位同事的代码,所有的代码都Controller中的,当时觉得很奇怪,然后再再看了看他的service层——干净的就像一张白纸,当时我强迫症就犯了。 上学的时候,上班的时候-领导一直要求代码...
  • 有关jdbc的一些个简单的操作我是在写一个接口的过程学习到的,这个简单的服务端接口的编写过程我领会了服务端的分层开发的理念,当然和Android开发的各种架构开发有区别,但是实现原理却类似的那就是面向...
  • 摘要 LINQ项目架构的角色层次到底是什么? DataCotext对象应该放在哪里?层次间如何调用?项目设计我就不停的思考这些问题, 其实最后确定下来LINQ的结构体系还是几个版本的尝试后,其间经过了几次论证和修改....
  • 我会担心的,如果他们不能推理解决问题,您如何期望他们推理和解决您的业务问题?其他人只想要优秀的开发人员,他们可以使用任何需要的语言进行工作。他们考虑/建模问题,然后以任何语言实施。如果您突然决定.NET...
  • 随着编程技术的不断发展演变,开发软件的时候需要编写的代码数量也不断减少,这...开发人员可以直接跳过所有的基础架构,只关注于使用代码来实现业务逻辑。  无代码编程的适用场景:  就当前而言,无代码编程实际上
  • PythonDjango框架和Flask框架都比较常见的,在开发应用系统时,使用框架可以提升开发效率,让应用开发更加规范、拓展性更强,程序员把更多的精力放在业务逻辑的实现上,而不是重复、而复杂的基础环境上。...
  • 真实的业务场景,你有用过什么设计模式来编写更优雅的代码吗?我们更多的每天从产品经理那里接受到新需求后,就开始MVC一把梭,面向sql编程了。我们习惯采用MVC架构,实时上非常容易创建很多贫血对象模型,...
  • 安全生产:业务逻辑

    2018-07-12 21:52:44
    最近在开发中遇到一个问题,由于只关注自己所分配的任务,忽略了自己这一部分开发内容与整个业务流程的关系,然后就有些问题没有考虑周全,bug就比较多。开发人员不应该只关心coding,更加应该关注的是业务产品...
  • 展开全部JavaWebservlet主要32313133353236313431303231363533e4b893e5b19e31333431373333功能承载网络连接,业务逻辑处理,比如一些编码格式的转换、登录拦截等,如下详细解释:1.servlet一个类。...
  • JWT的声明一般被用来身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。 JSON Web ...
  • 而是关于:"业务逻辑是不是要封装存储过程实现,这样子php、java等就是调用存储过程"。   业务逻辑,通俗说就是:比如要取数据的操作,取出会员编号为x的数据,原来我们一般封装成函数,或者
  • 不了解基础微服务架构的情况下,专注于应用程序业务逻辑。 快速入门-单节点 安装Java 8或更高版本 Mac,Windows或Linux上,安装最新的或 。 不支持Java 8的早期版本。 安装BlueNimble 从二进制文件安装 下载或...
  • 项目业务逻辑问题整理_答案版本

    万次阅读 多人点赞 2018-01-13 19:04:15
    答:传智所学项目的业务逻辑不够复杂,模块也不多,所以建议项目周期为5-8个月。 项目团队有多少人,如何分配的? 答:项目团队一般由6-10个人组成,4-5个人java后台的,1-2个前端,2个产品。 项目充当什么...
  • 在开发spark程序,sqlContext函数不能完全实现业务逻辑,所以会引入hiveContext,(本次用到hiveContext的开窗函数TOP-N)。 原因分析: 在SQLContext上下文不支持开窗函数的,用他来解决TOP-N问题,写的sql...
  • 项目二业务逻辑整理 非常有用

    千次阅读 2018-06-29 20:25:00
    1.项目周期? 答:传智所学项目的业务逻辑不够复杂,模块也不多,所以...答:项目的职位组员或者组长,主要负责开发功能模块,后期配合测试修改bug。 看工作时间与入职的时间,一家公司入职时间少于1年...
  • 敏捷开发中的PO即Product Owner,字面意思产品或业务负责人,即熟悉该产品所有业务相关的逻辑、流程、设置等方面事宜的人员,一般可由产品经理担任,也可由熟悉业务的开发人员担任。如果敏捷团队是在一起办公的...
  • 在开发某个功能时,发现需要修改公共逻辑,害怕影响到其他功能,非常不雅观地拷贝代码,重新写套单独逻辑来支持。 上面的情况都包含了一个关键的问题,无论功能开发还是逻辑重构,如何来保障代码开发的质量。 保障...
  • ASP开发准则是什么

    2021-01-02 10:46:06
    虽然 ASP 确实服务器上运行,而且可能与应用程序服务器同一个空间,但是这不能使它成为业务逻辑的一部分。 随着用户界面工具的发展或者随着启用更多的业务对业务方案,拥有这种明确的区别将获得巨大的回报。 ...
  • 软件应用程序就像冰山一样。用户看到的只是应用程序的一部分——大多数... 我们需要存储和检索数据,需要遵循业务逻辑和规则,并且需要对结果进行预测。所有这一切都发生幕后。  后端开发人员这样的开发人员
  • EJB"分布式运算"指得"负载均衡"提高...J2EE 对于这个问题的处理方法业务逻辑从客户端软件抽取出来,封装一个组件。这个组件运行一个独立的服务器上,客户端软件通过网络调用组件提供的服务以实现业务逻
  • hc用于Go中开发HomeKit附件的轻量级框架。 它抽象为H omeKit一个ccessory P rotocol(HAP),并可以很容易地与工作和。 hc处理HomeKit配件和客户端之间的基础通信。 您可以专注于为附件实现业务逻辑,而不必...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,338
精华内容 935
关键字:

在开发中业务逻辑是什么