我是你们热爱的Java,2019年过去了,按照惯例,我要做一下年终总结,说说这一年来发生在我身上的大事。 首先我高兴地向大家宣布,我继续在语言排行榜霸占第一的位置 !...你说别的排行榜上Python是第一?抱歉,我只看Tiobe排行榜,别拿别的榜来烦我,我不看我不看。 第二件事,2019年我又发布了两个版本, JDK12 和 JDK 13。...第三件事, 美国高等法院终于同意在2020年审理Oracle和Google的世纪诉讼了,我的API应不应该收到保护?你是支持Google还是Oracle,还是支持我呢? ?...可是让人遗憾的是:“邪恶”的Oracle后爹居然不让Jakarta EE使用javax这样的包名!因为Java是他们的注册商标。但是,为了保持我们Java一直以来的好名声:向后兼容性。...我对这个掌管着Java特性开发的组织是又爱又恨,一方面,所有的Java特性必须通过JSR的方式提交到JCP,讨论,投票以后才能成为真正的规范。
学Python最简单的方法是什么?推荐阅读:Python开发工程师成长魔法 为什么要挑战自己在代码里不写for loop?因为这样可以迫使你去使用比较高级、地道的语法或库。...文中以python为例子,讲了不少大家其实在别人的代码里都见过、但自己很少用的语法。 这是一个挑战。我要你避免在任何情况下写for循环。...首先,让我们退一步看看在写一个for循环背后的直觉是什么: 遍历一个序列提取出一些信息 从当前的序列中生成另外的序列 写for循环已经是我的第二天性了,因为我是一个程序员 幸运的是,Python里面已经有很棒的工具帮你达到这些目标.../会(我不知道这是好事还是坏事,你选一个,不加这个句子有点难懂)消耗迭代器: >>> a = list(range(10)) >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >...结论 大多数情况下是不需要写for循环的。 应该避免使用for循环,这样会使得代码有更好的阅读性。
2项目背景 这次的项目主要是做一次全国酒店人气排名的营销活动,主要是基于在微信中传播。 预计访问量达到亿级,并发做到2000+/s,且有不少的容错预案,我这次主要负责前端首页方面的展示效果。...功能点: 文字无缝轮播(不要在意为什么在移动端还会有这样的需求) 3如何实现 我们可以下面三种方法来进行实现: 1 marquee 当一说到文字无缝滚动时,大家最先想到的是marquee。...但是已经好久没有接触这个标签了,w3c也不对其进行维护了,并且还有最后必须等到全部滚动完毕才会再次滚动,并且对于rem布局采用基于px的滚动体验会非常的差等等。。...最后是js: 这里还是写的jquery,相信大家都能看的懂,就是让滚动元素的宽度等于他的内部元素的总宽度减去第一个(或者最后一个)元素的宽度,这样能保证无缝的效果。...最后要说明为什么要用js动态添加css3的类名实现滚动效果,一开始的时候我也是想直接将css3滚动特效写在滚动的元素上,但是在iPhone上发现首次加载当前页面的时候他不会自动滚动。
作者2013年本科毕业的,做过并行计算相关开发,嵌入式底层,目前在游戏创业公司做服务器开发。 目前自学机器学习等人工智能领域知识技能,这是一段时间来的进修总结。 ?...为什么学AI 随着近几年计算机领域的不断发展,云服务与并行计算促进了计算力的提升,互联网的发展提供了海量的数据,这些方向的发展都促进了人工智能的发展,也促进了AI领域机器学习的发展。...看一遍,如果80%甚至更多都和自己的认知相同,那么这个人多半你就是认同的,大概率买她课不会让你失望,李烨老师给我的感觉就是这样。 以上只是我的真实感受,不多说了,要不然有打广告的嫌疑。...Python开源工具库: 输入输出文件处理:pands 矩阵处理:numpy 机器学习模型:sklearn(比如线性回归模型,一条函数调用就完事,非常高效) 可视化:matplotlib Python...,写的非常浅显易懂,适合我这样的菜鸟。
01 一个好的用例的表述要点,即用例中应当包含的信息,一个优秀的测试用例,应该包含以下信息: 软件或项目的名称 软件或项目的版本(内部版本号) 功能模块名 测试用例的简单描述,即该用例执行的目的或方法...测试用例的参考信息(便于跟踪和参考) 本测试用例与其他测试用例间的依赖关系 本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限 用例的编号(ID),如可以是软件名称简写-功能块简写-...步骤号、操作步骤描述、测试数据描述 预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略) 开发人员(必须有)和测试人员(可有可无) 测试执行日期 02 举一个实际测试案例,以一个B.../S结构的登录功能点位被测对象,该测试用例为黑盒测试用例,假设用户使用的浏览器为IE6.0 SP4。"
2.开始直接上手 转机出现在看过一篇爬虫的技术文章后,清晰的思路和通俗易懂的语言让我觉得,这才是我想学的爬虫。于是决定先配一个环境,试试看爬虫到底是怎么玩的。...我的原则就是是简单好用,写的代码少,对于一个小白来说,性能、效率什么的,统统被我 pass 了。于是开始接触 urllib、美丽汤(BeautifulSoup),因为听别人说很简单。...我上手的第一个案例是爬取豆瓣的电影,无数人都推荐把豆瓣作为新手上路的实例,因为页面简单且反爬虫不严。...在爬虫中添加 headers 信息,伪装成真实用户 接着是各种定位不到元素,然后知道了这是异步加载,数据根本不在网页源代码中,需要通过抓包来获取网页信息。...于是在各种 JS、XHR的文件中 preview,寻找包含数据的链接。 当然知乎还好,本身加载的文件不多,找到了 json 文件直接获取对应的数据。
不要死记硬背,这是一套系统的数据分析的流程,需要前后贯穿地记下来,并且结合一些统计学理论书籍加强理解。...01 目前从事的工作 我目前从事业务数据分析师的职业,是在零售行业,主要负责各类指标的考核以及公司运营分析。...在报考课程或者考试之前建议要确定好自己的职业方向,如果没有明确的方向,至少确定自己对此事感兴趣的,这样,后期的学习过程和考试过程会相对轻松和愉快。 2....兴趣 我对这个职位和行业真的很感兴趣,无论是从脏乱差的数据中提取出有效的信息,还是对一些看似错综复杂的数据建立模型进行预测,都会令我兴奋不已。...现在是互联网时代,有效的信息交流会省去很多时间也会让自己更快的成长。 04 今后的发展规划 因为我大学的专业是金融,我希望自己能够把金融学和数据分析更好的结合。
重构,是任何一个技术团队都无法绕过和回避的话题。...重构的原因有很多,可能是伴随着业务的发展与升级,系统无法快速支持需求迭代,这时就有了重构的念头,一般情况下不建议对老系统进行重构,毕竟重构是有代价的。...我最近参与了一个重构项目,接下来给大家分享下,我在重构业务系统过程中的经验总结。 1....了解系统 接到重构任务后,不要立刻动手执行重构,而是对当前的业务流程和架构状态有个清晰的了解,如果开发过当前系统的同事还在公司,一定要拉着同事好好讨论。 我们要知道系统一定是给人用的,是给哪些人用的?...各功能模块之间是如何交互的?原来数据是如何存储的?根据以上问题,我们要绘制 业务功能模块图 ,然后再绘制 业务各模块详细图。
需求简介: 现在要做某个 arm 平台的的交叉编译环境, 交叉编译依赖和工具包大小 5G 左右, 特别大。 如果按照以往的方式, 直接将 编译依赖和工具 直接打包到编译镜像中, 会有很多麻烦。...为了解决以上问题, 将 编译依赖和工具 作为外部 volumes 在 Runner JOB 运行时通过 只读方式挂载 , 作为编译环境的一部分。 思路大概就是这样了。...docker runner install 使用 alpine 的, 默认的 lastest 镜像很大, 2Gb 左右 # register a docker runner docker run --...gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner:alpine-v14.2.0 register 配置 runner 参数 可以在配置文件中改...PATH environment = [ # "PATH=$PATH", "DDK_HOME=/root/atlas500", ] # pre_build_script 是一个
这是《大胖小课》栏目的专题一、《说说文件上传那些事儿》的第一节-《文件上传原理概述》 之前发过一篇长文,内容太长,阅读体验太差,很难读完,换作是我也没这个耐心,所以借此专题进行分段介绍,短小精悍,直达主题...Content-Disposition: form-data 为固定值,表示一个表单元素,name 表示表单元素的 名称,回车换行后面就是name的值,如果是上传文件就是文件的二进制内容。...解析 客户端发送请求到服务器后,服务器会收到请求的消息体,然后对消息体进行解析,解析出哪是普通表单哪些是附件。...怎样解析 可能大家马上能想到通过正则或者字符串处理分割出内容,不过这样是行不通的,二进制buffer转化为string,对字符串进行截取后,其索引和字符串是不一致的,所以结果就不会正确,文件虽然能生成,...但文件是无效的,除非上传的就是字符串,比如base64。
为什么要解释这么多顾问相关内容的含义,因为做SAP这个行业,顾问经常挂在嘴边,而很多人却不知道顾问是什么意思。...也有很多人问过我,虽然没有那么多经验,解读的也可能过于表面,希望看到的读者朋友可以讨论,共同成长。...并不是进入某一个行业就一定就代表是高薪,如果是奔着这个目的来的,我觉得可以考虑房产行业,至少还有余温,还有人工智能,大数据分析等行业,炙手可热。...我给个建议,容易不容易,关键看你是否感兴趣,加上一点是要结合市场需求,就像现在你去找一个BW岗位,好像并没有那么多需求。...还有一些问题,涉及到进入SAP行业的学习和是否考虑进入这个行业等,留在下一篇文章中讲述,关注我的公众号,随时查看新内容。
我说的很多内容(SAP技术内容除外),并不是特定对于SAP来讲,而是很多行业基本都是这样,针对一个行业概括起来,就是大部分行业的规则。 对于SAP行业的待遇问题,我觉得还是有必要多说几句。...我在以前的文章中提到过,国内的现状是对开发顾问并没有那么重视,相对来说薪资会低一些。...比如交大、北航这样高大上的学校都会有相应的专业。...这个要我说的话,是靠缘分,两方缘分到了,你就可以进入这个行业了。我遇到过不少实习生,基本上都是实习结束就走了,因为不喜欢,一年的实习时间还根本不知道SAP是什么。...为什么我这里特别提了一下日语专业呢,这个比较特殊,如果你在上海、大连等城市工作过,你就会发现这些城市里的日企项目特别多。这是特殊市场环境产生的。
但只是这样做是不够的,我们还可以做得更极致。...如果此时将项目部署到已开启了gzip的服务器如nginx里面之后,访问浏览器即可看到浏览器下载的是已压缩的文件 ?...在团队开发中,配置这些还是很有用的,制约团队中的每个人都按照标准来开发功能,这样至少大家写的代码不至于相互看不懂(我深受不规范代码的折磨啊)。...配置stylelint 限制js与vue是不够的,还需要限制以下style,感觉这是自己给自己无限挖坑的举措,但是这东西越用越爽,一起来看看 首先在项目根目录下面新建.stylelintrc.js与....lint-staged是一个在git暂存文件上运行linters的工具,为什么要用这个工具呢,因为我们在提交代码的时候,只需要对已经修改过的文件进行校验,不然检查所有文件,比较浪费时间。
2021 年一直没有怎么更文,2022 准备开个好头,所以先挑些简单的内容写一写,记录一下我是如何把个人站点的文件存储资费降低 90% 的。...如果你喜欢我写的文章,可以把我的公众号设为星标 ,这样每次有更新就可以及时推送给你啦 服务选择 我开始写文章大概是三年前,当时有个很现实的问题是不知道图片上传到哪里。...后来经过一番调研,发现其实可以用各大云厂商的文件存储功能实现,资费也不贵。因为看不懂阿里云的文件存储文档,就选择了腾讯云的 COS 文件存储服务。 存储服务搞定后,就是挑一款顺手的客户端了。...首先分析了一下我的文章教程,其中流量大头是我写的「web scraper 教程[4]」,全网阅读量预估有 80w,其中 80% 的图片请求都会落到我的 COS 源站上,造成流量费用。...这次优化就顺便开启了,然后我就陷入到无尽的后悔中——为什么我没有早些开 。 CDN 服务开启后,最大的收益就是加载速度直接降低一个数量级。
哈喽,大家好,我是 Ken,一个始终羡慕自由,追求自由的小伙子。今天是 2020 年的最后一天,最后一天,意味着什么,意味着很多有意思。...,他是这样说的:我是做招聘的,但没招聘过前端大神这样的岗位,也没机会接触司徒正美这样的大神,最早在脉脉上看到和他相关的信息时,我的反应是:高强度工作下,走了一个程序员。...在去年的这个时候,我也同样写了一篇长长的文章 2019年度总结,2020年展望未来 总结了一下,还有人在下面评论,有一条评论是这样的:很棒,很喜欢你的总结,祝愿你越来越好,我只想说,我们一起变得更加美好啊...最近一直在思考,有什么是值得我们长期坚持下去,而且这样的坚持是最有意义的事情,或者说是最伟大的事情,想来想去,还真是有的,除了挣钱这件事情之外,还真的有其他伟大的事情,当然,仅仅只是我觉得伟大而已,因为我觉得做这件事情有意义...,自己的知识,我觉得这件事情是一个伟大的事情。
今天给大家带来的是一道剑指offer上的题目,也是一道很经典的题目,经常在面试中出现,题目很简单,大家记得打卡呀。...下面我们来看一下题目描述 题目说明:在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。...原地置换: 下面我们看一下这个原地置换法,原地置换的总体思路就是将我们的元素放到他的索引位置。...我们可以这样理解,每个人都有自己的位置,我们需要和别人调换回到属于自己的位置,调换之后,如果发现我们的位置上有人了,则返回。大致意思了解了,下面看代码的执行过程。 题目代码: ?...总的来说今天的题目比较简单,最后的原地置换法,性能较好,大家可以自己实现 一下,这种解题方法也可以用在其他题目上面。大家记得打卡呀。 ? 扫码关注【袁厨的算法小屋】,让我们一起领略代码的魅力吧。
我想多了 需求到手开始干吧!本以我刚入行的宏观设想来说,“这种前后端分离系统的查询接口优化,也就是对各查询子接口查询使用缓存、SQL调优、代码逻辑调整优化”。当我看到祖传的原系统代码时,我涨姿势了。...是的,我翻看了几遍后端代码确认没看错,上述页面上的信息是通过API网关系统中的一个查询接口得到的,并且接口的处理逻辑使用了单线程线性处理,也就是下面这样的。 ?...于是找负责前端的大佬沟通沟通,我提供三个接口分别用于查询不同的数据,前端系统请求不同的接口查询不同的数据,这样查询结果会更快,用户体验会更好,没想到大佬一句话就把我怼回来了“项目排期都满了,没人手配合你了...但是,我这里是需要获取线程执行结果的,所以这个任务需要同时实现Runnable接口和Future接口,而java.util.concurrent.FutureTask正好满足,直接上代码。 ?...小结 上面使用多线程优化的方案是当时迫不得已的办法,如果可以分为多个网关接口,会方便很多,这样优化的重点就可以放在SQL调优和代码逻辑调整上面,并且也不用考虑单线程处理异常如何组装返回数据。
为什么会这样,因为你只有录的动作,这个动作只是一瞬间,即使经过了脑海,那也是一闪而过。你根本就没有做到记的过程。学习不能只有录的动作,而没有记的过程。 我再举一个例子,举我的例子。...我一般都是怎么做的呢? 我平时不管是在读书的时候,还是在浏览网页的时候,我是随时随地记笔记的。...这个记笔记很简单,比如,我在看别人的技术文章的时候,我看到了一个非常好的知识点,感觉将来会有用,我就是复制粘贴记录下来。这是录的动作,而录下来之后,我就会继续接着看完这篇文章。...然后,到了晚上把记录的这些点,整理成文章。而整理成文章的过程就是记的过程。这就是为什么我可以持续写文章的原因! 通过上面我举的我个人的例子,大家就可以看出来,学习是分两个点的,录的动作,和记的过程。...使用方法也是非常简单,Unclutter 的**剪贴板会记录您复制到 Mac 剪贴板的所有内容,是你复制粘贴得历史记录列表。这样你可以浏览最近剪切的列表或者只选择其中某一样信息。
然后,创建一个名为tests.data.js的文件。...编写测试 这是最有趣的部分。让我们开始TDD。 首先,让我们创建并配置存储。在src目录中,创建一个名为index.js的新目录。在这个文件中,初始化存储。...在这个目录中,添加一个名为user.test.js的文件。这个文件将包含我们将为userSlice编写的测试。 第一个测试是确保存储是空的或未定义的。...初始状态可能是这样的: const initialState = { users: [], loading: false, error: null }; 让我们尝试写一下这个测试: 测试初始...在slice目录中,创建一个名为user.js的文件。
这样项目结构的好处同时避免了项目庞大带来的首屏加载时间长,也避免了多人开发出现冲突的造成的矛盾。...这样的项目结构在现在看来很多项目都有在使用,比如 Vue、Vite 等,它们共同使用到的 PNPM 的包管理器来组织这样的项目。...同时我也在 B 站发现有伙伴使用 PNPM 组建了包含 PC 前端、PC 后端、H5 前端这样的项目模板。...我们一起来搞一搞~ PNPM 介绍: PNPM 的特点: 节约磁盘空间并提升安装速度; 创建非扁平化的 node_modules 文件夹。...,通过-F来执行命令执行的位置是@it200/module1,执行的命令是add。
领取专属 10元无门槛券
手把手带您无忧上云