首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我理解的MVP框架

1、MVP框架说明 MVP的通用解释如下: View 对应于Activity,负责View的绘制以及与用户交互; Model 负责处理数据的加载或者存储,比如从网络或本地数据库获取数据等; Presenter...从代码实现的角度,简单的来说MVP的关系,V调用P的方法来实现某个用户具体行为的操作(比方点击某个按钮代表的点赞),并提供接口给P来更新界面;P通过M获取或者提交数据做相关的业务,M可以提供同步或者异步的方法来完成...->        同步数据获取接口                                         可以 异步返回结果    <- M    MVP的作用是显而易见的:代码结构清晰、易维护...2、MVP框架改进 简单通过MVP框架去实现功能后,会发现: V可能给P封装了接口太多,P需要关注很多更新界面的行为 另外一个V通常需要对应一个P来做相应的行为,类的数量无形增多了。...如何改进其实是见仁见智了,对框架的使用,第一步是僵化,也就是照着框架给的方法去实现,第二步则是优化,能够提炼出适合自己或者项目的通用架构来,也就是收获满满了。

17120

昨晚尤大的连麦直播,我学到了很多!!!

这个问题是我在进入直播间以后,弹幕呼声最高的问题了,尤大也对此进行了一番解释 「尤大」: 我觉得没有那么大的必要非说要去看源码,主要还是要看你去看源码是为了什么,是学习框架的思想吗?...其实很多前端程序员在公司做的都是偏业务层面的,根本接触不太到很深层次的,看源码为了提升竞争力可以说是很真实了,但抛去这点,看源码还是奔着几个比较关键的点去比较好:第一,想要学习框架的思想或者你也想自己造框架...当然对于一个框架或者技术,你可以说在理论层面做的非常好,但是真正将这个技术落地了以后,都会遇到很多问题的,所以面对真实的业务场景,对于技术是要做一些取舍的,而不是说xxx技术就是最好的 尤大,很多黑子对你会有影响吗...「尤大」: 首先我觉得犀牛书还是很不错的,比较适合需要进一步提升自己的人看;红宝书…(对不起,这里当时直播间卡了,啥也没听到,不过我个人觉得红宝书还是非常不错的,知识比较系统,对新人也比较友好);再推荐一本我觉得非常不错的书...所以我觉得尤大刚开始说的一句话非常得对——「做开源还是需要一些机遇的」 总结 本文没有将直播中所有的答疑都列举出来,原谅我的脑子只记得那么多了。

