网页抽奖转盘源码 编程思维到底是什么?

[更新]
·
·
分类:游戏
3950 阅读

网页抽奖转盘源码

编程思维到底是什么?

编程思维到底是什么?

这两天思考了下,谈下自己看法:
谈编程不可避免的要谈到编程语言,而编程语言之所以出现,其最终的目的仍然是提供一种抽象方法来解决现实中的问题,问题本身的复杂程度往往取决于抽象的种 类和质量。从汇编语言的出现解决了最初的抽象,而类似c或fortran语言出现则可以看做是对汇编语言的进一步抽象。这一步抽象的完成其实是很重要的一 个进步,既我们在解决问题的时候不再需要关系复杂的机器模型或机器码,而是可以更多的关注问题和解决方案本身。
在这个阶段,从编程本身来说最核心的还是算法和数据结构。这也是任何程序最重要的两个基本要素。既把问题域本身涉及到的数据映射到合适的数据结构,把通过程序解决问题的过程映射为具体的算法逻辑。那么编程实际的难点在哪?不是算法本身或数据结构本身,而是当你拿到问题域的时候知道如何理解和分解问题,并将其映射到最适合的算法或数据结构上。这个映射其实本身不是程序解决的问题,还是人脑在思维,程序本身仅仅是在实现自动化的过程。
那么程序在算法实现过程中最基本的是什么?我们看不同的程序片段可以看到的还是if/else,或者for/while,然后才是数据或数据类型定义。而前者即写任何一个程序中最重要的控制逻辑。那么编程里难的实际上不是控制语句本身,而是在把问题域分解后知道如何理解判断逻辑,如何将问题域中重复的东西抽象为循环,如何从问题域中抽象出数据结构。一个人编程能力本身的好坏,或者说编程思维能力,重点其实是体现在这种映射能力,也可以称这种映射能力为数学 建模能力。举个例子来说,如果一个问题你已经知道了可以映射到构建二叉树,然后通过遍历的方式来解决了,那么可以说然后一个掌握了语言语法的人都可以写出 程序来。那么实际编程思维或能力的强弱则在于前面谈到的映射和建模。
面向对象思想和面向对象编程语言的出现,可以说也是编程思维本身的第二次重大提升。既原有的编程语言可以看到我们关注更多的已经是抽象后的解决方案,而面向对象的编程语言则首先关注的是通过对象和类,通过继承,通过接口定义等首先对现实世界进行很好的抽象描述,其次才是如何去解决问题。现实世界中所有的一 切都是对象,而面向对象语言中的类本身就是对现实世界中对象的很好的抽象。
对于面向对象的核心特征谈的比较多的是封装,继承和多态。这些可能比较偏技术词汇,那么再简单点来说面向对象编程思维其核心则是找到问题域中的对象,将其抽象为类,识别类应该有的属性和方法特征,同时去理清类和类之间的关联和交互关系,将问题本身的解决过程映射到类和类之间的方法交互上。如果从这个意义上 来说,好像也不是很复杂,那么实际面向对象编程的难点实际在为了保持代码足够的健壮性,可维护性,可扩展性而做出的各种抽象,包括接口的提取和组合,控制或逻辑类的增加等,这些本质已经转换到技术域类本身。
除了上面谈到的,再谈下其它的一些内容。编程里面有一个重要的思想即是复用,从最简单的函数,到模版库,类库,再到更上层的公共组件等,都在体现复用的思 想,而复用本身的目的则主要是提升开发效率,提升可维护性和代码的可读性等。复用可以理解为编程过程中的编程思想更加恰当。
编程的思想是自动化,不要简单的理解为编程语言能够帮助你解决建模和映射的难题,编程的自动化更多的还是体现在机器可以自动化的进行大量计算和运算,而这个运算是通过我们的程序进行的。程序中体现的一个重点我更喜欢把它理解为循环,从抽象中去发现和发觉一种可自动化的循环,这种循环的处理正是程序的强项。 任何人都应该有这种自动化的编程思维,即懒人思维,重复的事情一定不要自己手工重复完成。

开发一个app有多难?

先说一点,我是前端工程师,所以开发app使用的是H5的东西,不是原生安卓和IOS,当然还有个很火热的Flutter,虽然没完全投入使用。所以我以下说的只针对前端的想开发app的朋友。当然我也刚开发了几个,还有很多经验不足,如果写的有问题希望指正。
其实我做开发刚刚一年多的时间,说实话我感觉如果只是开发市面上已经有的东西,还是相对容易的,现在有很多成熟的框架,有很不错的api借鉴,网上也有很多资源,很多时候都可以查找到。你遇到问题之前没准有很多前辈已经遇到过,多多上官方论坛,跟大家交流学习。我感觉真正困难的东西是你能不能做下去,不是说碰到个问题想都不想就找人问,这样的态度我不推荐。即使你的问题很简单,最后发现原来只是两行代码的事,但是这个结果也源于你之前的不断追问,知识学到了才是自己的。
跟大家简单分享下我的经历。第一个app是用的mui开发物流手持,简单说就是接单完单上传信息,查找历史单等等。公司就我一个前端,做项目之前mui我也才看了一周左右。确实只不过是html页面而已,但是也有很多调用原生的东西。记得那个时候每天都工作到很晚,简单的登录列表显示页面,这些还是好写的。晚上下班之后我就留在公司查阅怎么调用系统摄像头,怎么使用二维码,怎么调用支付收款。也很紧张,自己从零开始做没人带。后来看了官方集成的html5 ,很多都有样例,当然也会结合自己的功能稍作改动。也加入了几个qq群,虽然说有很多扯淡,但是也有很多人在探讨技术。所以资源很多,自己主动去找。后来在开发的时候,开发效率就很快了。
当时有个很麻烦的事是调用地图。我是pc和app同时做的,pc派送,app接单,用的都是高德地图jsapi。但是到手机上就不好使了,我也不知为什么。也找了很多东西,但是打包出来的基本是地图不显示。问了有个人的显示,再细问他呢,他就说我也是刚弄,我的就能出来,人家厉害,我能说什么,自己捅咕呗。我清晰地记得弄了三周,别的布局什么写的也很快,所以经常弄地图了。最后真的是瞎猫碰上死耗子了,我真的不懂为什么是不是跟软件版本还是什么有关系。我没用sdk但是引了百度的地图sdk,jsapi使用的高德的,显示成功。当然很多人会疑问,你们不要纠结这个,重要的是效果一定要出来,我说出来可能很容易,也可能是运气,但是这一些都是建立在前期自己的努力思考,查阅资料。原来是看书明白了稻盛和夫,现在是实践中理解了稻盛和夫先生。
现在我在使用mui团队开发的另一个框架uniapp开发一个简易版的头条。也是文章,专家,订阅,评论等等内容。开始时候自己慢慢看文档,看官方例子,动手去书写,深入了一下flex布局。公用的分装,优化promise请求。当然也遇到很多坑,像软键盘弹出对布局的挤压,这里面没有window,document这些浏览器的对象了。像富文本解析,还要对解析出来的文本字体放大缩小,图片点击,复制粘贴。uniapp基本是基于微信小程序的api 语法,所以自己也去搞去找,上个月忙了整月,现在基本都可以了。不怕走歪路,走多了就知道怎么思考了,怎么解决问题了。
我只是个小开发,仍然在学习,在发现。希望跟大家齐一进步。如果有想了解得东西可以给我留言,我也希望去分享自己的经历。百度网盘也有些教程,有需要的小伙伴可以找我,不需关注。谢谢阅读!