[总结]我对移动端适配的了解 不知不觉做前端已经两年了,从PC端,移动端,微信小程序一路走来到今天刚刚开放注册的快应用(手机厂商对抗小程序的新技能,所以在注册时用的是qq邮箱的话要去垃圾箱里才能找到注册邮件...but,我们要对于市面上的手机各式各样的分辨率进行适配,刚接触移动端开发的时候是不是有点猝不及防哈哈,尤其是去年年中以前老版本的微信内置浏览器用的X5内核,给网友们戏称移动端IE… ?...今天的主题是讲的是我对移动端多终端适配的解决方案和移动端适配的有关布局的知识总结,下面正式开始。...而电脑端页面宽度较大,移动端宽度有限,要想看到整个网页,会有很长的滚动条,看起来非常麻烦。...**方案一:固定高度,使其宽度自适应**这也是我接触移动端适配第一次使用的方案。这个方案使用了理想视口,使得布局视口等于设备宽度。
3、有的同学会抄写一部分我在讲课中的js代码,但却没有运行;我是怎么发现的呢?是因为有一些代码我一眼就看出来运行的时候一定会报错,但却在作业里发给我了。那么很明显,这个作业写完之后并没有运行。 ?...-- --> 我承认,我个人主观上有一些代码强迫症,就是等号要尽可能纵向对齐,函数、方法、对象的缩进必须一致。同时我也相信搞定代码格式干净整齐,是成为前端开发工程师的必备条件之一。...因为代码这个东西,它是秩序的,你这分号、空格不致,就导致秩序当中有杂音,导致代码看起来,不艺术。...以后你面试也好,工作也罢,人家一看你的代码,就知道,虽然你是前端新人,但是看你写的代码,很规矩,很整齐,就知道你做事应该是靠谱的。 而另有一些人,他是完全靠自己的自学搞定前端开发的,这个没问题。...说的直白一点,就是你确实是学会了,但是,毕竟你是自学的。我不是说自学不好,没有这个意思,因为我也是自学的。但是,如果你写的不太规范的话,人家就说,“这tm野路子出来的”。 -- 这话就这么来的。
“为什么” 是最常见的问题类之一了。和“是不是”(判断、评价) “是什么”(识别、分类) “什么是”(举例、搜寻)等类问题相比,对这种 “求解释” 问题的回答所涉及到的推理过程更为复杂。...各位读者如果检点当前的舆情热点则不难发现,不论是对历史事件还是现实现象,貌似有理的解释俯拾皆是,但显然不能同时都被接受,而有些更是匪夷所思到令你佩服人们的想象力。此处还有逻辑可言吗?...根据类似的思路,我甚至可以坚持认为只有我本人是真实存在的,而世界(包括所有其他人)都不过是一个模拟环境中的幻象而已。...据说拉普拉斯在回答拿破仑为什么他的书中不提上帝的质问时回答 “陛下,我不需要那个假设”,也是这种立场。还原论的问题也和这一点有关。...关于原因认定的另一重复杂性在于, “原因” 的概念在不同领域中的精确含义是有差别的。儿童心理学的研究表明,因果知识缘起于婴儿对自身行为后果的认识,因此 “因” 总是 “我的行为”。
本文是我在日常读代码中积累的一点心得,分享出来,希望能与大家产生共鸣。 1. 寻找一位好老师 优秀的项目就像一位好老师,我们可以从它身上全方位地学到各种领域知识。...因为入口代码的工作一般是先对各种模块进行初始化,然后调起主线程或者启动主服务,这种明确顺序的简单工作让我们不会一开始就遇到困难,循序渐进的过程更容易让大脑产生奖励。...想一想,为什么要这么设计,好处在哪里? 当我们能用图表和文字来表达出软件的完整设计后,我们对代码的理解已经比较透彻,甚至,让我们自己来照着写一个新的也不是不可能了。...这个时候,就应该进一步的思考,如果是我自己来解决问题,我会怎么做?我能比原作者做得更好吗(通常不能)?...结语 本文是我日常读代码的一点经验,总结下来,就是要 仔细地选择学习的项目; 先通过文档了解全景,再逐步深入代码; 找对抽象和边界,能帮助我们建立思考模型; 写篇文章讲述代码的设计,是深入理解代码的好办法
我们再来看一下正确的冒泡算法代码是怎样的: for i = 1 to n dofor j = i + 1 to n doif A[i] > A[j] thenswap A[i] and A[j]...然而我要告诉你一个不可思议的事实,其实第一串代码是对的,而且可以严格证明。 那么它是如何实现正确排序的? 为何能歪打正着 仔细一想,其实很容易理解。...从代码上来看,它很像冒泡算法,但从证明过程中可以看出,这实际上是一种插入算法。 △插入算法 算法复杂度 显然,该算法总会进行n²次比较,接下来计算算法的交换次数。...有位网友扫了一眼论文就以为这个算法和自己10年前提出的一样。 留言网友的算法: 乍一看两种算法的代码确实很像,原理上的确有些相似。 都是看起来像冒泡排序,但其实更贴近选择排序。...两种算法相比,网友此前提出的更容易被理解为什么可以运行。 当然也有歪楼的,有人就调侃自己刚学编程时写过这个算法。 我百分百确定,在我刚开始学编程、并想要找到最短的排序方法时就写过它。
首先标号为 ① 的地方,是往 list 里面塞了 10 个 callable 类型的任务。 搞这么多任务干啥呢? 肯定是要往线程池里面扔,对吧。...我也看不出来,因为它根本就没有任何毛病,程序可以正常运行结束: 接着,我把程序修改为这样,新增标号为 ③ 的这几行代码: 这里调用的是线程池的 shutdown 方法,目的是想等线程池把任务处理完成后...好吧,shutdownNow 方法是有返回值的,我之前居然没有注意到这个细节: 但是你仔细看这个返回值,是个 list 里面装的 Runnable,它不是 Future,我就不能调用 future.cancel...因为提问者也有这样的疑问: 他在看到巨佬们说要对返回值做操作之后,一脸懵逼的回复说:哥老倌些,shutdownNow 方法返回的是一个List。至少对我来说,我不知道应该这么去取消这些任务。...就算我们不知道为什么程序没有停下来,但是从表现上看,这玩意肯定是 bug 了吧? 接下来我带你分析一下为什么会出现这个现象。 首先我问你在我们的案例里面,这个线程池最多能容纳几个任务?
如果大家发现网上有抄袭本文章的,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~ 本文是“为什么我建议”系列第二篇,本系列中会针对一些在高并发场景下,我对于组内后台开发的一些开发建议以及开发规范的要求进行说明和分析解读...往期回顾: 为什么我建议在复杂但是性能关键的表上所有查询都加上 force index 在业务一开始上线的时候,我们线上日志级别是 INFO,并且在日志内容中输出了代码位置,格式例如: 2022-03...会到那两个原生方法,其实这里的代码是在做一件事,就是日志中要输出调用打印日志方法的代码位置,包括类名,方法名,方法行数这些。...模拟两种方式获取调用打印日志方法的代码位置,与不获取代码位置会有多大性能差异 以下代码我参考的 Log4j2 官方代码的单元测试,首先是模拟某一调用深度的堆栈代码: 然后,编写测试代码,对比纯执行这个代码...由此,我建议:对于微服务环境,尤其是响应式微服务环境,堆栈深度非常深,如果会输出大量的日志的话,这个日志是不能带有代码位置的,否则会造成严重的性能衰减。
但这是目前最好的,我很乐观。由于不需要花一周的时间去研究深奥的IE错误,数千(或数百万)的开发者时间将被累计节省。 下面是一个例子,说明这种排列组合如何使所有的 web 开发者受益。...JavaScript(即可以在客户端和服务器上运行的代码)一直是许多 Web 开发人员的理想状态。...我对服务器上的 JavaScript(和 TypeScript)感到乐观。这不仅仅是 fetch。...在这种情况下,我将使用 Vercel Edge Function。但也可以是其他边缘计算平台,如 Cloudflare 或 Deno。对我来说,这段代码最好的部分实际上是它相当无聊。...它看起来像 Node.js。
为什么要解释这么多顾问相关内容的含义,因为做SAP这个行业,顾问经常挂在嘴边,而很多人却不知道顾问是什么意思。...也有很多人问过我,虽然没有那么多经验,解读的也可能过于表面,希望看到的读者朋友可以讨论,共同成长。...在讲述了上述项目实施的几个阶段之后,读者朋友是否对自身的情况有所定位。ERP的实施过程不是一个简单的功能设计,更不是一个简单的需求分析。有兴趣的朋友可以找一些项目管理或者项目实施的书籍来看一下。...并不是进入某一个行业就一定就代表是高薪,如果是奔着这个目的来的,我觉得可以考虑房产行业,至少还有余温,还有人工智能,大数据分析等行业,炙手可热。...我给个建议,容易不容易,关键看你是否感兴趣,加上一点是要结合市场需求,就像现在你去找一个BW岗位,好像并没有那么多需求。
我是如何从Web开发转向移动开发的? 我的职业开发生涯是作为一个Web开发人员开始的,使用的是PHP。不久后,我切换到.NET生态系统,使用C#和ASP .NET MVC框架来继续搞web开发。...我之所以写这篇文章是想分享一下我做了这个改变之后的感受。 ? 为什么下这个决定 你可能会问,为什么我会决定从Web开发转向移动开发。...但是,新的移动设备来了,如智能手表,它们是开发人员崭新的机遇。这是一个学习如何为移动设备创建应用程序的很好契机。...不像网站中的应用程序有特定的生命周期,你不能只是用响应来回复请求。几乎所有我从构建Web应用程序中学到的东西都不能帮助我——范式是全新的。...…… 有时候,我一整天都没有办法产出任何东西,说实话,那个时候我会觉得自己真没用,是个欺世盗名之徒——既然我不能在工作上生产出任何有价值的东西,那么怎么能认为自己是一个专业的软件开发人员呢?
以下是译文。 作为软件开发人员,我不得不承认开源代码改变了世界。这些开源软件原本可以变得更好,遗憾的是一些因素阻止了它。...精疲力尽且充满失望情绪的项目发起者是造成众多有价值的项目停滞不前的重要原因: “我不会再投入时间和精力到开源项目中。...如果你希望在代码库中保持高水平的概念完整性,那么限制社区尤为重要。具有自由贡献政策的无头项目很少需要收费。 如果你的项目对其他人有利,为了完成自己的愿景,众筹是获得项目资金的重要方式。...但需要再次强调的是,开源代码是实用软件,它不需要太大的野心以及冒险的游戏规则。它凭借不断的更新并逐渐渗透到所有行业。...当我谈到 “开源 ”时,我的意思是只要代码被许可,就可以用来构建专有的东西。这通常意味着许可证( MIT 、Apache 或者 BSD),但并不总是。
但是在区块链的风口,智能合约确也是一热点,那么为什么multichain不考虑呢?...这个听起来很简单的实现方法,放到区块链里面是不能实现的,为什么呢?...尽管这种自动化是技术上可实现的,但是这里有个金融问题。如果说这些给债券做支付用的资金是被债券的智能合约控制的,那么支付肯定是能保证的,不过这些钱不能被发行方做其他用途了。...不巧的是,no。 因为虽然一个合约不能读取其他合约的数据,但是这些数据还是存在链的每个节点中。对于每一个链的参与者,这些数据就存在了他的内存或者硬盘上,这些东西,他是有完全的控制权。...基于这个标准使用智能合约,我还目前没有看到区块链能使用的强场景。 目前我知道所有的强区块链应用都能用比特别模式的事务,它能处理许可,通用数据存储,资产创建、转移、第三方托管、兑换和销毁。
接下来我们需要通过逆向分析,分析下这个网络验证是采用什么验证的,是个什么样的实现思路和方法。 ?...一顿分析过后核盾的后台登陆界面就出来了,到这里就够了,就不在进行对这服务器干啥了,不过随手一查下,这服务器直接放在阿里云的 ? ?...既然是逆向了,那么也不能简单的停留在这么肤浅的字符串信息上了,接下来就往下看下这个网络验证的大概实现功能并顺手把这个网络验证简单的用代码给还原下。...直接将外挂样本拖进IDA工具里面,还是一样直接先上字符串查看大法,接着查看字符串的x86汇编代码调用。 ? 再通过IDA中强大的F5功能,将汇编代码转换为伪代码。 ?...下图是通过ollydgb动态调试后选中的函数。它主要功能是通过查找窗口,实现远程线程注入模块的函数。 ?
如何准备数据、拿到正确格式的数据并导入后续的代码进行分析,是学习和应用过程中的第一个拦路虎。 为什么教程会习惯使用内置数据?...简单省事、便携可重复;这是内置数据的优势之一; 内置数据模式清晰,通常可以获得较好的结果;这是内置数据的优势之二; 别人用这个,我也用这个,这是一个偷懒的做法。 每个人常识不同。...我不太赞成教程里面用使用内置数据,原因是: 对不会读入数据的人不友好; 不利于探索这篇教程用于实际数据时可能会遇到的问题。示例数据无脑运行,自己的数据无显著差异。...如果要使用内置数据,也需要额外提供一些信息: 详细描述内置数据的格式和生物含义,及与真实数据的对应,可以参考画一个带统计检验的PCoA分析结果 提供真实数据的格式示例和读入真实数据的代码,弥补这个“鸿沟...行名字是数字,列名字是字符串(如果我们对这些字符串不熟悉,对我们来说就没任何意义;每个字符都认识,串一起就不知道是啥了~~),中间的值是整数。除此外也看不出其它信息了。
前言 知乎上有一个提问:为什么程序员的代码不能终生责任制? ↓↓↓ 今天,我们就这个话题,一起来做个讨论。...我们知道,诸如桥梁建造、商品房新建,这种民生建筑等建完房子之后,施工单位和相应的工程师,是需要对其质量负一定的责任的,甚至可以说这种责任是终身制的。...小伙伴们不妨先想一想,然后把你们的答案,写在评论区。 我的回答 现在,据我多年观察的现象来看,只要我们不从事非法的软件研发工作,比如赌博、早期的P2P金融类软件等等。...(什么人为删库、rm-rf XX之类的故意破坏行为,不在这个范围之内) 如果你在职,当然是有责任对你所负责的功能模块质量负责。期间发生bug,按故障等级,该背还是得背。...至于,为什么程序员不需要像建筑工程师那样,对工程质量付终身责任制这个问题,大家不妨发表一下你的灼见,在评论区,与我们小伙伴一起讨论。
如果你在两个月前问我对React的看法,我很可能这样说: 我的模板在哪里?javascript中的HTML在做些什么疯狂的事情?JSX开起来非常奇怪!快向它开火,消灭它吧! ?...那是因为我没有理解它. 我发誓,React 无疑是在正确的轨道上, 请听我道来. Good old MVC 在一个交互式应用程序一切罪恶的根源是管理状态。“传统”的方式是MVC架构,或者一些变体。...从这个示例中,看起来像是控制器有了状态,并且有类似模型的行为 - 或者也许是一个视图模型? 假设模型在其它的地方, 那它是如何保持与控制器的同步的呢? 我的头开始有点儿疼了....然后,所有的模板语言本质上都是有缺陷的:它们从来都不能达到跟代码一样的表现力和功能。...你的新伙伴,JSX 这段代码实际上是用 JSX 写的,它是 JavaScript 的一个超集,包含了用于定义组件的语法。上面的代码会被编译成 JavaScript,因此实际上会变成: ?
另一方面,企业对低代码平台的应用仍有所顾虑,同时部分人对低代码还抱有低级、抢程序员“饭碗”等不算友好的态度。 那么,如何看待低代码平台现在的境地?大家对低代码平台有误解的原因是什么?...阮铭表示,仅仅将低代码作为工具是一个误解,它更是一种逻辑思维的展现,是一种消除理解误差、确保多种角色沟通一致性的平台。...在巨大的开发需求下,技术 Leader 也在持续做代码输出,但事情的另一面是,开发人员对核心业务架构、应用架构的关注会相对较少。...与此同时,现在的低代码平台短期内也无法进入企业核心业务系统,尤其是对源代码有严格要求的金融等行业。 低代码平台与其他产品并没有什么差异,其本身的架构策略跟业界是相同的,也会不断地迭代和增加新功能。...这表明,虽然低代码平台对业务人员是有利工具,但仍然需要使用者对底层技术和 IT 敏锐度有基本的了解。
Stackoverlfow.com上有一篇有趣的讨论帖: 在这篇帖子里提到了如下的程序: 明明是在程序里使用了java.util.Ramdom()函数产生随机数,为什么每次打出的结果都是Hello world...首先看一下这个程序的工作原理: 通过这句命令首先得到的六个数是: 8 5 12 12 15 0 然后,通过new Random(-147909649).nextInt(27)得到的6个数是: 23 15...关于这个程序的运行原理的解释,最置顶的一个回复如下: “如果java.util.Random是被一个具体的数字做为“随机数种子”而实例化(在本例中是-229985452和-147909649),那么该实例就会以这个随机数种子作为随机算法产生随机数的基础...这就是为什么每次运行该程序都会产生同样的结果的原理啦~ 当然,关于这个话题,高手林立的Stackoverflow上是不缺乏懂行的专家和见解的。...尤其是在复杂的计算环境下的高质量随机数的产生,需要牵涉到非常高深的计算科学和数学方面的理论研究。 在计算机随机数产生的理论研究上,美籍华人姚期智(目前任职于清华大学)是世界顶尖的专家。
我很喜欢问的一个问题是:“解释一下 Twitter 源代码的前十几行”。 我认为这是一个很简单的测试,可以借此了解应聘者对前端基础知识的掌握程度。本文列出了这个问题的最佳答案。...DOCTYPE html> 每个源代码文档的第一行都非常适合这个面试,因为应聘者对DOCTYPE声明的了解程度与他们的工作年限密切相关。...把这个标签放在代码开头附近,这很重要,这样浏览器就不会在遇到这一行之前解析太多的文本;我觉得可以定个这样的规则,就是把它放在文档的前 1000 个字节里,但我认为最好的做法是把它放在的正上方...我面试过的人都不知道这个。我想,只有对标准化阶段发生的所有新鲜事都有深入的了解时,才会知道这个。...12 更多有趣的代码 我一直很喜欢玩浏览器的检查器工具,看一看网站是如何制作的,我就是因为这个想出了这样的面试方法。尽管我自认为算是语义 HTML 方面的专家,但每次这样做时我都会学到一些新东西。
领取专属 10元无门槛券
手把手带您无忧上云