2.5K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我发现我的数据被操纵了……

    限制数据滥用并且努力解决偏见数据和问题数据,正成为解决科技对社会基石产生影响的重要条件。 简而言之,我认为大家应该重新考虑,安全、公平到底意味着什么。...忽略了这些数据从一开始就不具有代表性这一个重要的点,绝大多数用着这些API工程师都相信他们可以清洁抓到的数据、并去除所有的问题内容。我向你保证,没门儿。...乐观的看,作为应急措施,很多研究人员都将在机器学习系统的高级研发中融入了对抗思维。 以生成性对抗网络(GANs)为例。...我们需要构建分析方法,评估我们使用的数据集中的偏见。我们还需要开发相应的工具来监督系统的运转情况,这方面需要的精力毫不逊于模型最初的搭建阶段。...我的同事Matt Goerzen认为除此之外,我们还需要有策略地邀请白帽子中的牛人介入到我们的系统之中,帮助我们查漏补缺。 技术行业已经不再是一群极客的狂欢,不再仅仅是想要做点不一样的事情那么简单。

    55830

    看了很多负采样的论文,最后我选择不采样了。

    在之前的许多工作当中,有两个重要的问题还没有非充分考虑, 很多神经网络为了提升模型的训练效率,采用负采样,但是这么做会出现模型训练不稳定,对于采样的分布以及采样的比例较为敏感。...广义上,heterogeneous collaborative filtering有一个目标需要优化,我们将其表示为, 而Heterogeneous CF就是为了估计的概率,商品会以分数下降的顺序进行排序...模型一览 模型整体框架如下: ? 用户和商品会先被投影为一个dense向量表示,user-item的对,我们使用用户以及他对应的商品交互作为输入,此外,这边我们不进行采样,使用一种高效的优化方法。...讨论 在第个行为的batch更新的时间复杂度为:, 其中表示该batch中用户和商品在的行为下的正向交互次数。在MTL更新类行为时,我一个batch需要耗费。...对于原始的回归损失,会需要耗费次, 在实践中,因为 以及 ,本文的模型复杂度得到了大大的降低。 实验 1. 效果比较 ?

    2.1K10

    为什么我要写自己的框架?

    很多技术的过来人都不约而同的说:用别人已经造好的轮子呗,你看,多省力,在很久以前我也是他们的一员,也喜欢使用大量的框架(js有jQuery、Express、socket.io.js等;PHP有phpword...但当有一天在讲授开发经验的时候,当我当着大家的面真的静下心来写我需要展示的一个类的时候,以前用了这么多的框架,我发现在这么多人面前的我已经几乎写不出来一个正确的类了!!...我很兴奋,因为我终于开始创造点东西出来了,虽然他很基本,连接了数据库,封装了几个方法,但是我觉得这距离大师又近了那么一丢丢,每天都是一丢丢,那我还得了哈哈!...真正的顿悟是在最近一次打开Yii框架源码,看到了autoload之后顿悟:其实可以根据需求自动加载文件,很多问题也就解决了,当然,这篇文章也就列举这一个问题,其实我碰到的问题不止这些,很多以前理解错误的地方也随着编写这个框架变的正确了...如果是在公司,肯定有大量的业务和需求需要实现,那就直接拿来用,如果你是学生,那你很幸运,你有大量的时间学习,那就从现在开始动起你的键盘开始编写吧!

    1.3K20

    我认为前端的职责可能需要重新划分

    仅使用一些公有云服务(如 Firebas 或 CloudKit)提供的动态协同数据,就可以创建出功能完备的客户端应用程序。我们不需要维护任何服务器,就可以实现身份验证。...当然,总还是需要更为底层的服务器端专家的,至少还需要他们来创建那些云服务。但是,Web 项目中 90% 的工作可能将在客户端完成。这将意味着,“前端”的新职责和挑战将越来越多。...我们都知道,如果你考虑成为所有这些领域的专家,并能够创建一个实现相当不错的 Web 应用程序,会面临许许多多的挑战。 这个领域也是当前流行的 Web 框架所针对的领域。...将部分数据存储在本地,使 App 可以离线运行,并能稍后通过服务同步。 我想,当我们像这样列出任务时,任务类型的划分就非常清楚了。...今日好文推荐 传美的被勒索千万美元,连夜天价聘请安全专家;软银抵押一半阿里股票,孙正义:“为过去贪图暴利而感到羞愧”;谷歌数据中心爆炸 | Q 资讯 我的开源代码被大公司盗用后:有人承认,有人让我滚 从

    80610

    CEO 实话实说:我需要这样的 CTO

    文章原创首发于微信公众号「 TGO 鲲鹏会」,原文地址:CEO 实话实说:我需要这样的 CTO 我们邀请了四位 CEO 现身说法,阐述他们需要一个什么样的 CTO 。...我一直比较强调需求的预见能力,是因为很多技术人员不太能够理解这件事情对其能力提升的重要性。...2014 年是七牛业务多元化的开始,到今天我们发展出了以存储为核心、覆盖从连接到智能的多元化场景的数据管理平台。...今天我们的业务覆盖了存储、网络加速、多媒体处理、机器视觉、AI / 大数据、容器等多个领域,这对组织结构提出了新的挑战。...我认为,经验是视野的基础,但视野还需要更开阔的想象力。 第二,因为这个时代技术迭代非常快,对技术的创新要求也特别快,所以 CTO 要具备很强的学习能力。

    94600

    入数据科学大坑,我需要什么样的数学水平?

    所以,本文作者阐释了数据科学和机器学习为何离不开数学,并提供了统计学与概率论、多变量微积分、线性代数以及优化方法四个数学分支中需要熟悉的一些数学概念。...数据科学和机器学习离不开数学 如果你是一个数据科学爱好者,则大概会产生以下两个疑问: 我几乎没有数学背景,那么能成为数据科学家吗? 哪些基本的数学技能在数据科学中非常重要呢?...我们都知道,数据科学离不开各式各样的扩展包。并且,现在有很多性能强大的包可以用来构建预测模型或者用来生成可视化数据。...但与此同时,要优化模型进而生成性能最佳的可靠模型,拥有强大的数学背景也是很有必要的。 也就是说,构建模型只是一方面,另一方面还需要对模型进行解释,得出有意义的结论,这样才能更好地做出数据驱动的决策。...以下是你需要熟悉的优化数学概念: 损失函数 / 目标函数、似然函数、误差函数、梯度下降算法及其变体。 总之,作为一个数据科学的推崇者,应该时刻谨记,理论基础对构建有效可靠的模型至关重要。

    72120

    谁动了我的数据?

    虽然MongoDB的开发团队在下一个版本里修复了这个问题,但仍然有数量众多的数据库管理者没来得及更新。 这次勒索事件的一个显著后果就是世界范围内存储在MongoDB数据库里数据量的大幅下滑。...数据日益成为企业的一项核心竞争力,是可以获利的商业资源。那么从企业的角度看,如何保护数据资产呢? 最近的一份数据泄露报告显示,95%的数据泄露事件其动机均为获取物质利益或商业间谍行为。...具体的措施如下: 第一步:数据分类 如分成“公开”、“内部”、“秘密”和“绝密”等类别。数据分类常常被弃用是因为,需要手工维护数据不断变化的类别状态。...除此以外,可以在个人信息泄露并造成损害的情况下通过法律进行维权。在这方面,经管司法制度和相关的法律体系还不完善,但政府已经在积极推进个人信息保护的法律框架建设。...总结 大数据时代,各方都有责任和义务推动数据生态的繁荣,积极建立数据使用规则,共同构建数据和信息资产保护的法律框架,否则,就将是现代社会的一场悲剧。 END

    921110

    聊聊我对现代前端框架的认知

    最近看到一篇国外的文章,说现代JS框架存在的根本原因是保持UI与状态同步、这其实与我这篇文章的思想是一致的,同时也认证了我对现代前端框架的认知是正确的。...其实之所以现在我们需要选择框架,本质上是因为我们面临的需求变了。...大家肯定都明白如果我们只写一个纯展示信息的页面,没有任何交互功能的页面,其实即便是现在,我们也是不需要选择框架的,我们只需要写几行CSS和HTML就可以完成任务。...我写的小功能块用这种方式没问题,因为功能涉及到的DOM标签少,状态变的时候,几乎就是我这个功能块的所有标签都需要变,所以即便是用innerHTML也不会有太大的性能浪费,是在可接受范围内的。...最后 最后我想说的话是,现在的前端我个人感觉有点浮躁,很多人都在追新,每天关注一些今天出了一个新特性,明天出了一个新框架什么的,对于这些我是赞成的,但是我更希望在追新的同时,要看到它的本质。

    76420

    #PY小贴士# 我的git仓库为什么每次提交都有很多改动?

    今天说一个 git 使用时的细节:.gitignore 我们在使用 git 管理代码时,如果默认把项目里的所有文件都 add 进去,加入到仓库中,会有几方面问题: 不必要的文件被加入,导致仓库很大...其实就一个原则:git 只用来上传代码,其他的都不应该加到仓库里 应当忽略的文件包括: 系统生成的临时文件 编译产生的结果文件(比如 .pyc) 用户数据(这个尤其不能加仓库里) 个人开发环境相关的配置文件...比如你开发app或者游戏,里面各种高清图片资源,然后还经常变动,那就不适合放代码仓库里 对于不需要纳入仓库管理的文件,应将其写进 .gitignore 文件而忽略。...x.pyc # 忽略根目录下 TMP 文件夹中的文件 /TMP # 忽略所有名为 build 文件夹中的文件 build/ # 忽略名为 doc 文件夹里的 .txt 结尾的文件(不包含子目录)...doc/*.txt # 忽略名为 doc 文件夹里的 .pdf 结尾的文件(包含子目录) doc/**/*.pdf 另外,Github 也提供了很多不同语言/项目适用的 .gitignore 文件模板供使用

    64910

    我的图片四级缓存框架

    至于主流的三方图片框架,就不得不说老牌的ImageLoader、如今更流行的Glide、Picasso和Fresco。但三方的框架本文不会过多介绍。...Glide等框架,毕竟是大神及团队花费很大精力开发和维护的开源框架,他们的设计思路、性能优化、代码规范等等很值得我们学习,之前一段时间也研究过Glide的源码(不得不由衷佩服)。...今天,将自己对于图片加载的思路想法,也借鉴了开源框架的一些好的点,封装了一个图片加载框架——JsLoader。...在遍历的时候会比HashMap慢,不过有种情况例外,当HashMap容量很大,实际数据较少时,遍历起来可能会比 LinkedHashMap慢,因为LinkedHashMap的遍历速度只和实际数据有关,和容量无关...提供集中压缩方式: 根据期望大小压缩 根据期望尺寸压缩 根据当前手机的默认屏幕分辨率进行图片的压缩 这里就不再贴代码了,可以去我的github中查看。

    82530

    我的程序员之路03:我和大数据

    后来在很多地方也遇到询问大数据的问题,所以趁着空闲之余记录一下这些年的大数据时光。 概念 什么是大数据 我理解的大数据就是利用一些技术手段来处理海量数据并实现其价值。...Hadoop 大部分人都知道Hadoop,Hadoop作为最基本大数据框架,占据着核心的位置。...我在大数据实习的第一份工作就是大数据分析,目前很多实习生来了也都是安排数据分析工作。因为这一块工作偏向于业务,对技术水平要求不是很严格,入手比较简单。...以上就是我个人对大数据各个岗位的实践理解,同时也是对从事大数据需要不需要学习Java这个问题做出了回答。 我和大数据 17年的那个夏天,经历一番波折之后,开始了大数据的实习生活。...因为需要监控一些应用,我写下了人生中的第一个Shell脚本。后来因为会Java,也以运维的身份参与了一些开发工作,同时也自学Spark、Kafka等大数据开发技术。

    38920

    我的程序员之路03:我和大数据

    后来在很多地方也遇到询问大数据的问题,所以趁着空闲之余记录一下这些年的大数据时光。 概念 什么是大数据 我理解的大数据就是利用一些技术手段来处理海量数据并实现其价值。...Hadoop 大部分人都知道Hadoop,Hadoop作为最基本大数据框架,占据着核心的位置。...我在大数据实习的第一份工作就是大数据分析,目前很多实习生来了也都是安排数据分析工作。因为这一块工作偏向于业务,对技术水平要求不是很严格,入手比较简单。...以上就是我个人对大数据各个岗位的实践理解,同时也是对「从事大数据需要不需要学习Java」这个问题做出了回答。 我和大数据 17年的那个夏天,经历一番波折之后,开始了大数据的实习生活。...因为需要监控一些应用,我写下了人生中的第一个Shell脚本。后来因为会Java,也以运维的身份参与了一些开发工作,同时也自学Spark、Kafka等大数据开发技术。

    29211

    【第16题】一道不简单的好题,让我精进了很多很多 格雷码

    【第16题】一道好题,让我精进了很多很多[CSP-S2019] 格雷码 下阶段需要精进 减少数据或空间被爆问题在此发生 测试数据(样例、大数据量、边界数据)等自测 OI真理:模拟猜题意, 骗分过样例。...一道好题 本题难度:普及-,看似简单,实则让我深入学会了很多知识。...当开了long long还见祖宗时,就开unsigned long long 完爆空间 对位运算深入实践 测试数据 详细看下面题解的各种做法。...,但是由于k的数据量相当毒瘤所以空间百分百爆了 不开unsigned long long所以卡了5分 题解1:完爆空间(65分做法) 代码 #include using...ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); } 题解2:完爆空间(70分做法) 和题解1的区别继续卡数据范围

    30410

    这些 ECMAScript 模块知识,都是我需要知道的

    上已经收录,文章的已分类,也整理了很多我的文档,和教程资料。 ES 模块是什么?...多年来,人们对这方面的规范进行了很多尝试,导致现在有多种模块化的方式。 你可能听说过AMD模块,UMD,或CommonJS,这些没有孰优孰劣。...ECMAScript模块要想在任何JavaScript环境通用,可能还需要很长的路要走,但方向是正确的。 ES 模块是什么样的 ES 模块是一个简单的文件,我们可以在其中声明一个或多个导出。...要使用模块,需要在 script 标签上添加属性 type, 对应值 为 module。...动态导入JSON文件 假设我们项目有一个 person.json 文件,内容如下: { "name": "Jules", "age": 43 } 现在,我们需要动态导入该文件以响应某些用户交互。

    51120
    领券