手机计算器怎么算角度数
计算器是我们熟知的一个工具,基本上它是以单机的形式存在的,但它的每一次更新都基本在重绘 UI 界面,把所有代码放在一起,处理维护很麻烦。有没有办法将界面代码和后台代码分开?本文就计算器的处理逻辑,探讨前后端分离,一起来看看吧。
![](https://p0.ssl.img.360kuai.com/t0103992b7eb8c094c2.jpg)
作为一名刚入门的产品经理,在熟练掌握了画原型、写文档、绘制流程图等技能后,信心满满地踏入职场,结果在开始参与项目时就遇到了职场生涯的第一个槛,就是发现有一堆岗位的人需要跟自己协作,而自己却完全弄不清楚他们到底是干什么的,在项目中究竟扮演什么样的角色,其中最为头疼的,就是明明都是开发,怎么还分了前端和后端。
计算器,无论是手机上、电脑上还是日常生活中都能见到,所以相信以此来举例,应该能够让你更加容易理解,本文就从计算器说起,谈一谈产品经理应该搞清楚的前后端分离。
这是我们经常见到的计算器的样子,基本上它都是以单机的形式存在,也就是说,它在没有网络的情况下,也可以正常使用。
![](https://p0.ssl.img.360kuai.com/t018ef0c228d58c413f.jpg)
这种形式像极了开发模式最初的样子,所有代码都在一个项目里,开发既要写界面和交互,又要写处理逻辑,那时候还没有前端和后端的叫法。
后来做着做着,大家就发觉,计算器的处理逻辑就那样子,除非数学不存在了,否则几乎是永恒不变的,每一次更新,基本都是在重绘 UI 界面(软件升级,以换 UI 为本),但是所有代码放在一起,每次维护起来都很麻烦。
于是大家就想着,能不能把界面代码和后台代码分开,互不干扰,界面负责接收和显示数据,后台负责处理逻辑。
问题是,代码分开了,相互之间怎么通信?API 让这个逻辑成为可能,按照新的逻辑,产品的架构变成了这样:
![](https://p0.ssl.img.360kuai.com/t010c8623b6c20cf5f2.jpg)
从此,软件开发有了前后端的概念,前端只负责写界面和交互,后端只负责写处理逻辑,两者通过 API 接口进行通信。
比如在计算器这个项目中,前端只需要负责把计算器的界面画出来,并实现相应的交互,比如用户可以点击按键输入数字,符号,可以删除和清空输入,当用户输入完成按下“=”之后,前端就不管计算了,而是直接通过 API 接口将用户输入的内容传给后端,前端不用理会后端怎么计算,只知道过一会后端会把计算结果传回来,到时候前端只需要把结果显示给用户就可以了。
而后端,只管对前端传过来的内容进行计算,然后把计算结果通过 API 接口传回给前端就可以了,至于前端怎么显示给用户,后端也无需理会。
按照以上逻辑,当用户通过计算器计算“1+1”的整个处理过程是这样的:
![](https://p0.ssl.img.360kuai.com/t019f4b083b4dc7a37e.jpg)
前后端分离之后,会遇到一个新问题,就是谁来做验证。比如“0不能做除数”,当用户输入了以0作为除数的公式时,究竟是前端来做验证还是后端来做验证。其基本原则是:前端能做验证尽量做验证,后端一定要做验证。
之所以要求后端一定要做验证,是因为后端主要负责逻辑的处理,如果没有对数据进行验证,则处理过程可能出错,或者处理后输出的结果是不符合预期的。
而要求前端尽量做验证,是因为在前端能够发现数据有问题,验证不通过的情况下,可以不调用 API 接口,避免将错误的数据传输给后台,由于每次调用 API 都要消耗网络资源,前端校验可以有效减少错误的请求次数,避免资源的浪费。
前后端的分离,除了有更好维护的优势以外,还有另外一个好处,就是能够避免“重复造轮子”。
这是开发界广为流传的一句话,说的是在不同的产品中重复写一些相同的功能代码。比如现在有几个手机厂商,每个手机厂商都来找你开发一个计算器的 APP,每个厂商的计算器除了 UI 界面不一样,功能都是一样的。
刚刚说过,除非数学不存在了,否则计算器的计算逻辑是不会变的,无论你用哪个计算器,“1+1”的计算结果都是等于“2”。但在上面提到的这种情况下,你除了得为每一个厂商开发不同的前端界面,还要给每个应用写相同的计算代码,这就是所谓的“重复造轮子”,明明是相同的功能,为什么要一遍又一遍重复地写。
但如果我们用前后端分离的设计模式,我们可以先为每个厂商设计好计算器的前端界面,接着将计算逻辑的代码放到服务器上,然后让每个计算器将需要计算的内容发到这台服务器上,服务器再返回计算结果,整个架构就变成这样:
![](https://p0.ssl.img.360kuai.com/t017db74658ae26aa76.jpg)
这样的好处是,相同的代码只需要写一套,同时,维护也更加方便,如果出现了 bug 需要修复,比如原本“0不能做除数”的错误提示文案写成了“0不能做被除数”,只需要更新服务端的代码,几个计算器收到的提示内容就会同步更新成正确的文案。
这个时候你肯定会想到另外一个问题,就是这种设计模式在现实中是行不通的,手机厂商不会同意与其他的厂商共用代码,而且将计算器的计算处理放在云端,一旦服务器出问题,计算器就“挂了”。
这个时候,又出现了另外一种解决方案,叫做 SDK。按以上的例子来理解,就是将服务器上用于处理计算器计算逻辑的代码打成一个包,这个包就叫 SDK 包,然后把这个包发给每个厂商,每个厂商再将 SDK 包集成到自己的计算器应用里,集成的逻辑是这样的:
![](https://p0.ssl.img.360kuai.com/t0196306951f9970d66.jpg)
而从每个计算器运作的角度来看,计算器应用和 SDK 包之间还是通过 API 来调用,但是无需经过网络,在本地就能完成计算的处理,其逻辑是这样的:
![](https://p0.ssl.img.360kuai.com/t01c26a6649a86aea0c.jpg)
可以看到,虽然所有计算器用的是同一套计算逻辑,但是都在自己内部独立处理,互不干扰。你会发现,折腾了一番,这个计算器又回到我们最开始看到的那个样子,单机运行,无需联网。
这是 SDK 的优势,下一次更新,只需要将最新的功能代码重新打包,发给厂商更新即可。不过,这也暴露出 SDK 的缺点,就是如果厂商未能及时集成最新版的 SDK 包,则用户无法体验到最新的功能,比如基于安卓的不同国产手机操作系统,安卓底层不一样就是这个道理,因为如果 SDK 实现的功能比较多,那么集成 SDK 是一项非常大的工程,而且每次集成新的 SDK 都需要进行完整的测试,防止出现兼容性问题。
以上便是本文的全部内容,希望对你搞清楚前后端的具体工作有参考价值。
作者注:
软件开发模式中的前后端分离本身是一门比较复杂的学问,本文用了一种非技术出身的产品经理比较好理解的形式介绍了前后端分离的基本概念,如果各位有兴趣进一步探究,可以在网上搜索“MVC 软件开发模式”深入学习。
关于文中提到的 API 接口文档知识,有兴趣可参阅《新手产品经理必学技术接口文档知识》
专栏作家
产品锦李,公众号:产品锦李(ID:IMPM996),人人都是产品经理专栏作家。不务正业的产品经理和他的产品设计。
本文原创发布于人人都是产品经理,未经许可,禁止转载。
题图来自Unsplash,基于CC0协议。
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
","gnid":"9163ea3f8e6ce6701","img_data":[{"flag":2,"img":[{"desc":"","height":"420","title":"","url":"https://p0.ssl.img.360kuai.com/t0103992b7eb8c094c2.jpg","width":"900"},{"desc":"","height":"264","title":"","url":"https://p0.ssl.img.360kuai.com/t018ef0c228d58c413f.jpg","width":"212"},{"desc":"","height":"486","title":"","url":"https://p0.ssl.img.360kuai.com/t010c8623b6c20cf5f2.jpg","width":"1080"},{"desc":"","height":"1222","title":"","url":"https://p0.ssl.img.360kuai.com/t019f4b083b4dc7a37e.jpg","width":"1080"},{"desc":"","height":"684","title":"","url":"https://p0.ssl.img.360kuai.com/t017db74658ae26aa76.jpg","width":"1080"},{"desc":"","height":"792","title":"","url":"https://p0.ssl.img.360kuai.com/t0196306951f9970d66.jpg","width":"1080"},{"desc":"","height":"549","title":"","url":"https://p0.ssl.img.360kuai.com/t01c26a6649a86aea0c.jpg","width":"1080"}]}],"original":0,"pat":"art_src_3,fts0,sts0","powerby":"pika","pub_time":1697773020000,"pure":"","rawurl":"http://zm.news.so.com/d42cc7b7118467aff3ea749307d64201","redirect":0,"rptid":"93653c351790ff28","rss_ext":[],"s":"t","src":"人人都是产品经理","tag":[],"title":"从计算器说起,谈一谈产品经理应该搞清楚的前后端分离
咎垄骆1741请问用手机计算器计算sin30度怎么使用? -
沃洪物17198674830 ______ 手机里输入sin30,30不是度数,而是弧度数,你试一下sin六分之π,出来的就是二分之一了
咎垄骆1741手机计算器如何计算三角函数 -
沃洪物17198674830 ______ 关于手机计算器有两种,一般下载的计算器是用角度计算的都好用,手机自带如三星的是按角度算的,直接计算就可以如sin30度=结果.我用过平果、小米、还有一些其它品牌是按弧度算的,所以计算时要先算出正确的弧度. 按弧度算计算方法是: 科学计算器上都有一个π(π=3.14...)这个符号.: 1、先转换角度30=180/30=6(这是弧度) 2、sin(π÷6)也就是:sin(π÷6)=0.5 3、算一些特殊的角度可以这么算比如sin31度的等于 sin(π÷(180÷31))=0.51503807
咎垄骆1741科学计算器上怎么输入角度值,度分秒制,求正弦加减等 -
沃洪物17198674830 ______ 科学计算器键盘一般不能直接输入度或分或秒,这是因为它内部使用的是弧度制, 所以在计算之前,需要将度分秒转化为对应的弧度,再进行计算. 为计算的更加方便,可以下载功能强大的科学计算器. 下面举个计算例子:要计算18度16分28...
咎垄骆1741怎么用计算器算角度 -
沃洪物17198674830 ______[答案] 你说的是已知某个三角函数值再求角度吧? 上面是科学计算器,按【SHIFT】【sin】,就是arcsin1/2=30°了. 再说一种:是电脑上的方法, 请按以下叙述操作: 【开始】【运行】【calc】【回车】【查看】【科学型】 之后输入0.5,再按左边的【...
咎垄骆1741vivox6机算计如何算角度 -
沃洪物17198674830 ______ 您可以使用科学计算机计算角度的,首先您需要上滑快捷栏,关闭“竖屏锁定”,然后打开计算器,再横持手机即可自动切换为科学计算器.
咎垄骆1741手机科学计算器怎么计算三角函数
沃洪物17198674830 ______ 1、打开手机,进入主界面,在手机桌面上找到系统工具图标,点击打开.2、找到计算器图标,点击打开,就进入到计算器的页面.3、点击上方的“计算”,这是普通的计算器,再点击左下角的两个四边形,就进入到科学计算器的界面.4、这个时候我们在计算机的上面就可以看到一些三角函数,比如,sin,cos等等.5、在上方的空白位置,输入自己想要计算的三角函数,比如输入sin90.还可以输入更加复杂一些的三角函数.6、点击右下角的“=”,答案就会出来了,非常简单!
咎垄骆1741智能手机的计算器中的直角三角函数的计算怎么操作 -
沃洪物17198674830 ______ 用sin(或cos、tan)(所求度数÷180π)就行了,如:求sin30的值,输入sin(30°÷180π)就行了
咎垄骆1741怎么用小米手机的自带计算器算三角函数!详细步骤 -
沃洪物17198674830 ______ 可以把计算机的模式改为科学型,点击标准型那个有个开关把它关闭就是科学型.
咎垄骆1741计算器上角度的三角函数怎么算 -
沃洪物17198674830 ______ 关于手机计算器有两种,一般下载的计算器都好用,但是手机自带如三星的是按角度算的,这个不会出现这样的问题.我用过平果、小米、还有一些其它品牌是按弧度算的,所以计算时要先给出正确的弧度.计算方法是:先找出科学计算器上都有一个π(π=3.14...)这个符号.:1、先转换角度30=180/30=62、sin(π÷6)也就是:sin(π÷6)=0.53、算一些特殊的角度可以这么算如31度的.sin(π÷(180÷31))=0.51503807
咎垄骆1741计算器上的tan角度算法用在智能手机上,怎么算不出来?例如:计算器上:tan 30=0.57735 而智能手机计算器:tan 30= - 6.4053了. -
沃洪物17198674830 ______[答案] 计算器上设置和手机上的设置不同,tan 30=0.57735是度数,-6.405331197是弧度啦.